|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( P9 b% Y3 f; ~5 ?! x% M1 b
7 U9 w1 `6 ?' p7 J, ]4 W. `- P" j* H
Mover.h
1 S0 A2 k# c- c1 N9 p' }代码:) {" f' Z' y, Y6 H8 j, A. X6 t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
* i" n+ X5 k( V5 z, b4 n- z
2 n* X* I2 J% Y. e" E |! `/ K- T- [下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " j z% X- n: i5 _ `
7 w3 m: y$ `+ \, T; m
然后你去mover.cpp添加
- `- a, S% Q) U H1 t% r6 z3 s% W
5 ~" h, N* L6 R. R$ h' ?) J0 ~代码:* F" m& n* S! v. k
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# d% M0 u3 F( @1 x
{. V! {' l- X! ]3 d! B" J- f- p% e
#ifdef __WORLDSERVER
) b, Y. _* y0 I& F$ N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 A. U6 u' G" }, _6 q
MoverProp* pProp = GetProp();
- X* N5 V% V7 v$ ]' |4 W if( pProp )
# r/ G' ~3 d, Q* z" O G {) {! I+ [" W# c6 A
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 b8 k0 f" v5 V {0 ]& {) Q( F1 ^+ }! K/ k
AddChangeJob( nJob );, s- h# ~+ }& r' e) e) P% X* D$ q
}else{
$ Y0 o) A/ w+ d return;
; [" {# ~7 n- ^ }* V5 j% x0 V. B0 [+ ?
int nPoint = 0;
; ?& L8 G; x( }' y8 Z' R if( m_nJob == JOB_MERCENARY )
6 i2 q- d. E- K- X+ C- Y4 O2 j, u nPoint += 40;
) x% {: S, Q2 w else if( m_nJob == JOB_ACROBAT )
! g. C3 v1 X6 V+ } nPoint += 50;
7 U2 D. |# P4 ~7 X else if( m_nJob == JOB_ASSIST )4 X% @$ M1 c" b, {( ]( k Y; e
nPoint += 60;
9 y6 F$ q- ^6 _: }& L" D, X) E2 c else if( m_nJob == JOB_MAGICIAN )
& K6 a8 n5 E" p nPoint += 90;! i! M0 z# C4 Q* D$ _1 q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 z" m" E( b# u3 ^$ V" d
nPoint += 120;3 @) ^1 f2 j- R- ~4 R) ?
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) p7 ^8 A4 F8 P* Q0 w nPoint += 150;
i0 G; y( P) @6 e( H else if( m_nJob == JOB_RINGMASTER )3 v& v" ]7 f9 @2 l- R
nPoint += 160;8 a6 G8 z$ [* O, @* d2 f- S" Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 r {+ I+ a$ L3 f' c4 A5 K. a nPoint += 180;
e( w6 O$ Y9 K- r else if( m_nJob == JOB_ELEMENTOR )
9 i* a) Z& k! ?- G/ ^7 P6 Y1 ~ nPoint += 390;
# Y8 v. c! a! w; h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" \4 G2 X+ |+ T+ w9 H6 v, d
nPoint += 120;, {0 l$ n' e2 |/ D& w# Y% z# r
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* j6 @- v" w$ G8 | nPoint += 150;, J" A- q+ Q+ O; v0 j
else if( nJob == JOB_FLORIST_HERO )
% `4 |4 N: _2 f% K nPoint += 160;
* E, v1 R' S3 X% n6 z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 R6 r5 i9 _4 a8 H: v' i nPoint += 180;
! s: U9 o$ D6 v7 [* u' s, ?3 n else if( nJob == JOB_ELEMENTORLORD_HERO )2 L( C, M$ j$ W& U- L9 P' q2 j
nPoint += 390;
7 L6 U# Q8 V8 H; L8 e9 Y; I3 b* U5 s
AddSkillPoint( nPoint );
6 d3 m7 J, f$ P; h5 K m_nLevel = nLevel;
: }0 D; D- ?3 w: J; }5 b3 ^
_1 \$ W4 o2 W! E4 W1 U5 v SetJobLevel( nLevel, nJob );
7 Z# i$ C8 B$ \! C+ ^: k, f1 a m_nDeathLevel = nLevel;8 O7 N8 @, Q# d2 h' g) u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ ^4 A1 L& k% d3 A: q6 l if(IsMaster())7 C5 X2 ^+ L. S: k" q
{1 f* l3 c8 J) O
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 Y) y7 Z2 a3 k6 E; D- K if( nLevel > 59 && nLevel < 72 )
" o! l1 ~8 t6 d: ]( t" A0 ? dwTmpSkLevel = 1;
- E9 R/ M3 n& `% `. h7 U else if( nLevel > 71 && nLevel < 84 )9 Y- }. L: f* A# E
dwTmpSkLevel = 2;
% I2 _6 b8 I m else if( nLevel > 83 && nLevel < 96 )
* j! x$ e; h5 S$ f5 E/ T! v [ dwTmpSkLevel = 3;$ u, D9 `( i: P( h1 ?
else if( nLevel > 95 && nLevel < 108 )
0 x G8 w9 U9 i, Y+ l dwTmpSkLevel = 4;
[- ~7 ]$ R/ _4 V else if( nLevel > 107 && nLevel < 120 )2 v2 G& ^) q. h& t
dwTmpSkLevel = 5;' m7 u X' U. Q4 r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( |; ^9 E- f7 }" m {
* I0 r' o: ^6 O, g% o( N LPSKILL lpSkill = &(m_aJobSkill);
2 ^% _" s' Y4 R" h+ W if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z# P! s2 P9 P4 S+ v' d6 B {
: G. W- N' n; B" ]. E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 `* d+ k5 L5 t# f& E2 m$ }8 J
if( pSkillProp == NULL )1 c4 e$ Q, t1 o/ t
continue;
$ L* C) Z+ I% a/ e( W2 I& } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' x0 t- N J9 G2 `0 F
continue;
! j2 c" U" i- Q/ @9 ^ lpSkill->dwLevel = dwTmpSkLevel;
% @8 t9 r8 F) O/ Y }# a5 Y' C5 \8 P9 I& e9 p' U
}
# ]' u/ k. J, M5 X) Q2 u9 v }& B) R+ |. B0 _- }
else if(IsHero())
0 A, w7 h9 | B+ x { E8 d0 o& z& r' [" r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 I. ]& O" o/ v+ ^ Q4 Y { 6 |8 O" k4 ~! x2 s5 \8 a/ C
LPSKILL lpSkill = &(m_aJobSkill);
' s: @) q' E$ t/ g7 \ _$ K if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 G/ m) m8 _9 w- m9 } {
" v7 b$ ~2 S! B4 }3 | y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 v' s) q6 @4 f8 }8 Y2 _ if( pSkillProp == NULL )0 m) q4 i- H+ N
continue;' H6 t. Z! B6 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! V$ u4 e" I( h+ |8 q
continue;
, [" R4 ^+ [7 D4 U# x ` lpSkill->dwLevel = 5;
5 |) |4 g6 Q: y. D/ A' {; t. v }
) ~) g: t x2 x e+ ~5 } }' r0 c0 J7 b2 l& n) ~
}* Y6 k/ r, \2 ]# m1 i3 q
else if(IsLegendHero())
4 D& C2 n0 X+ M& e4 v6 \1 J% c {
s8 X5 W7 E# F# M" K for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( i& Y/ [" n: @2 k
{
; ?/ E' ]7 U3 z LPSKILL lpSkill = &(m_aJobSkill);
9 ~& H# a- r* [. w' k5 i3 h if( lpSkill && lpSkill->dwSkill != NULL_ID )6 ~% g X' P& w7 K) p0 s
{
/ c/ v* M N( ~; ?. j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ k* ?. l7 N0 v B0 @ if( pSkillProp == NULL )
3 V2 y: V" t( Z' f+ k continue;" O1 D. m, t& g m& L- t5 ?4 Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ `) s1 ?1 f$ K+ W- P continue;5 c, F7 y( E7 B2 k8 F- F
lpSkill->dwLevel = 5;- t1 I2 Y3 c f# W7 W+ q1 W
}) K1 ]' I' J3 X$ z0 x# H
}' [0 N7 o/ a) |$ j3 c. X, A' A0 X
}
- r+ ?+ I, q1 j5 K# g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ H& ~7 ]% ]( w5 [( v. u; a" C if( bGamma )
1 Z5 v1 h3 R& q# l2 j0 R+ S {
1 u/ e X! b. \& {' n. Y m_nExp1 = 0;: U" P/ a. ?' C, V
}
6 b; k; X% R& W6 w9 ?, n% Z/ X8 D! O. B
( (CUser*)this )->AddSetChangeJob( nJob );
2 f" f$ z7 @7 r9 Z6 f: b g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ i: Y$ J5 h* f7 o/ b
( T# W8 i" S; r3 D# V- w' V1 @
! r* @5 f$ O/ {+ c' j# x#if __VER >= 11 // __SYS_PLAYER_DATA
2 U4 x1 f8 J0 u# s- O! K8 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. `9 w" g: `9 Z#else // __SYS_PLAYER_DATA. W& {5 L" k1 {! w) @/ [
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 g9 I [- ^/ U( Q' ^& s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( _- K- R3 h+ w) {% c$ t+ Q if( m_idGuild != 0 ), H3 [% F" b* N! U& K7 C3 }% y+ T
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, P" r, i. j' r# N) W1 T# |" a( w#endif // __SYS_PLAYER_DATA0 |9 f' H+ V `0 |. c
SetHitPoint( GetMaxHitPoint() );# O& K7 X1 f# z3 b" R% O. b1 G
SetManaPoint( GetMaxManaPoint() ); b4 r. Y9 h" T8 j
SetFatiguePoint( GetMaxFatiguePoint() );: k; s( b' P1 o3 r H( s
if( nJob >= 1 && nJob <= 4 )
9 h6 v+ t. t) R/ i/ n {
# @; G# z; i( R/ L ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ r0 }/ G6 d- r+ Z0 f& G m_nRemainGP = 28;
# G \$ P3 N5 D/ l }7 f8 o& B3 ]' ]: F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ {* D. k7 c3 v8 ~0 N* d: ~
{% e9 h0 Z1 w9 @" t* l; m4 T
m_nRemainGP = 118;: W' h2 @* J5 e
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 f% y2 u0 h5 w0 y ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 i+ p) y- Q V; n0 ~ J5 D
}0 r- i: v( y7 u' f7 g1 S0 Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 E/ ?$ L% k; ^* y {6 k- s6 t; D; d7 Y( j: a
CItemElem itemelem;1 s+ f) x+ Q" b! |8 U6 ~$ n6 {
itemelem.m_nItemNum = 1;
! E; ^: x8 p& {7 b4 u itemelem.m_bCharged = TRUE;: Y: ~4 u3 `; H& d0 q6 J, W3 Y
BYTE nID;
% q( M- l- r; Z+ I/ W9 S: F- [0 {) t1 K2 I
if( nJob == JOB_MENTALIST_HERO )1 _9 s5 n4 T, D6 h5 i. B4 g( j
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- [6 n6 h1 h4 a' m' m* w if( nJob == JOB_FORCEMASTER_HERO )
& t0 u4 q0 `* B! j% m6 U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 U4 o0 y4 n6 e. @0 M
+ x& E9 ~2 P1 p6 f ( ( CUser*)this)->CreateItem( &itemelem, &nID );# [* G9 q2 L$ y5 S4 E. H: @4 r
}
3 S; L& u( x6 }! q* }. j' V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
R, I6 i. x0 t$ o ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' H7 J2 E9 H$ K# ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 t9 |! |9 \) H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 I6 K$ F& K5 K( `
( (CUser*)this )->AddTaskBar();*/
8 j& m' \3 B* F- L3 i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& _, v0 G" K- H( ]1 S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 z5 M7 m$ l% S6 a8 M ]
((CUser*)this)->CheckHonorStat();+ n% t8 r8 K! n2 l' Y
((CUser*)this)->AddHonorListAck();
: }, v4 R4 x2 j& b g_UserMng.AddHonorTitleChange( this, m_nHonor);$ K. d, @7 U; K: D4 l; h
#endif // __HONORABLE_TITLE // ′Tà?. i; b! p; W. q) E. i U7 a
}/ E) X' Q8 C7 ~- n/ c+ l
#endif // __WORLDSERVER9 s! E, Q- P: r n, a! g4 K q
}
8 |/ g* L7 a$ ?5 o7 @
2 D, n6 b8 r* p& ~然后你进入functextcmd.cpp并添加以下4 u" i5 t7 l$ ?
: E2 Z9 D' O3 q7 R: N1 j: a e
代码:9 f* [$ F( \, V& k' a! T+ q# D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) n/ {5 b; O7 }3 C
下面插入
# R, a. U! d8 U# Q }+ rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 i( K6 [- u& U/ w: N
: Y& l' q" {, D* S+ J. G# D2 ]% k5 {然后你去
% c- t8 Y) i1 C
. t5 l% o' h1 C( P代码:+ p( @! M. B, b
代码% b5 L) n9 P9 u/ V) d3 i% F
BOOL TextCmd_ClearPropose( CScanner & s )
6 ~; A' U& h9 w0 Z1 y( v{" G8 R3 E' D. O
#ifdef __WORLDSERVER1 h b$ h; I+ y7 B: G% a0 A' J2 X
CUser* pUser = (CUser*)s.dwValue;
. g1 T+ Z! {% R3 v: h g_dpDBClient.SendClearPropose();& C3 ^4 F( c! Y/ C( f
#endif // __WORLDSERVER O1 O Y& |/ F
return TRUE;* C" b8 [7 C( m0 N$ R5 D
}# Y! U. ]7 P9 M2 o% [0 l
下面插入
/ \: s. ~& z+ R5 P) GBOOL TextCmd_rebirth( CScanner& scanner )
2 m" X! n% @# B3 B{- U8 c$ u. E; c; S {& _( u; Q! S
#ifdef __WORLDSERVER
# N, r5 W8 a( r8 t1 X( |/ sCUser *pUser;
4 c c8 C' M" T! R" ], _pUser = (CUser*)scanner.dwValue;( p4 U7 \+ P5 x# M1 G3 X7 P# d. O$ l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 R+ W" F) }' w) i$ ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 @8 ^4 {* b& c* T7 A7 p
else
2 b& |* _& w) E* e' D3 `6 v% RpUser->AddText("你还未达到重生条件!");- \6 v! s1 t5 d* ?! T E& [6 n& L
#endif
: ~2 E/ X" R9 ]- xreturn TRUE;
+ F* h$ y* z9 y+ _; Q0 g} ! m# l _. q* P8 ?; y" n
2 i- V! x; }- a; s" I8 E5 @
" K, Y9 e1 r+ v; H' G& a8 R+ ^/ f) S% m/ {
3 Z, v, w% r R! c. W, }
|
|