|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 i0 X1 T7 y# _, ^8 o9 u& d
% M* n) n3 n5 c" L0 sMover.h; S( F" N+ X- Z- b; p! T
代码:
; I8 r1 o" I& o$ T找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; G! D+ |8 U$ ?8 K1 p
0 G4 N: f+ l* L0 x1 Q t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. G! O6 U- ]& k. y- {1 G' C0 a% Q0 c# {0 I5 N0 n+ l
然后你去mover.cpp添加1 ?8 }1 S' d8 ^: f- Z. |
0 m/ _4 U. z' C0 {& G4 j. v0 Z& @
代码:
( }0 e" H0 d* p- R: tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), A2 R3 y" }, H% o8 |' K! C
{# Q) k% m l1 R; f( D2 q f
#ifdef __WORLDSERVER" g) G: h: B% G8 c) u( R2 {+ r# ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' y5 ^' q/ a0 F1 l& R0 n4 f$ P
MoverProp* pProp = GetProp();, Q2 l4 p2 u/ E, x
if( pProp )
1 |, N/ `( d+ W9 G9 }+ I K' E {* z# M" l# a7 I! T5 v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" Y: I% B d& m0 W3 ] {
) v' p# e5 i6 F0 R+ j AddChangeJob( nJob );, T! a! X3 T2 ~/ E$ I, s8 x
}else{
' c, Y; H5 d+ a5 U return;2 @3 A* b2 t1 l2 o
}/ z% T8 K. [: ^( H! t0 G
int nPoint = 0;
( c7 L5 C" l* k) p- f V I' Z1 H if( m_nJob == JOB_MERCENARY )' h: `5 L( l* `+ _5 Y9 ?- Z/ s
nPoint += 40;
# |' R' D: x# P4 R9 [% q else if( m_nJob == JOB_ACROBAT )
6 E+ x% T5 u5 e* c& n nPoint += 50;
( _) D2 W* o1 |# ^0 V' I& ? else if( m_nJob == JOB_ASSIST )# y& _8 y; r! T$ [
nPoint += 60;
| ~ U4 v# w& I% m2 ` else if( m_nJob == JOB_MAGICIAN ). V2 f& N9 k& N1 Y2 j( D
nPoint += 90;4 }! @; z3 Y# R6 W3 k
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- T$ |- o' N4 ]1 a. [. C0 H nPoint += 120;
* u' H) s5 I# ^; w. m% F. S* T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) N' r8 ~% i. a* D5 K4 ~" }
nPoint += 150;
* y' p& X; q4 W1 L' s1 Y else if( m_nJob == JOB_RINGMASTER )
, P) U( v9 X! D# P/ J. w) H nPoint += 160;
( h; s+ u! Y1 V( Z# d, w else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* j1 Z* O/ ~1 A( I" ~/ a& K, B! Y
nPoint += 180;
4 X, m8 U8 c8 _ else if( m_nJob == JOB_ELEMENTOR )$ H: h6 g- I% B
nPoint += 390;
" E2 ]( M% `) d% h# S6 Q8 m else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 V% ^: b2 C# \ nPoint += 120;
. K$ }$ p& B' |: A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) B+ t7 c( S& u1 Q P; V# M
nPoint += 150;+ Y7 G! t7 T/ P( S6 k! K3 v: M
else if( nJob == JOB_FLORIST_HERO )
+ M% g2 x1 p/ e0 v nPoint += 160;
+ Q) X' J0 Z, W, U% E6 u( s/ r) d1 m else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! A* D8 w, P. m. s nPoint += 180;
9 [& @. g6 P0 f/ O) V else if( nJob == JOB_ELEMENTORLORD_HERO )! |! k7 F2 G4 r0 u$ ^" A
nPoint += 390;
+ G# j( j* T; o8 s1 H1 }2 Q! n2 p6 `+ ~ ^6 n1 _' a5 K9 n% B9 }
AddSkillPoint( nPoint );
2 G; s: ` z# E; w/ h m_nLevel = nLevel;
* l2 T& u/ ]1 a9 k2 ~& F$ O
3 r. @ x( t) `+ M SetJobLevel( nLevel, nJob );% E( C) f1 s5 q6 S; T9 h" k
m_nDeathLevel = nLevel;
2 a2 Y: X! J/ f* [#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; r! S( c/ k! ^8 g8 A
if(IsMaster())
* D, b3 |. F8 P9 t: x {& u! w' @/ B, [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. j! [" C; M8 m+ x t0 {, c if( nLevel > 59 && nLevel < 72 )5 h- b$ w" C+ M% t
dwTmpSkLevel = 1;
& \& u* a& M0 B) O! x% E! |- o else if( nLevel > 71 && nLevel < 84 )0 O+ R# Q- a$ p/ D
dwTmpSkLevel = 2;
; x2 W; {' z* m5 A- S else if( nLevel > 83 && nLevel < 96 )
& t, B5 |$ g; K! I) e; Z5 J5 o dwTmpSkLevel = 3;
7 R. {/ h* `# M C5 n8 E! ?& X else if( nLevel > 95 && nLevel < 108 )
+ X6 R( U! C6 v dwTmpSkLevel = 4;5 ~0 C, L1 ]! H Z
else if( nLevel > 107 && nLevel < 120 )9 @# ]. L0 a0 ~4 M# [
dwTmpSkLevel = 5;
; D. K8 ?2 N1 }9 m" P% l/ A; ~9 `* n for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; l( R$ m; z# f% V5 R
{ & I6 E* H7 e" y# [8 o' z& j
LPSKILL lpSkill = &(m_aJobSkill);' d& G$ t9 M: ~4 } R8 ?1 p' K
if( lpSkill && lpSkill->dwSkill != NULL_ID ); X! l& X# {* U& M# M1 ?3 w( O
{. Z1 r3 T/ l# V' L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, ^# t& o. V' ^9 ~2 a1 W if( pSkillProp == NULL )
9 f) J, p2 x9 a. ?: n) Z continue;
% d f4 [" S v$ q/ c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( [; ~8 v. b+ [0 m- g continue;
! K8 j! w* e! s% M* C lpSkill->dwLevel = dwTmpSkLevel;, J/ q+ R" u% o+ J5 L- [6 ^! h' X
}
9 Y8 j7 g5 @% U4 t6 F+ y }
& [& S% n# S. O9 I }. |/ g$ a/ Q! K( f% l
else if(IsHero())
2 T/ p a W3 |/ S* u/ g {$ z: _6 I9 I" K, {& I- [3 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: }% s. E; H7 N3 I3 ?* l& b {
9 t$ k0 z L3 m+ I* @: ^ LPSKILL lpSkill = &(m_aJobSkill);
: u) }/ e2 A' Y* c9 ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
% Y1 ^9 J+ H9 e& ?2 J6 x {
( q* Y& F3 J) S2 K# y* {6 H8 b; q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; y, v B6 D4 _( L8 R& t8 n1 N. V
if( pSkillProp == NULL )
: T' q- e; Y" [8 I continue;2 u% A; K1 _7 b7 j: _, P7 A! e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 D( y5 e1 X- i' b9 X: J- K
continue;
/ ^1 }% B; q5 q$ i. o* d" }" ` lpSkill->dwLevel = 5;
- g( T& _8 }( a) g }0 z+ _; X- r7 `. W+ a, [. m
}
: c6 m" V1 U" N }
! [' z) Z$ |& z+ q. T/ M, z else if(IsLegendHero())3 F2 n8 @+ U& | e6 p2 X
{( W% P3 o& A0 E1 N* D9 ?# {- v2 I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! }, }7 h* k! }& Q+ j$ J5 \ {
7 @# y A; Y/ A G" O* k LPSKILL lpSkill = &(m_aJobSkill);
+ { e+ M8 r8 \- S. B- w+ M4 P if( lpSkill && lpSkill->dwSkill != NULL_ID )& r1 {( N1 T) `
{+ l# U( q, _3 p, _( B8 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! b) z; b$ r3 x& n7 k+ G& a | if( pSkillProp == NULL )
. d, c# A" [7 k& ^ C) W1 r continue;
5 x! p! P( u O% k6 _0 ?+ ?2 M! p! Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, k2 L( \4 `5 y8 s4 f: E& O' Q continue;5 Z( k4 Q! v- n6 s: i ?4 M" v" u. x6 P
lpSkill->dwLevel = 5;: C! w8 C- c2 z! k8 `* j
}
) D7 [8 B6 |; G0 l# s }0 w/ R8 C) L5 k$ D' t1 E% \
}
; Z) V% e6 k) f" K' \6 ]$ R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ P0 J! h' B4 o% D
if( bGamma )
! o' y) ~) y1 P% s {& o) C! J, r5 T, m, Q2 y
m_nExp1 = 0;" Y" D" f. O/ B( c- |7 t: y% l7 X
}
$ r0 U, I2 w5 ~6 }3 T" F$ ^
' U6 V9 X# ]$ K% t ( (CUser*)this )->AddSetChangeJob( nJob );
6 F3 F0 B- N7 y+ ]% M g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 X- @9 R, A% A- m; z9 x: ^
0 |' {- M K* N3 l
8 k5 {& H7 o, I3 ~0 ]#if __VER >= 11 // __SYS_PLAYER_DATA
2 l) f8 ^1 h+ b1 N) j0 F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' f" x7 s U) \7 E" V#else // __SYS_PLAYER_DATA8 J L, A. k r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 m6 P5 C: S5 _) k0 b
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ {0 B0 u; i+ F' @9 k* `; Z if( m_idGuild != 0 )! y) J5 G1 ]- t& N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 E) B- @$ {9 y3 n7 o/ d#endif // __SYS_PLAYER_DATA( h$ N! Y1 w# O; p: }
SetHitPoint( GetMaxHitPoint() );, ^4 d% G3 g( z- q' h
SetManaPoint( GetMaxManaPoint() );0 F2 I9 L1 ?1 ?
SetFatiguePoint( GetMaxFatiguePoint() );
; V* w/ r. P$ z; Y if( nJob >= 1 && nJob <= 4 ): S8 c! g6 _5 n: l1 _7 W
{5 R, v* S2 M( b2 Y: @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' k' v5 u% v; _( j" B( S m_nRemainGP = 28;
: j0 q, @. `6 p: x- u% P1 g% F }
0 m4 k) V9 l; z6 ?; j1 m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- a0 k. h( v$ a8 B. G/ W: a+ X
{
/ I1 c- I7 d. K/ H m_nRemainGP = 118;
- S4 U4 z3 Z* I7 e4 @( f* e4 o* A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( Q# H( C( o' y7 W9 H0 ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;; a" n$ v. @5 k
}
) x% e$ r" y( g$ @' J, x: h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 v, L u+ D H8 ]* I) V2 R7 |. @ {
' T2 `2 H- U1 a# Z: W1 B CItemElem itemelem;
. T) h& G4 S0 @6 T. u! S itemelem.m_nItemNum = 1;
0 u% J1 H8 u, j5 W itemelem.m_bCharged = TRUE;4 ]+ o8 L1 a$ @& s2 W% j
BYTE nID;
' M, F+ E, i: T
7 B( A$ B8 w5 p, _3 o) O if( nJob == JOB_MENTALIST_HERO )
2 [( U3 n' v( W& T T0 t* O9 ~; ] itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' ~' N5 i& W5 ^; t4 ]# Q. o7 ]
if( nJob == JOB_FORCEMASTER_HERO )/ k2 O- a$ E; T3 T) E7 V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
j, @! e& S. S& }$ z2 Q P2 E: G4 O! h" D* R. z2 ~" b. k
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 s$ n1 X& ~+ S( D }
0 l* ~) G0 Q) ]1 d6 S' ` g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 C/ q) B, f$ M8 Y( L& J5 l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, A0 |1 z. Y/ x7 O k; i3 i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# I" d; W h6 c+ _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ x9 s8 O: I- K+ `( ?6 ?5 }
( (CUser*)this )->AddTaskBar();*/
G! P! Z- u( i3 C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 T4 s. [& c3 T( P$ w' [2 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% t8 y* ^5 ]) z) r
((CUser*)this)->CheckHonorStat();: Y7 @9 S' H4 L
((CUser*)this)->AddHonorListAck();
. x) L: o& K s$ g+ n% w g_UserMng.AddHonorTitleChange( this, m_nHonor);& u& H ^6 Z$ G9 f! E/ q/ V
#endif // __HONORABLE_TITLE // ′Tà?& k4 p# b; o+ S" v- v
}4 M0 e+ n% s7 m2 I" P6 x& f$ @
#endif // __WORLDSERVER
1 h- Q# [0 u* D}
# B; U3 _7 ^' }1 B1 Y# [/ W, I0 W6 X \7 a) R& X
然后你进入functextcmd.cpp并添加以下
3 N3 `. w3 u/ _( z& E( N
5 ^1 Q0 a( X% w: u, u9 r代码:
. U+ B3 A6 G2 z7 }0 Y5 Z8 s8 S& HON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); t B; [/ M' P ?5 F1 Y3 U
下面插入
) W' e% l, \2 c6 F) ]! u% XON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + X& K2 P- \& n, U: _( y
) y* u$ u3 u. d$ x% Y. n' k" Q7 _然后你去
4 \$ @$ ^' \$ Z" y( r6 ~9 l; t# Z u' F$ X
代码:
) B4 ?2 C% G# i, I代码
0 U; Z2 f4 j- @6 [4 zBOOL TextCmd_ClearPropose( CScanner & s )7 M5 t1 C) H4 ]( M9 C1 `0 }; ~
{
9 x8 j& ]! F8 |#ifdef __WORLDSERVER
8 i! R2 ~7 A% C/ O) D4 ? CUser* pUser = (CUser*)s.dwValue;
3 p6 e, x5 s+ {3 w8 {' H g_dpDBClient.SendClearPropose();2 P# x3 T! T, |1 e6 K: i7 t
#endif // __WORLDSERVER
- e" \- r" E B4 A! r' [' v2 o return TRUE;
$ ?! Q' L0 f* S, E4 H, c}# |, \: c. ~8 R; H) F; ^) ]
下面插入
( g/ ?, J* O; P: k# S, g. iBOOL TextCmd_rebirth( CScanner& scanner )
8 f( b+ @1 v8 W$ @# d/ V{
; n& W# o/ `% @#ifdef __WORLDSERVER
; O* p0 n0 | a: O1 U' [5 |CUser *pUser;6 M3 P$ c$ k* w: A! I! p* |$ k" ^3 S+ Z0 \
pUser = (CUser*)scanner.dwValue;
/ q! k- O* m( \6 l! ~" \$ N" E' v3 Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 I) T6 Z7 r4 t. x3 G
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& z9 B0 v1 j/ s4 S3 U% D9 P
else
* g! X8 T" }- W9 M7 E% d. CpUser->AddText("你还未达到重生条件!");
6 q1 I, v: Z5 U) v% A" \#endif
2 @0 n" c e4 [+ S( m/ ^return TRUE;! D9 d# S& R! w/ d p3 Y3 s
}
4 r# M. [' q; r2 a+ [7 X) [$ k; i4 Q+ O8 Z7 c \
s# N$ n& M& U/ V+ O
; J9 d7 g- ^) Q2 z7 X8 [: D0 R% O: k {0 V( H9 c3 r
|
|