|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. M) n" t5 A# F# N. y/ k5 [6 g) a2 D G/ B5 h% N
Mover.h
3 i& C1 r# M# l) t6 n ~代码:8 K; L1 C# R: a% `
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% ~5 ~7 k! o/ R$ B
: p, q [% D+ P- }
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: M' S$ p: m0 h' T% y O, I) W, b
) K6 f# O1 b+ c' K7 [5 u' Z6 B" _然后你去mover.cpp添加, B* U; G! c9 k* [% t: w
( J/ |" m7 ]/ r1 z9 M" l
代码:
# `& M; s& D0 J* g5 h- ^9 ~) gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& \( w( Q# }0 c6 ?
{
9 T p: g* `: B A* w7 L#ifdef __WORLDSERVER; g$ W! {+ c' b" Z- w& t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' j0 c% ?) J' ?3 ~: U8 ? MoverProp* pProp = GetProp();
# q# |1 B' ~6 R, g0 Q/ ]7 l if( pProp )" u3 D7 {3 y; j: ~! |- \
{
/ g! ^4 W* q s( @1 [; R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 i+ i3 H( x, U J4 L* K {
z0 D8 y' r; q! i AddChangeJob( nJob );
( R" R' g; }, S* y# d, E- @. @ }else{
, \' {8 e4 ^3 X' Y. r return;
" U- m: I! a; n7 B9 e# v8 x: J5 a }5 x+ A: ^/ G' y
int nPoint = 0;2 W& Q" b4 J- C* O. {" X
if( m_nJob == JOB_MERCENARY )- L7 ~0 N2 y/ x: F0 A
nPoint += 40;0 h: O- e% z3 w B9 L
else if( m_nJob == JOB_ACROBAT )* r3 M3 ]( \( g7 T1 {4 p
nPoint += 50;
a% i i5 A$ V1 h1 F9 @% g$ I else if( m_nJob == JOB_ASSIST )
# r, N9 w! E: T* H7 o) Z nPoint += 60;1 F. g. ^. {( n- |0 d
else if( m_nJob == JOB_MAGICIAN )) t+ O- M' K% w; [
nPoint += 90;
5 [5 l6 \8 q; i g9 S; U else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' H! N& ^' w) ]. _- o1 f) C nPoint += 120;
" y, }. Z2 L$ _& ?+ q! P- A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' u1 C C& a% `: L, @7 M, D
nPoint += 150;
2 ~7 X! H# F# |/ J& q else if( m_nJob == JOB_RINGMASTER ); F& u6 B3 f# Q# K
nPoint += 160;
. z9 K' |) [5 t) L& j. |/ l9 r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ j* r# V7 w0 f1 t6 Q
nPoint += 180;
; V' d' V# w$ i- ~ else if( m_nJob == JOB_ELEMENTOR )( A$ A( t, o% ^6 T& {0 ^7 {, r
nPoint += 390;
# `! k$ g$ P# J! j( J& j3 Q* G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 ~$ \/ ~8 J7 m$ l/ x! _! n g+ K nPoint += 120;
4 S( ]; ?- `* u1 R2 I else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 f! X x6 J# C5 b( p% ^5 w nPoint += 150;2 a2 X7 X" d' M
else if( nJob == JOB_FLORIST_HERO )
( i! s7 P3 F8 N9 s- Y nPoint += 160;
9 j( m. ?* B f8 V* v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, A7 N3 n" h5 E2 p/ s7 y nPoint += 180;4 S) w2 ?; R0 Z7 b4 `6 t! z( E
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ g/ O1 s9 Q ?5 @, ~ nPoint += 390;: ~( b: ~6 S( y1 I+ x
4 S9 A8 c- m/ l- }' p' @, O
AddSkillPoint( nPoint );2 u \9 d' G% |" q# F% y f3 Z, P
m_nLevel = nLevel;" G1 u3 s) [4 J7 l) f L# B" S
7 a+ r6 y. d6 H SetJobLevel( nLevel, nJob );
8 P+ Y7 q/ S* a% r0 D m_nDeathLevel = nLevel;
9 v/ @0 c- ~- t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 B7 `( h, b" e9 ?9 _3 [$ Y3 s% Z
if(IsMaster())
6 N4 }" f% T/ O3 b {
# @& t8 \' x( k7 y4 B( a$ F5 f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: O$ ?3 R% S9 N; M
if( nLevel > 59 && nLevel < 72 )
, q- Q% L. v7 ^: c% ` dwTmpSkLevel = 1;" @% p3 j2 z, v1 D7 J7 \9 } `
else if( nLevel > 71 && nLevel < 84 )
% T$ l' G C% [6 T9 a dwTmpSkLevel = 2;
- q( [5 A- ~* Y! q else if( nLevel > 83 && nLevel < 96 )' R$ M3 s" X4 O" g: q% N
dwTmpSkLevel = 3;
0 P! f/ _( |/ p; u( S else if( nLevel > 95 && nLevel < 108 )
; d) h: x8 K1 x- ] dwTmpSkLevel = 4;
8 K$ i& A \: I6 o9 Q' N else if( nLevel > 107 && nLevel < 120 ): O2 } l5 c! j
dwTmpSkLevel = 5;
( C( W7 o$ O$ v8 l$ G( a1 | for( int i = 0; i < MAX_SKILL_JOB; i++ )
! _3 [) |' d+ L- ]0 { {
9 {9 i: i+ U" L/ w2 x LPSKILL lpSkill = &(m_aJobSkill);
_1 a8 u9 T, Y: z( B( ]% a if( lpSkill && lpSkill->dwSkill != NULL_ID )9 _( l/ L& Z; k6 F! N
{
% N4 V, r+ k% X1 @/ ]/ e4 U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! R; g* t- g9 H s, J; z- I* B6 { if( pSkillProp == NULL )8 a1 l3 l9 j$ o z. W$ O$ M
continue;, k. G0 G# k/ B3 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 R. l3 F9 N% E
continue;, J/ r) T ~" x L
lpSkill->dwLevel = dwTmpSkLevel;3 M- I$ n0 s3 \+ S
}) X6 I" b& U' g W
}( u- @+ z3 S3 ?/ x+ e% x( K2 P7 M
}6 k8 H, @5 n% ^" {* Z$ |* S
else if(IsHero())' |3 I, r' S) O4 n0 Z
{
' M# B# c* K W N for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 F& Y- }& i" B
{
! g# v0 ^ z1 y- H: t LPSKILL lpSkill = &(m_aJobSkill);
6 @* r+ I" D3 }. l if( lpSkill && lpSkill->dwSkill != NULL_ID )
& l9 K1 t" c- ` {8 i' W3 F3 }1 r& T8 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! ]% i& X% I( i% O2 T0 e
if( pSkillProp == NULL )
. t w4 `9 d- x) e& L continue;
* s) o* _2 T o+ c& P& o if( pSkillProp->dwItemKind1 != JTYPE_MASTER); V' ^# k G! W% h, ?
continue;
2 l# Y5 Q& _* B# u; n lpSkill->dwLevel = 5; i, V6 C( d* ]; |
}
' a' ~9 y5 g9 C9 i$ j0 o }
3 v* |$ }' Y/ ]; @( B# W2 H' M/ e }# I9 B* h; s; R5 s
else if(IsLegendHero())
9 Y/ ^( ]- v6 ~ {4 o; T, D% N d$ z v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ V4 u. q! D+ S% [0 E
{ " [- q' `& F! K$ n0 V/ [4 o
LPSKILL lpSkill = &(m_aJobSkill);5 C% y) f J9 H7 [: S$ _
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 v4 g- c- S6 D3 B& ^' Z( w& z- o5 {
{: `3 K1 |' Q/ z' _: L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , a+ U9 _3 u" ]! J. P. x
if( pSkillProp == NULL )8 N7 q1 _. V3 G% l4 ?
continue;
) j- y- o' c& S0 ~$ e if( pSkillProp->dwItemKind1 != JTYPE_MASTER); ]/ h- `0 S5 s3 _! A
continue;
9 Y2 B6 z4 {5 o( B8 }! o+ u$ M lpSkill->dwLevel = 5;0 u, A+ i3 m1 n0 L/ h
}, t7 L& R! q( @8 l8 ]
}1 _7 o k& O) i7 U. [
}
1 j; }( V3 t/ `3 z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- a9 J9 o! q' }( d/ V$ h
if( bGamma )8 H- w' r' U0 R, q
{+ G+ {7 W8 O9 R8 G: [+ g
m_nExp1 = 0;9 M9 Z4 n A6 X4 N3 b) K3 @
}
3 H/ R3 \( j$ \: q( f5 g; k) l' e/ d U7 d" s
( (CUser*)this )->AddSetChangeJob( nJob );4 w2 F) J% D1 V9 ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, j1 t8 {5 W) p
/ j. m' X" [) K% ^ [" i2 _% k1 d: Y8 Z" d
#if __VER >= 11 // __SYS_PLAYER_DATA# b: B7 U+ ~. K( W" }3 g
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" b& Z; E9 s+ D5 _4 |
#else // __SYS_PLAYER_DATA
9 P. T2 }: {* R7 f. I" d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 u( H: ]$ U1 j7 ]* C8 [% {5 u g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 O6 q- |4 b) u/ @9 A5 Q+ n4 U if( m_idGuild != 0 )) }8 F) R/ }+ X$ s8 y7 v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 S0 }# d" ~! B3 N7 n8 E#endif // __SYS_PLAYER_DATA
$ |/ E' O4 w) H* m SetHitPoint( GetMaxHitPoint() );
; B* N4 ?1 {* N, X$ b. K% j SetManaPoint( GetMaxManaPoint() );; [% {$ b0 ? M$ {
SetFatiguePoint( GetMaxFatiguePoint() );
5 Y& Q% y# z0 i/ S if( nJob >= 1 && nJob <= 4 )
" u( J* i8 w+ n# r {
0 z& q# } j2 a$ ~8 R) }4 @ m_nStr = m_nSta = m_nDex = m_nInt = 15;' A' V! r$ x# ?- W& \6 p4 v7 F
m_nRemainGP = 28;
* m9 h3 b& N% Q$ K9 d }
8 y+ L, y; l4 c% V5 D4 f& ? if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# d3 Y& c0 h$ l! V; d4 h% S {
# n% R- n$ B. I, g: y m_nRemainGP = 118;
4 `9 p, [4 d2 | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 P0 w) X! r0 ^! v+ Q6 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ N1 c/ X9 x g, b }* s2 o/ M7 K) `- c: @2 r7 h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& C* [& Q8 r. P; j
{
% _& l9 n" k2 e& U- S1 V CItemElem itemelem;
1 `; Q; d: y$ P) k, E% i itemelem.m_nItemNum = 1;' |) O' S7 m9 P% Q; ^7 {
itemelem.m_bCharged = TRUE;
: k$ p8 A' R r2 ` V7 O BYTE nID;
( z# D6 |& V- g! ^4 J: X* ~2 ~1 \6 e* f6 c1 y5 G
if( nJob == JOB_MENTALIST_HERO )
; r/ [. x& c# N/ A$ d* @6 s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# h2 y. h3 v1 m5 i6 q- Z0 y& E
if( nJob == JOB_FORCEMASTER_HERO )- W7 P% d+ X% y, `( V
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" B2 D( C: Q# T7 c. U; L0 k e5 \
+ U8 x& {5 n7 U+ S9 L; Z ( ( CUser*)this)->CreateItem( &itemelem, &nID ); |% v g( ^$ @
}* J) l% y8 v2 b Z) n
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 c' T6 C# z& R6 p+ s9 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 g! d' X8 o0 M3 J) w- G2 e$ v! \5 f# a
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* i2 a1 T# J, E8 N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; r! R+ \& c+ n9 \1 |! s5 ^- g ( (CUser*)this )->AddTaskBar();*/+ P v8 d: C! Q& @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. a1 v/ B# {0 D$ k" `6 e& {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: y" Y0 w0 h' r2 g& E ((CUser*)this)->CheckHonorStat();8 }" x! f, l+ E- q- B( w5 r3 M+ U
((CUser*)this)->AddHonorListAck();
2 o+ l# B( W! z# z9 i8 r. ` g_UserMng.AddHonorTitleChange( this, m_nHonor);6 p+ c5 w4 y9 ]6 h* |" v4 a0 _
#endif // __HONORABLE_TITLE // ′Tà?% A. J: o4 {0 I5 L- O
}0 W! z- Y/ H! S/ ]3 V# z
#endif // __WORLDSERVER
6 @" `' v+ F- D9 d e* I& [( m: ~) S}
' N( r2 b$ D4 g7 X
F: k$ q& P9 }; k* T然后你进入functextcmd.cpp并添加以下# c, G; k. N8 y' E9 O7 A
" I3 m6 _/ x x! j代码:' c i! u5 ?' f3 V0 q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): O! Q. ?. p7 m4 Q
下面插入
" `2 e: Q/ D0 m7 CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! Z6 u5 A5 \1 [4 f. S6 k
. d {) e6 e5 R1 Q+ M$ J5 M. r, I然后你去) U' e5 |2 ], U) B2 B5 S
7 j5 U) B/ g8 f6 T0 p+ I" r7 G代码:8 Z* |- A% L: _( `6 {# k p7 k
代码4 e3 ~0 x2 l% |) O# e* |6 `
BOOL TextCmd_ClearPropose( CScanner & s )
5 N5 ?6 X! T, D- i- c{
9 l' f6 v! ?4 w1 r( \5 e#ifdef __WORLDSERVER
. Y/ V5 b: K. S6 Y4 Y6 P CUser* pUser = (CUser*)s.dwValue;% ^ S. s) F1 |7 u; @* r* T, k/ ?
g_dpDBClient.SendClearPropose();( i" H @' q! \1 \& Z* e3 U, q. }1 @
#endif // __WORLDSERVER
- R& \4 e8 j2 o+ T return TRUE;
8 i2 I U( D. r: C% D: E}! c0 M9 U F: A2 n% D: y) j
下面插入9 k9 ^* {9 K) j/ `
BOOL TextCmd_rebirth( CScanner& scanner )
( m" h1 x1 Y/ C3 Z$ w% H F$ Y3 X* R& z0 H{
: R1 w, a/ i7 w# T2 _#ifdef __WORLDSERVER
# \* U# j2 m; X6 R3 n( |6 J( bCUser *pUser;
3 X) X* r' i) M1 P) apUser = (CUser*)scanner.dwValue;( v. U$ ?' Z+ E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 _2 h# t% O* I( B5 ~, ]3 z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; B' n+ x8 ?0 ]0 l6 [
else
" `. t Z% O4 T- O; Z' U; tpUser->AddText("你还未达到重生条件!");
1 m% ~0 ]3 ?) g; G#endif* F6 X- `2 I1 V9 `
return TRUE;4 J7 |$ N M2 a9 d7 D0 X
} & O, G1 P( y" \9 y6 q: D5 X- C
* z8 M# t2 I" I9 b0 h, Q
9 f: U/ r! G0 Y' R4 K: d% @, C- E) q( H
: p w; \8 ]6 V# M' t! |) Z
9 X: U% ]9 |6 t W% Z# l
|
|