|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 b# t- f; s) N2 W0 D2 m$ o5 K1 j6 ~9 N
Mover.h+ i! |% V+ J% a% I
代码:
, S7 ]% p0 L8 u% x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ o/ a( a" a Q8 Z. K; {$ ?) ~2 ~
" ?: @( k1 F$ d* [: t3 M
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - x" V# B" ~% w" J/ u% l: e' E
' {# K1 ]& B9 N! F" t( K然后你去mover.cpp添加) q, d6 h" a3 q4 H9 Y. E
* e0 }- }* ~. M0 m" V, y7 t* P
代码:
" r/ \" @0 i4 ~( U' O0 Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 G" P2 r z- j{" |; x z5 G7 k1 w s, W; g
#ifdef __WORLDSERVER* D8 h& v( E& Z/ j. ?
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ Q, _0 T. q; _! b2 f# x( `
MoverProp* pProp = GetProp(); K2 g8 ]. G: P* R% t5 b9 Y& G& @% d
if( pProp )
& H4 M2 b9 b+ \) k* D {
, R4 c2 l X; o6 N2 t: F if( nJob > 0 && nJob < MAX_LEGEND_HERO )! Z2 h2 Y# v0 S- v2 V, Z
{: g4 M# C. T4 [ s- F
AddChangeJob( nJob );8 g2 B% m, e t! d- T
}else{
( l; H) ~, H$ N8 @ return;
2 Q) L4 J% B5 d4 c5 ] }8 a/ D# c, u. o2 X+ ]6 F
int nPoint = 0;
6 _ X- X/ L! h# p, l5 h/ ] if( m_nJob == JOB_MERCENARY )$ B( A. s" I7 x# t$ r' N% y J8 |& z1 m
nPoint += 40;
# |* j: J" X) \) F else if( m_nJob == JOB_ACROBAT )
* w8 q- E' v% |% h* q nPoint += 50;
: m2 k% R4 k$ f7 d( }+ K# T else if( m_nJob == JOB_ASSIST )
1 t, n* G( {* G& i, i% H nPoint += 60;* ~" H4 n7 G' J# ]- A V
else if( m_nJob == JOB_MAGICIAN )
4 G n+ S7 _5 e- N7 a nPoint += 90;7 {2 Y" y! S3 a W; m( l4 K: C9 L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: q* A3 Q3 e7 X- \1 D. q nPoint += 120;
[- ]! }7 o1 {; @1 L+ a% B9 A- q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, g( U$ i' F/ k nPoint += 150; D4 J2 B2 v! q" M* c, [* ~
else if( m_nJob == JOB_RINGMASTER )
( l0 j( ~& u y$ T nPoint += 160;# B( Z" S q8 ]# u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 N* H) a- o7 e! L nPoint += 180;
7 ^1 X) S. a' z else if( m_nJob == JOB_ELEMENTOR ). _ e3 `/ O: U# e$ r
nPoint += 390; `. |6 F% ]" R/ }0 R/ l6 |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& D) q% T) ^! z j nPoint += 120;) Q3 F4 Z0 ]) q T& Z9 I1 D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 S3 Y3 Y+ g, p# x. y! ]. h nPoint += 150;( n$ ~, _+ u$ F: T8 x: O
else if( nJob == JOB_FLORIST_HERO )
1 j& ~! q; X% e nPoint += 160;! G; `8 T B n8 s6 s+ w7 X4 o
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# g" J, Z5 H. \' i% M5 s8 s1 C* a
nPoint += 180;
: w/ U d, ]7 D# c6 T else if( nJob == JOB_ELEMENTORLORD_HERO )
* ^: j' U( C4 Y% i; N nPoint += 390;! B, `1 W* |$ {- d& G; x
: K& `# E- Y# i5 ] AddSkillPoint( nPoint );- B' g0 O% O$ h( Q* B v( n$ V
m_nLevel = nLevel;9 N- w+ @. Q$ E4 t" _" s, ]
* w2 _& G3 w: k- J% Q
SetJobLevel( nLevel, nJob );
! Q3 F7 s+ d$ l% D6 Z' y m_nDeathLevel = nLevel;5 h* j! J) n; P9 {7 D+ t" K. n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 U$ E5 T/ I1 S$ p3 l5 b$ e if(IsMaster())
4 [$ f3 X0 D1 `$ R {6 k$ C. D- p7 D+ k- j+ Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 O* Z6 _- ^% U if( nLevel > 59 && nLevel < 72 )
1 u# r a2 N2 @7 U/ w" p dwTmpSkLevel = 1;
( O! k) u7 d2 c- |( Z* f: Q else if( nLevel > 71 && nLevel < 84 )2 q3 U5 P+ Q: m$ J
dwTmpSkLevel = 2;
9 z* \4 C, D3 ~+ S& J5 ` else if( nLevel > 83 && nLevel < 96 ); g2 W& C+ A/ A+ W9 j9 ~' q
dwTmpSkLevel = 3;
' e& r8 ~4 K- z5 A else if( nLevel > 95 && nLevel < 108 )$ d( k1 C/ j( b0 H5 O
dwTmpSkLevel = 4;
: Q: H0 |+ U$ M. x' a else if( nLevel > 107 && nLevel < 120 )
, C7 _: R9 y X) s( |2 m dwTmpSkLevel = 5;
6 ` q, X: K( K+ S S. L for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 L6 k) p4 D9 z" k {- Y* B: T
{ & d( [- u% I! L& ^; ~
LPSKILL lpSkill = &(m_aJobSkill);
2 t. r2 s8 k; D0 O' m& C4 G if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ r& P4 m8 Y9 s! t) C' A {
, o: F2 ]- M9 \1 \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% G/ r- _9 u) p- u& ~: Q2 V: S if( pSkillProp == NULL )
1 W$ g5 o% n+ ^8 b1 x, ^ continue;+ b- B9 @& v2 w2 A4 `5 Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 p3 A( _4 G# R9 b
continue;! I* m6 \% X; r7 C4 Z* O5 e( C
lpSkill->dwLevel = dwTmpSkLevel;- Q0 f8 W% s4 z4 A k% u3 Z
}
& ]% f) b8 g! z9 g1 v2 E+ b' | }
$ w1 N" `# U% O }3 C2 T" T+ s6 O& j5 A9 V& e9 j4 [3 n# r3 j
else if(IsHero())
3 F ~" Y0 K; B+ S& T2 A! H {
" t' F! {/ V: P2 Q2 u. n for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 K% ~: {! M5 s. _% j6 | {
, J' p+ b+ f0 W3 T1 O$ E: x LPSKILL lpSkill = &(m_aJobSkill);
# U! Y; M9 {9 A' o if( lpSkill && lpSkill->dwSkill != NULL_ID )
W( |1 u/ `% J, h) B {
5 S1 C* W: l. u4 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 R$ E$ [& @ X# _& O& s; O4 l
if( pSkillProp == NULL )
$ d1 X* z2 b* p* j4 }4 P continue;+ c' v( j, \, U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). [7 ~8 b: n! t& l2 A$ a- Y
continue;: U% k R, K2 A# N+ y0 @: `, n
lpSkill->dwLevel = 5;
6 ?! E, |# c4 ]$ ]" D/ i }
! B) z' O7 R, C, s1 j1 a! X }
( b% ]# _# g& t: s5 y6 `; s; | }
7 V3 m( K# ?& T2 Z1 y. N else if(IsLegendHero()) e9 }& J; n: k. K4 h! l1 R: ^) r) H
{# W9 C1 {/ l( {" j/ X
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 I; K2 d" X9 j* w' B {
7 A, ~! ~, R/ K, k9 t LPSKILL lpSkill = &(m_aJobSkill);" T5 H8 }$ M5 \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 H6 [3 B- H" V. o/ j4 ^ {
$ R8 y8 r7 }8 k0 I0 ^4 X2 c/ p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& J/ _+ ?9 v& U* j if( pSkillProp == NULL )7 L+ ^$ z, @1 I# ]2 \* O
continue;
) M0 ~* c; c- Z7 i8 `4 g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! ?/ D0 l5 t% J continue;
5 ]+ ~* P7 n% x- H" X lpSkill->dwLevel = 5;+ ]( X1 L( }$ }6 A8 j9 x
}
, Q* @" j1 {( n; X3 k }
' o B2 _ |( h p: T }
7 |2 f5 a3 X( {7 G+ s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; f+ f6 r1 ^8 s, x) E
if( bGamma )8 ~+ I, `! {' k2 D* F" Z
{
& W* d; O; i v8 ^2 n& O" B" c. T m_nExp1 = 0;, @. w9 K+ q* {' n
}
1 \2 |3 E. L: a6 l8 E. f$ j j# T. W% W
( (CUser*)this )->AddSetChangeJob( nJob );! d) b: S( _8 @+ T. j* X0 _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ W# B K& D% D0 y' |4 X" C
; ^# y% u8 A* ~( t g% ]/ b; m- t" H6 @4 J3 ]; |# S) `0 _ e
#if __VER >= 11 // __SYS_PLAYER_DATA
- r+ C+ H, q+ q/ p0 E* @ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% K5 l% U! t- E; P/ h#else // __SYS_PLAYER_DATA r2 G4 s9 u5 B: [9 q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% o$ n- [: Y. r* }- }. K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 J7 G) L! [9 G4 [
if( m_idGuild != 0 )$ T; w; T9 b: g, F4 q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 e" y y' F8 h4 O2 e- X2 m#endif // __SYS_PLAYER_DATA
- n) F0 y1 ^ v) M' I SetHitPoint( GetMaxHitPoint() );
2 Q6 s( ^) b; I! [+ ~ SetManaPoint( GetMaxManaPoint() );
7 ]! w6 I" s' `" }3 d SetFatiguePoint( GetMaxFatiguePoint() );
" G, x8 ~+ C' d# Q if( nJob >= 1 && nJob <= 4 )1 I7 A! t5 O* N$ S# G/ x# C
{
' |8 F- @, B1 P; h m_nStr = m_nSta = m_nDex = m_nInt = 15;2 W" U* |% Z) P8 W8 S% y2 \+ `
m_nRemainGP = 28;; o' R2 t- i8 q7 @
}
, f3 O' r: X7 j' A; \( r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 A! L+ Q4 b6 M8 e- T- }# r
{
0 W8 J0 f/ u# e" e |/ M m_nRemainGP = 118;
% i T- M3 h. N) ~2 B6 a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 q' G. N2 _" j+ P7 p) Y3 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# N( C, j" E6 t! z }
2 H/ i6 L1 u: H; |3 c& i: }- k& _: i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 k4 ]) E, Z! r5 L% ~' E {- {% ~, x- }) [, `( S3 D- m
CItemElem itemelem;# W G, ]: q+ q. c2 d: J }: K O
itemelem.m_nItemNum = 1;5 z0 Y/ ~) I* v% t" V
itemelem.m_bCharged = TRUE;! I7 J/ _3 _6 H+ W' ], l" q
BYTE nID;
* b/ }; T1 _( W8 `* y" \
; i& k: m0 x! e: d+ |$ T if( nJob == JOB_MENTALIST_HERO )
1 ~3 ?6 k2 S5 B: h) F; v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 Z6 y4 _' j& @, d7 `5 P! W1 n
if( nJob == JOB_FORCEMASTER_HERO )
# K8 R% _ L3 {0 ]9 x9 A: f- D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; C: }2 E! q, `# S' g7 n. Z; l% u: h3 i1 G; z
( ( CUser*)this)->CreateItem( &itemelem, &nID );; h) l9 B: O2 |8 S2 W( K
}4 [) u. ?* W9 e/ ~ u& X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ R) p$ g1 F' G0 U8 F ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 |* Q) x5 z+ @8 j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 A6 ?( ~! z8 o7 B$ n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! w) h8 r5 X: F( ~2 z
( (CUser*)this )->AddTaskBar();*/3 ], L0 [+ ` @5 R& C
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" u0 c, O% ~% z2 t. B: K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% u5 \, N9 i+ U
((CUser*)this)->CheckHonorStat();7 y; \4 ]9 g, ^1 i! t9 q: d; G; O7 g
((CUser*)this)->AddHonorListAck();1 b! h, |' k% ^
g_UserMng.AddHonorTitleChange( this, m_nHonor);
' }0 c/ U Z, R; s#endif // __HONORABLE_TITLE // ′Tà?
& Z& l: G4 Y' z/ a" Q7 \ }9 i3 w; e" c! b3 A& m5 x
#endif // __WORLDSERVER
; g9 ~, m$ l8 u}
/ D* B8 i, B0 @& \; n, i/ x7 f# h) `# j6 h, C/ h0 y4 Q
然后你进入functextcmd.cpp并添加以下. r" L3 X9 u: U) W
' f3 d, J# r+ E0 G2 E: d代码:; y/ w* b. h( Q$ f ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). y3 `6 Y+ W+ ?' R! u
下面插入1 m% x, S2 i3 v* S) h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + q3 J n. X) u5 E6 E& V" Z
! h% j, @. Y* V( o x然后你去
2 U. ^. j/ r* X% U# G! ]
& T5 ~$ t" @% h( s- x2 q% `代码:
! w8 E- Q, |/ W4 Z5 |% P3 X代码
6 M2 q( a- w( eBOOL TextCmd_ClearPropose( CScanner & s )" ?9 n4 L9 E' n1 ~- r5 a3 n3 F: l
{
- m0 z0 P0 [, D! @#ifdef __WORLDSERVER
- K5 j9 V. m9 `) v( x/ u; P CUser* pUser = (CUser*)s.dwValue;* g* R6 h: I; f; S7 O
g_dpDBClient.SendClearPropose();0 G* I2 G$ c2 q V! p4 [
#endif // __WORLDSERVER1 K& `: D4 o! P4 [' ]0 s3 {6 N0 A: Q3 U
return TRUE;
8 q# Z" b% r4 G$ J7 F- b/ Z}5 W; E5 B9 }+ }7 r$ Q4 C: k
下面插入' A3 P6 j: Y5 `2 j$ M
BOOL TextCmd_rebirth( CScanner& scanner )( n0 `3 j7 U( b; ^9 @9 C0 u/ _2 g
{& f+ H! o0 v: f( q" r
#ifdef __WORLDSERVER4 q/ {9 I. C3 m- N, o/ B
CUser *pUser;
, p9 P( c. Q- P, |pUser = (CUser*)scanner.dwValue;
% B, W. j0 `4 M0 w& k/ Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): a G$ c. Z4 M+ u3 T9 M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 J5 t3 F2 X1 J: p" D+ }- ^) e6 f/ _else
5 r' n3 e5 ]/ dpUser->AddText("你还未达到重生条件!");* B( h, P0 a8 m6 _3 m; w, t( g
#endif" k& t: P4 J: U5 V4 F
return TRUE;7 _& n& F5 u$ Q- v$ a$ g: R
}
$ {+ j. @% R! l. k9 F( | H# c5 L% `
6 u0 L1 U8 s' k, [% l7 {7 R% C+ \ J9 @
3 t4 c5 Y/ |2 b4 h# W/ T; Y1 A
0 ~0 _: x8 V" g6 W; @2 x
|
|