|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 A) v7 X8 Z/ a, F# r4 w
3 B# E: J% }# F# }5 t2 ^
Mover.h" `0 J' S6 k% ?; ?# [3 ]
代码:
* `) O _4 z; ^ D( f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( z5 D5 p0 A& J6 K, |9 Q/ O
( r4 _9 {0 ?* R: Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . K% t& o* t! p6 y+ ~- }0 `
5 w# E7 A7 _! _" X5 L3 R
然后你去mover.cpp添加$ X$ j3 \& `+ q8 e
! D* i2 p5 T! I( j# f: B
代码:
, N6 D$ U/ E. g8 G+ C% yvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 X" y5 N1 \8 |2 V8 F{$ S4 y0 n8 m5 @
#ifdef __WORLDSERVER4 G9 w" y. ^( K. T, N& p$ E$ J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 _% I) R G' d
MoverProp* pProp = GetProp();
) m# J- g2 x. Q& H* ` M+ Y6 ?" ^ if( pProp ): N$ d* ~* R- R' _! C9 ]
{
% l( q; h/ |4 R' Z4 s if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 Y8 j' [+ b2 p! Q* ^4 Y# i {# }7 {; R3 b2 R8 l
AddChangeJob( nJob );
( c: S8 n( Y9 c* a }else{) k3 O( ?1 X }1 K+ y
return;
) }. a6 k% E* \6 ^: v& x4 U# U6 {! _ }2 u" \% q" A! r: M
int nPoint = 0;
1 H) C- K' j* S0 Y. z if( m_nJob == JOB_MERCENARY )/ Q& p4 i1 B4 M' v2 [
nPoint += 40;: C! C% E2 T) K8 t+ s& D* s
else if( m_nJob == JOB_ACROBAT )
# ]3 I p8 t: H6 B nPoint += 50;% w- p% ^( m/ ~
else if( m_nJob == JOB_ASSIST )9 p. K/ W/ d9 _
nPoint += 60;
' T& J- F5 o; {3 ]9 |- V4 L else if( m_nJob == JOB_MAGICIAN ). p! m- Z3 N9 k6 n4 i$ V
nPoint += 90;2 u1 K& Q9 p X# n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ W- V5 F2 S4 J) j
nPoint += 120;# n1 X2 Q( d) c- u0 B H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- ^7 Y3 ^' ]4 F/ y/ n* E
nPoint += 150;
% a( D# Z: C; x* q; I else if( m_nJob == JOB_RINGMASTER )
6 j1 A& E' U1 C& |: n nPoint += 160;
! n1 A, ~+ u& \7 L else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* T/ B' g# ~. \' g6 G
nPoint += 180;( C& x; m& l- F Z; e/ r
else if( m_nJob == JOB_ELEMENTOR )
& `$ T% P3 g3 s" m- S" n nPoint += 390;
/ O, U" [/ Z3 r! d4 T$ { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! u3 u, O, T. M9 v, x- S
nPoint += 120;
, J( n4 x6 L5 }* F* r |, h else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 c; ^. L8 h1 E( [
nPoint += 150;9 ^! l( a* `1 z9 q% r; q1 U
else if( nJob == JOB_FLORIST_HERO )
* Z# o. ~! r2 N* y# b8 E6 y- p nPoint += 160;
W7 k, m* ?- G. a3 @3 r5 T8 h9 ^ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ c" S f9 R6 u
nPoint += 180;7 n( L' L8 m3 u+ t5 B0 Y$ [
else if( nJob == JOB_ELEMENTORLORD_HERO )( o6 J0 J) @; t* N3 N9 O' ^
nPoint += 390;$ S2 N. V0 t7 H4 A l4 \
$ s! r3 ?. ^6 h' { AddSkillPoint( nPoint );3 j: l) f/ V( b3 R# R) [ G
m_nLevel = nLevel;
1 [4 p/ m4 i; e9 i$ d, o
# D0 {0 Z! o3 W$ [+ B SetJobLevel( nLevel, nJob );
5 o6 w- G1 }; I6 A. Q! v! [ m_nDeathLevel = nLevel;/ V, Y' _+ E( S. L2 B+ x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) f' e3 p5 m# R. X( F k
if(IsMaster())* i" F1 t" O+ F: o9 v6 P# o5 B2 _
{/ V; C+ H/ t f6 [8 X: t% a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 O6 j- i: Y+ x7 r
if( nLevel > 59 && nLevel < 72 )
6 C1 V6 q. s* X- ~ dwTmpSkLevel = 1;
( E% z2 E8 {4 c8 M' j6 ^! n) R6 I1 J else if( nLevel > 71 && nLevel < 84 )6 p" b% O/ `% L) u( D6 m5 P
dwTmpSkLevel = 2;/ J0 v6 I; Q8 Q5 M) I: X* `( F
else if( nLevel > 83 && nLevel < 96 )
# K" R# V4 X9 o7 j* `% r dwTmpSkLevel = 3; @ M. P7 Z& o
else if( nLevel > 95 && nLevel < 108 )6 `/ @3 O: ~2 ^$ N: ~
dwTmpSkLevel = 4;
' d5 c8 I- ^/ Y8 h8 s else if( nLevel > 107 && nLevel < 120 )
" u* Z3 T1 p. p9 [ dwTmpSkLevel = 5;# ^( w1 W p# V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- C, w3 Z8 e3 \ i/ n6 U! p& ^ { $ E" m" Z4 U+ I' J% _; v
LPSKILL lpSkill = &(m_aJobSkill);
0 q7 O) O: N" k if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ W6 h# m% O; v* ?, d5 b, W {( O1 C t& _$ i% k, ~* a8 i! ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , e/ F$ D3 @, k* M) w
if( pSkillProp == NULL )
/ b7 |( F0 z" I2 t! u, M continue;$ z6 F/ b8 N% m( D! y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 F @- `5 \. ` Z* Z continue;
0 m4 Z, p0 f3 `9 i lpSkill->dwLevel = dwTmpSkLevel;( o4 a7 n4 ?) |. i$ B% T2 l7 |& J
}
! I0 Z e: t% }; X }9 ?5 Z- j# F' u5 {; a0 S) P
}
9 l+ u! ~% ?, K& u# o& | else if(IsHero())
! M. @- B! p3 i9 s* H9 a {
) Q1 M' u) |1 B4 t for( int i = 0; i < MAX_SKILL_JOB; i++ )
( F' k6 p* ~0 @$ { { , `, X3 F4 r! r
LPSKILL lpSkill = &(m_aJobSkill);
8 [" H0 z# F/ x5 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
! a6 ]- y; r0 j7 E# ^ {
3 J5 M+ n6 W4 f# W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : C( l( P W2 C+ P
if( pSkillProp == NULL )* p! N3 l, K$ z9 l
continue;
7 z9 q% j0 B4 N5 @+ M: H9 Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 l) X) O5 L m1 X* B continue;
9 O( u" ^4 s% k- X. s lpSkill->dwLevel = 5;
% ?) N- o5 L( `+ C9 Q; ^$ l6 ^ }5 S, \# ~- y% z* c
}
( d# k6 l, s4 _ }
# @# u9 {0 w y3 B else if(IsLegendHero())2 D/ o- X1 C% U/ K8 l% P! e* l* R
{2 @, _7 f; c5 n% W! f8 T$ T. u( p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) n& r. t% ]4 ]0 @2 S {
. n" {( O r E! g3 L$ d LPSKILL lpSkill = &(m_aJobSkill);& S' K' |0 o9 E3 U, U2 D$ p
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 W' {: w+ S" n) h' o$ v
{, U" m9 c/ V- o! i5 c! U5 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ r% c$ R$ q( O- E8 }$ W1 {
if( pSkillProp == NULL ). w/ U( t$ w0 Y0 ?3 }! P; [# \& c/ y
continue;# O* E; A# q5 f$ C9 N, ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* R. s% H! c- A1 Y- `, b+ P4 B' L continue;
6 z- {" E( y' N: y7 | lpSkill->dwLevel = 5;( k) v4 H! r5 G% F
}' S0 B4 ?3 L [+ L5 w% K% C- M
}
# J3 O3 z3 V1 y# u. O( B' H }
- b. z8 U! |3 f; p* ]! N$ ?4 U! w$ V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans z1 w' h! f2 I3 F$ Z
if( bGamma )
; ~2 C3 H+ p1 Y# {+ g0 k4 r1 |3 Z( W {. Q* B7 p) B; y# C1 u5 |+ c+ Z8 H1 O
m_nExp1 = 0;9 g2 g/ Q/ J) Y M$ t6 h
}/ R% g, L& r. s. I
, {! j4 Z$ A4 p' @. h ( (CUser*)this )->AddSetChangeJob( nJob );# p4 E: I) w& _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 |$ b2 s7 |2 u% R9 \ w6 E$ T7 t3 p: T- X* L
* W: f9 H& ~5 z#if __VER >= 11 // __SYS_PLAYER_DATA
" c* M" [2 |) y8 v: Y( L$ j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 p2 R2 A+ J8 O
#else // __SYS_PLAYER_DATA. `2 j3 w# x$ H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 W- j L- ]9 W9 A* T2 I- W
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. ` y# h' o) p" m9 j6 J& y' H if( m_idGuild != 0 )
8 o# } X2 u7 G1 r g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% n3 E5 [ O3 `1 _/ J2 H2 S1 {
#endif // __SYS_PLAYER_DATA
' ]2 Z2 _/ Z G1 q9 H SetHitPoint( GetMaxHitPoint() );7 ]; H' N: X& O% z$ z
SetManaPoint( GetMaxManaPoint() );. H$ }; Z; S( y0 ?: l3 c
SetFatiguePoint( GetMaxFatiguePoint() );# h) C* {* g! A p2 ?
if( nJob >= 1 && nJob <= 4 )1 n/ b" b: j7 d8 S f, ~! c; ?
{
; D( ]# s" ]- [- z0 Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ h/ b3 k' j' l4 _ m_nRemainGP = 28;
' l N) v9 j& I% ` }
7 J( c4 @1 F1 ~' G9 J u+ M if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# U$ j5 e2 b$ \: L- `
{, L* ?0 i+ D/ f- }
m_nRemainGP = 118;
5 y& n" ]" v% @0 u# ?8 z/ h //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' Q5 ^* `) q3 q9 A m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 B u' V5 G0 i/ I& w" X }
j8 C/ j. W: N7 G( K: b( @8 Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 v, a; ~4 p$ U {
9 [6 b c$ x g8 J- { CItemElem itemelem;* [+ x2 f/ S! m* _, y& h: Z* g
itemelem.m_nItemNum = 1;
% c, t6 \) A1 e2 c itemelem.m_bCharged = TRUE;
* [, p1 U4 O& R BYTE nID;
. x/ N7 e0 t) i4 L1 J" U A! U( H: N# y/ C" g
if( nJob == JOB_MENTALIST_HERO )$ l- R$ h: | l8 r1 |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 Q) A/ T% V: y5 G+ h& n6 k
if( nJob == JOB_FORCEMASTER_HERO )
- q; w6 E5 J L$ K' j( [2 U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; r7 |8 d1 H) Z6 @
/ {" T6 f- F8 l- ^' W9 T8 n7 p, J ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( T- d) l( r& G& q2 B }
. K) [. R" w" T6 U5 N( i( @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) R8 P3 G a( {* u; L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* ~9 h- Y) F; f6 V# \5 c$ J
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! E' K6 {/ u9 x" C" n; d- ^) n2 X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" h9 U+ P5 a* X e, h
( (CUser*)this )->AddTaskBar();*/: \' F" h& A% V+ P$ E+ O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 _6 J/ h: r% H% T" x#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 _+ _ A! h+ H! W2 o
((CUser*)this)->CheckHonorStat();
' Q! j9 O& Q, v/ D9 X- [ ((CUser*)this)->AddHonorListAck();$ _9 @- N* B$ f. Y
g_UserMng.AddHonorTitleChange( this, m_nHonor);! }# B: D0 ~4 ]8 t* }1 K7 d z( U
#endif // __HONORABLE_TITLE // ′Tà?6 O! k- J, @. n
}
" p# D% A- V" S0 l7 k#endif // __WORLDSERVER
% |5 _0 b2 W5 u}
) `3 v8 ~9 F) c$ \
1 g1 ? v4 k. F6 E3 o) f然后你进入functextcmd.cpp并添加以下 V- a. n& _* @7 w# c" b
) m" c+ Z# x& K& L7 q$ h2 B5 T" u
代码:
% v0 c) K! r. G$ YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 h7 p! K5 j' | t4 ^/ u) J下面插入
: a+ F; K, }8 G, \8 Z2 h; SON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ |) g% h5 a- u* q/ V4 P
: K1 S& {; q8 L8 J然后你去+ k ^, D: h4 h& W+ o
; x' k9 k0 w9 m9 W
代码:/ Q5 }" z9 k/ L1 I
代码/ [+ _0 Y" i" M1 ~5 ^
BOOL TextCmd_ClearPropose( CScanner & s )* V( P$ e7 ~0 n" v3 B
{* j; J, G( ?& w0 ~" u8 m
#ifdef __WORLDSERVER
2 G" b$ @( ~7 t4 `; B CUser* pUser = (CUser*)s.dwValue;1 A% e% A7 x: f
g_dpDBClient.SendClearPropose();/ G) t& R0 {6 `7 ~3 [4 N9 f$ n
#endif // __WORLDSERVER
+ |7 u1 W2 G; E" P; P( y: e return TRUE;# d- l4 x" N; |- {9 U# h$ c
}
. n4 [: r9 m2 I, H5 I下面插入
4 H" i, W, i. wBOOL TextCmd_rebirth( CScanner& scanner )6 z7 n) M- p3 S" l: u
{, y; G' s* o4 f7 ]4 _" ?
#ifdef __WORLDSERVER
" k( k) B# h. S6 H! c: D8 v" n6 gCUser *pUser;
. N5 z7 Z. J3 v8 g1 |: LpUser = (CUser*)scanner.dwValue;- d8 u8 T% ~- w) G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ D- r( w. \! N# n# V6 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 Y0 h, \- K) T0 b- Y8 u+ oelse
) F4 w7 J4 {9 J7 W+ `5 TpUser->AddText("你还未达到重生条件!");- I1 r# T+ `& u1 V
#endif7 g( e2 Q1 [, W1 k% e/ q0 L
return TRUE;
6 s7 |. w+ ^5 q' Q9 m}
1 `, g" v1 a# f) |) z9 X8 K
6 U- r" L7 B1 m) q1 }0 h; I1 d/ Y: e+ D1 f n& f
: m0 U# C$ B0 @3 ?; C+ g9 T3 Z
^2 L6 e% k$ z! L3 y, V |
|