|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! o; H3 j; o% E4 @2 B
1 |0 U3 L( S }+ u$ y7 {Mover.h
% c# J6 T* |. d8 r代码:6 q& Q1 m Z, `$ L' {" Q1 E) _2 m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- f: g6 a! C3 q% ~+ r) U
! \% a2 A. M3 \: x- ?1 X, [2 i下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; t% v/ Y% u# o/ D1 g5 v+ M
* q1 k+ h7 T4 w. [) B
然后你去mover.cpp添加6 `9 i# m4 | i/ Q% a
; k/ b1 a& G D7 E
代码:
+ P* D, i0 ~9 c& O w# ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ \1 o" B3 S* D6 L+ `{
- s i+ G1 X! K. R#ifdef __WORLDSERVER
2 ~5 o+ z3 V4 U7 A2 K, n* W) [" q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 U6 s4 K' D3 |1 V3 p. O
MoverProp* pProp = GetProp();
5 L7 R* n9 W/ @ if( pProp )
8 B7 r+ S& b# K {$ d2 M r& {3 L
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), i7 [; z6 I* S# I
{3 q3 r9 \3 G! p' P- N! W& T" x
AddChangeJob( nJob );" c1 J B# |" F7 p3 `& p
}else{9 V; i& Y- S' W. R1 `# C- n7 m
return;5 F K. [8 X `1 r
}% Z; q5 b* j+ J/ s( R' S/ |
int nPoint = 0;3 p( D; R8 ^6 `3 \% o9 p: d
if( m_nJob == JOB_MERCENARY )
; n v/ `: R! f nPoint += 40;
: h% |' M* F5 e$ Y' a Z0 g else if( m_nJob == JOB_ACROBAT )
+ T% h5 j$ M# T! g* V nPoint += 50;# k+ N& A/ b; B( \
else if( m_nJob == JOB_ASSIST )- O, }- f9 R! j+ p
nPoint += 60;
* E# X( o, n# s( m2 Z, c- s else if( m_nJob == JOB_MAGICIAN )
& g( z7 h8 E3 z nPoint += 90;9 d2 [. @" [& H+ p7 T9 R _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ R3 U0 N* c8 {" V4 l ~; n nPoint += 120;
9 o9 _, f4 G; R$ w else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* D! R3 T) m! \2 P# v. B) O! ]
nPoint += 150;
2 L# R2 ^4 l) W0 O" D3 [ else if( m_nJob == JOB_RINGMASTER )
. |* O0 o& V$ V7 m+ S+ V nPoint += 160;
& z" n& o( I/ z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! P) |/ j* E! r3 z: |& ` nPoint += 180;. B n& u& k, S
else if( m_nJob == JOB_ELEMENTOR )
3 i$ t3 h9 K7 j/ J nPoint += 390;0 H8 N! g9 b) J6 A2 ~* K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' V# J2 v; B1 o: `: n, N: T7 l nPoint += 120;
o% A& A, U( H) _$ ] else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ w4 ~! I( K3 g, r nPoint += 150;
Q: a* _/ O3 M% z6 l else if( nJob == JOB_FLORIST_HERO )
: e* A) v: E! x5 m5 f nPoint += 160;
Z: X' S* @! u' C. c* Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" E+ i6 S) Y3 h7 |/ r nPoint += 180;0 }2 i4 y$ l2 ?) E. m; g5 | @
else if( nJob == JOB_ELEMENTORLORD_HERO )
: [" }# C4 l' h7 E4 f- n: G+ A nPoint += 390;+ |9 {/ Z+ g1 f! e2 a( L
' z" |( ]# ]3 P# B
AddSkillPoint( nPoint );" Q( {! A! {( Y
m_nLevel = nLevel;8 H$ C) F9 C9 g I" t
" K Z/ D7 E; B- j+ R2 e SetJobLevel( nLevel, nJob );! b) {* U8 y0 n# g
m_nDeathLevel = nLevel;
' S2 ^ F; G' b+ I- s9 o2 ?' n" r1 L4 F* A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* T; z" _3 `9 x if(IsMaster())
6 g, r) U4 h$ g% e2 p- x4 z* U# V {
1 `# l4 B# S. p. Q" f4 a int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 X1 M; d7 o( | _' n if( nLevel > 59 && nLevel < 72 )( G3 T/ x! s. I3 Q; v( _
dwTmpSkLevel = 1;: z4 z# v: h' ^9 ?) x# X
else if( nLevel > 71 && nLevel < 84 ) e+ }0 j2 c& \# J/ L7 ]1 ]+ ~
dwTmpSkLevel = 2;1 h; p. ]$ G+ e6 f0 c, s
else if( nLevel > 83 && nLevel < 96 )
; a- ~5 s+ N* d" j4 k! ? dwTmpSkLevel = 3;# Z- Q, ~ s- N7 S8 p( X* [
else if( nLevel > 95 && nLevel < 108 )
; i+ g3 p8 e7 H ^- F dwTmpSkLevel = 4;
- i9 }# j- x. Z% i# V1 I' M+ Z, i$ F else if( nLevel > 107 && nLevel < 120 )
2 w, {1 [ P) @9 w) z dwTmpSkLevel = 5;
, B6 Y4 o/ M' E* I for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( y8 p+ V! o4 u) I( D( D% y
{ ; ]/ ?7 S# P+ q1 ^ Z- X* ^6 n
LPSKILL lpSkill = &(m_aJobSkill);( j7 O B& ]% j9 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 K9 n0 ^2 _9 X: g* Y9 D5 q {
7 u W L% l' O9 l) R( o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . @# a/ F3 v6 S- W0 A, Z9 s- R
if( pSkillProp == NULL )0 z1 _+ E& ?! k4 @
continue;; y' s# v% o. y0 T" k- ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- r5 T- V/ g. R& m$ W- u) i2 j continue;
7 d) w' i5 S+ L2 n0 Y2 O. @% Q lpSkill->dwLevel = dwTmpSkLevel;
& L/ O; v* Y+ ? }
4 E. ~, [) {% T+ r2 ], h }
s# X3 D7 T0 ?) T* d" W }
+ A, x( {% ^6 p/ P+ W9 @8 S else if(IsHero()) n7 J- H$ v; e! ]* u3 M. y# ^6 f
{' {9 \1 ^# p, M! e* }) [1 _- m4 t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 A* D b2 m) \6 a) k' ~- s
{ ! C+ N% K7 \8 |0 R9 f
LPSKILL lpSkill = &(m_aJobSkill);! Z, ^" k/ q; _; B! ~4 `# k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 J# k* b4 t5 P' |& h5 Z {" J5 ?' W+ H6 I9 n5 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " O; F' @6 E2 Z0 r% |- w. |9 h5 C
if( pSkillProp == NULL )
) J+ @# q8 U8 ]% j9 B continue;6 F( F/ n9 x: `5 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, g+ w1 E' L$ C$ z/ W5 ? continue;
$ \& u7 t+ r$ a+ A- a$ ] lpSkill->dwLevel = 5;2 g4 V/ a$ M- o, [: c
}
1 ~: @& ~8 y2 A" d }9 N) m$ F2 {; |; w$ t5 K) H
}
9 b2 N: S; ]2 W1 ~9 k% ~( H o else if(IsLegendHero())0 k, H& g8 w4 U# Y& C
{
0 i% v3 L# Y+ V; v% T# a for( int i = 0; i < MAX_SKILL_JOB; i++ )
( r( L% m+ Y+ D. `0 [6 | { % u6 z9 }6 H0 p; A
LPSKILL lpSkill = &(m_aJobSkill);
$ t8 ~9 Z1 z, Y: W4 O' h if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ o( I, h# b) _3 F# A {
6 W2 F9 X7 s. N+ T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % z& Z1 l1 r& o5 q
if( pSkillProp == NULL )
1 Z8 e. ]) [- G continue;7 _1 e9 f+ L9 L( y( \! e% ]6 {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 `$ p1 X* F% n" `. ^2 M# Q( P
continue;; ^ ~: f; i6 T- x" E. Y8 d% O+ ]2 J
lpSkill->dwLevel = 5;! _) w6 C. |: R
}1 u% ~+ K2 \; ]6 A. j$ L* Y
}
, r' }5 Y/ M3 X& { }
& M3 J8 X8 H7 m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 h# @+ {2 p" e& _: ?- Y6 K# Y& Z if( bGamma )9 s( ~7 G O C/ l% x
{
6 H0 g- E3 e p. s# V m_nExp1 = 0;, m+ r$ t K1 ^
}. E. O8 i: }/ M' K3 j3 M8 J) Y
6 q4 P# |# {1 A4 F! t, g
( (CUser*)this )->AddSetChangeJob( nJob );! E( H: {' E2 J8 ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 O1 y0 t# G! y- B' W
' b6 n, K2 \8 i
# d$ M, ]- {2 r' @#if __VER >= 11 // __SYS_PLAYER_DATA" Y8 L. m5 t r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& z, K2 [7 t3 H. w
#else // __SYS_PLAYER_DATA- w" H" \8 \: z2 H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) K3 d9 _/ D+ X g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' l# T' X+ z! V: @) \4 }. k8 \
if( m_idGuild != 0 )
0 L0 d; X0 a1 E* o g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; f! }% |+ W& F7 y" ] c9 S#endif // __SYS_PLAYER_DATA( `, r i0 A% P3 B9 O3 e
SetHitPoint( GetMaxHitPoint() );+ @. K1 d% a6 P
SetManaPoint( GetMaxManaPoint() );3 R1 v9 C6 h9 s4 v
SetFatiguePoint( GetMaxFatiguePoint() );5 r5 Z8 i3 b% O) \7 x q
if( nJob >= 1 && nJob <= 4 )% V8 G1 z/ B% _1 G
{1 R! a+ O: l6 z1 O& b) i" q
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 O( q1 U! ?; o" @& O5 C9 Y/ D
m_nRemainGP = 28;* w) H% x% k4 Q
}
. @! A7 S6 ]% O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: o) _8 s& D9 Y; `& b {- w1 _$ k0 Q5 w$ R6 g
m_nRemainGP = 118;
: e, h6 n* ?; t) d" C% Y. v8 r% L E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: T( r4 `0 r9 r* X9 C+ \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
& m, w; @4 Z5 F! w9 x/ V }
- d( s, q3 c- M; j7 x2 ]" H: |; W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 e% x, ~& _) V: R+ t S8 s) w {
3 f; P5 |* y# \: A$ K. G CItemElem itemelem;, Z& E4 J2 B- T. B" ~, {7 Z: X$ e
itemelem.m_nItemNum = 1;# G/ o7 S* I( p" o9 Q
itemelem.m_bCharged = TRUE;0 o- V6 }) p) `. |
BYTE nID;4 z7 _. X! K" E9 h2 D2 u
& s: p# T% ]. C4 H9 z( ? if( nJob == JOB_MENTALIST_HERO )8 H, v2 @: N. r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* X ~+ A0 g6 }+ C5 _ P* ~6 d if( nJob == JOB_FORCEMASTER_HERO )
, e: u5 p; h, @( U7 c3 C1 N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 C5 X. v7 t# N
% s! C4 U5 ?+ W' M/ } ( ( CUser*)this)->CreateItem( &itemelem, &nID );* ^! z6 }. K, x( t
}6 @6 B" T Q" k: \
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' f+ }+ B) v9 {; d4 ?" y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 O" r# @! G) E M9 R ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 ?% H8 R7 ~6 K* B2 Z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* H2 M( z; B2 Y C2 T1 y8 s
( (CUser*)this )->AddTaskBar();*/8 B% s+ W. ]) G* I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- H9 \/ n T' M" u; V#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& g# n9 h2 { ^2 f4 H7 i8 f ((CUser*)this)->CheckHonorStat();& b5 Q$ Q+ [, C+ j D
((CUser*)this)->AddHonorListAck();
, Y) L2 I/ L+ z& S2 z! \7 ? g_UserMng.AddHonorTitleChange( this, m_nHonor);" |% h0 h. _) K6 |% i7 B7 y' h
#endif // __HONORABLE_TITLE // ′Tà?! b, l4 N+ ]& t' Q# I* p
}
+ Y4 p- C9 a! V; d# Q#endif // __WORLDSERVER
/ C7 |9 r1 K! r! `+ H} ) h% N) G3 q q: A1 j* I" r, y
3 u1 f0 a' G: `9 K& \: a# I' Q然后你进入functextcmd.cpp并添加以下4 ^% [* G4 T% p/ x: U
& r) Q. N1 S M' }. S代码:* h5 q0 }& V) b) _# N8 ^1 u( c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) p: u# p: j0 r, r" J b
下面插入7 J0 L- |5 V7 r% Y# {8 T' G( E2 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ C. B) ^# f$ J
# r4 s# e% ~- \! k. s然后你去: M, t7 _! a' k$ a N. s# t _8 g
. B8 i' z% B2 u- U7 p
代码:
; o- P4 B% q% ~0 O代码
' q# b; `+ G3 t) m4 u5 M6 JBOOL TextCmd_ClearPropose( CScanner & s )
1 p) x4 z2 |, ~{
0 c* M2 H3 r4 U$ G#ifdef __WORLDSERVER
6 d! {5 \1 W' s CUser* pUser = (CUser*)s.dwValue;/ r0 y4 S1 L1 u$ [
g_dpDBClient.SendClearPropose();
0 [+ P) M( ^: R& o: N* Q# N#endif // __WORLDSERVER4 w0 d% _- M' `6 r3 p; _2 S( p% O w
return TRUE;
$ S: w- r! S0 [4 k}# P% u% j* h' J7 d' y% g
下面插入
0 i5 s1 Y* w |3 P) uBOOL TextCmd_rebirth( CScanner& scanner )
0 c. w) O4 K3 L; {{, o- ~2 S. ^, d" u) k/ L
#ifdef __WORLDSERVER
2 H8 r9 `% S3 V! QCUser *pUser;
0 l7 d! b" B" t: T5 ?/ `6 FpUser = (CUser*)scanner.dwValue;5 n x0 L6 J& ]+ b% J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 P5 }: G( r. ~" _4 _2 l7 }
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 N: [1 n/ G) u/ q" H7 ?+ Oelse
7 Q% `' {( V- b7 @pUser->AddText("你还未达到重生条件!");0 E. _; W K- k4 }- h
#endif/ u% d! T( r2 z- i8 t# }
return TRUE;4 m( e1 S8 g M' l+ A
} 8 r5 Y7 C3 d$ k, e. l
; p8 l0 }% ~$ L- B
$ ]$ c4 B' B' i4 ^3 ^4 n" r$ L
A2 Z& [! }2 Q2 n9 l, A
& M6 q! E+ _* S |
|