|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% N' h/ @: L' t7 P) E2 r: R
! s& M) o2 b+ g! \2 P; k8 oMover.h
q" u3 `5 j9 H0 ^3 d7 e4 r8 a2 [* ]代码:
+ {8 h; u( e) r$ U# s M$ k3 W6 c找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% r" K3 S0 C+ g+ p# j0 a# W/ _
; [! `6 y" ]9 @# N- |" c! `, R- h下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * G5 B, R- U& Q% ]- `8 |9 p& u7 r+ [
% N1 I( @8 `9 E) B5 J! j8 n
然后你去mover.cpp添加/ R7 U, Y# Z2 x( p) K e
* X( W" j1 s. J, B, W
代码:
# ^5 g. H7 Z5 P4 `/ U5 Pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 F0 E0 v% f o0 s4 O0 u; U{8 m3 H- I! T9 l5 x& v! J, ^$ ^
#ifdef __WORLDSERVER. o2 {' K+ r& y
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 V( M, {4 s' ~5 X6 L
MoverProp* pProp = GetProp();
+ ]8 g2 Z7 f( M, H$ i. _8 ] if( pProp )8 i+ c a* q" z0 b6 |9 @3 ]1 I
{
4 O- f' ]& D W if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- m9 k' r* \9 H$ U! v2 L {
5 L: l$ D/ Z, x) m& K' b5 X AddChangeJob( nJob );
' r' e! i' F1 y& Y$ E1 @7 T7 ^1 e }else{
. n9 Y% x9 N/ | return;
* Q9 m5 G; w( ^( ~/ ? { x }
6 O) j% E2 c! A+ Y3 P; f int nPoint = 0;3 [% i& ]- z/ |, V9 l2 u. h8 @5 S
if( m_nJob == JOB_MERCENARY )
8 @+ q. i5 X8 Z* \& G5 E( x nPoint += 40;2 x5 |" b1 A0 i r- B! I
else if( m_nJob == JOB_ACROBAT )
* G+ C. i3 @6 C; j$ S nPoint += 50;
3 q& @# m/ {- V, _1 X else if( m_nJob == JOB_ASSIST )
9 ~1 y6 W4 _8 ~( X7 [ nPoint += 60;4 ^. t* z( [! h# v
else if( m_nJob == JOB_MAGICIAN )% A! y( X0 C3 g% i6 z
nPoint += 90;
; U5 v9 V; S# @& }& a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* M8 D) X* t9 P9 y: P+ ^
nPoint += 120;
+ ?4 P: h0 ~: w1 p2 L- { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ ]/ L) X- S* O, k/ F5 ~' D nPoint += 150;2 W# U' m2 ^; o; ^
else if( m_nJob == JOB_RINGMASTER )
4 p9 W& g0 l' H8 v; E8 ]" h nPoint += 160;
" _2 A, T* ]1 G9 v! K* [1 D! v" S/ I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ B2 f6 @1 C! Z2 t- ?
nPoint += 180;0 [ j3 Z! K' J) e) h$ |8 W6 D
else if( m_nJob == JOB_ELEMENTOR )
7 B k( |: v& m, t* L. Z nPoint += 390;/ A+ L: H3 r, ~ G" e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): V, T8 ~2 J1 d
nPoint += 120;
- ^4 ?" L" n+ \; m M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- X1 a' c8 C# w5 `& m
nPoint += 150;8 H8 c9 T" @( Z+ ?( V; N* S
else if( nJob == JOB_FLORIST_HERO )
2 @% k; g# J/ y" c" ]) ` nPoint += 160;
! Y l" r" A7 \2 _6 [; N( s4 L; o else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ L0 g! B- C! b0 |& F2 V nPoint += 180;
& R$ @5 p F o% v% b4 [/ v else if( nJob == JOB_ELEMENTORLORD_HERO ); W. n0 l& [& p. r( F% O
nPoint += 390;
/ f4 o: v Z% ~( V& x
' q2 T# A( D$ \" I5 j AddSkillPoint( nPoint );. B3 a$ N- C7 ~2 V
m_nLevel = nLevel;) n% _9 ~1 X! a! c
0 ^ m/ K. B9 x+ @
SetJobLevel( nLevel, nJob );4 l+ t0 v4 B7 S. R
m_nDeathLevel = nLevel;
2 u* U# A$ w* u; l, ^* q* g y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 n( |" ^0 ?9 P1 ]% X/ ~ if(IsMaster())
4 Q7 T- m$ f' Y+ b1 S {' h! n6 q& E0 {. u* F# f2 S
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 ~( _) l3 e" q% G) E if( nLevel > 59 && nLevel < 72 )3 c8 o. I1 y$ n. ~! E
dwTmpSkLevel = 1;
2 h. [: }/ H, V. O9 T3 V else if( nLevel > 71 && nLevel < 84 )
/ ~, J3 o/ ~4 f. j$ g; q; x dwTmpSkLevel = 2;. h0 q1 w/ r, a/ b$ u: T
else if( nLevel > 83 && nLevel < 96 )
9 ~9 A& q: S+ C9 ?$ Z% { x& w dwTmpSkLevel = 3;
1 l- a9 @3 Y1 b; `6 k6 R' O else if( nLevel > 95 && nLevel < 108 )
: Z( Q8 ~% D1 O3 B, L dwTmpSkLevel = 4;" r5 x" O0 y" {" Q
else if( nLevel > 107 && nLevel < 120 )
) d# i+ i! O( V dwTmpSkLevel = 5;
4 Y9 F' L: c2 B for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ a' c% ]" g% R4 z+ f2 M! r { * a# f* M; g- m7 E* U' J& c
LPSKILL lpSkill = &(m_aJobSkill);! b" a9 n( V! U! ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )" c5 u4 B s/ P# T4 L, b2 D: ]3 w; ?
{$ k/ z- v8 V# Z6 Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 k* p2 ~& b/ G9 R( I5 o) w T5 W* i if( pSkillProp == NULL )/ l. O- Z) i: F
continue;
$ L' c9 x* U- ~/ v) [- Y3 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# S0 n- [8 ?; i! E" | continue;
6 s7 q! _9 {) M1 o) T8 x! C% i( D lpSkill->dwLevel = dwTmpSkLevel;
5 W2 }3 _1 g5 G: c9 Q }
9 ~: X/ Q; O' h: h6 n }! j# G7 W* Z9 ^2 X5 q
}" j3 `: a$ T- c7 _
else if(IsHero())
3 U1 K) ~0 P, {9 z+ G K {9 u" K. W7 }$ }! v% l& Q8 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : `5 f3 D. L" W7 `. h
{ 1 o1 s) A) Q1 r: F; r* Q
LPSKILL lpSkill = &(m_aJobSkill);
" s: W* `' \9 ~' C8 r if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 j4 \; o% r7 `8 W7 ~" l { l6 v, ~# P5 u, p& ]/ d, }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # S9 ]. i [* V: ^+ ^
if( pSkillProp == NULL )
. O% n( r+ R) u continue;6 W" \, `4 g* r& S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 A0 I( i! X& S3 N continue;% k7 t* ]9 N1 ~9 j3 ~& S
lpSkill->dwLevel = 5;
5 w! X. L2 H3 f6 X5 R7 ] }
1 {/ k: T: @# i j/ Y }6 d9 ^+ H+ W2 j% ?" l6 L( Z
}% W6 c* f3 H) Q5 g" Y
else if(IsLegendHero())
* H) Z, g& _8 g) O, \0 _' `+ b {
9 P4 j2 `4 ?( T- F. r for( int i = 0; i < MAX_SKILL_JOB; i++ )
# f2 _1 q& q6 G {
( V0 i# g E3 M$ r LPSKILL lpSkill = &(m_aJobSkill);
. P: B' x- R9 H& L5 I1 p if( lpSkill && lpSkill->dwSkill != NULL_ID )$ g; G7 J( f/ ^/ d
{
# g9 y; i% g! X3 t& H) E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! C, l4 e' U& P
if( pSkillProp == NULL )
, T& ^& q) c& G: z continue;& {( e) d0 h$ _' a- A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% a% c. j4 J% F8 Z% d" k8 i
continue;4 D+ g6 E/ A6 \# G# E! |) q2 w
lpSkill->dwLevel = 5;& P+ G" W" B/ K! e
}
1 c% R; D( z$ v) R& j) I }
( `$ ?: G9 X. k' d3 X% P }- U" y# L* i0 V3 E9 {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 C$ C3 _ v d* g% Z8 z/ |
if( bGamma )
% Z! s4 h. b# P, l1 j2 Z0 s {$ [" l& n8 a/ B$ W
m_nExp1 = 0;' \4 s5 w7 T+ l, k5 ?* K+ K/ K( d
}
2 K9 N2 A/ Z! \7 u; S- Q/ G: v& Q" R
( (CUser*)this )->AddSetChangeJob( nJob );
' |1 y0 s! A5 y/ S# R; g6 M g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( f* x( v" P) l$ j$ k$ g8 k8 q
, u: C G- K; @, \ K, O+ c+ U& D% A* s
#if __VER >= 11 // __SYS_PLAYER_DATA
5 [1 i2 K" ^3 U$ @: _ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) Q; ~- S- t8 w- w' _5 L#else // __SYS_PLAYER_DATA' L2 Y! u5 y# ^! v' b3 N- v8 {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );. `2 g2 C# c# Z2 m5 V
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 B, R* `9 k' [* |7 {9 J8 P8 s
if( m_idGuild != 0 )
% S) D! r2 C' O6 Q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 E& f0 ?. B0 ?# F, _% S
#endif // __SYS_PLAYER_DATA' E) ~/ V# A$ e
SetHitPoint( GetMaxHitPoint() );2 |- D4 m4 ]& `8 B* w
SetManaPoint( GetMaxManaPoint() );! L U0 X, b6 _) l3 t4 [# C
SetFatiguePoint( GetMaxFatiguePoint() );- [+ q7 }8 C& R: @
if( nJob >= 1 && nJob <= 4 )
9 m+ [3 {$ P" Z" G2 X3 e {. E. ]' c& z. ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 ?# f% f5 M+ }4 w3 o9 n8 R: v
m_nRemainGP = 28; j( j* ]0 ~; z! z" J, ^
}
9 A" Y' c% [; z- _6 o* \5 j if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 J% p/ F9 z6 U. G( z- X {
P n" h0 |% ?4 ~! E m_nRemainGP = 118;
0 \8 X3 j7 i7 W9 m9 E: p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, V6 P+ e# W6 C3 i C' N
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 ?0 i5 ~! i; b: X
}
$ t, A; p5 A# {5 e+ s ~4 U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* ^" L3 ^, D5 J" b
{
" ?: x, F+ y( B6 m. n# x9 R CItemElem itemelem;* H" k- Z- ]. T# l* ?( O! r
itemelem.m_nItemNum = 1;0 z1 p* V7 L9 N: v
itemelem.m_bCharged = TRUE;
& o" O# R: N/ B% z) j. I% G4 } BYTE nID;
" y. K5 | t; Y# v3 h$ S+ j" I! x
if( nJob == JOB_MENTALIST_HERO )/ K. t- m% g7 e
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, Z9 u* j, w8 j: N4 c- X5 a: |
if( nJob == JOB_FORCEMASTER_HERO )9 E( d8 v2 z( s1 _# D& t! O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: w3 h, e/ x1 i9 p( S( v
9 X+ `- x+ }6 T6 T7 e4 @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 f$ E# _ O( I3 T+ r; q g
}: h: Z) Z5 T! n- n* o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ C, p' E. ?5 x- C+ s* ?
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& }7 \- L; f' \; o* H$ Q6 V2 C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- P9 q1 c% R) Y) c" n2 d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# y& F; X9 z$ m9 j+ w9 ^
( (CUser*)this )->AddTaskBar();*/2 s" U8 e5 x9 L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); C6 C6 L. W. ?3 C# A2 a! |- U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( v8 n5 a' D; D% G: I" g ~8 a& `
((CUser*)this)->CheckHonorStat();
7 S" U0 q4 c6 b2 O8 C7 s: D5 d ((CUser*)this)->AddHonorListAck();3 B* a% f4 ^1 @9 J& |; Q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 C/ Q+ X% _* n2 X% {, l- S" g2 ^#endif // __HONORABLE_TITLE // ′Tà?
1 P. F2 m9 P! q! ` }
7 W" q1 N+ [2 [8 @- }; X#endif // __WORLDSERVER
, m1 R1 W& m Z) C( W: h: h} 8 ?& a f" r8 i( x2 E- \: i
: N4 Z; {- Z: r6 `% s: d
然后你进入functextcmd.cpp并添加以下
( F! M/ d, y# Y: @) V7 K0 O3 s, p
9 ]8 d+ |# q% d代码:
+ E% M* ^ h& u. ^/ {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 O7 E6 W+ E- I4 R- t- j7 f, ]下面插入
' X0 j J0 f- n8 F& B- \ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. ^9 e4 Y1 N" |, z% Q6 R
6 M$ g: O6 y6 o. Z, f5 a) g! _然后你去: S9 H" Z2 ^ e- L7 h. K9 @% D) A
4 R- i- a6 L& z0 ~
代码:
4 }; f9 C" u5 U8 r1 J [- l代码: b# p' f) j. S" Q
BOOL TextCmd_ClearPropose( CScanner & s )
0 G8 s/ [9 R4 a{0 ^* H' e' u( o9 e2 G
#ifdef __WORLDSERVER$ ]' d; q8 ^. C9 m$ \' I `% T, R
CUser* pUser = (CUser*)s.dwValue;
; ~3 P& {) `; |) |4 o7 j6 ` g_dpDBClient.SendClearPropose();$ v0 W5 }5 e* ^0 N8 [. e
#endif // __WORLDSERVER
. P) C2 E7 h6 D8 Z- c$ G, ?- ] return TRUE;
+ N/ N7 O6 F" k8 |8 |}0 y0 g6 X# Q# i$ N: G4 ?$ E/ O
下面插入4 D: V, ]. x" C$ q& U
BOOL TextCmd_rebirth( CScanner& scanner )5 M9 R9 Y$ h2 T+ {1 ]5 e
{! e1 T3 Z0 x& R7 c4 C% ^: u5 n
#ifdef __WORLDSERVER
% Y0 }6 M0 k0 q5 kCUser *pUser;; H$ w' a0 ^) p9 @5 g D. L
pUser = (CUser*)scanner.dwValue;6 v# T6 R/ d3 {1 b3 d" f) z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 w1 r$ z6 [6 z. [" qpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 \# r8 t9 b4 b3 S+ N
else; k# u$ {+ J+ e1 M: q
pUser->AddText("你还未达到重生条件!");8 L9 }7 i6 R L4 h3 X! V7 ^! O& |
#endif
0 K( o4 z% V# n" @, v* xreturn TRUE;% S1 T9 h5 r4 D' d( q
}
# ?' H5 p. @) h# A# _
, V+ H. ]' t8 o! p
/ k: ]! }; @; z: q8 i! w+ y Q: v2 f4 X4 y, `. @4 A( A% M2 _# q q* Q* w/ r
) [0 q# o5 \( E; z; n. t |
|