|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 O8 F* Y' E( |# Z3 W" _- p- A+ W4 s* y: A/ x
Mover.h8 Z/ `6 P* @3 z' `. Q" _
代码:8 X4 {4 J- d0 I: \* z4 x! O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: j- b6 `7 n- ~- l
) [$ ~( H: f( L' ?& M! |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 B/ u4 {5 h1 g1 l. h0 s' L a
! L4 Z$ Y R0 X+ f& @% f$ N' }然后你去mover.cpp添加
" e9 w( b; G, Z. x2 A- u
" i* X g( K u代码:% U9 `% ^1 m2 {) J, Q- a5 M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 t4 f+ i2 E9 G{
Z* [6 k# l1 k8 D" g( M6 ^#ifdef __WORLDSERVER
; B( Q. e+ P8 U7 Q; u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; Q6 h0 }8 m: H0 i4 n
MoverProp* pProp = GetProp();
7 o+ W; h. w$ Y if( pProp )
. e4 l" ?' Y* Y. z6 ^" G( L {" A# o+ _9 \% H. k8 h9 ^' s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ v* d3 Y: c1 J6 _) Z* @
{
8 g: V7 O3 `4 t3 o6 Y+ O AddChangeJob( nJob );. Z3 O: l3 G0 F* x3 X) \4 R/ K# C
}else{
4 W9 b, b. U* Z, w U- r return;1 ~- o1 _3 [. n
}
9 X) _6 O* y T0 j' S int nPoint = 0;6 E, T; E* {2 p' s' `
if( m_nJob == JOB_MERCENARY ) r/ Z/ f; A6 f% P/ K
nPoint += 40;
9 b" q" M% p3 X& c else if( m_nJob == JOB_ACROBAT )
) o6 ?; S, R. e% C4 W nPoint += 50;: O2 ]- O0 @- `& A0 P$ _
else if( m_nJob == JOB_ASSIST )1 j6 N& |3 I. y& k
nPoint += 60;
0 }; f8 n' a, T" `3 q @7 d' [ else if( m_nJob == JOB_MAGICIAN )
$ q) c E* C/ j y( N) a7 R m nPoint += 90;
8 l; u, }% U5 p2 {1 n" q* E0 I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 k( O% x2 h$ R* E' {5 i2 X nPoint += 120;
+ V& P! D; W/ O$ k" c' D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 E2 ]# n& }9 \) f+ M nPoint += 150;
% Q! B" M1 j7 m$ q; D# t m else if( m_nJob == JOB_RINGMASTER )% l K- O* K4 A6 b' |6 h0 Z
nPoint += 160;
Z1 l, B# w2 P7 W( r. T: O& I' ~( h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); B7 Q3 K Q! S
nPoint += 180;9 B- h! o6 s: H
else if( m_nJob == JOB_ELEMENTOR )
* H8 N% o0 w6 D) _' ^% ^4 q nPoint += 390;0 f& V: ^; a: [5 R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# ~3 J" i( k4 z* X8 z$ ?" n0 h+ B nPoint += 120;$ }4 r9 c8 E0 k8 m/ |
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# u* J' d6 y' Z) ]
nPoint += 150;% g' w. y8 _* `
else if( nJob == JOB_FLORIST_HERO )
' @' \0 x. u" Z* K- P# ~) a nPoint += 160;4 ^: e1 T* y' L+ }* P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- E( {4 s1 \" R2 p2 L nPoint += 180;
( o, x3 s L% W8 ^; s* t+ R$ y: Q, s. i else if( nJob == JOB_ELEMENTORLORD_HERO )- J! s+ q3 Q6 z5 Q
nPoint += 390;4 Q9 a9 i) v7 m
1 x3 D% L' Q# p4 h# x! C
AddSkillPoint( nPoint );% J0 \2 l- |/ D, X, v2 f/ W: a
m_nLevel = nLevel;
0 x! X) k; }: i1 ~* a: P/ c$ K( U9 K8 X, T4 ~
SetJobLevel( nLevel, nJob );
# P% n6 d: Z: q m_nDeathLevel = nLevel;
) |( X1 f" T& v5 S: m. G( G! q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ z1 e* X( l( A3 j
if(IsMaster())+ r' {/ p$ j! v6 S2 i
{
6 ~$ s$ x+ X& h+ H6 w int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 ]7 f. n5 S1 p- o, _2 _2 D) L1 s
if( nLevel > 59 && nLevel < 72 )3 A% R, \1 A& Q" b. L
dwTmpSkLevel = 1;
5 L/ Q! H9 h- ^+ d( e else if( nLevel > 71 && nLevel < 84 )5 {8 Z$ n$ o3 D+ B& ]9 z, v
dwTmpSkLevel = 2;
' O" K) j0 s6 R else if( nLevel > 83 && nLevel < 96 )
7 g! _9 L9 x4 d9 _7 X0 k; [# I dwTmpSkLevel = 3;% q' r) a: ^: q+ A, D
else if( nLevel > 95 && nLevel < 108 )
6 O! J- m% j4 f dwTmpSkLevel = 4;2 P0 S) j2 J( W0 J7 ?$ Y
else if( nLevel > 107 && nLevel < 120 )
; ? q8 s; C- `$ g dwTmpSkLevel = 5;
0 w! v: T, j3 K8 r+ D3 Y4 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) + t6 n3 g; h- W# s0 a* `
{
- w1 P& `. \4 C- E; F LPSKILL lpSkill = &(m_aJobSkill);
, Q7 y- [4 h! s2 u4 B if( lpSkill && lpSkill->dwSkill != NULL_ID )- E" s* Y9 C8 I0 K
{0 }* g# f1 v2 M3 g' p3 J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ ~2 }: o9 b8 D( \% S; H- X7 k7 y if( pSkillProp == NULL )
7 _( h: D3 m% {$ G, F continue;- Z& A6 H8 P9 x7 P1 `4 B1 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* D6 q5 C( q7 b0 }: B1 U% Q continue;6 a; S# A8 ]! p) D
lpSkill->dwLevel = dwTmpSkLevel; @1 P1 y4 m' O6 i( n" }
}( I( z0 k7 A% d
}. X5 e5 N6 V: }% G: |& B+ v
}
g+ U! d+ T; ^6 F" g( K else if(IsHero())6 Y' C8 ]# g! K
{9 q+ _5 l1 K4 q. N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 J, f1 A. J- T8 P* V {
' {. e% a. G) k9 q5 ^) s8 r LPSKILL lpSkill = &(m_aJobSkill);) a( b9 x1 {6 x% H1 X2 h. A8 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 n4 w& q, F2 U
{
+ k% v. V8 L$ _8 E+ w1 z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 ~* o: t; @7 m0 N3 f! ]. p2 z
if( pSkillProp == NULL )& C' q- ]3 F- e7 d
continue;
6 ~* y) C5 D/ s4 C6 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER); u1 b$ R( T1 u0 S* m( i9 K
continue; L- @$ H# a* T0 {
lpSkill->dwLevel = 5;- L5 e* j5 r3 N4 C- d# Y
}
: q2 Z+ s: {+ n. |3 P' ]8 Z& m }
. C" E' u5 P* E: n }
. t( E) }6 e% {% U. c else if(IsLegendHero())
/ X, B) Y1 [% A2 b0 `( T5 I {
# `3 q( H6 a# Z1 e3 a for( int i = 0; i < MAX_SKILL_JOB; i++ ) . O _- d0 ?. n& p" Y9 t5 x+ Y: ^' B! G
{
L/ I! e i3 p: ^ LPSKILL lpSkill = &(m_aJobSkill);
" A- x7 H; k) u& l if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 I% D$ m4 o4 S2 V {; W5 |9 ]5 L. Z% E r8 h5 L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 f- d3 u5 q5 _! A" U
if( pSkillProp == NULL )
2 d6 B- d' n" X5 Y: N continue;; u* {5 l3 f6 p' \2 [- U0 n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 t& H5 m: J, K/ ~5 J continue;* H& X) c' F# d$ t1 [
lpSkill->dwLevel = 5;
- a1 F( Z b# U1 R5 K7 _8 |# R }
, F2 h: r, w p2 K0 t4 r' G% h }+ P( D: ^) b/ z& R
}
- x; o9 m+ d& Q' t( [6 A% u+ N#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 }- h( @. Y3 Z4 K
if( bGamma )
- w" O- J1 v; I6 ?' i# V {
2 e4 u/ _* @4 f) G/ W" N" u/ L, u m_nExp1 = 0;
* u& I# ~1 B' F' i) k1 H. s x c }
3 N% g4 w$ f8 ]3 G) d1 I/ w. c; `" t; B r
( (CUser*)this )->AddSetChangeJob( nJob );
/ N( P. G9 \/ ~6 L g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );% }% Q) w" _7 f. b+ e7 t
/ [3 P) p+ T0 y" U$ V1 F3 m0 M% Z( N
- y9 `5 x! T8 Q, u3 G% n5 T#if __VER >= 11 // __SYS_PLAYER_DATA0 _0 U! e! c6 F6 P+ v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );& o8 U4 I& p2 d
#else // __SYS_PLAYER_DATA) A! L4 O' s; E/ E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 c. [4 P$ F3 P3 m: D, f3 F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# j3 W% ^0 k3 b% I+ p6 B5 G7 C; d
if( m_idGuild != 0 )) ]+ {- R, v! L! f* N- z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 Y( f- k0 v+ c0 G3 d, |& B5 y
#endif // __SYS_PLAYER_DATA5 ?/ ?3 J4 u3 k4 _
SetHitPoint( GetMaxHitPoint() );
# M/ Z, l: D# w# s SetManaPoint( GetMaxManaPoint() );
: O' u# a, \, t+ h SetFatiguePoint( GetMaxFatiguePoint() );$ @+ M/ d$ [8 V6 Y
if( nJob >= 1 && nJob <= 4 )
8 f% \3 z' ^; D% S+ I1 o5 g- p8 U {- Y3 f; Y0 A. Z7 _
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 |8 J. S: u' T- \; i* n! j
m_nRemainGP = 28;
+ ~' T0 W1 Q4 i }" y: _! s! U" K4 M f0 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# w' M% {( C* R {
& j- {8 J. T5 }5 G m_nRemainGP = 118;7 X* R$ `6 s4 ^- R7 s0 _
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
~4 I) A" R Y; z m_nStr = m_nSta = m_nDex = m_nInt = 15;* \5 L/ e+ o. t0 h. C
}4 r( u/ I1 t& X; U/ Y% f p, K# ]9 n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- ?1 P7 Z/ L4 M3 l& E
{2 i6 F0 P! w2 X; u
CItemElem itemelem;2 {9 J9 m: q/ A2 J1 Q
itemelem.m_nItemNum = 1;3 n9 j- R) i" q) P% y
itemelem.m_bCharged = TRUE;
7 J6 P! W& ?4 G2 I9 Y$ h; c- H BYTE nID;
# k8 c1 ]+ c$ ]: R
2 _; w( p+ h. E% X* m if( nJob == JOB_MENTALIST_HERO )
4 I( R, L# j2 S itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 Y/ I! R3 e; C/ c! t% |# i
if( nJob == JOB_FORCEMASTER_HERO )
% E5 d5 c: P5 d: {- V# j+ U( e& O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ [6 {5 p2 Z" t+ D$ O
4 ~- ~3 z- G& p ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 D1 W1 Y7 ^+ T* J1 I7 Z+ T
}
- D0 k/ ^: d& `$ |6 c5 S0 v) w; U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 F! [+ y4 t" \8 L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: Z$ ?$ n4 q( j9 r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 |3 Z" ]' q6 {# l9 t* M: x
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( o8 n# F! Q/ a( u5 F ( (CUser*)this )->AddTaskBar();*/' [+ m' A& Y& }: A
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 o$ W' f' V" s0 O8 K5 d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& d7 C& ]# M! B5 a- a: _
((CUser*)this)->CheckHonorStat();
$ }, c# Y+ D& E* H! ^+ {: ` ((CUser*)this)->AddHonorListAck();; T! B9 G" W' f8 f8 |
g_UserMng.AddHonorTitleChange( this, m_nHonor);( A; x0 M& s) O# Y# w3 }+ W; a
#endif // __HONORABLE_TITLE // ′Tà?
% y8 d2 C1 \! a5 S' f8 m }5 {6 s8 t; M c1 n2 m! _4 T0 }
#endif // __WORLDSERVER
% H( A2 X. j+ U! q; q( V4 k$ e+ |}
- @% f' Z# z2 z0 i0 B. d: p9 ]& w; \$ L; m" ^7 `8 {
然后你进入functextcmd.cpp并添加以下0 p \- R6 [5 B0 L, w4 [% [
: S( A- l8 v2 y7 B
代码:
. o2 ?7 l, A& n6 Q6 m yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 p$ @+ D. f' D( m下面插入
- K+ c/ A& t7 \3 y3 \% u5 o, cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ F7 G# b8 @7 f8 j" Z+ v2 \# I, S8 }0 \2 x
然后你去1 M3 |8 X( h% B4 b1 n) `4 J( e; i. e
4 u3 ^! |4 d0 r6 Q2 J+ o
代码:% l9 f) [/ `% [) v8 X: ^+ l
代码
9 P' `4 t2 H3 f1 s: E }BOOL TextCmd_ClearPropose( CScanner & s )
4 i# \# ]9 J: S, J" q" ?{* ]: ^! i4 ~9 z5 A! Q
#ifdef __WORLDSERVER7 X# l. M- W- s0 W. Z
CUser* pUser = (CUser*)s.dwValue;
$ C1 E: p& `: A g_dpDBClient.SendClearPropose();: J8 b" h, c8 ?, b. y
#endif // __WORLDSERVER9 M' P/ c, X3 a5 R4 m. J# e
return TRUE;
]" k5 Z- B. i8 M, w4 E8 \}$ e& r4 X: J& E. t! I0 [! E1 z
下面插入
4 R; D. K# X' Q' e+ ^+ |$ [BOOL TextCmd_rebirth( CScanner& scanner )
) h# f% j* b5 G4 ^{& ]* a9 `6 {" `2 g
#ifdef __WORLDSERVER
7 I& G, j5 W4 ECUser *pUser;
& C& a/ }( [2 x7 v4 D% R8 B2 @: vpUser = (CUser*)scanner.dwValue;
C- Q4 D" c( \# O( }$ b/ Uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
% T$ c y1 D# ?. |) F3 bpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 y$ p7 w. n" J S# j- P3 y) u! Z
else7 x2 O) d. {9 P6 @. _
pUser->AddText("你还未达到重生条件!");/ N6 h, y R _) }- ~$ Z& R% A
#endif
- |# [; ?: G& o) `+ G5 U# i0 _return TRUE;
, \4 n0 w! M9 t) s. R}
& z# A+ R- ?* n7 e" h! I! x) n" F2 d- T
. m: N; R( {: k+ c) y
7 _# L8 T: R3 p4 @3 i2 Z0 X$ n4 K Y- s0 k, W0 X9 |
|
|