|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' h6 g6 O# D/ ^9 C* [) E& M/ e+ s! w$ N2 [# P/ Y. m
Mover.h6 U4 l: ^! ]& M# V5 d% }" C" D
代码:3 Z" ?# ?. u2 n; Q% F" Z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- Z b/ i* m5 I
* X' d- }6 L6 {7 L& l1 U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; ~5 ~( K) O, ^- U7 ]; w
* G2 O8 \4 T+ E, w, c% F然后你去mover.cpp添加! c7 S. \) c3 |0 p; f
1 s+ X# H4 y( ?* z, _代码:
B6 `' K* d2 D( Y$ F5 W, B# _void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
^% @+ I6 f3 P" a) p' ^{/ W* o9 J7 m9 k& n$ d: V7 o
#ifdef __WORLDSERVER
3 n- z; Z+ G$ `# a5 U // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# y0 t" O {) Q MoverProp* pProp = GetProp();
: [5 y9 }) ^9 i% w if( pProp )* a; s: U( ]: V% V6 n8 d" U" n* F: e; Y
{6 s. ]# E' N T6 q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 n' N$ c- m. \4 O
{
3 I- Q2 T0 F, O0 U: b0 O AddChangeJob( nJob );
( C$ w' j. [, H; `+ @8 c, W }else{/ U% O( h O4 o
return;
3 H2 g+ e/ ^3 [1 l. [( [* R }
, m) Q8 V* X3 \! N ~ int nPoint = 0;7 w* `2 A9 Y* F. y0 V
if( m_nJob == JOB_MERCENARY )
) C% e; f/ z+ T# R6 g6 p9 b nPoint += 40;, C7 b: m& n% z
else if( m_nJob == JOB_ACROBAT )% e& c) [+ _# \# O0 m; N( Y" E" z! j
nPoint += 50;
0 R9 \' v6 u: T9 |) o6 S: [+ z' o else if( m_nJob == JOB_ASSIST ) K) i9 y2 R! U. C. D& H/ l
nPoint += 60;
3 |. n! Z. r* Y+ |+ M( f# l else if( m_nJob == JOB_MAGICIAN ); l8 O8 i! F9 A4 L! ], h% U, u
nPoint += 90;: a+ K8 S7 T) T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' t, J, l/ y$ o
nPoint += 120;
u. q" r* w2 p. y# P! \ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). g- k2 D7 h7 k
nPoint += 150;/ Q/ o9 D, Z% k" P9 T4 [# ?
else if( m_nJob == JOB_RINGMASTER )
. d8 Q& N8 k6 ]6 `: O nPoint += 160; q* w$ d) Q% p- @ z. A- V5 |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. j: D" s. e0 b1 g4 d! d nPoint += 180;
$ F G6 h5 X J+ f else if( m_nJob == JOB_ELEMENTOR ). O5 m% N0 z& K# U. g7 V) p
nPoint += 390;
; L- p, {. j+ P* p2 y9 E& X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 ] o1 F! s4 j( a# M1 y) p) b
nPoint += 120;9 _& D3 l3 G. F+ f$ v' G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
. b/ b7 p/ U l- U/ {( n nPoint += 150;- _# p' g b7 ^' ?4 a$ I$ `, \8 O" L
else if( nJob == JOB_FLORIST_HERO ); D$ B& `$ R% L# n, q
nPoint += 160;
5 K- T) u6 G# H- v9 z" G m8 y# g( B else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% u/ q4 P0 b5 m0 P' W5 L nPoint += 180;7 _( O4 R: l( Z& u
else if( nJob == JOB_ELEMENTORLORD_HERO )
, i" {/ u' P/ W nPoint += 390;) l5 ^* m7 n4 o! ?3 \4 w$ c0 U
1 \6 J3 _( d6 M/ n
AddSkillPoint( nPoint );' ]0 d$ p" _1 X4 O \) u* b3 z
m_nLevel = nLevel;
) k. Q3 G; g8 O+ c% K$ N) X9 O( G! n* R6 ^+ V9 ^
SetJobLevel( nLevel, nJob );$ S0 q6 Q2 g# t
m_nDeathLevel = nLevel;. U/ x; D- w5 y, g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 V! t# |) e% }: D; \5 @
if(IsMaster())* U _! e9 r7 b/ l( ~. [8 g
{- L7 ]9 y+ ?5 E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 h8 _! ]8 J; T3 B6 N if( nLevel > 59 && nLevel < 72 )/ h- Y+ L& W5 i# D
dwTmpSkLevel = 1;: x9 g2 I& R5 R, |; Z0 c# d# J
else if( nLevel > 71 && nLevel < 84 )
1 ~1 A7 A/ w" c dwTmpSkLevel = 2;* M ^" Q9 w) Y S; N1 I
else if( nLevel > 83 && nLevel < 96 )
+ r7 A I1 I2 Y& H- ` dwTmpSkLevel = 3;
. W/ ?# n% {8 \8 r' s, r' K! U else if( nLevel > 95 && nLevel < 108 )
! |4 L; B0 U" i+ V# {1 X, ^) I, A dwTmpSkLevel = 4;
( b1 Z3 ?* k! `* j- n r4 a else if( nLevel > 107 && nLevel < 120 )
& Z0 j4 n2 I+ Z dwTmpSkLevel = 5;
n" s- |; w% }; K: T5 k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 P/ C5 _4 p$ |4 i4 j/ e
{
6 m% V* ~! _) R LPSKILL lpSkill = &(m_aJobSkill);4 T- T, x9 V, @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ P7 j% n$ k y" d- Y0 R- e( N {" h- |0 h; I! Q1 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , {% M0 \. S+ ~2 J
if( pSkillProp == NULL )- L: X9 l+ R" j, Y
continue;
2 E2 V5 D) z C2 C( u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; M; s/ X( Y! x8 G5 H" Z2 [ continue;5 ~" f$ n9 T3 l, j5 M: k
lpSkill->dwLevel = dwTmpSkLevel;, `- B' ^4 O' v0 f, R7 X$ \. X
}# Q1 w4 O3 v! ]! \. |$ j1 L7 m
}4 b8 M- M% ]5 \; K' h% {
}
8 j1 C. i+ ^7 T else if(IsHero())
4 k* b$ L6 _* N5 m2 i" ^7 C {
/ D, m$ s5 P3 t/ d& n6 y# A# ?1 R' [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( A6 w7 H, X; D/ `! u" b2 X4 l
{ 3 w$ _# E" i0 m* T4 h. B
LPSKILL lpSkill = &(m_aJobSkill);
6 L1 U4 E W7 E1 T# ?( T( C( Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
& v( X8 g: T1 h) ?2 s* O/ d {* p; h6 _+ a) n: S2 V( t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 c3 h2 k2 d: j6 e! _$ G if( pSkillProp == NULL )
5 \& f* g. m* h! q continue;
- H" O2 b( _' ]8 _) O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% `5 u/ m4 G! a5 M5 e; L
continue;( k+ D. o$ x6 M& f% e1 b
lpSkill->dwLevel = 5;
0 \" @. \5 K5 f1 O }
4 K0 U! v7 g4 T _% G }
9 R1 I$ G/ d3 X3 i }+ x8 a& L1 f& v; }% G, `$ q' d: q! u h, f
else if(IsLegendHero())+ g X4 R* U* I7 Q
{1 e: S4 l5 G; u0 w# z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 K# C' L8 e" l
{ * |2 P( ?* w: T, j% Q/ G$ g
LPSKILL lpSkill = &(m_aJobSkill);0 R" ?9 J( s3 k1 _4 \, I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; J0 M9 y; m0 F {. e- B6 n2 I! N' E g4 C4 H4 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 r8 b( {1 | b7 S( [
if( pSkillProp == NULL )
7 V3 u: c' g5 M continue;1 M- O: \" T) z* q' g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& H* ~* C$ o) H% s0 _( m0 M5 h z+ { continue;
4 X& ]5 {, z; K! ^( \7 x lpSkill->dwLevel = 5;
1 k1 P$ e* K. ~ }$ n% w& P# ~2 h; \3 n
}$ ~/ c# O5 X" j* Q) D1 g& i
}8 O/ w' L$ T7 Z2 |9 ]# M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: e, d4 {% V- h) U+ p% O! I if( bGamma ), t$ U5 o2 M6 {9 q+ ^, g& g
{
) [ v+ W- w( ~, i: [2 b m_nExp1 = 0;
5 e: E' K% [5 F t; x } }! ^+ H$ @* {6 Z9 D( c0 M* {
2 k& G, C$ F2 r1 d i9 n ( (CUser*)this )->AddSetChangeJob( nJob );
+ U! j, w1 R+ K* d _( K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
l1 [) n# n+ h8 i( [- k% i
k- i6 L1 _' _: u$ E5 o, l% D2 y+ V" z# N% H
#if __VER >= 11 // __SYS_PLAYER_DATA9 `9 E, P6 z0 {7 T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
\4 p/ O' c* `4 [" E; O# N#else // __SYS_PLAYER_DATA" {1 V# f5 o, M/ W- U/ R+ e( H, v
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! e8 D1 a* m. s% X8 i( h+ T1 }- _- B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# k; l5 K* V8 s if( m_idGuild != 0 ), G9 |* ]1 ^8 ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 g0 h5 @7 `1 k$ z0 ?5 s; f" X#endif // __SYS_PLAYER_DATA6 z0 o* C0 v" p& s
SetHitPoint( GetMaxHitPoint() );
: v Y: n- f. p6 \5 g4 J1 b SetManaPoint( GetMaxManaPoint() );6 W! V9 c4 k, V& l
SetFatiguePoint( GetMaxFatiguePoint() );
9 b, t& w3 n+ @; C* q2 C' m9 { if( nJob >= 1 && nJob <= 4 )
9 F/ T! E& Z9 X. ?+ ~7 J$ F {
2 p6 ]$ Q& d; L3 P5 r m_nStr = m_nSta = m_nDex = m_nInt = 15;
% @0 V- z' ], p. X; I% z m_nRemainGP = 28;
# A2 A/ e3 J( u5 ]' R& e3 g }4 K9 R3 g7 A8 L C0 x7 j' I
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% ^- i- E8 ]; H3 `& F) V# m
{
& E" y8 s5 C6 ]8 d$ H$ b- U m_nRemainGP = 118;8 F$ n: q) L$ Q% c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 K$ D1 g7 s$ ]$ ?" Y3 h/ t4 H
m_nStr = m_nSta = m_nDex = m_nInt = 15;" r2 ~; N/ E' l& }
}
# T( ] J7 k1 G; P( B5 Z" m& u if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- C/ Y8 L$ h0 p# T1 p0 Z: W" _; a {% d4 @! J7 P( w5 L
CItemElem itemelem;* y+ N5 e" f& |8 C4 P
itemelem.m_nItemNum = 1;
: p4 C. J2 f. a8 ^5 f$ | itemelem.m_bCharged = TRUE;
' q2 g* R1 W: ^& ^ BYTE nID;
0 R0 b" ~$ }4 Y
3 w5 i$ n3 p" ?- ?/ T, l if( nJob == JOB_MENTALIST_HERO )
T3 H) O+ K" R4 g2 X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; r4 p0 J0 E" W if( nJob == JOB_FORCEMASTER_HERO )! d! W. i, S1 c. S) Z6 }3 g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 b8 R$ @) L7 E& j4 x0 L, i5 Q
9 i1 ~+ m" I$ r( f" \ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* F6 [4 e' Q I0 u5 n }
8 i/ i: K& G8 H9 ?9 B# E, K; Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
F& O b+ w0 \2 d: T2 K ^ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# R" }3 s) g) C* ?
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" m2 a- J I' ]& Z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 N5 A, N2 q8 z, g" l5 p& S: a
( (CUser*)this )->AddTaskBar();*/
( J" c' ]5 A1 E# i' R ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; p" ^" C0 Y, D7 v# P( a0 Z, B#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' n/ w. R) g' k: W0 {
((CUser*)this)->CheckHonorStat();2 c( B% ?5 K9 e" J
((CUser*)this)->AddHonorListAck();
. Y1 V" h3 I# T% W+ _6 O g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 \' T4 W/ K1 k: P; P- ?, v#endif // __HONORABLE_TITLE // ′Tà?+ C1 Z& x5 a5 i5 d9 ~
}
9 A |# Y7 R8 o7 g8 N#endif // __WORLDSERVER
7 ]0 {2 a. ?7 n( Y}
# u B' K" z7 b5 O( t! Y& v
8 f0 b5 U d7 ~- z6 O. }$ Q5 x然后你进入functextcmd.cpp并添加以下
: A! H ?0 c+ G: B( X! g7 _3 Z
代码:- B" ]; T) i; q" X; V9 o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
c. y4 J+ E9 I1 l! u下面插入( o0 S( u7 B$ M4 @; |0 _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 R& A/ Q- R2 C5 Q% z
) [* p; Y- e1 T) h& n然后你去
" y8 @# u. O6 `/ p( ~; j' W! g1 x$ N8 F. I4 D
代码:
& Y1 G! [7 R$ D3 ~' t2 q代码
5 e+ \$ @ u5 N# g4 ^& R$ [BOOL TextCmd_ClearPropose( CScanner & s )
: d% G7 T- V% D% P- a. b+ w% T{+ X& m( d! O, Q3 Y
#ifdef __WORLDSERVER
& U* P; J8 K6 G# p Q* X6 G CUser* pUser = (CUser*)s.dwValue;
) L0 p! D, N: y+ V$ J9 r g_dpDBClient.SendClearPropose();
' g3 `9 L5 ^8 h' z#endif // __WORLDSERVER
1 E0 t/ c) m+ W, n8 t( D6 O, S return TRUE;% E$ `* E0 H, X+ I) a
}9 m. E. {7 r0 z, t
下面插入
& r5 Y, }' J8 N/ i" A4 O) T2 sBOOL TextCmd_rebirth( CScanner& scanner )/ n1 N2 }: I3 P0 X) r4 K
{# n! h9 b* @. l3 x/ _# S$ h
#ifdef __WORLDSERVER
' k/ X( d: D7 A! I6 eCUser *pUser;
1 ? ?# ^. G/ _, V ?& ^/ lpUser = (CUser*)scanner.dwValue;- z! C9 G! V4 N. f% |9 ^; W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), B9 G; k( w+ O- b& F0 p$ d+ w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ B1 H4 J4 H9 K* T) Y
else) m% R+ m' c f* j* @2 F' U
pUser->AddText("你还未达到重生条件!");
! B) x9 t2 T/ g& U# _6 O8 E#endif% `0 v) f, D; L7 ^. }
return TRUE;7 [; s6 R* }1 K' O8 Y7 ^
}
; l2 [2 Q/ |; |- S- [% t* ]% Z' ^ D. c: `/ G: V! W
1 M. g$ c% p% ^+ {
7 p; T$ d1 b! s- x/ K8 @
3 ^; U: R( w7 Q& h e' a |
|