|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- H- ~" ^0 u& J% e$ C+ F. k
" Q5 v$ P: S8 {# z0 i& kMover.h
' @3 {8 i# h9 v2 z( G% h3 a- Y代码:( d; ?( f' }1 u6 c& `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 E- G* B! l- D* j+ K9 A# U" Y5 z2 V& U$ W' r& P7 Z1 T- J' b
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& |* M3 P2 b. M4 M1 _! {# v) }, H# D! V6 z
然后你去mover.cpp添加
& k) m3 P' r3 Y" B( A5 l2 X7 Z- ]$ [! E8 T P {
代码:
4 l# ^0 U4 ~* E0 ?* M9 ~9 [0 ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! u; w( o0 P+ f' P2 S* q" I# M2 W
{% ^: r- I. z9 i" I# w" f
#ifdef __WORLDSERVER
3 s t# N9 @; ?% I& W5 j- j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& Q0 B! h3 d& F* v% J: m) u0 R MoverProp* pProp = GetProp();
$ \5 M' A3 _& p- R5 F' v4 O- \, ?7 a if( pProp )3 d0 h, |/ T; p( ^
{
! B4 l; U, q( V- b; c if( nJob > 0 && nJob < MAX_LEGEND_HERO )- I( F/ r0 V) x+ |. |" x# m) Z! g9 Y
{ e6 b8 h4 t1 Y( c
AddChangeJob( nJob ); M( T7 t+ t! F! L) z8 |2 N
}else{
Z+ F$ R8 G# D return;
/ b) r. i# }* _9 N- O, \ }: q+ S7 W2 h/ d g$ V2 P6 p1 t/ N9 y( I
int nPoint = 0;( ?! _( a& ~! {7 @6 Q
if( m_nJob == JOB_MERCENARY )
9 l0 [) t$ f( C- P- A/ Q nPoint += 40;
5 ~( K1 {, P. F; O) m* D else if( m_nJob == JOB_ACROBAT )
& L- d! C. t' B; H$ P nPoint += 50;3 @/ V7 L. O! `, ~3 S
else if( m_nJob == JOB_ASSIST )
' m. r. v: ]0 ?6 ?. n nPoint += 60;
( U7 m' a! n3 V4 R L! }+ f else if( m_nJob == JOB_MAGICIAN )
: Z# p! b+ f% `* W+ U4 C nPoint += 90;' b- ]' Z- h: h/ i: X" q, I& ]! Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 R- @7 G L8 X6 }4 E3 k. ~ X; `6 z) I nPoint += 120;
- t9 }/ g; L8 i7 |: i) R3 n" _$ ~ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
" _ T* K" H+ a9 h. B5 R4 a nPoint += 150;
9 M! r. A& y6 J! r- K$ w. Q else if( m_nJob == JOB_RINGMASTER )
) @' v2 j# _0 r' h1 T% n6 w5 O nPoint += 160;2 b. J/ ?5 |1 v6 N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. O: E% K( g( J6 F# @ nPoint += 180; P1 k- g+ n q6 G% G$ T! K4 t
else if( m_nJob == JOB_ELEMENTOR )5 x& T3 l& R7 O% S2 a. u2 q
nPoint += 390;
4 c% J6 W* c/ G" D5 G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! v: i" A# n5 Z; e! g/ c$ G/ K s nPoint += 120;
* w: G+ Z# [3 ~, w) {% [/ n else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- N: X* Z/ f% B# E# z
nPoint += 150;) Y d* R8 F0 u% t+ x3 \2 T
else if( nJob == JOB_FLORIST_HERO )1 }7 J; p/ ^; X6 \7 o+ }, u
nPoint += 160;
) P# E+ R2 W7 Q+ `! `% } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' \7 i% P" E8 m. h nPoint += 180;# M; Y" @2 u4 @' p6 q
else if( nJob == JOB_ELEMENTORLORD_HERO ), |+ ~% F$ `# U) ~+ t
nPoint += 390;2 n% y, x$ Q9 x( D& U& p" F4 N/ D% y
! f- h$ h& {+ f8 G& I3 B7 e+ U AddSkillPoint( nPoint );
7 R9 \; m% k9 M- X: } m_nLevel = nLevel;" B0 v% y: w4 n4 w
* g+ T% |5 D. h- X1 b8 @" `
SetJobLevel( nLevel, nJob );
% z, ?% s6 O# | m_nDeathLevel = nLevel;; b; H0 f, {1 m \* D) n# E9 @
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans t' ]% o* N2 s5 a- ?
if(IsMaster()) z" [ t" v. L
{5 M* d5 D/ t* Q( `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 g$ G/ a0 Z& s8 l& i! t- | if( nLevel > 59 && nLevel < 72 )0 k+ _) X q6 I7 w
dwTmpSkLevel = 1;" O7 v( i0 W; K, \0 m
else if( nLevel > 71 && nLevel < 84 )9 N( ] l9 p' [/ g1 m
dwTmpSkLevel = 2;# m1 z8 ~0 H( B5 L
else if( nLevel > 83 && nLevel < 96 )
/ s! D: y j8 b* p. g( |9 m/ y dwTmpSkLevel = 3;
$ @9 l& ^9 u5 a+ m: S else if( nLevel > 95 && nLevel < 108 )
& R7 K9 u; |. ]1 i: N7 R dwTmpSkLevel = 4;+ D+ L$ l) }3 R( S
else if( nLevel > 107 && nLevel < 120 )
# e: V( v7 G r( O, ?# A dwTmpSkLevel = 5;
7 V$ C6 b+ K" n1 s0 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) # X. P* u& H/ M: b2 B9 m
{
/ a$ x9 }- @: j5 a, J: R LPSKILL lpSkill = &(m_aJobSkill);0 K% n$ B5 \6 B3 [2 L
if( lpSkill && lpSkill->dwSkill != NULL_ID ) f, g# R$ Y2 V, W: G: r2 V; S
{3 B5 b# Q; B# F% Z: Z' g/ m7 }' |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + b2 T, H# g7 T/ f' N
if( pSkillProp == NULL ) C* `$ T0 b* J
continue;/ r7 I3 [4 K$ w/ H9 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, V3 j" `6 P1 H/ N; D. t continue;. Y+ F7 C0 M8 {- G
lpSkill->dwLevel = dwTmpSkLevel;* C* V( d7 j' H* V! L: e
}; b0 O( e5 O3 t3 l b
}# V% Z0 L1 k3 _2 B
}
; p5 ]2 G( b5 {! M- T/ M0 L else if(IsHero())1 V2 @' n3 S! ^2 P/ j5 Q7 t
{ \" e! ^8 m1 x- b+ h7 r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. e5 X% N5 w! K5 }8 j$ d2 T M { # d' y3 c/ o( |
LPSKILL lpSkill = &(m_aJobSkill);
+ O0 M# V) C3 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 x: Y; B" r" X: @5 j/ } {
( B2 Y7 D6 P1 h$ B# y' m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 f# w8 z# ], ^! W if( pSkillProp == NULL ); D- t- s. X9 ^/ W+ J1 W3 i: D6 {
continue;" d. L! o2 p) q, b! M f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ?1 ~# B; w) w' `& P$ `
continue;* c0 |* v" B: k9 O
lpSkill->dwLevel = 5;& k4 K/ S1 F5 v& [( f7 N
}
4 l: h+ x H( _. {; a# D7 S! _ ^ }
( [7 @2 l7 O4 ]7 |% @ }
8 o4 \& b; \ Q$ ~2 x else if(IsLegendHero())
, w9 Z; h S" K& {( b4 J2 j {
- l1 c9 o5 t3 ?3 H" Q b$ Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) K6 w) m$ m' j4 V9 w
{ 1 |$ } D) {1 U) y; q* {% G/ _
LPSKILL lpSkill = &(m_aJobSkill);
5 v7 Q N" R9 c( u if( lpSkill && lpSkill->dwSkill != NULL_ID )# K4 m$ D2 t* k2 O' X; P4 v4 ~8 `
{
9 X, M( }5 Q$ `* m8 u% ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * g$ J; R) s1 h& c0 G
if( pSkillProp == NULL )
& h! |* V5 d8 X$ |% V0 h+ r( B& \2 Q continue;: i& |9 R3 Y6 F0 ~: V/ g1 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" o4 P. t' j( j t' _( Y' j7 V- X! _
continue;
* `' T$ g' K! _ lpSkill->dwLevel = 5;6 A! n+ }2 H3 `4 U( g
}, L% O( I; }" F) ]9 |; V7 W
}$ `4 q- m+ J, X [+ [! `: ?
}( |9 h1 F1 a. R' \+ }& k& G
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 ]- P$ s1 A# S$ ?
if( bGamma )1 d( o+ u; M y, c/ l8 W
{
0 v2 {# K) ~% o4 R m_nExp1 = 0;
T* W* v% _7 F- S( c. M! G }# X0 d6 ^7 n- V; g+ J
v. \ Z( X" [ ( (CUser*)this )->AddSetChangeJob( nJob ); o0 a, Q! }: p: e
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; Y `2 Z% H* S, O: }
7 S. F$ y& b7 F8 _" _
8 F7 d' R) l' U5 t, w' s& L#if __VER >= 11 // __SYS_PLAYER_DATA
. I" H) T8 `+ G) Q: K! H" |2 J) g g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( I' I, y- `1 m5 B4 U8 u: x# j& e
#else // __SYS_PLAYER_DATA( @6 Z- M7 G/ A' |- R* i, s. l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. K1 S0 c) h% \2 \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ L/ d- m" |5 Q$ n6 ?" b if( m_idGuild != 0 )$ S+ w/ I0 X" s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 x" ]+ c2 l9 }( P
#endif // __SYS_PLAYER_DATA
0 T6 }; E" Q: B- e) R: A SetHitPoint( GetMaxHitPoint() ); }1 Y4 B+ }) f' L, K9 E, ]
SetManaPoint( GetMaxManaPoint() );5 v" z& y& ]; ~& P l
SetFatiguePoint( GetMaxFatiguePoint() );0 T" a, X0 ]' C: G% M9 r* D$ e
if( nJob >= 1 && nJob <= 4 )) @% W ^9 U& [
{
4 w9 \' r6 ]0 S# U; m9 q. S m_nStr = m_nSta = m_nDex = m_nInt = 15;" ]; h: i$ j5 ]& L6 V; a7 ]$ b- F( Y
m_nRemainGP = 28;; [) K3 b/ E3 K
}4 [" }% t! z* i+ H& ^! h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ p* a3 E: y% d% q {4 [8 b6 ?* m% y0 ]8 @: X
m_nRemainGP = 118;4 [# N; Y6 u$ E5 |# U) }$ s: @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 H! L0 z) E! e. ]+ M6 {9 I4 ^8 F7 q4 p m_nStr = m_nSta = m_nDex = m_nInt = 15;
) T6 ~/ e: t* ? }6 L1 M( T! e: j2 `5 k. E( k% b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), ?8 [. O* d0 u. i7 ?% x
{2 j& S6 a ?) v6 I
CItemElem itemelem; m# m2 g" d4 P! _! s$ E
itemelem.m_nItemNum = 1;1 |8 Y/ \/ Q! i% H
itemelem.m_bCharged = TRUE;
# P( ]" D/ F: @/ a BYTE nID;; X" f: p& t8 ^! ?6 l
, K( j- _, G/ U8 y9 m+ B J, A2 g
if( nJob == JOB_MENTALIST_HERO )* y; W% b0 V0 Q1 L6 } i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: k( k3 O% \+ G( l2 I
if( nJob == JOB_FORCEMASTER_HERO )
/ r4 i# Q" ^# V* F9 C9 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- ]0 h+ t9 G" c; L" G& }
6 M/ b0 x& @" {" m2 J ~# @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 J' N/ {* F6 ]% g/ |$ o }
- }* L) b# m8 t5 C9 ~$ D4 }! z4 I( G1 i! `5 c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 J$ c0 N" j3 ]7 p+ O
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ f" P( x. v( E% F+ ]/ `! G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 `$ c6 x9 X# e) J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# f9 j4 P# E. Q# Y% y3 n4 Y ( (CUser*)this )->AddTaskBar();*/2 ~& h, v: \& K& _: E
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ _5 N( Y7 Q8 B. m7 t#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, F3 V! ]3 s( p* _/ g
((CUser*)this)->CheckHonorStat();( u9 M, g8 `, U0 V) u% G9 D
((CUser*)this)->AddHonorListAck();
2 F; G% }! e9 x' I" W R! D g_UserMng.AddHonorTitleChange( this, m_nHonor);& E8 ?7 ^- L. M# _$ d# N
#endif // __HONORABLE_TITLE // ′Tà?) w% R" Q3 D3 I u: r% Q
}
$ ~: P% z7 I+ T( K8 m% m6 W0 J#endif // __WORLDSERVER
4 T' x# x, S% O) h8 X} 6 y6 S- |0 l9 W5 A+ ^
* v. i9 ^8 W2 U然后你进入functextcmd.cpp并添加以下* z2 B& Q' ]3 B5 E
9 P! F/ ^1 |. T# Y: W( b6 G代码:+ m7 p8 ]8 N3 g: G( c& P
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 y9 a! U, ~/ Z/ I下面插入
8 m1 @% H0 o( `' I9 d. B7 R; iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 J# I* r, l: K- m
; c" K8 k$ B( }8 d6 v$ `; d2 |然后你去
4 X/ B* t: G; C
3 M, a$ j: L+ i. U代码:
- A9 Y; _( I6 `( p4 i7 k' U代码
4 j; ] F! R+ Z$ K. C* fBOOL TextCmd_ClearPropose( CScanner & s )1 g( K7 L/ H1 d
{; ~, v E- r1 i# M; o
#ifdef __WORLDSERVER$ E2 m$ N7 v8 z4 ~& r- I# w( K
CUser* pUser = (CUser*)s.dwValue;7 j# ?" Z1 T, N2 B$ F
g_dpDBClient.SendClearPropose();& L% w a8 P3 V L
#endif // __WORLDSERVER) I0 Q- P' d+ Z( H0 X% v! p" l; I! \
return TRUE;$ ^3 P. X& k: ?: V% c+ J1 o& t! S
}* m/ D; l1 @& p
下面插入
( h4 V8 c2 Q& H( WBOOL TextCmd_rebirth( CScanner& scanner )! Y/ M8 Y! W! z/ s% L
{
; _4 t1 n+ n8 W' w, E#ifdef __WORLDSERVER
* K. v g! k5 [. y Q6 v% p$ NCUser *pUser;# D; s# d8 w, y
pUser = (CUser*)scanner.dwValue;* @+ h$ X* k! K2 l* @2 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* c6 o8 X" L1 L# m& Y" |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% J5 c. b) C, O1 d$ g$ [else' E- U5 n" @3 B/ b0 k' b5 j
pUser->AddText("你还未达到重生条件!");/ Q/ P! U0 y8 H. v
#endif) z$ [ C7 u& f
return TRUE;/ {' n& {: ~7 n) {$ H
}
% q$ p# |) `: i; r
- _* j" R3 |! A% i, N1 ]# y
4 I( O( A; I! p p, s4 f7 ]. p" \3 T* g
) f% {( ^/ _$ P& S* Y |
|