|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
) p; U" X7 w* I: N1 t$ v2 }4 Q
, @* H% Z7 x% m/ F0 u( T; G+ }Mover.h; d8 G. p: }) @% Y1 o& p. c
代码:
% O6 H3 F$ @0 @; p% ^0 W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# t3 a- F p+ p5 p
/ e4 }1 g/ b; o) ^" d: D: ^- s5 G! R下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 k3 k* G: ~, y M k1 }! `7 P0 g8 z+ l$ Z7 Q' d
然后你去mover.cpp添加
9 ], z3 {( q% s
: i& }5 B, b! A, I* d4 ~代码: k7 S( H' u- V, ^: M9 v" a
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), p" z2 Z" D& T6 k. q* F! N; G8 J r
{
+ `2 ~2 X5 f2 U4 C0 L, M#ifdef __WORLDSERVER
$ ~- k# v' a) q6 H) x+ _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
% j7 C8 B2 `. c8 t" z$ j" C: X3 c MoverProp* pProp = GetProp();
% M1 x9 X6 W, D; O if( pProp )8 D. l6 T' K/ d, W
{9 q! p; ]. e4 Q& R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 F9 O" @4 T5 X2 @# g, P$ D {
, j0 j3 f; X( I/ O" U$ L! w AddChangeJob( nJob );
/ h+ G- D8 ~5 d& G/ @ }else{
# W" M! j& t+ O3 M$ b/ x return;
, p. L7 ]( y1 s6 {) s: i2 j* d: ~9 O }
; q" U5 }+ \9 N/ i; N" {' c int nPoint = 0;
/ B& j, \* @0 ~" L2 d- j if( m_nJob == JOB_MERCENARY )+ u. a! q3 k2 ], \+ s% C
nPoint += 40;
: |$ M* _# ^- @. W* E( i else if( m_nJob == JOB_ACROBAT )% E# K) U3 k+ i' _& M
nPoint += 50;' c7 q. x& J3 Y7 k! F: i' c
else if( m_nJob == JOB_ASSIST )
I' k$ N' h( s6 t! C6 q nPoint += 60;/ ?( ~$ U) B, y$ g4 t" K3 E
else if( m_nJob == JOB_MAGICIAN )4 [/ c) N: R$ ]0 v8 e# M/ S+ j
nPoint += 90;
3 Z" i6 d3 R3 z3 q' o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( Y- C4 u/ ]4 k1 ~) `2 m0 l
nPoint += 120;
, p! {7 M. Q+ N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* q+ Q; F: o! o" b/ } nPoint += 150;2 J) R% m1 Q p& ]: q
else if( m_nJob == JOB_RINGMASTER )
2 N& L! g0 p; h" c1 X1 t! G" y nPoint += 160;
/ A7 U- j8 s* y) M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ R4 e, s3 A$ r* N( T% S* x: s. D
nPoint += 180;
8 z# ^/ Z6 {4 K; B. z. m else if( m_nJob == JOB_ELEMENTOR )3 D4 e- d. @9 H6 Y/ x e
nPoint += 390;0 P) {- S, k/ [ m
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! e" C! X: q) [7 p. i
nPoint += 120;
4 K4 b' D) V5 A! y% w) R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 p/ e: N: H, R/ p+ j h! H
nPoint += 150;
3 u7 {; \# ^4 G) q* x( F else if( nJob == JOB_FLORIST_HERO )
2 U# |; G' E* T5 o: ]/ s3 I nPoint += 160;# n8 ~* r7 B* k6 Q5 ~- ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ k* U# E9 C8 R nPoint += 180;
. ^% @8 u7 T0 N else if( nJob == JOB_ELEMENTORLORD_HERO )8 @5 i' l6 D% R3 A" W+ w
nPoint += 390;
6 u# M8 e1 m8 e: M2 b& G( S/ x! j* K( c" ^. H: W- r# v
AddSkillPoint( nPoint );
6 b+ V# ~4 ~3 D5 r( A m_nLevel = nLevel;$ l' i7 n% P! r" H1 d& Z/ `! f$ z* k
: E4 l/ A; i1 |. T! k Z
SetJobLevel( nLevel, nJob );
3 }0 j& l% g; R/ A, P: R5 s8 G m_nDeathLevel = nLevel;
. G. n3 t# s7 E+ j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* ?% }/ A9 w4 V1 s7 G$ K9 Z if(IsMaster())4 X; h( ]3 t, h6 b
{: M* B9 c. K2 x9 {( T
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" F0 L: Z( Q7 B- a/ {' _" G5 [" |) C
if( nLevel > 59 && nLevel < 72 )2 e0 F: r0 Y% L& l. a' X
dwTmpSkLevel = 1;
3 K9 G2 Y; y1 p# P+ j7 p U6 E else if( nLevel > 71 && nLevel < 84 )7 }0 W! Z# j5 b1 W$ i6 O& ?4 t
dwTmpSkLevel = 2;2 s8 t1 q; e C5 ?5 h2 V
else if( nLevel > 83 && nLevel < 96 ) P5 O( V; b* m$ K& |4 g
dwTmpSkLevel = 3;
$ N8 V9 m/ u4 a( D% d: q4 @ else if( nLevel > 95 && nLevel < 108 )5 U/ C9 n( f; s
dwTmpSkLevel = 4;
& w" [' Z1 u% x5 M2 G else if( nLevel > 107 && nLevel < 120 )
+ e" J) u3 @ e1 M3 I! | dwTmpSkLevel = 5;. n( w0 F( o; W U3 [. s/ t
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 { r7 Z8 J/ d! {/ K
{
6 l: E+ P& T- l5 F- J LPSKILL lpSkill = &(m_aJobSkill);
7 c: Y! q3 X& M# k7 {3 o) j if( lpSkill && lpSkill->dwSkill != NULL_ID )1 g: t0 s1 ]' Q \
{
. a. f# }" q3 H! y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' w2 Q+ `1 q+ H1 O8 m) n
if( pSkillProp == NULL ). q5 q& v( C5 \% `; \7 C
continue;
2 F/ [6 j4 Y! ]% q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 `( q% U8 d; C
continue;
* D2 M& A& {# W* W) o M lpSkill->dwLevel = dwTmpSkLevel; b0 p3 E% h7 P k5 }9 u3 H
}1 S9 q: k! `7 ~. f
}( C _4 g: R$ M
}; w8 G0 O! l( H* }
else if(IsHero())
* D+ _) n% ?& ]) J6 V {
- u/ C7 G/ t3 c8 t x2 ^0 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' F% t7 w5 t; \$ w0 _; G/ a7 G
{
, ~ L; E" w( _" b4 B LPSKILL lpSkill = &(m_aJobSkill);5 K& X9 C- ]# A M' g" W5 o: Q3 q& @
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 t4 ]; y- f$ f1 z; H$ @! U! T: J
{+ X% o- I' T7 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 V* {) A! S5 Q9 K9 M2 n
if( pSkillProp == NULL )
, O8 b8 K n) d. Y0 @ continue; b: M3 H* ]# o# [, @& l6 I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 [0 ^' i% b! }7 l( p
continue;3 H) U- k: g! n
lpSkill->dwLevel = 5;+ o% K2 V( l+ m$ \0 F# b5 s
}
0 V( b% t% d, U# R) [! y6 ~- N } q% R& n: d3 `
}
3 z) w- _$ @$ m( e; Q else if(IsLegendHero()): m. p# ?3 H: u. _' H, `9 u+ J
{
' M8 M3 _% b- Q+ E5 p- H for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) l% Q0 H! ^& c0 U7 n
{ }5 k7 h: ]) t- x6 \ I
LPSKILL lpSkill = &(m_aJobSkill);
7 J N$ i E8 q! k) } if( lpSkill && lpSkill->dwSkill != NULL_ID )+ d' `7 H/ d* b e) [+ C% z1 e. R
{
0 j4 n9 {# V- e9 Z" I- H! Z9 v' [6 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' P( d: X" E' t& t if( pSkillProp == NULL )1 K2 A1 y0 E! R# J/ }
continue;' @3 ~8 b. H! D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 k0 q# H5 y0 t) u* ^
continue;$ D2 W: \* [/ k+ H
lpSkill->dwLevel = 5;
: j8 V; c6 w+ ]5 L* @ }+ p5 S& C$ h+ P
}/ n% M& w% y; V! s
}5 N, |4 a" {( g$ E/ x
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* D: B$ y3 g+ n8 Z1 j! }; v5 {
if( bGamma )6 `- L* k# E$ a$ h% D5 L
{
' I v' N, y0 v m_nExp1 = 0;7 v' `6 }5 W& K' W/ O$ K0 b
}
, S% v9 I) T4 y; u p
, q2 D i7 b/ f$ r, ^1 Z ( (CUser*)this )->AddSetChangeJob( nJob );# B8 N" X5 ^+ u' ?1 ]/ z' N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& {7 O3 E3 f8 P9 a, g7 \
& R5 A. i' D. _1 ^
4 O$ x' Q3 j& x; n' L' o#if __VER >= 11 // __SYS_PLAYER_DATA
$ F, z: _6 T1 B4 e1 m$ J g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 m' [" `: R9 ~
#else // __SYS_PLAYER_DATA, f/ d; |( Y E- ~! S8 W- N" L M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: j {) ^; M. P; F7 D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- s- p3 ?' N9 c1 I* N4 D) { if( m_idGuild != 0 )* _3 s" j0 c* M2 f6 s0 q2 y9 O
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ X# l" t% o0 S" I. j* Q
#endif // __SYS_PLAYER_DATA( E0 l! j" _5 l: M- {
SetHitPoint( GetMaxHitPoint() );
2 @4 ^8 M6 ~" e3 e3 f SetManaPoint( GetMaxManaPoint() );4 Q' ?/ X5 ~) s2 n$ v
SetFatiguePoint( GetMaxFatiguePoint() );
! H) w8 a6 s$ |* j' z" \: ?7 ~ if( nJob >= 1 && nJob <= 4 )/ H5 z" i4 M1 z* P$ [# Y
{" r& n: H) m& b7 D4 Y' [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) C# ^& T0 F/ S& H& c2 \# }2 ^! C3 I m_nRemainGP = 28;
' ?/ z, e8 z+ w, f8 n* Z8 i7 z' c }5 l/ r' ^7 a& I9 [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 N. d s8 c3 s6 ?
{, U2 K) ?- k( U9 j, R8 E
m_nRemainGP = 118;6 Y& V- o. j! D3 h
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 L0 ]. u3 k D7 Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
! j6 x9 G, t' b @* ~! O* L# Z }
7 _0 d3 h2 ^8 t1 ^; | if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' J9 q8 k/ `, A$ c {
+ g1 J3 R! }2 R! h CItemElem itemelem;( B' {) N# w3 c
itemelem.m_nItemNum = 1;
( c9 E" |; \! ?2 ]; O itemelem.m_bCharged = TRUE;/ Z8 Y, e; \( z% l
BYTE nID;4 V% l) O( G) L* S
0 @; ~/ O5 n. _/ Q" f, E) {: L
if( nJob == JOB_MENTALIST_HERO )
3 t9 V6 e: Y- @" _% T3 l& ] itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( Y: k9 k0 p# F
if( nJob == JOB_FORCEMASTER_HERO )1 V/ D# m/ P! q7 \2 i Q8 ^6 f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, ~3 E' h6 \; P
! i4 _4 g" }4 {: t N: f+ G u ( ( CUser*)this)->CreateItem( &itemelem, &nID );
; _. n$ Y7 R* A, {" G# J3 m" E } s+ w, q# j, t5 C' d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 o" @0 C3 B4 s, T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% B; ^. X$ m6 b* ^& t) U
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 B" }, R* V* Q- I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( s/ ~! p' I6 f# _7 c* J9 R6 V* H
( (CUser*)this )->AddTaskBar();*/
1 c1 T# J! @" G A4 H5 A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ K, h! J0 `6 ~5 U% L#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 n( c" N( T! V
((CUser*)this)->CheckHonorStat();
' ^: e6 P, ~6 {# F# a ((CUser*)this)->AddHonorListAck();
" g% t& U( g1 _! W+ E% v$ m$ F g_UserMng.AddHonorTitleChange( this, m_nHonor);
# M1 b, j/ v+ d3 X# u$ E, j+ |6 Z0 h#endif // __HONORABLE_TITLE // ′Tà?
, _5 J0 e6 x# ]/ }$ p E: c }4 ?4 s, |" M' T0 _' }
#endif // __WORLDSERVER! c! | J/ G) p6 ^! }3 z* Z2 c1 c5 t
} ' Z a( f7 v( D4 N0 X5 ?
1 G1 N f' O+ @' k, {然后你进入functextcmd.cpp并添加以下
4 ^* U# q4 q& _( {# e! o3 X1 f5 `: D6 q7 }& P% k
代码:
& A# P; d, v; r7 s! UON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
. {7 e8 y; S- A- H S* z0 l下面插入5 `, L. _. c8 }: q% k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 r8 e! u* a* U! ^: N+ a: ~! i. L$ w
; L/ I) _/ b% X% o# f6 K- M3 r9 x1 }
然后你去5 u# m1 N: H7 h. \
, n. o B& q& R+ h4 F代码:
3 S: H, w: p) E Y. C. j- I代码
8 O( P# K3 q1 m& [: \6 UBOOL TextCmd_ClearPropose( CScanner & s )
$ O5 c2 m0 W1 f5 x( X7 K0 L. z{) M9 Z ?5 s5 D/ o9 k$ o
#ifdef __WORLDSERVER
+ [2 A; ^( k& l( Z CUser* pUser = (CUser*)s.dwValue;3 |* N& Y) {" W( V J
g_dpDBClient.SendClearPropose();
) @1 r) X' F+ {( s6 v" D& d#endif // __WORLDSERVER
2 G2 k$ t7 A$ C, ?% D% ]0 W6 J return TRUE;
/ G# X: n2 ]7 `: Y" o% z% O1 d- m}1 u- S' G `" k) y& t4 Z, V
下面插入2 |: A; n0 ~9 e- p: v: _$ V; l
BOOL TextCmd_rebirth( CScanner& scanner )' j" \/ m# a, n: {1 }' B' _( G2 w
{3 [0 p8 a6 K0 n1 B( T$ P6 a
#ifdef __WORLDSERVER1 X c) Q5 ~. U
CUser *pUser;4 c% @# c; _4 f4 ~. M1 }+ P3 M
pUser = (CUser*)scanner.dwValue;
1 h& ?4 t. K5 N- Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. {% g# B1 A5 E& Q1 EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 _1 i4 ], _9 I5 y$ y) U* Q) l V( K
else( i0 C6 i0 O8 k+ y, D* W: |
pUser->AddText("你还未达到重生条件!");
; b. k# z) G _& m4 M4 o#endif
8 `9 i2 P9 s' @5 Mreturn TRUE;9 G$ w ^/ u9 G7 }9 e" F
}
$ P+ B; C! l% T+ u3 U7 _" ^0 t! H+ F. {7 {2 X
, b- y" U% j/ l! P) r4 e- p( Q m7 s) J& r
/ ~* [2 I+ C0 P% z3 t4 I8 T- S8 Y |
|