|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( u# t. w. r; e( w1 h
) y/ o$ ~) r+ W' u3 ]/ a* p/ jMover.h* m G k$ ?. V0 I6 i8 H
代码:
5 P, D6 Q3 }) s3 D/ r f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" Q5 U/ X$ P9 l3 `5 C8 ]' a
8 p" x4 ~! C0 ]7 l6 k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
p( |) v' ~, J" t9 f4 U" R; Y6 w7 r3 z+ s! ?
然后你去mover.cpp添加. d. m+ Y4 c0 R# r& v
5 u& j/ H0 x h; g R+ T/ Y9 }代码:
# b, q, a7 i2 o/ H: dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 I+ v: g9 u; p( ~) `" B) c
{
|9 H2 d6 {! Z) U1 E; R#ifdef __WORLDSERVER7 u$ b4 z" h4 h5 S" R! I# N& Z# R6 f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& p# @4 n# e+ m! t8 p, T. E7 k; }( h MoverProp* pProp = GetProp();
, _: M/ [, T9 K if( pProp )
6 ^7 J8 U- r: Z" j) u {# q9 P. X0 i2 U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 v- P/ @$ M% q1 t- j. m$ ~, v
{ E* e8 D6 L$ O2 K( i7 R# {
AddChangeJob( nJob );
6 _- x' v2 u ]/ i+ B }else{
( {) ^" s# ^0 u- u( I return;
5 ] {# T, L- g. W8 l }
- ~4 E& u9 z* V2 F int nPoint = 0;' y/ {* c% k/ `3 ^' r
if( m_nJob == JOB_MERCENARY )" X8 m9 k- t9 S. w4 S# G
nPoint += 40;
# M4 y8 V/ h# x# q else if( m_nJob == JOB_ACROBAT )8 t" f: N$ V# R4 O
nPoint += 50;
. ^5 D6 y% W$ `1 K: e1 i- x; w9 D else if( m_nJob == JOB_ASSIST )
& H: Q5 C3 ^5 i7 U nPoint += 60;
0 L3 S$ S$ B* q2 k& O' f7 o else if( m_nJob == JOB_MAGICIAN )1 c5 D2 D' ?5 p2 Y# {
nPoint += 90;
: V, g" p* @) _) W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. ?" ]4 P P) j) H4 s. a$ K nPoint += 120;
2 f3 t1 r2 [# s4 A3 |3 S/ t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 L1 h( U& M8 s6 W8 Y8 E% g
nPoint += 150;, Z$ C6 [( a* k) n* v0 j5 V- ]3 P& {
else if( m_nJob == JOB_RINGMASTER )2 C% `5 _; J( `% T; D, Z
nPoint += 160;1 \6 U) w/ C8 b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 j4 S' l# _4 p& }0 a6 N1 _! f
nPoint += 180;& N4 v: g1 @8 C+ Z( X( G
else if( m_nJob == JOB_ELEMENTOR ) V! i4 X" b9 Y2 V2 V, w. A
nPoint += 390;
6 a, s' Y' m: o9 d. S6 q% b% t else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): [) o! E! L# W1 E
nPoint += 120;
7 W6 c1 t/ @% T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! S, ]' t) R2 Q! e: g9 R: M
nPoint += 150;' v6 z3 a) P w, X
else if( nJob == JOB_FLORIST_HERO ) N+ A- K) {$ V! ~2 v3 z5 s
nPoint += 160;3 g# p4 W, Z) J& x& H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), @) _5 o5 }% p9 B' H1 X
nPoint += 180;8 ^0 r7 ?: i0 ~" g# x) G
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 k! b4 M0 r+ i5 S' K/ M* W nPoint += 390;
/ ?! J5 u' J+ G, D2 d* A6 O. s" O* D5 m
AddSkillPoint( nPoint );
: ^/ s( p+ H% p3 Z7 R; N. D m_nLevel = nLevel;
' G* _3 q+ v. ?/ }! C! ?+ S$ F" y% `; c; d5 J
SetJobLevel( nLevel, nJob );% x' e6 n0 @- }0 o8 h
m_nDeathLevel = nLevel;
0 x& [( U2 O3 C& \4 `' ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ G# ^0 g ]1 ^9 P7 N9 q
if(IsMaster()); t2 {* `) B0 _6 l6 u7 J0 O
{# W' z" S* u5 g* a ]: V* D3 l7 q/ o: ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. R) D- ~8 t0 E4 U* e+ F6 l
if( nLevel > 59 && nLevel < 72 )
4 ]8 \. @+ p% ~, w. Y% a dwTmpSkLevel = 1;/ T2 ]4 Z7 D" |1 J4 X
else if( nLevel > 71 && nLevel < 84 ). Y8 {) O) n7 O2 D u. S8 B, j
dwTmpSkLevel = 2;" U0 f! O/ O1 Q$ @
else if( nLevel > 83 && nLevel < 96 )
8 R1 R; [: z* n- T dwTmpSkLevel = 3;9 E" ?( F* B) E- D
else if( nLevel > 95 && nLevel < 108 )1 a9 a/ i7 J+ G/ n5 L/ H/ {
dwTmpSkLevel = 4;
h4 G4 }" c* ] else if( nLevel > 107 && nLevel < 120 )
, X F' z E; `. w' V dwTmpSkLevel = 5;: S7 G, l; H. f+ |5 @8 B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 e4 A6 s9 p$ t! ?% r3 e
{ ) E1 p v o3 h) i$ m$ L* u1 S
LPSKILL lpSkill = &(m_aJobSkill);* C% b& }- I2 N" O: y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ n, t6 l+ R8 K {
+ D7 l, B1 w6 b% e0 f6 k) Y* D& c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 l) P+ B2 b/ D. n7 k, J" W$ y if( pSkillProp == NULL )
3 O: B c0 b! A" r: G9 C continue;1 ~4 i3 q. u) H4 e& I& V- M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 O/ u- `6 d. L4 K. ]( L
continue;
" O; y$ k1 i7 ?3 ^4 c: a lpSkill->dwLevel = dwTmpSkLevel;
u$ A9 n$ s& y/ X$ w0 u x6 e }
; F& n* X8 D, K) T" o, E0 T# z1 { }: `. P: K7 R3 w0 T, s
}$ R! m3 h/ Y5 D* ?9 X/ |. X5 L
else if(IsHero())
+ O, u0 p& ~- G {" F% A5 X% V$ p: L; `: m2 q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 \+ Y# }7 ?' ^+ X; i% _1 Y {
& z& ^2 X! @. ` LPSKILL lpSkill = &(m_aJobSkill);" f! S6 g& b6 X# o+ B
if( lpSkill && lpSkill->dwSkill != NULL_ID )! u% l0 x! o6 G$ Z2 G! f( e D, a
{
2 a/ a+ C7 J1 `4 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - s9 R% r: |2 U* Z9 [8 `" Y, L& F7 z
if( pSkillProp == NULL )# A9 m4 p) `% A+ Q& {
continue;
. c2 M7 l+ ]- ^5 h, k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# A; G+ O% P% R9 \ continue;8 C& T0 [, Z7 L* a1 J; v4 M
lpSkill->dwLevel = 5;
1 N0 u2 z! Z8 d. ^: W7 o1 V8 Z }5 [" W8 N, B# k7 G
}
u+ ^* m& ?7 `) B }
h* ^! j1 h: t R/ ~ else if(IsLegendHero())
' e3 C. N y5 c; o; C {% d! H( v/ J$ t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ x2 E3 r* N7 A2 k; U { 2 R7 L' ~; X7 Z6 a5 ~4 @
LPSKILL lpSkill = &(m_aJobSkill);4 [9 e% A. B R3 F5 X
if( lpSkill && lpSkill->dwSkill != NULL_ID ) }. W" j) C! S$ `( i/ }0 ^
{: E& U! o+ D* {6 z5 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# r6 h- A9 ^4 @" f0 k6 T if( pSkillProp == NULL )
( \9 A+ E N0 f continue;
) X0 [* K! f; s4 Z# |5 ?% G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( I* v ?9 m! Z0 E- u
continue;
9 p9 d. }5 U2 j8 i( d, q! W lpSkill->dwLevel = 5;
( V S& Z; S% ^5 b }
3 r5 P/ p6 ?1 e }6 o+ L: {3 j: \ p( `
}9 e& R2 x: }- O. n$ C7 D6 N. p2 r7 Z Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
W( ~6 H2 }6 _- H if( bGamma )
; a/ T. u& r+ p; E {
3 b3 h) t8 B; z# N" M m_nExp1 = 0;
' h u( _! O; f0 Q! ?2 }4 |: S }. j! L; c1 A; C& F" Q6 N* k
4 q' A" ]6 D4 D" U, e( q# v8 J
( (CUser*)this )->AddSetChangeJob( nJob );
X- i) {. h& \ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# G. A) g7 C+ G4 Y' w! x0 p
! C* |6 \3 A+ \1 Z p
7 z4 E8 Z( \* c& P- c; Q" W4 w#if __VER >= 11 // __SYS_PLAYER_DATA
- ?$ Y- e& D% g9 d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ }# e! O, q4 Z( d#else // __SYS_PLAYER_DATA
9 C* X8 `/ ?. H0 p" g8 B( J _ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: P2 s0 i5 Q7 W$ S' b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- n# N6 W2 k1 f) T* H8 P8 R# T4 I: e0 k7 q
if( m_idGuild != 0 )
4 b3 Q" o7 C' q3 U b g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% S+ ^* S+ C2 p! P: b
#endif // __SYS_PLAYER_DATA+ E( e" @" c0 a5 n
SetHitPoint( GetMaxHitPoint() );
/ f2 V; E$ S x9 T' d SetManaPoint( GetMaxManaPoint() );7 ^/ g. n' k0 X5 _
SetFatiguePoint( GetMaxFatiguePoint() );
" O. q) X' j3 w$ V4 k1 ~' ^1 F if( nJob >= 1 && nJob <= 4 )
% E5 v& V0 L$ k {
% ?" d$ O% \/ i4 x) i m_nStr = m_nSta = m_nDex = m_nInt = 15;
( e+ }+ [# ^% `2 P* z+ ] m_nRemainGP = 28;
- n$ f5 s% M ]7 { }
( z; g7 d- Z: J) @& }) M6 h7 H, c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ `; K. P* b2 z @. F {( H/ T- F1 G! G6 c! }6 U
m_nRemainGP = 118;# P+ B( ^2 d5 w x; Q% j! X
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ V9 R3 \ ^/ l# u5 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 v8 n4 W; t- \1 ~: Z. h# v
}0 F/ J+ n( I9 ?+ L$ D; t% d" v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 [8 ?' E' F* S6 h- [8 f3 l. Y
{
, \) ]5 D4 Z; c2 f; O) V5 R CItemElem itemelem;
3 Z1 @* P n0 ]2 V/ ~ itemelem.m_nItemNum = 1;
- }+ |" B n: { itemelem.m_bCharged = TRUE;) h6 R P5 X) _
BYTE nID;
" a) Z; C& C# V% k9 k+ t2 f
$ h. F, w2 N4 {# p; Z& p5 ] if( nJob == JOB_MENTALIST_HERO )
! }6 I' e# |5 p- k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 D) C' {: Y* _7 M
if( nJob == JOB_FORCEMASTER_HERO )/ c) O; @' v8 j$ e; G Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 Y+ u) y) k" H: b
U% @. P0 j& X# \2 [3 @3 n
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& Y p: g; {. c: l$ h }
( b, ^+ J# }. M1 J, m5 U+ Z$ [ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ u, i2 c; l$ e, Z8 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 S7 B v4 H; F* J2 ^, I0 S! w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; m3 y8 K9 z+ ]; m1 a5 d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ u+ C# T! r2 r+ x& s0 R ( (CUser*)this )->AddTaskBar();*/
- D3 t" r- ?- u ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) X3 B# S* W6 q$ r0 K' W- q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 ^$ r' ?$ ^4 K0 Y% V' S; n
((CUser*)this)->CheckHonorStat();
6 i. F3 u4 w9 U$ `. n2 M/ z2 c ((CUser*)this)->AddHonorListAck();
* B- d! ^) O8 S2 f0 |9 R/ | g_UserMng.AddHonorTitleChange( this, m_nHonor);
' @) v' q" w- S P; F#endif // __HONORABLE_TITLE // ′Tà?
' M0 ~" t3 {0 h9 r$ [, a }! `" o9 p8 ^1 s9 V
#endif // __WORLDSERVER+ x0 l8 w0 y3 U* V& ~
} 6 w+ k; I" M) s0 Q5 Q; Q
6 G. w, X) F9 y5 r6 w; R$ c; X' r然后你进入functextcmd.cpp并添加以下& e0 a4 `7 K6 L. L: {# I9 X$ Z
( u l0 v9 {2 d1 u: D6 p# V
代码:7 C4 ^( a z$ z# `) R0 ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! r+ Z% }6 E0 }6 P3 |' k( h下面插入
# e) g% n1 p( X) P% uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! b, O: C/ t3 Z5 b" b
) s2 m l4 n% M" n) I
然后你去- \' R+ ~9 K9 B$ _
" ~" ~8 |( ~, h4 J( D8 v代码:. J; t0 a' T5 ^3 ~: X
代码
+ F- E4 {& H0 G. T+ `9 S5 z- yBOOL TextCmd_ClearPropose( CScanner & s )! j Y4 a, b, e( J2 Z7 ^9 w: c% R
{6 F/ C. @9 p2 N {1 q1 ~6 H
#ifdef __WORLDSERVER. \5 v8 _2 ^6 d2 m2 q
CUser* pUser = (CUser*)s.dwValue;
/ U4 s% ~+ {2 I; q g_dpDBClient.SendClearPropose();( u, _# c' A# |/ C7 [5 J
#endif // __WORLDSERVER
, g F7 p- G1 Z! e9 M return TRUE;
8 C$ B8 a, N1 n9 ?. `% b}
( K* ^0 H6 u8 a; |2 p7 `下面插入' O( x7 i% W- S0 ]
BOOL TextCmd_rebirth( CScanner& scanner )/ F# E" O( ^/ G$ f7 N1 P
{
" N- p2 U, Z' o f6 l- N: I#ifdef __WORLDSERVER
. g/ S o0 o- }6 u. `% c( g2 yCUser *pUser;+ P% M; q% [% \0 l5 V n5 k
pUser = (CUser*)scanner.dwValue;: W/ ?7 M% C6 W1 \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): Q: _8 x5 L% y1 d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ {6 S# s4 \* f) X* s- p2 a
else3 w" Z/ @# _, e* h, d
pUser->AddText("你还未达到重生条件!");
& R- G0 `0 r$ a8 B8 \6 `: c#endif. R) R2 t7 e; M, ], g5 b6 k
return TRUE;
2 g7 k4 W2 Q0 w) R}
, e7 g$ ]1 A: G3 a2 U% ^- A
* _8 X0 E$ |2 k2 f+ ]" F9 J; U; ~
! n8 s! F( u5 v: O4 z
) l0 n. R+ r3 J% V8 X# E1 {5 B# M8 W O
|
|