|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 P5 C1 y3 u6 ~, _5 c8 s H* D' `' p7 ^4 u
Mover.h9 M6 V: F& Y! Y2 r7 _/ O+ @
代码:4 C( I! B1 m; D A
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' d' [2 r! {1 P1 Z# b) f# }$ ~( {( x& K3 f; ]" n
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + h I- F7 i5 o9 {
p6 r% O1 M8 ?6 b* l: P然后你去mover.cpp添加; t" V+ N, R- ^+ p' u
) x( O/ R* g$ x代码:
8 z# r2 Y( C6 {& m: U* Q( qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) g1 X+ `% X& C0 P{9 c: L7 o: U- x
#ifdef __WORLDSERVER
9 C7 g" |- \1 p' y4 S' w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ L1 B) N; H/ `" q, W- a: ~ MoverProp* pProp = GetProp();; {1 D- p8 O' Z" ~
if( pProp )
3 U0 v! }4 g+ m* v3 c {9 _/ L( P! \& S7 {3 M, c+ ]: Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 r/ q5 \5 R+ F7 f( F6 x T' k# O$ }
{
5 [& n0 X; ]' r X( _6 ]* I AddChangeJob( nJob );
7 N+ c R. L; W# D* r1 z" j2 ? }else{( b. }6 Z. d4 s7 y4 j, U
return;
/ g. {2 O. M+ a' g }. c+ n4 a! Q, o" G( T8 h9 E8 ~
int nPoint = 0;
/ x) Z0 O5 U& {$ r# O$ n% ? if( m_nJob == JOB_MERCENARY )& a7 U9 m0 p) r: [8 O6 b
nPoint += 40;) X( t6 m( M* C6 ?) ?- _6 h
else if( m_nJob == JOB_ACROBAT )
( \4 ]0 a0 O& f, o) @* y. o nPoint += 50;: S/ Q% [3 c" L# n; u5 R" c
else if( m_nJob == JOB_ASSIST )
+ ~( m4 x6 V2 F3 X% O* M. O$ C nPoint += 60;
$ N R: n( N3 ?) Q7 m9 @) y; l else if( m_nJob == JOB_MAGICIAN )
1 r: _; {# _) j' Z% S/ I0 V nPoint += 90; n9 K9 @& ^4 H- R' b- L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 R. N- W6 W! ?: |+ Q nPoint += 120;, @5 N8 @. f* O& R# l: W& N7 p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% w3 r8 i% l- U6 S
nPoint += 150;
( T) }1 I a$ ^, U% n8 Q else if( m_nJob == JOB_RINGMASTER )* s' Z" I- H7 u1 g. g+ V
nPoint += 160;
- v0 ]6 r/ ?4 B: H3 c4 E/ |& j' R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 f' l7 f) Z' K* T
nPoint += 180;3 v/ m; I' I* @# i' A
else if( m_nJob == JOB_ELEMENTOR )
3 [" { s% l" x; i nPoint += 390;. p' ^' }4 k3 V: L9 o: o7 U; d; G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* B5 \7 D/ I5 }+ c
nPoint += 120;
% l6 D% u( C* Z) z. g" O8 H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )3 d* ?# Y5 r3 l! s! R
nPoint += 150;
( L$ g4 M0 G+ Z, z else if( nJob == JOB_FLORIST_HERO ), ~, v" b: E( A) Y h- ?( N
nPoint += 160;
) h0 f- L7 M$ ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 D, [0 C8 i0 L" J% z8 n
nPoint += 180;
$ b- H; _' T; K" N- Q! d else if( nJob == JOB_ELEMENTORLORD_HERO )
3 \4 r5 {+ ~# h9 Y0 u) ] nPoint += 390;: L& {+ K4 [& k' L: s
/ N8 e3 @, Q( r1 f1 f3 L! \/ H
AddSkillPoint( nPoint );
2 X$ s4 i* n4 J4 | m_nLevel = nLevel;, h9 |! u* x4 F* d, `
0 C+ U+ `9 _) Z! [% W' r; C
SetJobLevel( nLevel, nJob );9 E6 S- l% p! M
m_nDeathLevel = nLevel;
) q" _9 ^. b4 I/ d( l( p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% k1 B6 T) B3 w6 a# Y2 |/ D% T if(IsMaster())
( w# J' G) B$ f6 `; ~ {
, h' K9 e1 T) ]# a: Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' p6 J, f S- t( U9 Z" U
if( nLevel > 59 && nLevel < 72 )
/ V5 P3 N" c& F0 e dwTmpSkLevel = 1;
. ~7 }7 ^$ }3 ~3 x5 T# E$ L else if( nLevel > 71 && nLevel < 84 )0 u" C# r! x% }( N* o
dwTmpSkLevel = 2;( ?" s# [+ y* \# Z" \5 [
else if( nLevel > 83 && nLevel < 96 )
& v, U4 M* s2 p3 f+ j$ ` dwTmpSkLevel = 3;% p; \" f) d" k* X3 H
else if( nLevel > 95 && nLevel < 108 )1 q0 r, r" V& \* O3 |
dwTmpSkLevel = 4;4 p9 e, b+ V! Y, o
else if( nLevel > 107 && nLevel < 120 )$ G3 J/ [' P# ~& e
dwTmpSkLevel = 5;3 v# G. d1 C. z4 O; X+ a" r8 D+ I
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 }, T2 o+ V3 v1 Q: c( U {
8 y. q( ?% I4 G/ N M5 } P7 p LPSKILL lpSkill = &(m_aJobSkill);8 ?: S0 U* [: L% a# d! P
if( lpSkill && lpSkill->dwSkill != NULL_ID )) D7 N* k2 H: k" ]3 m
{
3 P; F8 p8 p0 A3 b* P; k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 ~" y9 @, q) c: Z4 ^! \
if( pSkillProp == NULL )' `& L' m! ^9 Z$ P) \" q6 b: J
continue;
2 |9 ^8 o# U) f8 ^" G% S1 D/ `1 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 _2 J ~' X0 S7 M+ H3 v6 g3 x
continue;
5 d9 g& n+ X( t) H lpSkill->dwLevel = dwTmpSkLevel;3 S- R, g' X- h* ?6 a
}6 q$ x- u1 \1 j( r- T
}
, `( c9 t4 O) q; c+ w }
) U$ A' s6 y7 X- J' K' V else if(IsHero())6 g, u! w; q# X& \7 R7 d/ A
{% B m# p4 `; n7 X% I: b
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% S& V. G' X& M; B& T, l& l3 ] { & q5 I7 \- X* C1 S
LPSKILL lpSkill = &(m_aJobSkill);+ q3 u5 `8 o$ \! C4 B0 m/ t
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 g+ v- [7 L" r( j
{
' q) y; H( F% l/ @( j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 E( m1 `) L) @+ r3 i4 v* Y) x) ? if( pSkillProp == NULL )
; ]/ j- x( y" d" s( f6 f continue;6 m/ F3 s' ]* l* w# ^. E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): y* M7 \; R: h
continue;
$ E% Y% b/ T3 y2 ?8 S lpSkill->dwLevel = 5;0 A5 \3 ?$ q: G7 g
}
~& g+ {% C2 ^4 P1 u }; b6 }( } t6 K- t; w0 F M
}7 p# g. [% T6 F e# ?
else if(IsLegendHero())7 H2 p6 B* f3 q6 ~
{
0 H; m8 P+ U! n" n+ U9 ~( ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 s- J) n3 @* L9 v, F+ a" H
{
) w: U) K1 O1 X2 A1 z+ r( L% Y3 d LPSKILL lpSkill = &(m_aJobSkill);
; e$ d9 F& _7 A% W/ I# ~7 V if( lpSkill && lpSkill->dwSkill != NULL_ID )
; e4 ?4 p* g. s( V {' T% a+ m" X0 A+ j2 f) c' C* m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& E3 I% c6 Q) l! d4 Q if( pSkillProp == NULL )
7 _# i' `% i5 O continue;( i l `/ n/ p+ ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). R& K8 L% Z9 Q1 o. T- m
continue;! q7 {# q P* }( g* ]
lpSkill->dwLevel = 5;
) M- ^& j1 b7 K6 F) F5 k }( ~" t- Z; {8 X
}+ K' v/ u7 R/ l
} U6 u# k- c& W" p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 T! A: L. ^& e* S9 a h5 D if( bGamma )3 F* b& g$ _4 ?4 l# \
{$ s2 [. |# B' H# _/ o
m_nExp1 = 0;
! Y4 w* w; V' _9 e9 v* T0 ]$ i }
2 m0 {% W. I# Q; P2 ^' D7 a. h1 G, Y0 T Q# A% r6 L% R
( (CUser*)this )->AddSetChangeJob( nJob );$ { V6 Q3 `7 e: n5 U, E5 K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" @+ o7 H$ M+ s, x# ?$ v% Q
2 |% ?- ~+ p' @% F
y3 _2 A) y& Y7 a% r) K1 U# H#if __VER >= 11 // __SYS_PLAYER_DATA, \# M- j7 l+ ~. [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! E/ D! x9 e: v( [" V3 W, O
#else // __SYS_PLAYER_DATA
* T. M. |- U* t1 \$ S g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! ^4 |; v* T6 c- d; ~/ u
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 @0 A! b$ \/ `6 } if( m_idGuild != 0 )
' o0 P' q f$ k, r+ D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 c- u- } Y) U( Z1 Q#endif // __SYS_PLAYER_DATA4 h& L* ~: H. h' h* Z
SetHitPoint( GetMaxHitPoint() );8 u* t' E" [' \. m2 n/ b2 A7 e# l4 y
SetManaPoint( GetMaxManaPoint() );
8 L; F) i g2 ?- ~5 V: E SetFatiguePoint( GetMaxFatiguePoint() );* @) A5 P+ j f# I$ N
if( nJob >= 1 && nJob <= 4 )
/ ^; l* B# D" K" r: p9 n& @ {' s) }, C l5 C8 V& J% F: q
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 ~' B) v' H% e' b
m_nRemainGP = 28;
3 N" t: V) U9 D" U$ V& U* E6 G }. e$ Y Q w- \. S+ Y& y& ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) A. r7 r' {! T# q {6 _5 e6 t1 y6 g0 g
m_nRemainGP = 118;
& d1 o) U+ @) ?4 p: s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" `0 b4 f7 T9 U0 T5 ^. w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. w+ [( S) e9 G }
& }. f3 O+ f) w7 D% d5 V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 b7 r) f- @5 z8 T
{4 c b. \/ C0 ?* X, ]1 k0 b
CItemElem itemelem;8 `; r6 f) U8 A
itemelem.m_nItemNum = 1;
( k' ]5 `. m, q1 F itemelem.m_bCharged = TRUE;2 t6 ?& L" ~* c5 x5 T4 w4 A: j
BYTE nID;/ h$ H. F, A& M6 B5 O/ d" H9 _# \
: [+ W" c5 r$ t6 u Y( j8 ?$ U if( nJob == JOB_MENTALIST_HERO )6 L0 j! I$ O4 }3 V. I1 z. W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 F# r. W/ y9 i- j( W& c h; \ if( nJob == JOB_FORCEMASTER_HERO )
$ B P# Z- ~4 t8 y4 ?+ D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 X& a7 G( T7 n) B9 V$ u/ n
l. q! d0 a! K& _- C: } ( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 g! ^, E3 J, q5 v }
) s& G5 ]; J" A: ?/ g: n% p C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% a3 S% g+ R- Q, W) W* o m5 ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" R3 B+ Y1 d; u
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" L3 ?( `5 L: p% T. D/ e& S /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& n3 H$ Z! c3 G: n9 @4 C {
( (CUser*)this )->AddTaskBar();*/) G2 ]7 O$ b" [+ _" S8 f, Z6 O
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' F0 s7 L- H! @( \5 {9 `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( t) u% O1 Q9 u) f8 G$ H0 z8 u ((CUser*)this)->CheckHonorStat();
. L: g' o5 w' N* H2 n; K ((CUser*)this)->AddHonorListAck();
5 n6 e* ]6 E3 |1 h) t" M* p% J g_UserMng.AddHonorTitleChange( this, m_nHonor);0 t+ T: }0 G; b/ a! \
#endif // __HONORABLE_TITLE // ′Tà?
$ p+ E& h7 ^* m- L% y/ }) G( l9 g }* K4 s }3 y7 o; [' {
#endif // __WORLDSERVER8 a) }8 C( w* _; N; K4 ]( Q
} 3 D* M% _3 T4 Z i$ X8 }3 ]. ]
1 D( k* q! d7 F4 f
然后你进入functextcmd.cpp并添加以下0 ]2 h- {5 N! o/ |4 p
, q+ o, c% N* l: P, M
代码:9 L* f Z3 x* n2 f+ L) o$ K/ m; {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* y4 \7 k, q7 Z! s5 |下面插入
/ d ~0 w5 Z6 C* G, T2 L9 FON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 T. C# t A% @7 `
/ W9 }. D2 W: P. n# J- A
然后你去
/ X" A# D9 |2 ?; q5 K3 R# s) B
3 o) n) V; O. `* u; h6 h代码:
$ x$ i" x: ~( R$ J' ^代码
/ s" j# A% A8 E: ]8 r: GBOOL TextCmd_ClearPropose( CScanner & s )4 ^! s- j% t1 e) |
{
/ O3 Z$ ]* J5 N# g `7 H#ifdef __WORLDSERVER
' I3 W2 r, m8 J. E# ]5 t CUser* pUser = (CUser*)s.dwValue;
7 ^4 U f& E2 a" R) A! i) n* M g_dpDBClient.SendClearPropose();
6 Y; S( l( C( a1 H* T#endif // __WORLDSERVER6 l9 Y9 d: l( ?
return TRUE;
: X D2 \+ |4 B$ y0 N' @}7 Z8 U" ^# Y) o. @9 Q# c4 a' h1 _
下面插入) d4 T1 @- V; Q
BOOL TextCmd_rebirth( CScanner& scanner )
0 G1 F4 G6 k4 H: y0 P% _2 z% N- w{3 U# A/ @1 z; _: `# B
#ifdef __WORLDSERVER
1 g" c8 K' W0 c/ w) g7 CCUser *pUser;
4 x. j. j9 b5 a$ t" ~pUser = (CUser*)scanner.dwValue;
6 Z! b# n; o3 g6 ]! sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 f' Z4 _8 _& R; p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% E0 Z+ {7 X. w' e" j; |% b
else7 F3 {1 L5 g* I, d. I( v! k
pUser->AddText("你还未达到重生条件!"); A3 x4 G1 r, p% ?
#endif; E. H2 ^$ O0 J4 N' b5 n2 U
return TRUE;
; k7 ]2 n9 T C7 W} , f( c9 q [: x$ @6 m& \
7 o! w% N' M4 q# p$ \4 D# \. B
4 Q7 \% g( ^6 Z( N
; @+ G" P9 G* C
& ~; I8 d. h# v$ M9 _$ j1 r$ ? |
|