|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" z3 l) W! j+ i
" z9 v' V! }' s; [1 E3 I" e# e% FMover.h
$ I: q4 F' `" k& ?/ H, M! Z% A代码:1 Q6 W8 [7 v" P% P
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! S+ i4 C/ L5 }# {3 `* ~3 p* W' c/ n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * x" j _' U% y8 ~& ]5 @& N( ]' G) W+ d
8 w1 R! i- m& V
然后你去mover.cpp添加- S; B/ d* E3 ?( V0 w: c4 X
& f: X% n% _7 r1 f+ A: {( T
代码:
( M& U0 d: z0 [* p) H, @" ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) h0 N3 n' O% W u) ~{
3 i! l4 i. @* t$ a#ifdef __WORLDSERVER
q5 f2 Z; y( |4 E6 T$ w% N/ c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 c7 w+ T: ?! G' z
MoverProp* pProp = GetProp();
6 V2 q0 T& I5 S& i; ] if( pProp ), j7 i& j& u) J2 G# t) Y9 R6 n
{$ Y1 b j5 M/ x8 _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ }; N5 c% b; f# |! u8 P2 D9 O# d) ?3 W {
1 ~2 M, L1 v! {1 { AddChangeJob( nJob );
3 `# D- `" w9 E- v7 v# {3 B }else{8 U m1 @/ L1 U" e d
return;
% S8 M+ V7 @7 p# F3 J, y }2 r7 z) b9 `$ k, y9 a- K
int nPoint = 0;3 l. p1 `/ z! {! {
if( m_nJob == JOB_MERCENARY )
6 U( H: V1 l( e8 I" v nPoint += 40;+ G$ A a. J6 P! S# a' r9 u" G
else if( m_nJob == JOB_ACROBAT )
/ D4 N* _# w0 \$ Z' @ nPoint += 50;
?3 L2 l: k2 r7 Z) s' { else if( m_nJob == JOB_ASSIST )
0 p. @* B- ^- W8 H nPoint += 60;
1 _5 R4 I0 c& ], u- {0 L else if( m_nJob == JOB_MAGICIAN )3 C" _. E4 N/ S6 z
nPoint += 90;
: F) s* k1 i0 R# Y/ z4 _' ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 j% G) ]) S: X# ]( b nPoint += 120;
* E9 M6 a2 I2 W, O: z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) p; c9 w$ E5 j! O1 W
nPoint += 150;
@8 \- h. z+ \1 H6 j else if( m_nJob == JOB_RINGMASTER )
/ A" T6 C( X; @6 X7 G nPoint += 160;
2 _( J- i, h! z) o0 f! m8 e, T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 K; H3 ]* {: s6 Q
nPoint += 180;+ `" y& k- L: X) m3 ^' s
else if( m_nJob == JOB_ELEMENTOR )4 j9 T2 K" S& K3 H. w* \0 L( {
nPoint += 390;
+ O8 O- N, a5 y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )0 b* f" H* w. r2 N4 ]" T: A
nPoint += 120;; X/ \; E. l3 a. w, a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 M3 ]& g) A e! H2 k) l nPoint += 150;( e' s5 \7 v: i- b
else if( nJob == JOB_FLORIST_HERO )
4 q# p" ?' z! c+ f+ s0 _ nPoint += 160;
& s. _- k4 x: C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); @% u8 I3 Y$ c8 H
nPoint += 180;
1 }" S( z" |6 L& V* e" _" {- Q else if( nJob == JOB_ELEMENTORLORD_HERO )
2 ?% D. [$ h5 l/ K nPoint += 390;
! _, d) X* \5 m9 Z
, ` I' B9 d' @3 ?! o AddSkillPoint( nPoint );
. w& I% Q. y0 C K9 K m_nLevel = nLevel;
5 z e7 h2 h; e( _: g
`) B+ M" P( X" P) m SetJobLevel( nLevel, nJob );! J4 l: _9 i9 E. W+ O+ w6 @2 w
m_nDeathLevel = nLevel;
; r ~4 |! |% G: t, z( S4 E" l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) @) v3 B8 E$ ]0 e/ C9 @6 t" r; U
if(IsMaster())' Q1 g$ f+ ?9 V5 y) K& o' {; H8 J
{
: N' k6 t5 x: d! D5 W; _ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 k; u% `3 x" Q. G/ E6 ?. Q& T5 N
if( nLevel > 59 && nLevel < 72 ); E+ f$ L. o4 | m3 y* k
dwTmpSkLevel = 1;
: n' ~. ^; ~" w: f5 A0 I' A else if( nLevel > 71 && nLevel < 84 )
2 r9 p2 e4 U; k, H2 U dwTmpSkLevel = 2;' G& x! L7 k7 m! A5 v4 \0 `
else if( nLevel > 83 && nLevel < 96 )
' Q& d2 m5 i) a! l9 D# H( k dwTmpSkLevel = 3;
; I4 D3 N7 `7 S3 |3 R" Q! q else if( nLevel > 95 && nLevel < 108 )# k& c! P5 j! r) d
dwTmpSkLevel = 4;
9 c2 h) n5 Q; e% k2 L Q }( t else if( nLevel > 107 && nLevel < 120 )2 e, l; y9 y2 |! ]0 u K% Q
dwTmpSkLevel = 5; d, L3 A/ Q* i/ {7 b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 y1 B4 r* h8 x
{
: p+ @# i; S0 T+ } LPSKILL lpSkill = &(m_aJobSkill);
; |3 F$ l8 R8 e' K! B# l if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 u a* B; x( L1 _* M$ J {8 q G0 r3 h& t! p+ G* |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 b- J" A6 u, j- U if( pSkillProp == NULL )* b/ l) V5 v0 m, Q# _3 E
continue;
+ V7 I% E( U( w3 N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& R4 r( \+ v. X) S continue;/ R3 ~% f! v; a
lpSkill->dwLevel = dwTmpSkLevel;
5 [0 S! b. V" S: b$ n }. f& W1 V) N& k; [2 d. j
}
3 u6 J/ d0 [ W/ F8 w, B: m }
B* W+ y; y- R& ^, J else if(IsHero())
G' G, m7 V& t {
1 I4 K& p/ h9 n7 H; [+ `% }% I: _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) f5 M* j+ ?' ^) w) ]3 U' \9 Q, W5 U
{
& n7 V- p8 [" M2 J' G/ H1 o# @ LPSKILL lpSkill = &(m_aJobSkill);
! |2 A: `3 M% K7 e) z* B if( lpSkill && lpSkill->dwSkill != NULL_ID )* G# c1 l0 e- n8 [8 [
{! t# B; ^6 k6 s8 h; K+ F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + g) S" J2 \. s# T( O1 o4 p! E0 W( V
if( pSkillProp == NULL )
9 c8 O2 M! g5 l* _( p1 [+ @% V continue; f& r) t& M' A: `5 U
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& l, o: p; c+ m, e: }3 h8 x" Q+ u continue; }. p! n7 L0 [1 D( E7 W
lpSkill->dwLevel = 5;. I4 ?& p1 ], V# s5 j* ?
}
2 i4 Y v/ P% q! r }
/ D& b \$ S) S2 z s2 m# r# d+ n }
# I& y, o% G, y/ }. C) t else if(IsLegendHero())
0 s" m& }; i, t$ P. w {
# d4 o8 e+ G& K2 z/ M3 n# I( I for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 i! g1 \4 j1 r8 N2 y3 u1 a! m { . Q J) B* k) b2 A P; q2 D
LPSKILL lpSkill = &(m_aJobSkill);6 i6 G% U# o, }6 I, ]8 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 l1 l% u; ~. P# c; j {; W( T3 F6 ~6 g/ j# L& K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# [4 }# P# E( o if( pSkillProp == NULL )
$ P% N) d" r. l# n continue;* b. U- m6 Z' g( l, w+ X' l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# ^$ ?* C3 E6 k5 P
continue;
; }7 A9 C) U: t8 Q6 } lpSkill->dwLevel = 5;
) x4 u# N( X6 m( {! D6 F& c! C }
; j) h0 r! E4 e% P }8 v6 ?# l* a6 \7 l0 r/ y
}( I4 M, V, e2 v) K* s- O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 N @" d, d4 F0 [' b9 E if( bGamma ), Y+ S! E, l( @5 ^* P9 l p1 w
{
, P5 w' d8 X$ {$ d m_nExp1 = 0;
! I/ D( G( Q( N }
" A" }/ r8 T/ a3 S
& m* K9 Q5 ]3 L& o0 p ( (CUser*)this )->AddSetChangeJob( nJob );
4 F3 c+ q8 r2 v7 D7 } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' L: I! } E. P# }
9 D0 H1 K/ o5 K0 W! Q! r A. d3 S2 B# K: J7 a5 u
#if __VER >= 11 // __SYS_PLAYER_DATA7 l- K( A6 y. ^8 _: u) x: N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ |1 P% z! s' ~0 m0 a6 N& A
#else // __SYS_PLAYER_DATA
' w# q% U, J9 V. X$ c: A# O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 Y8 Q/ ?( P% i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 x" {9 ]) q! V3 Z if( m_idGuild != 0 ): n2 n: Q) X8 x1 ?1 F! x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ K5 Q- K: H( j2 v t; X# D
#endif // __SYS_PLAYER_DATA0 T2 v: i7 k R
SetHitPoint( GetMaxHitPoint() );- k! b' }/ g# S! a5 \3 q
SetManaPoint( GetMaxManaPoint() );" F8 b* q. Z) M B
SetFatiguePoint( GetMaxFatiguePoint() );! N$ R8 z: n2 a- z7 q; b+ p9 B
if( nJob >= 1 && nJob <= 4 )9 Z& q' F" R' T$ {
{. j& K( E1 q; P9 f, b) z
m_nStr = m_nSta = m_nDex = m_nInt = 15;% @( t# X- @) @5 `
m_nRemainGP = 28;+ y6 a6 O/ s5 N
}, M* H* [6 C5 J1 S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 d+ Q/ Z3 p( n' A/ h: N {' K5 [! \3 P# u0 ?& t% u
m_nRemainGP = 118;
* |0 A. k8 [6 h& J! x7 k% _ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ a& c8 |* F7 n: A' C7 w m_nStr = m_nSta = m_nDex = m_nInt = 15;9 v! \0 C- k7 \/ B( J
}( u2 a! B: `$ t8 @* Z9 G" e
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( @- e0 }# q( Y2 B {
0 W& d& B) O3 I: V! i- Y CItemElem itemelem;% [0 V- p% D- P2 \% |3 T: w0 t8 o
itemelem.m_nItemNum = 1; N( q& `( H/ r
itemelem.m_bCharged = TRUE;
6 n* w0 _" @9 l: h0 h BYTE nID;
& x% }* Z6 a' c8 ~8 I! ?1 A
' I. A& O0 R- Q' X if( nJob == JOB_MENTALIST_HERO )
; U; F3 J' P2 c* k" I) u0 C8 I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) _3 Y" G5 n; z" W
if( nJob == JOB_FORCEMASTER_HERO )* U- K) e8 T+ T; T4 {% T) L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
7 W" D* ~. S0 b3 }) u# h# c
3 f6 r9 E: A3 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
; X2 Z0 E0 a9 r! e" ] }
5 z8 x1 ^+ L0 P1 P; n7 P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" o# F# P) A5 x: S7 G; `( Y# f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) h; K/ n$ l R4 B$ P& w0 |2 } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* B6 ~& Y; p# v% Z, ^# m: M /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ G% y: R c& w. a, r; Z ( (CUser*)this )->AddTaskBar();*/
! B, r# K7 @0 w, }0 O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 o6 g' F2 u( _7 U6 Z" H4 Q: M
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& l/ Y: W4 f( F- w; p X6 f
((CUser*)this)->CheckHonorStat();0 a2 [* F1 @8 `9 L4 h
((CUser*)this)->AddHonorListAck();
5 {1 \ j/ q: X; S9 g7 X2 ^- U g_UserMng.AddHonorTitleChange( this, m_nHonor);3 u# o& f+ B- h- P% @
#endif // __HONORABLE_TITLE // ′Tà?( D/ r2 [' b( {6 W5 [
}
d$ I% Q4 y' J! }, F- `4 L#endif // __WORLDSERVER7 g, ^: h9 }5 S7 N: S d! t
} - z: D: |4 z9 x5 y7 Q6 l- o* E
/ f( T; B7 _* G) p$ H
然后你进入functextcmd.cpp并添加以下6 i R; P2 H2 e6 E& r: t- P
0 f& I/ g2 q2 Q' p1 J- ?2 {! t3 Z% k
代码:
7 w" x$ _" Z) a5 GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 \5 Y; p5 k6 N, L: \下面插入' o# s+ S" P h6 x5 w: n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ k( x4 F! n$ ~& x# t; t9 f0 |( k
# x1 [; V) S$ p
然后你去
, q, k% K4 ]. O
. r. V* z+ V5 G- W: X8 ?代码:
! W5 ]4 {8 x) z% Z代码/ y) w- q, J: v8 e: k
BOOL TextCmd_ClearPropose( CScanner & s )
# {; K5 n) Q) \2 n" R) k{: B" G0 c- l& @! c+ @. _
#ifdef __WORLDSERVER
! a7 }* Z0 q1 {" C CUser* pUser = (CUser*)s.dwValue;
+ F) a1 \$ J1 }/ [0 S' N' O g_dpDBClient.SendClearPropose();
* j" u% i4 T/ c3 @#endif // __WORLDSERVER t3 C" a+ P9 o; N; G$ l# y' c6 k
return TRUE;
: q# F) r6 e9 c- |' y}; g% |7 {5 W' ^8 ]
下面插入
1 r( a$ u2 }- {$ {9 ^7 ]1 H0 n. BBOOL TextCmd_rebirth( CScanner& scanner )/ f$ j# s R, \5 W
{
! f2 D2 k- r, f6 Z#ifdef __WORLDSERVER) k r. Y0 h; X; A8 U0 _1 Z x
CUser *pUser;. Q- M1 N# u% [: g, ^5 ^
pUser = (CUser*)scanner.dwValue;( F9 p9 f- @. B) d+ l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% g5 x, R' ]( g, ]& NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ t2 y) r& h; d3 A
else: S- o0 t7 v# p+ x5 F
pUser->AddText("你还未达到重生条件!");
3 K- {, U3 @* b' n) |#endif6 I1 x) Q: }! n' x+ J5 S
return TRUE;( T3 _/ `( V7 W9 k8 G/ V
}
; k/ w0 g6 B. Z5 |
/ _$ K3 O4 Z6 _7 N0 \' J( w
% G+ g& J9 ~* G+ \9 l# q) C& c* ]* n5 L# G
& N+ o1 q" |5 P. C |
|