|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, D6 a% k9 G$ E& k% @( f4 g
4 h6 ]9 q3 d! P0 A( u3 b9 R8 }Mover.h$ |1 U3 {/ w6 w9 o8 M7 @$ |) i
代码:; a* e, S8 K' `* W
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 J2 |, A1 h- t! G. j9 B" A' e4 c
& R4 p; U4 L# u8 V0 m+ v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; M- V( ~, k4 J: p
2 e0 [! W& b ~+ Z2 p" l
然后你去mover.cpp添加$ i% i6 Y% |* b4 t
1 D) A, c6 d: p9 o4 `1 y7 S代码:
' a( A1 j4 L0 y: F V) Z3 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- o* c0 H2 O6 Z. a{
' {( ` o! r3 V/ V#ifdef __WORLDSERVER
+ |2 a$ ], e7 e0 U1 H, i: D1 T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, w! w* N, u* M" l- t/ l MoverProp* pProp = GetProp();" |0 Q* h+ h1 r) P, q
if( pProp )) h( Z, z8 N( k0 v' K& x/ ]
{
5 X/ q- j$ B. @( g% }; Q$ S/ r) E; F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ h' {" @ q) [( U {
: W( Q4 D. V/ D* N, ~; |/ F' K" c9 U AddChangeJob( nJob );$ T' d& @4 V" ~1 j& e0 X, a2 R
}else{% d, F, E" ~6 j, F2 ~4 T
return;! q1 H* `- Q0 e4 L
}8 K& i# r7 c3 o R2 n
int nPoint = 0;
; h# Y9 i2 B" c if( m_nJob == JOB_MERCENARY )
) f: t4 t1 Y/ X. ^- @ nPoint += 40;
z' F T5 \4 j1 h) _+ G& {2 N else if( m_nJob == JOB_ACROBAT )- C5 g* f& Y3 W& n7 J Z
nPoint += 50;1 Q+ F, h% ~2 U, R5 O
else if( m_nJob == JOB_ASSIST )( l* N M7 h/ _! [4 ?, k
nPoint += 60;
v4 ]! L" y/ |- t7 _ else if( m_nJob == JOB_MAGICIAN )# G' Q5 K% T6 b) P
nPoint += 90;! ^0 X( P( G+ [& m B; D( M' g+ Z% r
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 {# W! A C* [/ H. K5 L$ A9 c nPoint += 120;/ g: ] |1 \. M3 \( y% ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 ~; M: D5 }5 ?, c nPoint += 150;
2 i2 e7 ]* Z+ E7 U5 q6 p else if( m_nJob == JOB_RINGMASTER )4 C5 C8 l6 i+ M R1 W, M6 U
nPoint += 160;, n) M, X$ f7 a* I9 |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 T& N, A2 X+ K( u8 Y' y; W Y nPoint += 180;
; A. X4 p1 i) r z) @9 }0 Z else if( m_nJob == JOB_ELEMENTOR )7 T) a6 t) _" U( q+ i( M: D8 u
nPoint += 390;# J9 ^* d- t; _9 O3 Z0 N0 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 K- B/ _$ l7 X3 N( S nPoint += 120;
0 v% P+ T9 T* x% k! T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ L- e) B- F, |7 Q$ `" _+ E# @4 C nPoint += 150;
7 Y! ^+ I! a) o6 G9 G$ ^1 X else if( nJob == JOB_FLORIST_HERO )
- K: G6 U$ R- [" o3 W. Q nPoint += 160;
" q4 X$ a5 E% f9 r5 Q( ^/ B( k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' J* G3 d5 Y# _" ]7 h nPoint += 180;
! q# f& l, G" v, L8 T# t" r else if( nJob == JOB_ELEMENTORLORD_HERO )
+ d) T! [7 M5 c' @6 O! }. d- t nPoint += 390;' u0 n) p- w' u' D& D, Q
9 O/ _ K3 J9 A& }3 q AddSkillPoint( nPoint );$ a% l# Z9 D# W, r# Z' Q
m_nLevel = nLevel;. F# G7 m0 K/ _3 }
; n7 ^! b3 s9 H) T2 r0 J
SetJobLevel( nLevel, nJob );5 E6 [* P" g' J" P/ ^
m_nDeathLevel = nLevel;! b: g/ k7 F9 O; r# U9 a
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 L6 k+ s2 K7 D* u
if(IsMaster())8 k, l! P: G# y3 t$ H% v- w
{
6 V4 G0 |# ]' Q. P4 j6 A2 q+ e int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- K+ D8 l6 p7 B( g. n1 N3 h6 [
if( nLevel > 59 && nLevel < 72 )2 P" n+ x$ U# v0 T Y
dwTmpSkLevel = 1;
2 f. ?" I2 a7 |! y* k7 h0 m else if( nLevel > 71 && nLevel < 84 ). T8 J) ~; U" {9 R: U, k
dwTmpSkLevel = 2;3 g; j" u7 W, }7 F, Z/ R5 U
else if( nLevel > 83 && nLevel < 96 )% o+ S) @' {/ q/ H y
dwTmpSkLevel = 3;
" j3 m* Z+ m; e) k' C, _1 S else if( nLevel > 95 && nLevel < 108 )9 D& n9 X9 m4 n5 F5 e
dwTmpSkLevel = 4;7 o6 _% P6 r! B0 K9 M- Q" p' h
else if( nLevel > 107 && nLevel < 120 )
9 w5 T L' T" ?; O& y( n4 k dwTmpSkLevel = 5;
( h& n& w( _% L8 `+ v for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 v( _' G G( I
{ % B- Q* x) v/ D d
LPSKILL lpSkill = &(m_aJobSkill);
9 F4 M- f2 \0 O! F% ^; _$ [9 ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
- w: m* X( g+ Q5 P* n2 {# y {
- x Q* ]. |2 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . S' J( x3 r Z! b: U2 H
if( pSkillProp == NULL )1 c0 i1 ^8 n7 E, j/ d7 a8 C8 W( _1 f4 i" M
continue;% v: e% `5 ~- k7 G; e( f$ c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 }: f# y6 o, c* j
continue;6 m$ |( k& p1 L+ F p! E6 R' S
lpSkill->dwLevel = dwTmpSkLevel;
0 n; b$ Y- ]1 \" u# E4 e }
( Z: @2 r! a: g! I6 m }% {' x: C' E0 w" v
}
0 d4 s9 a( u8 m% D' y else if(IsHero())
- [) [! w) z9 b: k: ? {
2 h/ a: w# @6 _. L1 U for( int i = 0; i < MAX_SKILL_JOB; i++ ) - H# L, [" M, M6 l' H
{ / _! W" J! e7 e/ C
LPSKILL lpSkill = &(m_aJobSkill);
. j8 P, Y5 Q' c if( lpSkill && lpSkill->dwSkill != NULL_ID )
" v4 t! B/ x4 N2 t {
4 L+ T. O( }4 t, q+ f; q) w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 T8 Y; `' W1 K1 n/ ?/ J if( pSkillProp == NULL )% e6 ]* J9 l, e
continue;
& D* g$ f/ C( V8 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' A: {$ p" F% r2 g6 o8 ~7 b
continue;0 Q+ F, {+ u* h, \, u$ h8 n' C
lpSkill->dwLevel = 5;. W; A4 O9 S4 E3 V, f
}( |( ~7 z$ K$ n' F$ G
}; Y1 y- c' q( _; y# y9 K& a( x9 N
} S: k# U+ I( }! N: A" l8 L
else if(IsLegendHero())
( k6 I# c3 R" s8 b {
4 m! j9 L# |0 x0 D for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 Y- w* h+ u4 n. ]) l
{ + t' E. J e8 M, L& }( g) n# g Q1 k
LPSKILL lpSkill = &(m_aJobSkill);0 ]7 l- I# \+ T* H5 i9 `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 g5 \. E; V! C) V {
9 S q$ I1 @+ \+ s$ t! @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 V0 ?7 h8 o/ ~2 M/ v3 v if( pSkillProp == NULL )
# W+ I7 v8 T. M, N+ @ continue;
) y X2 v, m B# {4 M/ W+ L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 y8 I$ D5 A6 j$ U! ~ continue;; e% s. I5 ^2 H5 r! F" Y7 r: G5 ^$ l
lpSkill->dwLevel = 5;$ ?- Y7 V' K/ m7 I: v; n
}
4 K, M+ |, t! N" H/ \ }8 {$ x) ?$ r* s5 M& i! j
}! C: m5 a6 N4 B1 i
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* J$ N. ], y' E, M6 a, g if( bGamma )
3 ?& z! m% }* x9 ~; g {7 k/ X* D6 O$ l/ M! m1 F
m_nExp1 = 0;
; _7 c, K5 Z) U# p H$ Y* `* U }( n# I/ h' W+ q' p
8 M) T- ~ T2 v( Z9 ^! Q ( (CUser*)this )->AddSetChangeJob( nJob );
1 j9 r/ e6 A" X a g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# R: |) Y: D( g5 r# Y
; i: i6 Y2 s* c" A" W. [# r5 i z: ~: j* j
#if __VER >= 11 // __SYS_PLAYER_DATA6 G- ~" v- ~ Z/ I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- j9 H# U0 I0 q/ a& g c
#else // __SYS_PLAYER_DATA+ m; b+ ~ Y9 D
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, F9 ]' v) u1 _" _% {) \5 t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 ?, O6 V5 {9 v( B if( m_idGuild != 0 )5 E5 F3 u* I( B7 Y$ N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 t0 R; V9 y/ ^+ L( a% [#endif // __SYS_PLAYER_DATA( |! R; }: W' X3 l- R) ~
SetHitPoint( GetMaxHitPoint() );
& E7 u# P' _$ l6 ` ]& p: A# i SetManaPoint( GetMaxManaPoint() );
7 x& h; h f9 c' h SetFatiguePoint( GetMaxFatiguePoint() );
5 H" x) G" w6 s4 m1 A; _' S( ` if( nJob >= 1 && nJob <= 4 )9 f8 V E8 K; k' f, M, C
{' h" T% n9 b$ c: Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! q1 g& R _% ~7 [3 I+ w; [: U m_nRemainGP = 28;
U: M" y% U+ _) P. | s }
' C! a$ }+ E: e/ U; |5 d4 ?7 O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 r% Z3 ]" u" k8 `9 u _ {
; S4 V, C- l* q/ T( D+ q4 G s' m1 m m_nRemainGP = 118;$ f6 _; r0 ^ a! C7 L
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( c; x5 e% b: V0 V* B) z m_nStr = m_nSta = m_nDex = m_nInt = 15;; r+ |' S2 \. `5 a1 B
}( Z; @, s8 j3 j' N) k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 R* ~# _4 M/ E( f
{8 C( f; b6 N9 q* O; @: [
CItemElem itemelem;! X2 V3 y, i9 o- n
itemelem.m_nItemNum = 1;
. ?; i' w0 ~5 Q) F" l0 y itemelem.m_bCharged = TRUE;, W+ T. s# X7 E4 @% T+ p$ V
BYTE nID;$ |- P2 u- b6 z
: h$ Y. @, F3 g if( nJob == JOB_MENTALIST_HERO )
/ Y' H3 W3 j; z5 C% U) X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 i% `& ]8 k+ n
if( nJob == JOB_FORCEMASTER_HERO )6 ~2 p5 i+ m% H0 {, \6 p& }$ l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 K) J, z9 h) {' A4 P* K
( I+ f0 u" O; M% I$ t$ F2 Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ ]# Z$ a# w, p; v- l: m }
6 A l+ `) N- j2 N: l% W& j g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- O. W5 f# I3 _* K8 T, a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& C: g/ q7 O3 c3 ]$ l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 ?$ |+ `0 X. ]2 C5 S9 h/ I6 V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); @5 U3 h" l, X& a
( (CUser*)this )->AddTaskBar();*/5 L' d% b) Y7 I5 m p. o2 e1 N% ?
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 r5 R- ~7 F# w7 a' n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' o4 S) M, g. x1 c2 {3 ^/ x% `
((CUser*)this)->CheckHonorStat();
/ D& \" p, ~( D' ? ((CUser*)this)->AddHonorListAck();7 p9 u+ U4 ^# S) j% k5 Z2 F
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 r. Q( |( D, R: u1 [#endif // __HONORABLE_TITLE // ′Tà?
0 Z/ z* m; n3 p# f- }' s4 F }
4 V: Y) x; N) ~& C9 m& G# W#endif // __WORLDSERVER) M' X# G) a+ \, l) \, Z
} 2 w; H v$ M+ W
: u- c. K: E' r! K2 k然后你进入functextcmd.cpp并添加以下
j O# D& `' h; k7 [5 ^7 P1 l6 r
9 J9 e/ s) Z0 l9 c) E r! C7 P, y代码:$ R% L E" m/ ~# n2 ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) H/ |6 r. V$ S% o3 m: Y6 t1 V1 r" O
下面插入. ?. ~2 ^5 [5 y. O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 k; k& f& q& C- c4 Q( r$ o% I7 L
, \2 t% B, B" ]$ y9 @# x% X0 k然后你去
, a; x' q: s7 A- i7 s0 Z% s9 `2 {8 f. B; b" |
代码:9 M) S4 k7 O6 F' K
代码
9 F/ k4 z- s5 ?; E, V& WBOOL TextCmd_ClearPropose( CScanner & s )
: c9 [1 ?7 o8 T' |: t{# H$ t; M* g. O5 `4 \( A4 \
#ifdef __WORLDSERVER
, d' U$ }( L8 ]4 a4 I CUser* pUser = (CUser*)s.dwValue;
5 x- v- Y3 V/ A: h4 l0 E1 d g_dpDBClient.SendClearPropose();. L4 C! |6 B% G
#endif // __WORLDSERVER3 f: r; Q! ]. o: n6 _
return TRUE;/ |3 Q, j* o& a) k$ t# V( o
}4 [7 ]- D _# v! x
下面插入1 Z* p2 @+ L% b# @. P0 w3 E
BOOL TextCmd_rebirth( CScanner& scanner )
# d( k. S' a" l7 h3 r{% ~8 r+ e0 q% z# _
#ifdef __WORLDSERVER4 G- [5 o1 [( b4 r$ c8 ~
CUser *pUser;7 U* E1 Y1 d' `: c( k6 o# Y
pUser = (CUser*)scanner.dwValue;
9 z. @* E( O! G/ N* R. k% e' k& {if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 S* M1 h' E2 ~. F1 A
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 c# O- M7 w8 h- u. d# |8 B& K
else2 H& z, q, ~: h T7 ]
pUser->AddText("你还未达到重生条件!");
$ |6 Z+ [4 C5 |8 G x. M) J; i) M( P% |; x#endif& N; W8 r* p0 }( M) p4 x/ q# [" w
return TRUE;" V. a: Q/ g- s6 Q
} $ L5 u5 t; q" T7 U
/ x7 Z) k& M4 I9 [
5 [" V; l4 ]. I. P
' s% ^5 ~, z& }, o
9 ^( w0 ~1 M) c. a' L9 q |
|