|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' q- L n4 | W. a( Q% j8 F. G! d; G' o4 K
Mover.h- P- Y( Z2 K' z5 D
代码:
- j. v8 N, s0 `5 V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. }8 Y# u) Q( B x* S; T7 `5 _# G6 V8 Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! v% D# z: l0 Z$ F& X% ?- K0 g9 j, k$ j* G8 r# I' ?) J
然后你去mover.cpp添加
$ v I6 W, ]4 s( R- s7 S% ^, t/ O+ P. o
代码:
3 }4 ~9 @8 J6 E3 v% Xvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 W/ T9 T) l/ W: q6 S{
9 r* z' {9 @5 ?) h A#ifdef __WORLDSERVER' S, D7 r- b7 Q% W& k$ M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 z* s$ K1 e: i MoverProp* pProp = GetProp();5 m/ v7 \# r/ T& ?# R
if( pProp )$ c& k w! k2 r0 E# _3 W8 N
{
/ C( i3 J3 A, O( U7 z9 U! q if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 a; m i' q3 N ? {% O$ N" ]( f2 G5 l; i
AddChangeJob( nJob );. L( a2 b- j- G! A" i, C' E5 n
}else{: T. U7 m0 D! l4 B
return;
- p# }6 C, h2 C( W' y. K }, A4 f9 e! m# \! A- E( s) m
int nPoint = 0;
% Z: Q' b, r4 f( k( O# Z( ?9 ] if( m_nJob == JOB_MERCENARY )
# _4 ]) l0 ?, ^& b) u: C; N' N5 C. w nPoint += 40;2 t$ `5 T V4 N8 b% r
else if( m_nJob == JOB_ACROBAT )4 f& x+ v+ r! O% G3 }# [
nPoint += 50;
! x* W, |' X! B+ t Q0 F K else if( m_nJob == JOB_ASSIST )1 o1 |: V3 S- N- |' K+ t
nPoint += 60;
) A" q$ _& C) r. L else if( m_nJob == JOB_MAGICIAN )3 }8 B1 b4 V8 o8 c
nPoint += 90;7 z I/ q4 @" {9 W! X
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( y2 U' s9 C T$ {- }% T! }1 v* M- w
nPoint += 120;
* ]: S; a! q* w. m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# o8 M2 R, k- d" a+ b6 b( g! c nPoint += 150;
7 h; L, {) V e2 d8 P6 A else if( m_nJob == JOB_RINGMASTER )
S4 F7 w; X5 N' A" y% t nPoint += 160;& f* U, D, F: @( i
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 }4 {. ]6 @( ^) G nPoint += 180;7 _( q1 _1 \: t2 I: v
else if( m_nJob == JOB_ELEMENTOR )
! H3 |8 L5 B# N: O6 x' R nPoint += 390;+ v3 s; ~9 h( |& U! l2 j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ a& T0 V- o! P8 E& M, M/ k
nPoint += 120;
9 c+ ^: a. u) P, l6 v* j8 @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- g# R& u# K) j0 Y) d
nPoint += 150;
1 r0 g4 w3 Y$ V: J0 } else if( nJob == JOB_FLORIST_HERO )- I7 B2 p9 b0 a$ \' G0 l' o
nPoint += 160;
& ]) N! d4 W% r8 z# c' B; D! m else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). d" W, B0 {+ R6 R! e! z
nPoint += 180;
+ R6 }, A9 ]; K, x( a. q5 k/ Q* ` else if( nJob == JOB_ELEMENTORLORD_HERO )) A0 e6 W# Q8 @ @' ?8 L
nPoint += 390;
& {( C u! u& U' _8 F; P* {/ O; z4 |
AddSkillPoint( nPoint );
0 [- F4 A5 c# B( K m_nLevel = nLevel;# f: d- ?5 @( f9 e0 w h
- S9 y! d$ Y7 ^6 u$ V: e$ H SetJobLevel( nLevel, nJob );: ]& `( I2 y8 n0 a2 v6 K
m_nDeathLevel = nLevel;8 N: Q: h( C8 Q+ j2 u9 z+ q' t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ y7 a- t' j) c6 K0 V/ w2 u
if(IsMaster())
# f4 M/ F" ~ w% P4 h/ Y {; @" }' D2 C3 m7 q9 o/ X0 ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; H) i( q8 z+ m, B8 \9 j if( nLevel > 59 && nLevel < 72 )' Z7 G4 l1 y/ h- g$ S" K
dwTmpSkLevel = 1;
& V5 w% n4 o# Z% _" T* n5 v) ? else if( nLevel > 71 && nLevel < 84 )
; ^) F8 O" N5 V( Y4 l dwTmpSkLevel = 2;
" t' A q$ P L' F! j) E$ E) O1 q" Q else if( nLevel > 83 && nLevel < 96 )
, R- m2 `0 ` v( j; z dwTmpSkLevel = 3;
- s4 y( K {" H$ z+ t. @* H else if( nLevel > 95 && nLevel < 108 )
4 M% {6 n; U) o; |, |5 d9 N dwTmpSkLevel = 4;
- _5 t% b% @' j8 ?% z else if( nLevel > 107 && nLevel < 120 )& }5 ]0 v! q; Y) I$ k' M7 l' Y4 f
dwTmpSkLevel = 5;9 A! D: c% J- }8 W* _7 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; l' B3 @, A6 e/ |) x( D* d {
) E, G( J- O1 m LPSKILL lpSkill = &(m_aJobSkill);
# q% x5 `, f! b$ ^ if( lpSkill && lpSkill->dwSkill != NULL_ID ) l! f4 c4 z$ m- t$ Z4 `
{
' U a" _' b' a0 m, S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 t, F, f2 P$ i
if( pSkillProp == NULL )
6 w) Q7 X" i& h5 Z$ `' ^5 G continue;% B2 D3 }' \7 L, [4 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# w) U1 `0 e( h. I7 L& [7 m9 m
continue;$ L2 o, W, {1 q: V4 G( n
lpSkill->dwLevel = dwTmpSkLevel;
7 a( e* f+ N, T7 ?% t5 }8 O. { }2 f7 [" j E4 ]( A) b/ V5 ~
}
- e2 J: Z8 q# l- e: V3 j# p0 V }) c* @8 L* F; `, Z/ {" w$ A
else if(IsHero())
6 I0 H# V6 s7 g' j( [( x {+ [, n% z- o; k6 Z& [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 Z9 L1 \: B7 n! P { - ]" T* i: L. P1 p/ @1 C+ r( v0 ?
LPSKILL lpSkill = &(m_aJobSkill);
, E3 e1 v' r( L/ y if( lpSkill && lpSkill->dwSkill != NULL_ID )0 F0 D# j; v0 V3 M: ?" k# V
{
- L- v# h1 }. R. Z4 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : v( v; z- d% K/ V; e( Z
if( pSkillProp == NULL ). V7 D* r) h( ]' Y, f, M- u$ D2 w
continue;
2 r5 a$ _. T; z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' g( B- x; @& e( G7 V* n# J
continue;2 K7 K' A9 Y. W- r' c
lpSkill->dwLevel = 5;5 e- A. V* j2 P5 ?- S7 N% |
}* ~" j& L7 x, a3 x; L: A
}
2 R) M3 C K4 p0 W }
0 F& ^- S. f& L$ ?, \- l% Z, i else if(IsLegendHero())
# R0 e3 K# S& m' q3 _2 [+ b x/ u {
0 s* j6 V: }# _" S for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 F6 e3 ~& T A/ S# o { ; J5 w6 |3 U3 i
LPSKILL lpSkill = &(m_aJobSkill);! c8 p1 R' [8 g; X
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 g9 x9 x* n; k6 \
{
# R( x% c; Q6 ?1 F+ f0 ^, Q! [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " U8 i8 @( P6 e5 d) m B
if( pSkillProp == NULL ); _$ V% j% Y: S9 Y- U, E+ t: p
continue;
9 s/ o" `# d/ H4 B m. z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ q$ x6 l1 _& G, P, J continue;
* N3 U3 h7 X1 J! ?8 ^. P lpSkill->dwLevel = 5;
8 ?: c2 _8 y/ L2 M" J5 B2 Y }0 \5 [, {4 A3 i( A3 N
}
! g1 a+ ^. Q# {0 \ }. ^* I5 d) u& c% i& O# r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 |* Z! ]& u7 z/ q% S$ o if( bGamma )
: L* Z7 C6 p( z( \2 }( i! X {' H O- N- K' h$ d0 b! K2 e
m_nExp1 = 0;3 _' T% X! l, w, y: ^% r
}- K, G# o) i1 V" K9 V5 x
( E) a# \! t7 L& a$ O2 v$ f# w ( (CUser*)this )->AddSetChangeJob( nJob );
& u! W7 n- R P# U6 { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ |" {0 B& Y* m. Z& h* P& G" `5 ?0 G( P1 N4 X! s- ]
" d5 }6 o+ ?/ i% u
#if __VER >= 11 // __SYS_PLAYER_DATA
3 R# v& m7 N$ \$ o g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
; t% ?! @' R! O#else // __SYS_PLAYER_DATA1 S% G5 I, u1 G6 z- m5 P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% f2 E. P# ]9 S) I" E) u+ ^- e1 b& _7 k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, P0 f Z& Y! _! [) M1 W' O- a
if( m_idGuild != 0 )
9 f4 L: w" j* D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 ^) @3 P( o6 v! k& r& J/ |7 d
#endif // __SYS_PLAYER_DATA
3 B+ M4 A: M: O# | SetHitPoint( GetMaxHitPoint() );2 D% n H: P# m, t$ g& m
SetManaPoint( GetMaxManaPoint() );
( q% v: k3 n9 P SetFatiguePoint( GetMaxFatiguePoint() );
: V+ t+ k% _5 ^* ~4 p if( nJob >= 1 && nJob <= 4 )
$ k) k1 S2 i, z9 N M& n6 ~. A# E {
+ J% R/ V: Z! {* r/ j m_nStr = m_nSta = m_nDex = m_nInt = 15;7 H1 ]. q3 f, H3 ^
m_nRemainGP = 28;
8 }' {( |7 L, d5 U; ]& x }
) I' b: L# O2 E+ D( F if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) [+ R; I% n& J" D$ ]: i- G/ W
{8 I3 r) I/ [3 {1 a: u0 H
m_nRemainGP = 118;
4 O9 d) M& O3 O3 t2 j a* M6 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# f8 R/ `4 p; p6 r( i, B T m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 w& N8 L& O( M* w }
6 P+ u* P& L3 p8 N9 P$ E" c if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% }2 z0 ?- U1 S/ p. w0 O$ T! P {/ E5 V0 ?7 U }6 J1 Y. o X
CItemElem itemelem;
, b: i5 Y- I3 V1 I+ T" y" Z) T itemelem.m_nItemNum = 1;
/ ]/ }5 G( o9 ~' F5 h( k itemelem.m_bCharged = TRUE;& I3 ^' D2 `* ~& x
BYTE nID;/ m! n; e1 ~# F1 s
$ U0 I! F* ?7 S, _ if( nJob == JOB_MENTALIST_HERO )
- |9 N) t9 p$ D5 D" U itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# [) ^. `# t; f) z+ z if( nJob == JOB_FORCEMASTER_HERO )
$ b$ }. f5 p; L5 S3 H- x/ n% X# \ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( N% I6 M: n- @
. W" Z: z! K) d* F; s ( ( CUser*)this)->CreateItem( &itemelem, &nID );; e$ ^6 y; G/ X( G
}8 W: ^- ?3 m3 i. K7 ^
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
$ I( X8 K M! |4 T ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 r$ H2 `' q! E
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, K! w, |* \4 W3 U0 M/ W/ R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; u' h9 R; S* e, _& H1 p
( (CUser*)this )->AddTaskBar();*/
0 R. G" _4 A9 \) Q4 `7 P- [ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 b3 K, t# f; b, _" D" @3 }
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# m/ x5 t6 s$ k) `, F ((CUser*)this)->CheckHonorStat();
% g |8 Z8 {, {9 ^3 u ((CUser*)this)->AddHonorListAck();
$ y$ Q) p* y8 A6 _ g_UserMng.AddHonorTitleChange( this, m_nHonor);- m9 f% c+ l: A
#endif // __HONORABLE_TITLE // ′Tà?* p3 u9 Z4 B# I* T9 Q; D! j9 U
}
! y% Y* i$ e" h; i& o+ B: X/ C% e#endif // __WORLDSERVER
5 }& E: G% P: U/ i} & u0 a. e" m, ]5 r
7 x4 u( o: y' \- f, B8 ^. z然后你进入functextcmd.cpp并添加以下
% n: _9 ~! z& L" n9 a9 X" @4 G5 B; J0 P- J1 C
代码:! \2 f+ J. p* B- x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ X' J8 _1 o7 }' t下面插入' R4 h7 y- d4 ^+ U) T6 k
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. T, ~4 M/ [) B+ ~# M% N: ` f5 P; H0 Z/ l" E
然后你去: E+ A9 Y: y) O: h" R
+ y$ }7 O% p2 f1 O/ y
代码:/ D- k, F4 a7 \# p G
代码* V4 a8 M. D3 q: ]" I( Y5 ?4 `) F
BOOL TextCmd_ClearPropose( CScanner & s )! W0 v; v/ R2 k6 j, W# ?
{
; ~- r4 ^2 a" Z& w) [) ^- E" o#ifdef __WORLDSERVER# F, N9 ?6 l- H" g6 C ~
CUser* pUser = (CUser*)s.dwValue;
# y2 I2 P9 x0 _0 o" U& r' i8 S' d1 ? g_dpDBClient.SendClearPropose();, U; B$ ]5 ~9 p7 P# L+ ^
#endif // __WORLDSERVER5 Q9 i+ [# C0 d6 o
return TRUE;
+ }* A' Y1 `6 J, F. D}
9 {& |4 y: W; ] u* q$ P下面插入
* n9 s- ^1 X qBOOL TextCmd_rebirth( CScanner& scanner ): e3 g& H: A% p6 m# m# C
{
! U. P3 ?8 O; B) I* Q#ifdef __WORLDSERVER
4 Q( F y7 t; R2 s' RCUser *pUser;
* H* I* x/ C* @3 |- {pUser = (CUser*)scanner.dwValue;
- V' q$ k" ?3 Q. y5 |3 F. \if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 O: f9 ^# ^: r! h" g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" w5 s1 r( ?0 N, k) [' K6 J( l- ]
else
+ r4 g3 r2 z4 w: q1 qpUser->AddText("你还未达到重生条件!");7 g+ j. N8 O9 ]; ^! p$ x* [
#endif
2 m2 C+ O) y: c, ]return TRUE;
! J6 N: R3 @9 W1 y} / u4 f% ~& I! o, K8 b) N- J
3 U) o) O0 Z3 H k
, a: T3 d* p4 _2 m
, G" [. j/ A& l& V$ h( l3 t
5 V7 ?- B- w$ N7 B1 G7 C: b) o3 J |
|