|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; l( v3 a% B& p; _/ u/ T ]0 s- n+ h K% B
Mover.h
! ~! o. ~. ]. G4 _$ U8 @: S代码:
c2 Q( C6 T' r+ r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) m' g) @( }$ r: V" t5 k# W
6 K: G4 s# `7 r; @" `8 E! ~% T下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ W0 g4 |3 F# {: w- ~7 J( w2 Q2 {+ J9 b4 `5 T4 X1 d
然后你去mover.cpp添加
* a c* @2 f4 f
' j& E3 @' q* c7 T; |代码:
- h' ?4 R n: @( W4 Y, svoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* E+ Q1 o- S; Q: N8 v$ Q
{/ y( ?9 |% u# J6 A
#ifdef __WORLDSERVER* S8 s7 I6 \' ?; |8 w3 s/ \ z& C
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
# f. q% \2 P0 g0 C/ Y) a/ n. H5 X MoverProp* pProp = GetProp();
: r6 |" q) y' f; o, k) t( V if( pProp )$ D6 j5 i* T9 T1 k+ J j: L
{9 Y3 K) R8 @4 m; Z) @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 w! t# o' c q% O+ b {
6 q7 R8 z2 s) C% T AddChangeJob( nJob );+ ^0 n* F3 O/ N9 E
}else{
0 F: l9 g7 |3 m. Z2 u3 j$ T1 S k return;
7 C _* v' L' X' {* n5 f2 g }) u/ ]1 L/ s5 s$ L( e( O- b7 }2 m ]
int nPoint = 0;: Z0 |7 A7 p# s" F: a" h2 @8 s
if( m_nJob == JOB_MERCENARY ), S' b( V$ h( f. O
nPoint += 40;- |" U+ n& d# {4 b5 K8 ^
else if( m_nJob == JOB_ACROBAT )! i+ j+ H9 B& C
nPoint += 50;' C- c" k5 Z( W7 e
else if( m_nJob == JOB_ASSIST )+ i5 t* Q0 V# X: Q* s( u# B! [9 p
nPoint += 60;
* K5 e5 K$ K' P* j) Z: c else if( m_nJob == JOB_MAGICIAN )2 j/ [0 }7 H8 U; f6 \. r: m$ y
nPoint += 90;
; m6 c+ i: z, g' J& }' J( p else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )' [; E* M! j9 S R2 D9 A5 d
nPoint += 120;1 B7 e5 S O4 C. w* V
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( \# k u' K% {$ h* O3 a
nPoint += 150;5 U' ~: L! A2 d1 y9 F8 Q
else if( m_nJob == JOB_RINGMASTER )8 ?9 m: _5 S4 Y! f
nPoint += 160;: Z8 k, L* e1 ^- Q& ^% ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% g. w: p0 P X4 G nPoint += 180;4 x4 v3 F! x. u9 V2 h
else if( m_nJob == JOB_ELEMENTOR )
/ t# }& _* A9 _4 e, z1 y8 T. m3 g nPoint += 390;$ C# { c2 ^, d3 d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ q; L7 O/ ~; J( ?" s4 Y
nPoint += 120;
' I: _0 F9 M, D, ]; { else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 A7 Y5 \* ^2 r7 O' P3 F, v nPoint += 150;
( t' `" D4 @# ?4 u- k, G# j8 U) V! I else if( nJob == JOB_FLORIST_HERO )
, ?& z% u' n- e nPoint += 160;2 d9 ~( a- R; r7 Y: G8 v
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 c% u4 T1 _& @3 D2 d9 x7 g nPoint += 180;
" `5 C+ I: S, Q6 x& b2 J else if( nJob == JOB_ELEMENTORLORD_HERO )/ {7 _: r8 V2 d, f4 j( D
nPoint += 390;
: M+ L" f( D) Z5 G7 E
+ j/ J4 e* k2 n6 }% Y0 C, |) Z- D AddSkillPoint( nPoint );: ?& L1 F( [5 e' C" U' Q/ ?- I
m_nLevel = nLevel;
: U. T; s- b) p! X' m- G" Z: \2 k; H
9 |/ j$ @, `0 V" S7 T1 g' H SetJobLevel( nLevel, nJob );2 h+ w$ L# o- t& D. s
m_nDeathLevel = nLevel;: H* c/ [% h1 m b/ d: \
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ H& a/ {4 Q( ~& y* y* p1 n" M" j
if(IsMaster())
7 S, [+ E$ ~9 z3 s {0 J# V3 }5 j+ \: p( x0 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. \$ `2 G$ l" a0 c% a if( nLevel > 59 && nLevel < 72 )& ?# z) O" u' _/ B. n; _
dwTmpSkLevel = 1;
* A% P3 l) f, ~5 J4 i else if( nLevel > 71 && nLevel < 84 )
3 Z: d w$ m) \ dwTmpSkLevel = 2;$ H$ R' Y- y5 K% {) m
else if( nLevel > 83 && nLevel < 96 )8 Z& H5 X1 k9 g, c5 V1 [6 b
dwTmpSkLevel = 3;
9 }& A5 V r) I; J else if( nLevel > 95 && nLevel < 108 )
" b4 P' L" K! j* G% U1 f3 g dwTmpSkLevel = 4;
; m, ]- p0 L+ R* J% y/ f else if( nLevel > 107 && nLevel < 120 )
- C2 v1 j- |/ h, q dwTmpSkLevel = 5;7 s) ?, {: b! }( f
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! z7 U& T8 L* A# ~' j
{ ( Y7 b9 {5 p* H- {, @1 s
LPSKILL lpSkill = &(m_aJobSkill);0 ]. F4 [7 t; J
if( lpSkill && lpSkill->dwSkill != NULL_ID )% b/ Q% V1 D: S% t
{% E* m) V- [2 Z/ k0 Z2 q. h- ~) w$ Q, f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% V2 j0 E5 l, y3 n( I, _ if( pSkillProp == NULL )$ b% G6 \+ j5 |3 P$ a- r
continue;
$ j) L# ]% T% R( O, N) n; P! u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 Q& @- k5 F, o0 K( W P continue;
O! o' c' M B8 @- E- p7 I: W: c lpSkill->dwLevel = dwTmpSkLevel;- R7 Q1 x- J( |5 Y J
}# V+ R) ]: R0 J$ z5 l1 V
}3 ~# d$ G; s$ b
}3 M( d$ _8 B. t2 B
else if(IsHero())
0 }* Y* j' b7 u f: h, s z3 L C; u {( k9 U. K$ Q/ I+ E1 M- j4 [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) i) X" I8 G# x, E {
9 W D0 s' X# {$ D( \! s* r; S LPSKILL lpSkill = &(m_aJobSkill);4 D# N! H5 w1 v( f/ G: O6 t% v8 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )( ~3 @( ^( ]! _9 G E# f
{
6 i/ Z; d, ~4 g- a) r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! b- v. z6 K( D if( pSkillProp == NULL ): }! U0 ^) S- R" h. w
continue;
* A6 D; j) L: h& t: f% S" O5 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* r$ R& Q" \. {8 E5 a. Q4 ~ continue;
& [/ ^7 f$ ^( x7 J4 O+ P* O+ j lpSkill->dwLevel = 5;
( H4 K) `& Z1 o% E, n }- q' W) P+ `- V, R* w! l
}
' ?, ~! M0 I8 Y- Z/ ^9 j }! f$ n6 _! [! T6 p7 i
else if(IsLegendHero())
! Z) k# d$ e. ]+ o+ R5 n( O {
* B# [1 R' ~: X3 d$ ^! P for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 V) I5 Y) w( o @* p5 n
{
6 U. l+ j, }4 J# Z; n% `* I ~ LPSKILL lpSkill = &(m_aJobSkill);& G7 I6 Q/ ?+ P! ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 n) [* ^% V# s0 l# M
{
2 O8 L% x7 x0 x2 j- r* m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; o+ e- |& e# ]% Y- z+ Z
if( pSkillProp == NULL )
4 e2 L- K, X: v% O continue;3 N f' F; A" n1 U/ Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 D) y3 O \* S T continue;
9 _6 Z4 l2 E6 L2 }5 Y lpSkill->dwLevel = 5;
, t8 C3 }2 P8 u$ ?' r }
$ b5 ?; F) I. q* x+ ?3 {. U: \$ k* N }
4 S; X9 s- N6 V2 Y8 E2 B9 ]* r }5 w2 J& C9 |& \3 [6 q) {0 k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 P& P* O% c9 u; F& z
if( bGamma )$ w' ?- @ V; Q9 e2 O+ v- `
{
9 p- t- H) Q5 M# \8 d m_nExp1 = 0;) `7 x* V5 |7 N7 `+ {* |9 d H
}
" J/ b# \1 T7 a* S: {# P, r/ @+ G" q% w. k+ `0 R/ B' q! x; @
( (CUser*)this )->AddSetChangeJob( nJob );
) U" ^$ G6 l7 i2 L; e, @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 I: j1 r! T- w5 D" w
3 W0 m: o4 F/ d$ |5 v
$ _. t& Z; v5 b#if __VER >= 11 // __SYS_PLAYER_DATA
: b4 k# K0 o2 A8 f( u' u g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 y) K* E& S8 O) u+ y( ?: Y
#else // __SYS_PLAYER_DATA( i( c0 I8 e4 Z/ j% t6 Z3 \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* z9 W6 H' x1 T3 l- A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) A- e! b3 D& U& q+ A5 r
if( m_idGuild != 0 )
2 R# k5 B" r8 M/ u& \ d# }! m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 w( C, b3 V6 }
#endif // __SYS_PLAYER_DATA5 Z& }; J1 f/ s0 g% @
SetHitPoint( GetMaxHitPoint() );: V, p5 {% y( u# N0 l) y
SetManaPoint( GetMaxManaPoint() );
, _+ B2 B: ?/ l4 @( u SetFatiguePoint( GetMaxFatiguePoint() );
7 m% o6 n- D6 [" V: q+ P if( nJob >= 1 && nJob <= 4 )
, _* Q. T/ Y" P- b K( f% U {
; k5 h: |. e2 J% F2 E m_nStr = m_nSta = m_nDex = m_nInt = 15;! W1 O U/ U" R0 [6 c; Z8 C6 w
m_nRemainGP = 28;; S3 O( F' e( e. c
}, y- Q5 U% A* _( A0 {' d& [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 d; C6 q: E- I9 p2 n( N
{
0 f5 V5 }- B; o$ K8 P* ^. c! k m_nRemainGP = 118;
& G3 i' h( X0 r) } m/ U //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" z- ]4 p5 ?+ d4 V. V, m9 z m_nStr = m_nSta = m_nDex = m_nInt = 15;% k% t( j- T1 `
}
( p( y, L9 z8 T+ b/ ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( {: q4 _0 R: p1 n
{3 S- d( K( Q _8 E: H; \4 v% b. n4 _
CItemElem itemelem;
]3 z* n1 M e* x itemelem.m_nItemNum = 1;
3 \3 a; _4 d, F; `0 K" c$ N itemelem.m_bCharged = TRUE;
! g: \; z. M5 A! G BYTE nID;
& o6 Q, t/ g+ D& j' {# w7 y* d" l! P9 Q; D2 q5 ~6 J
if( nJob == JOB_MENTALIST_HERO )
- X) `/ R$ u. o: R% ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' _1 q/ @1 c9 O7 t Y
if( nJob == JOB_FORCEMASTER_HERO ) h0 `3 V$ V# q9 e% z8 d L$ ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ A8 o$ W3 G' j* M
& U0 m* e9 F" U7 h1 ~' W6 U5 `0 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 ? q) M k8 t. F1 k8 [ }
; s6 }) t, o% F- h- `$ U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 i- q$ r9 i& K' H i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: |* S" Z# t- j: ^$ [' V
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! I3 ]) h; T1 F. J0 j8 z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. M! @. @; P' T
( (CUser*)this )->AddTaskBar();*/
$ w& f1 ~. L- K# r" e; I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, e, P1 H1 Q% Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ s+ z' a" J" d$ d. Z# y
((CUser*)this)->CheckHonorStat();
1 s% _3 |9 C2 s( l6 X- R \ ((CUser*)this)->AddHonorListAck();- O6 _4 x& N6 @
g_UserMng.AddHonorTitleChange( this, m_nHonor);" I9 Q! W8 S3 q G& [7 r
#endif // __HONORABLE_TITLE // ′Tà?
9 y2 G4 K1 X6 N, r0 n }
* `0 B2 }5 ], h4 K9 @6 U% E7 _#endif // __WORLDSERVER
3 b \, G8 y1 X- E# i% F) p x/ m}
. |3 A1 W5 {9 f5 R2 D
1 f: x* I1 z. O: x* f/ s8 |然后你进入functextcmd.cpp并添加以下% e; t v$ l) |1 T/ H* U
; X2 @: v+ c+ y* A1 y" y代码:
' [7 ?& Z2 Z, b' H+ l9 i$ ^ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) _0 y. q. g; v& E J/ U下面插入5 W, s, w1 R' t
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ n1 M/ c" U# D) ~1 V0 Y
4 z$ u: K/ j1 v- g) `: ^) g1 A0 [然后你去
% I) n& g# H: O) [/ G
3 ~- x# i. \0 E9 g代码:
3 A) B6 y, ?8 ?3 V! {代码
& ?: H( n' A! UBOOL TextCmd_ClearPropose( CScanner & s ) t2 ~- Z! O% q) O& A) S
{4 T2 S, K& L" T/ ^: u
#ifdef __WORLDSERVER e( B/ j F2 Q, ?
CUser* pUser = (CUser*)s.dwValue;
( G/ ^- |8 b! r( m g_dpDBClient.SendClearPropose();" D/ t: [& H+ y, X
#endif // __WORLDSERVER9 i) x8 U9 m2 @! D d G- W
return TRUE;+ J f/ b1 m$ N
}
% P) T3 `* i# `下面插入
6 U, I- P; u$ w. dBOOL TextCmd_rebirth( CScanner& scanner )
" F& Q6 V$ [3 ^7 `+ Q{2 j0 R7 n( Z* A! @' ]3 A
#ifdef __WORLDSERVER
6 a0 v5 n* r- T8 _7 x% v- nCUser *pUser;
4 T4 \7 J+ x. i# X; T+ MpUser = (CUser*)scanner.dwValue;
) {9 ]' [) M0 t. z( q6 I1 K! mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
F& h4 g+ m" T/ ?. X3 hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 u/ M: t- v9 G+ S
else6 D4 r" E9 H- y( X8 {
pUser->AddText("你还未达到重生条件!");- S, C) {/ y; F
#endif
& q5 S' [# V0 wreturn TRUE;% N4 d# F* ?& a! F* X( I/ f$ |
}
, e( u) K2 P4 {
( }; ~) O2 q" ?; y) B& X; o L4 Z5 ^ J3 J' b" { t7 k4 V
* _# ^: b2 t* p! @2 r7 {+ G# d7 p3 T9 O+ Z! o
|
|