|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
V, `' r0 x% g3 S) ?5 I; E0 g
/ k4 q3 }6 a. N2 RMover.h# [% o* R! f3 Z; C* Q* r, {# e: X! J
代码:. i* F! L2 O1 K: s8 `6 X
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 J, b1 U! J% ~! S* |+ ?9 b
$ [ i3 B; u" x* |3 a' u下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ H5 @' ? @$ u$ w& T
4 ] L* p" l+ x+ }' j7 \/ H
然后你去mover.cpp添加) R/ {' u5 e8 Z' v$ z- j: ^
v% ]# }& D% q& }+ r: }, Y; U6 H代码:: u( |3 v* t3 |5 M% J `- M+ n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 L+ S" d' z# y7 ^3 }: p; }4 s$ u{
3 w# w( n) C; k/ n#ifdef __WORLDSERVER) j+ N/ u8 Z+ G# {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 {1 x5 `6 Y. z! \ MoverProp* pProp = GetProp();$ c$ Z3 i: j" Y- t8 E* P# P
if( pProp )
: ], Y* j0 @4 @* h% b {6 V" y l1 ^* ]/ Z7 I
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 N9 b. \& h. ~ G; L; C- j
{
: ]* Z3 `7 r4 G& ?6 Q1 n: v/ ]0 ], U AddChangeJob( nJob );
& {& }! K. l/ w/ F6 ?2 l }else{9 T- |! c9 ?2 o+ y6 v5 M
return;6 n( M6 ^4 Q h
}
$ `9 v& _3 M% l; w: k# p4 N" h int nPoint = 0;
/ _+ P9 O# G, y. P if( m_nJob == JOB_MERCENARY )
- C! ` W; e2 x$ L nPoint += 40;& G2 n5 W' P& B5 d0 U& I
else if( m_nJob == JOB_ACROBAT )1 h) n8 [$ r) ?! h4 x
nPoint += 50;# h. ~* s& [# s- L" M
else if( m_nJob == JOB_ASSIST )
$ B6 {( C4 Y8 m9 K nPoint += 60;
. R* R. Z! @( Z- s else if( m_nJob == JOB_MAGICIAN )# w7 z$ h m, \; P1 A' S( M
nPoint += 90;
. E4 b! z' E) y9 i% [1 R4 j: T5 n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 J6 z5 K/ s7 l" n( o nPoint += 120;
9 b" j J, E2 k! u$ F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 Z/ C: R# q7 x- h' f/ R, q& m nPoint += 150;, B+ E9 Q# V$ T. y) C- W% K
else if( m_nJob == JOB_RINGMASTER )
% r) V6 {0 h5 ` Y- V; `, D! Q nPoint += 160;
# A( x9 ` y. a; ^* c9 u& L) l; C else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( Z2 |3 m) n4 p/ S
nPoint += 180;
. o4 | Y* }+ z5 q# d( Q else if( m_nJob == JOB_ELEMENTOR )
# N) L9 Z9 @$ H0 I- L" p( O- o+ | nPoint += 390;" y1 |% s. ?; W4 ?7 o9 \
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: t% C) U8 w% g- k0 q nPoint += 120;
8 M2 ^" F/ S$ Q) h else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); r) a6 ^; p$ L: z* U5 z* ]7 N
nPoint += 150;5 {! W2 g! |% e* q
else if( nJob == JOB_FLORIST_HERO )1 B1 ]! X) f7 Q, ]4 f5 {
nPoint += 160;
" \9 j4 r1 l4 w# c" K- s2 \( s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' F7 J$ V5 e0 D$ ]' Z2 `0 o4 B
nPoint += 180;
7 F; o$ Q# P8 d else if( nJob == JOB_ELEMENTORLORD_HERO )7 A1 R0 s/ x& c
nPoint += 390;9 ^, W. T; W& `5 L: a: O$ ], |
- K# ^" z0 x" A+ U1 M" h
AddSkillPoint( nPoint );2 s. J( _" @9 L
m_nLevel = nLevel;- q$ g) Q, F' I$ U/ Q$ ]; e9 T
% T" S) q% B. g SetJobLevel( nLevel, nJob );/ L% D$ P, y! ^ _
m_nDeathLevel = nLevel;
+ K$ j* e7 R/ [4 k5 K% {( d* T+ X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& @/ a( }% M7 B% v% T$ b/ |" K
if(IsMaster())
* T, z9 C8 g: ^4 e6 n& h# ^% s {" X1 A Z/ S6 j1 S
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 k5 z* F9 B. L9 A) N
if( nLevel > 59 && nLevel < 72 )
5 y) |0 L8 ?) U. X6 k* ^ dwTmpSkLevel = 1;
- S& ~# S* i$ J* j" Z" v+ V2 f else if( nLevel > 71 && nLevel < 84 )
* {- U/ `; ~6 d- p! z; y/ b2 J* k dwTmpSkLevel = 2;
2 S" [, I9 k1 H6 t, X' Y: F; I, p else if( nLevel > 83 && nLevel < 96 )
& d1 [# h- D1 H+ G dwTmpSkLevel = 3;
) f& s1 e; V" m4 F9 f% J/ t7 r else if( nLevel > 95 && nLevel < 108 )3 |% ^. M$ f- w3 ]( }+ ]
dwTmpSkLevel = 4;
9 O j, q7 d0 @) e" t3 a! ^ else if( nLevel > 107 && nLevel < 120 )) ^& r% \$ m4 Y! O
dwTmpSkLevel = 5;- {$ f" c; Y) B, B: H6 D
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & s# [" h% w6 H6 J6 ]% a6 y# ?# J
{
E, ~1 Q; a. x( t( o5 X LPSKILL lpSkill = &(m_aJobSkill);
+ ` Q' _; x6 e& P if( lpSkill && lpSkill->dwSkill != NULL_ID )3 f( p& u8 w6 e# M( s; l9 v
{
) {% W6 Y/ u9 y4 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : X8 v" G) _6 L0 O! O% ~4 w2 d
if( pSkillProp == NULL ). n8 l# }* `) A. b1 H" B3 h
continue;
' I. G$ V6 b$ @( x* s9 Q' l8 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 z* c9 }% p6 b: F* I( |
continue;
6 t9 X3 h, H; {! k lpSkill->dwLevel = dwTmpSkLevel;
$ U" F& B6 D1 ?9 f) l+ i0 R4 b }# |* [5 _! t6 g5 X
}% U1 [* ?% l( t% o
}
2 h3 R. A. ]$ v8 k4 @5 c* @+ ~ else if(IsHero())
7 P4 A3 e8 R& l: b& C' t {% C% B$ |7 q1 t# b0 S, Q p1 \, j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . z" p% P% f. O3 H( H. O+ ?' Q
{ : J0 @9 Y# q$ r: g7 V5 M0 u8 K
LPSKILL lpSkill = &(m_aJobSkill);: A: u/ ?: n: {, p& K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 R! ` F" |; g( R; r) j8 F! Y6 @* I {
6 ~& L- [8 b# R3 b1 Y6 z1 u6 I8 N& K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 A$ R8 }, k M5 p/ U1 c9 A/ S5 ?2 ~ if( pSkillProp == NULL )3 [4 Z- T' V q' U
continue;
% N# G' f# S* ?/ N& a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 P+ S4 |* ]+ u: f continue;
: b( q# b) X- g- b& ^6 w" L lpSkill->dwLevel = 5;7 ]1 J! M' J. t8 t" [; l
}; ^! o* Q1 b" k! E2 J9 b4 {+ C/ V- A
}
$ ~( G y2 a0 g$ N; x( { }
1 S8 w) T7 F" A0 {! ^" P. j7 | else if(IsLegendHero())
2 Z L# M) p4 F' F {5 M- m$ `- W+ K! J6 |3 R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & V% m4 J% L3 b9 q3 ?
{ 1 U- [' x* s$ W
LPSKILL lpSkill = &(m_aJobSkill);2 ]# D" U3 X+ _9 D) `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 Q1 J* E. n4 _/ Y% Y0 C7 T: X {
3 ~* v4 y. i/ t Y4 O3 C8 N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 Q1 x1 O0 Z4 V" `3 { if( pSkillProp == NULL ); a1 P9 l! [, d$ b, n0 c+ l
continue;2 a7 I% t" G( v2 n7 X$ F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 P: Q& y' f; l continue;9 i* r0 q- \( t3 @
lpSkill->dwLevel = 5;! d( G! h9 ~3 O( y- F
}1 b3 y, V9 g y% @+ v$ |' [
}
3 w* v! m& D& `- } }% [+ S% [" _6 d: ? d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 t' s( m8 l2 m
if( bGamma )
+ d+ N# \7 n0 O6 K; y7 o6 k7 p {+ Y. v- w5 s4 r, w- v }
m_nExp1 = 0;
# J: Z* t) ^; Z }( U. i+ i* C2 d6 ^6 {
( V$ O; w, ? j6 X" }
( (CUser*)this )->AddSetChangeJob( nJob );. t. d: a; ?- j8 K- O/ O+ R$ a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# D( | H( P2 Y! n( I9 }
M- l5 v9 @' c' \* t Y+ B" U5 B
#if __VER >= 11 // __SYS_PLAYER_DATA1 c( s; A9 Z) x7 W" d1 ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 ^0 |6 t- I m3 _/ {
#else // __SYS_PLAYER_DATA4 O; o& E- T9 l' ]8 m. C5 n; o
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* D( ]) W4 ]8 h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, S- g P0 S+ D: f' V2 { if( m_idGuild != 0 )/ ]9 T) ?) {+ U; ~- P; V6 @% v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 B" b& L! c0 ^( ]! I
#endif // __SYS_PLAYER_DATA
7 b# V1 _0 V7 t8 b/ \, Y- J; V SetHitPoint( GetMaxHitPoint() );1 f \8 D8 t3 Q
SetManaPoint( GetMaxManaPoint() );1 b' B5 u2 [/ T+ q; m: G
SetFatiguePoint( GetMaxFatiguePoint() );/ B3 B! P$ [, b% `: o
if( nJob >= 1 && nJob <= 4 )
2 L! B# L6 W8 _/ O( `, D8 j {% N. t. W- Z' ^9 U) U7 I6 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ a9 u) \ B/ Z0 s" _+ A m_nRemainGP = 28;7 G& P# i/ q0 K9 j' _ l5 u6 B! C
}* O0 n, J8 z/ I+ Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 j( G: B5 r2 G6 X {
- o! |4 G- d5 _; I$ g, x; a. I m_nRemainGP = 118;% o( w, ?3 \: L* `8 R0 l4 i! a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 n; |9 O# c$ |9 t6 C' J) U m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 z% Z: a* ?. o" I }
& o6 u3 Q R$ Z$ h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 K4 x0 u$ t* w' ~0 M
{$ z3 h' ?) t- |' ]% y/ n
CItemElem itemelem;
3 f* }! v. a5 ^: W) U9 _6 n itemelem.m_nItemNum = 1;. p" _+ M3 m1 k/ Z
itemelem.m_bCharged = TRUE;2 J0 C/ {9 w3 Y4 H& @4 w2 V
BYTE nID;# p0 Y' d4 R0 g$ c- a
( }! s! Z# k k( g+ F" w1 I$ @ if( nJob == JOB_MENTALIST_HERO )) m* ]: v5 @9 x- ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- ^6 X- @) O; Y2 {3 M" P% i if( nJob == JOB_FORCEMASTER_HERO )4 ], v4 q' x. Y8 U6 X8 D( u% N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) R6 ~9 L% y& p& w) @) w
/ i9 U" Z0 [/ i4 Q# o
( ( CUser*)this)->CreateItem( &itemelem, &nID );" A6 ?; c- i7 E9 q5 s- K8 |- w
}
( D1 u; O' P; ~/ x% P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# L Q+ k$ H3 Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' ^4 x- m e( M% f5 T& j8 p* D" G) Y# y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ n' F! X2 E+ H0 T( K4 _( N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. C7 R z: A- ~
( (CUser*)this )->AddTaskBar();*/
! F7 @9 Q4 d4 a' @( f# y# N/ J- m- V5 p ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; C6 `4 n! A/ J
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 v% N, f9 Z3 x
((CUser*)this)->CheckHonorStat();
1 G7 Z/ d; y1 r2 e' G ((CUser*)this)->AddHonorListAck();
, S! L3 b0 `$ K- `* R g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 G$ f W" ^4 f0 Q& r#endif // __HONORABLE_TITLE // ′Tà?
7 ^& c6 q5 f4 ~* y- n% [ }/ j/ x# N# Y6 l& A
#endif // __WORLDSERVER$ `# j; P& o, V8 o6 W- \
}
3 X8 D n7 q) N( D6 J/ a/ \3 g) s: Q+ p, P4 V2 P
然后你进入functextcmd.cpp并添加以下6 C1 m0 g! }3 g$ C
- C( j0 l5 ^9 L5 v. h( m
代码:
% v" p3 `# n& B, TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
U7 L1 r }$ y9 z0 M下面插入) z) c6 K: R: d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- b9 I. G9 U4 D, |9 K) k; e. V* ~% u" @
然后你去3 d6 @' p& I7 h3 r: s" d
: d, N' A# O& V r
代码:, J* Q3 G/ P. Y# Z8 s
代码
2 o: R$ t' d8 mBOOL TextCmd_ClearPropose( CScanner & s )( [' s: }: I, X' E* Q9 T0 j
{% x G% O6 a* X6 k( I
#ifdef __WORLDSERVER8 ~! _* f% l+ `, `, z# z
CUser* pUser = (CUser*)s.dwValue;
; W! l* ?1 I' `' j9 B/ [ g_dpDBClient.SendClearPropose();5 Z1 O5 x/ K, F0 s! M( k
#endif // __WORLDSERVER: q5 T5 v h+ k: F: J
return TRUE;
9 m5 e9 c1 Q, {3 [/ c) ^}# r; \& A- ^9 W8 s q/ i
下面插入8 i8 t0 j2 e$ g5 O) x
BOOL TextCmd_rebirth( CScanner& scanner )
; p- ]! `- ]7 j" i w{" n# z* V2 u9 u& M: I1 q( ^ w% |
#ifdef __WORLDSERVER
6 p- w- q4 @( eCUser *pUser;
3 u( g3 l% k0 P( OpUser = (CUser*)scanner.dwValue;
0 L8 f5 P+ ^) \if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" s! |; a6 u- ^% o f- t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# N" n7 W- y3 @. }8 |1 m
else8 z. t K) r0 @/ t0 g- u
pUser->AddText("你还未达到重生条件!");
/ C( U3 b4 ^* k/ B* z$ D#endif
7 Z2 z3 N( X0 F- p5 ureturn TRUE; K6 h) z* u! e) S: G }% ~
} # V0 p9 B0 B* |7 |3 B/ V: x
! c0 k% L$ B ~
, z" e5 Q) b0 K- h8 \+ K$ I+ ]/ B
s, }9 i+ X- s- h; M9 W
, g: ~: A& u5 {6 o1 F# V |
|