|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% U# d3 P1 s5 Q7 d' f
; K8 I6 W1 l9 ?5 q" k. c
Mover.h p+ M- A$ r, w3 g9 D9 a! c
代码:
/ |6 o1 E# q- I2 V/ u2 ~找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! Q. _. r8 T: ]5 h1 _$ }4 Q! n2 U! s# K3 W0 V/ k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ r, j; h% {% @7 i8 Y
, Q2 L" _/ k% E) ]然后你去mover.cpp添加2 H9 p) c! T5 r4 a) ?) P6 J( T
+ S) V. V0 M4 `! A' ~: H# w
代码:
# ?! l4 H" k- \3 ^ Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! f/ ?" ?, M6 Q4 P }# z* E; i1 i! g
{9 J6 D, F8 g: c6 ^; Z8 B! \' @8 _5 U' R. v
#ifdef __WORLDSERVER
3 L. ~ r' A T+ W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 V7 d8 B0 j) @! p( H; e7 `0 x, o
MoverProp* pProp = GetProp();
$ c5 R- A- }# e! i if( pProp )
, {' Q# `" v1 f. D- k, M {( A6 ~0 y# ]1 T+ Q9 q# u# V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 B: H. ? ~* G0 S/ m" m! x {* l: N& Z; q% o1 k
AddChangeJob( nJob );
4 \& i" ]$ R/ D0 c8 K& k }else{6 D- s1 V) W" o/ x9 [
return;
2 G. q& J" J) h1 `& U }* a4 {* X( z$ L0 R
int nPoint = 0;' R5 g8 l4 d' r" m
if( m_nJob == JOB_MERCENARY )
0 ?& r' U; D+ U1 N% c/ C# P nPoint += 40;: R" Q" P- ^) V) h |. c
else if( m_nJob == JOB_ACROBAT ) o8 c& b6 b) T) c* q0 [
nPoint += 50;5 i4 Y0 F( s p+ `+ ?
else if( m_nJob == JOB_ASSIST ), D3 C% ?& P& h ?
nPoint += 60;% ^( K( `& |2 q1 |' R
else if( m_nJob == JOB_MAGICIAN )) F4 C6 {4 x+ |7 e$ i3 }
nPoint += 90;, M7 O# D: R8 Q9 T/ `2 b0 \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- l6 x7 d" A2 z1 W: p+ }: _) G4 y
nPoint += 120;) r8 S( v+ |% @) o9 ~6 ^: V$ G) x$ u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 a) c' P8 S% Y6 Z nPoint += 150;, S7 Q& G! }. C! G+ r
else if( m_nJob == JOB_RINGMASTER )
6 l; ` _+ O$ r6 j1 s/ V nPoint += 160;5 M H+ t; {' J% Z/ ]4 h& o! S% W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 l8 @$ e! A; B+ H
nPoint += 180;5 P; y4 p) S& [( \4 @
else if( m_nJob == JOB_ELEMENTOR )
# K3 Y, b: h' _ nPoint += 390;2 n7 {* T( I) Z" u: j) i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 t5 y$ L4 {8 `$ w9 ~" m9 u2 H nPoint += 120;
% C( D5 t! `7 Q9 s) {. T4 w7 p, L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 J3 U) C# T1 k) N# H
nPoint += 150;
" K$ M O7 ]. Z else if( nJob == JOB_FLORIST_HERO )
' o" q6 Z/ v' m$ a nPoint += 160;3 G& k. ~- } h& c7 a8 C2 [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
* x1 R% `; h3 L! ]" {1 K7 y' s nPoint += 180;1 S" z% v4 t" p2 O
else if( nJob == JOB_ELEMENTORLORD_HERO )
; R: a0 _* r5 K* s1 w+ d1 E& S nPoint += 390;
( v$ p5 H. \3 I0 M6 A5 C# I
. m& [, a3 ]) H C f% k: ^ AddSkillPoint( nPoint );
$ U: n8 A4 C, h' q# Q m_nLevel = nLevel;- B% D* m( b) W+ y }1 [& k
& C, @' T7 }% O. ^; F+ f2 n0 }
SetJobLevel( nLevel, nJob );7 G, I1 b+ v- Y6 ]
m_nDeathLevel = nLevel;$ }* d, i h/ S, `, A- p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& V8 e1 a; l! K: \
if(IsMaster())
2 \) _' P, b/ n5 A5 ? {
) r- Z) s) S& r* m# G, c9 t( t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% K" {/ }8 L& ]
if( nLevel > 59 && nLevel < 72 )( U7 Q7 ?5 G" m5 a u {' A. d
dwTmpSkLevel = 1;( N2 k. @2 e8 ]2 t6 D+ e9 \9 C
else if( nLevel > 71 && nLevel < 84 ): {1 ^4 v% Y2 T7 C6 O6 h
dwTmpSkLevel = 2;
2 A5 s; R- Q k4 M2 V) ^" P else if( nLevel > 83 && nLevel < 96 )
1 w \# I9 ]- a( p dwTmpSkLevel = 3;
/ a* O4 y3 i1 f/ d) ?' V% n else if( nLevel > 95 && nLevel < 108 )# }$ }8 @" Y7 E5 z
dwTmpSkLevel = 4; Y. G, q% ~& L N% i
else if( nLevel > 107 && nLevel < 120 )
& g1 p# E' R+ c9 D dwTmpSkLevel = 5;/ B/ n% t6 o4 T7 {/ N8 V- S! e! e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 k" i1 X# a' q6 Z
{
! U. M; C' U. P) y! V x LPSKILL lpSkill = &(m_aJobSkill);
$ b; ?% Z) i" ^; m/ O if( lpSkill && lpSkill->dwSkill != NULL_ID )6 z" `$ p8 `* i; W# @
{
9 E4 y$ J3 r! |5 i7 ~5 r/ c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: {* [: T+ S. c6 Y+ x) _) u if( pSkillProp == NULL )
$ f# h! g5 a$ ?) ~ continue;
( H2 x$ t; f0 i' v2 W4 |2 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 }) J7 x; T4 i. }7 } continue;
2 g7 ^8 o8 \! L6 C lpSkill->dwLevel = dwTmpSkLevel;; M5 t$ @6 O7 \. L' f
}( w% W: [7 n/ o. C7 k, x
}
- q; k6 n: X1 H1 _/ S* C' [ }
, G7 T) E' @( U. e" y else if(IsHero())" c/ i% P6 a' q: u' H# H2 B7 l8 d b/ G
{! `* l; n2 L4 X& `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 a& ]* L: h% }; w* ~ { - I+ }; _( h2 g1 o( |
LPSKILL lpSkill = &(m_aJobSkill);* W7 x4 {4 f( ]4 S% d, w
if( lpSkill && lpSkill->dwSkill != NULL_ID )& K1 }7 y) I. ?8 X% L
{
/ n$ z5 Z- v3 c3 |/ n, Z0 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' h3 ?) ^- ?; W% s* @1 f
if( pSkillProp == NULL )0 l( Q, i' v& d) m: n" }
continue;
, i, U6 H1 u; Z, n7 G: k8 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# v. d; u) G9 \ continue;
2 H0 G' ^: l( F7 m1 L* C$ ^ lpSkill->dwLevel = 5;% s$ t) Z% E; d, s& I2 w" o3 d
}, r& p0 Y9 z0 P V
}- Q/ ^2 h5 a5 {5 J
}: Z8 t( R" j y
else if(IsLegendHero())
/ N7 L* w( ~8 r3 ^ {4 @+ O: |, d, z" d; ^8 t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 h% P! `& D& ]1 {
{
5 W% X' q' w. E LPSKILL lpSkill = &(m_aJobSkill);7 R2 e2 r4 \8 |+ z( d! j( W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 [4 l7 t- x# y/ i/ G {4 R' |: v' R0 W6 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' b, d# c. V0 Z4 A5 g8 n( N2 l0 ? if( pSkillProp == NULL ). X ]4 d3 H1 C+ s
continue;
v# e k$ D. F/ m- X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ W3 s! O: j! J: r# Q( O
continue;
% r o/ r* n6 Z" Y lpSkill->dwLevel = 5;
% _( i1 }8 V! {# v2 _3 e }7 B: F+ P9 q+ m: i4 `6 _
}. Z6 F0 w( a' b9 X' l, n5 v
}
* M0 W* `. n/ O% u7 {* l#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; P' x/ B" V6 [% [1 b
if( bGamma )) S+ t ]( z0 v7 B7 K
{) }3 O8 X" }1 G* G; M
m_nExp1 = 0;3 s& @7 F+ D( g& | w8 B+ ^
}
1 ^) b( W$ c8 Z. `# @
' _! p+ E I, i! O) [ ( (CUser*)this )->AddSetChangeJob( nJob );
: P8 q( W6 H" s0 O2 D* z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 B. T8 e# n2 K
6 ?& M, U6 X, ]; g) k
, F2 Q0 I1 u, w' h* F2 e3 n#if __VER >= 11 // __SYS_PLAYER_DATA! s- @: B& ~& H( \- _3 A, P) E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); i- f' W. Z0 I
#else // __SYS_PLAYER_DATA# S8 h- O P/ c- F) _3 Y E+ J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ P9 n8 h. }% M/ r) j$ j3 h9 u' t g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' R: z/ j, S+ m2 t* m. O9 b3 A if( m_idGuild != 0 )
- L$ r& o* X) S+ S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 S: u1 n) K9 [, v% [: i P#endif // __SYS_PLAYER_DATA$ U+ h+ n' \' s8 w3 Z
SetHitPoint( GetMaxHitPoint() );5 w- J- T' n) W" x/ E% O
SetManaPoint( GetMaxManaPoint() );
) c: y! i& l4 Y+ ^- r SetFatiguePoint( GetMaxFatiguePoint() );
5 P( p4 D# Y' k if( nJob >= 1 && nJob <= 4 )
" \ x; v1 B) w# S. ^- ~" Z {
+ q- f' E, P' L8 u7 \! i, t m_nStr = m_nSta = m_nDex = m_nInt = 15;
* h K/ ^, F. C, v m_nRemainGP = 28;4 Q- L6 n" O( H3 _# C+ }: z& W# r
}
. N! w9 c! v! @, z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( ~! J1 z' C3 M& I {
( {) Q6 h% E- E: D3 F/ {: @ m_nRemainGP = 118;
- ^( m, R1 a7 T9 X% b2 W. X //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 r( r! N+ \+ r; l0 F* c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 S. b) u/ F6 {: Q/ q) N }
2 o( V$ F' K! H# Y/ V, Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). X* f. v& g+ Q5 C& g' g( F4 v
{1 i+ t. \* P, c6 k' Z! p7 M
CItemElem itemelem;
2 V# z; d7 _1 t4 { itemelem.m_nItemNum = 1;
2 G, S* B! c0 e2 C& m itemelem.m_bCharged = TRUE;
9 n! p7 {; w [$ I$ Q; q BYTE nID;
% ^) C4 V; o. f! }8 g+ A) E1 G0 V" b3 w/ x! E( C) ~: S$ ?
if( nJob == JOB_MENTALIST_HERO )
# R; s& Y, x1 I& X( N0 \# } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' C- m$ _ s# a% P# D" M7 O
if( nJob == JOB_FORCEMASTER_HERO )
+ L" O9 Q+ J: q1 V9 k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. e1 k5 N1 {3 ~, u5 O2 n* f; s/ ^
7 T, a- T7 B9 r
( ( CUser*)this)->CreateItem( &itemelem, &nID );. l9 M; ^, u2 X0 t
}
# b1 \6 F: F, J' {, x. E$ a' h: s g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: O- ~' `4 j' \, F4 T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 Y) i l" q' E1 h0 L& A8 S! D" }7 ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 n7 f$ d% |7 R$ [9 d/ X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 R. G1 \5 {/ ]. K; I2 i2 T ( (CUser*)this )->AddTaskBar();*/
& y+ E( X. ~5 F( P ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# y# b' F8 X8 r/ L. @% n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' Q; x2 t( ?+ M
((CUser*)this)->CheckHonorStat();7 M O% ?+ J; ]4 |
((CUser*)this)->AddHonorListAck(); N6 J2 n7 [- ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);' q. k. a8 @* J' j; o
#endif // __HONORABLE_TITLE // ′Tà?
2 J6 w, s2 W1 c9 y7 L }
4 U' H3 P" O7 k; H8 ]0 N#endif // __WORLDSERVER5 F a/ K6 E. z3 T
} ) J: l' ^5 \8 |# ?) V
. \" G; Z: {% P' }+ z然后你进入functextcmd.cpp并添加以下
4 N a. c1 V# B/ V* L9 o$ E9 M: H. j1 D+ V: _
代码:* R0 S$ K5 ^. G$ _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 O# @$ N9 B) h7 Q9 J: X下面插入3 {% n, {3 v% l6 H2 T* e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 \9 V9 E& r# I8 @1 r& n
: l& J" T0 ^3 F, z然后你去' r V$ O8 x4 R! S [& e
" J/ c2 ?, Y; w4 D6 I* S! z" w' P代码:
( }, b0 p3 X5 v, @6 I代码
8 z2 Q& M( \4 X' l" }. xBOOL TextCmd_ClearPropose( CScanner & s )
, o5 ?( i5 l3 A5 Z1 }; o{9 I" l2 B2 j$ p* c! v
#ifdef __WORLDSERVER' I; H& ? l; }* ~9 z$ N
CUser* pUser = (CUser*)s.dwValue;# J5 [5 }7 Y- G: Q, b8 S x& A
g_dpDBClient.SendClearPropose();
7 W8 C! K9 W- i' h, P#endif // __WORLDSERVER
: h; j/ L! O5 t# Y return TRUE;& q) S4 t Z) z. p- a0 t! N" ^& j/ k
}0 E! E8 K9 n/ h& \
下面插入
7 ]( X0 c6 h6 KBOOL TextCmd_rebirth( CScanner& scanner ), k4 \( r; s6 [$ X( d3 z
{
3 {' k1 f3 m& H/ e2 B2 ?9 u" P#ifdef __WORLDSERVER" _8 K5 S+ p% q4 ?, b
CUser *pUser;
: g$ }7 W0 B) D4 M2 }/ g) |0 X. mpUser = (CUser*)scanner.dwValue;8 ]- q# J: Q; s% s8 p& @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( }3 E; \8 p. }* z$ MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 \- a. E, S* N
else
6 i( L( e; N `) vpUser->AddText("你还未达到重生条件!");' d2 A0 Y5 ?4 L# h( `( p# o
#endif4 h) Y# u' ?- `1 [- E
return TRUE;
8 O* s4 O* P* ]- I0 \8 U}
` b7 D4 q. ?5 l9 r3 j& z8 A! k) G' ?+ E$ }
3 K# k8 V+ |! x* b) X& w2 j
& E3 Z1 P5 M( f8 e: D
' Q# i; \$ z4 x; a* u5 i |
|