|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 F; x9 f: B7 Q1 T& {
" R* b- P; z- z) S7 t& IMover.h# ^4 \! r! S# i* f- S# n
代码:
. \% C. j+ J+ d# w9 w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: l, j$ g; y/ v2 R% e) S p- N
( U9 ^( L) I; x7 @
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( F9 p9 @( A9 _ ]9 `
7 L* Q! E3 b$ w然后你去mover.cpp添加8 J) M' Z" e5 X% S. b
4 k6 P3 ?; G9 t
代码:" O( o8 S! k6 ]8 N% C, c: N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): Z) c) J' w2 p! e3 X
{
8 N) ]8 E1 |, c# u5 o#ifdef __WORLDSERVER
9 _$ ~5 }2 }8 e$ U o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" U# J @5 }0 W MoverProp* pProp = GetProp();2 \, z3 N) f& t) l% `( G5 ?/ m. K. }( G
if( pProp )
8 d& L( s& _3 e5 S9 b# [1 p* K {- y- T' C0 h# j8 E( S
if( nJob > 0 && nJob < MAX_LEGEND_HERO )3 Q1 J: s% R7 Q2 }! X! g9 @6 z
{+ v- X! S" o$ L4 `4 u2 {0 b
AddChangeJob( nJob );2 v. B* Y9 R8 V
}else{1 \. e" V3 P9 `( @9 D
return;( n+ N2 Z) ] x; b; Y! R$ u; ~) P
}* _+ Y( N" [* ], F) L1 P; Q
int nPoint = 0;
- ~0 m% g! X: |) ^; t% p if( m_nJob == JOB_MERCENARY )! G* W& i3 x$ \7 @) V5 B
nPoint += 40;
6 O, I: v+ U* Y3 f6 S- c else if( m_nJob == JOB_ACROBAT )
5 a i! p+ E5 l) n, v nPoint += 50;, q i3 C' W) k4 Q8 r
else if( m_nJob == JOB_ASSIST )- F7 k( h$ [- X0 ~/ m2 y
nPoint += 60;/ B, N2 G% w) h, W4 V) r( d
else if( m_nJob == JOB_MAGICIAN )- r* T3 u5 u9 j L P9 Y
nPoint += 90;* c. N0 n7 u% o4 F2 f* ^
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( a! v* I1 _# s# N* d; B7 d C nPoint += 120;& Y! j# ]8 D( ]* Y7 [* N, ^7 l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 n0 K" t0 Z: p3 K E nPoint += 150;5 Z1 O2 A. B; i3 f) F3 O' S* m6 ~/ L2 _
else if( m_nJob == JOB_RINGMASTER )) K. p+ V1 r* n7 C
nPoint += 160;9 I% Z6 R% _8 I
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
@# {4 g- U$ S+ U) O nPoint += 180;1 W( O: l/ f- }& `, s1 ?2 G* F
else if( m_nJob == JOB_ELEMENTOR )) K, k, u2 H( c/ O! z2 {
nPoint += 390;
. h( k; C, A7 h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* n2 n: m5 a- E) R
nPoint += 120;
. `+ K! b* G( t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 J6 l# x1 D: ~) h9 {; } nPoint += 150;8 V& ~, T }( Y9 h n; }
else if( nJob == JOB_FLORIST_HERO )6 j9 Q* P+ J* U: F* d, |( @" f. c
nPoint += 160;5 r1 c+ |) _3 c- f! m, o! K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). p% y+ [, k& L! h5 f/ c5 e
nPoint += 180;
2 c' e0 o8 U" K. \0 | else if( nJob == JOB_ELEMENTORLORD_HERO )
+ U9 H b) a& G. c8 Q nPoint += 390;1 o: G [& y1 _" B
/ Y6 y8 h, r$ E2 L$ w AddSkillPoint( nPoint );
3 r1 c+ v# J" s6 { m_nLevel = nLevel;# _, f4 g ]- }4 G) O4 g( o0 ^) `
P8 O A7 O5 W9 K* B% c5 h SetJobLevel( nLevel, nJob );
; V. _. y# B3 c; W- R2 F# M m_nDeathLevel = nLevel; n9 N* Y; ?/ p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 K$ E8 Z& x# k: U
if(IsMaster())1 L4 z. v" G o" r0 w U1 N5 _2 u, ^
{
' l- h5 C7 N' l% u; }- J$ O5 a. ?0 { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 ?4 l+ M1 W- g if( nLevel > 59 && nLevel < 72 )
+ U! y; r2 P8 h; f dwTmpSkLevel = 1;- F5 H$ I( z( q( A p/ [5 ^- _$ T. K
else if( nLevel > 71 && nLevel < 84 )
$ {9 O* @+ K# N5 w$ N dwTmpSkLevel = 2;- z* w" O& l7 M4 `, J2 [ h
else if( nLevel > 83 && nLevel < 96 )5 F! z/ U" Y+ G- f& r; \$ S
dwTmpSkLevel = 3;
& B- l5 X' _7 p- o1 x else if( nLevel > 95 && nLevel < 108 )$ D0 c9 B* t6 ^6 E
dwTmpSkLevel = 4;
% X7 T' C+ L8 \ else if( nLevel > 107 && nLevel < 120 )
1 o/ `$ K0 ~" X dwTmpSkLevel = 5;5 V4 i$ ? v. o( _1 h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + X% o: o A0 U( `9 n$ @
{ / i" C2 H( b* I! a8 V- M5 Z
LPSKILL lpSkill = &(m_aJobSkill);
( |9 t2 v) E, I7 _8 [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
' _1 z& E) }- e$ N {
; D: Z4 {" a9 g5 _2 v/ \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ U# X& ?* t% X7 V if( pSkillProp == NULL )) ]# p, @( P8 B2 G/ k, e# v% W; w
continue;; G+ ?" k' F7 [! ~/ ]5 d" X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" v7 T2 {% C2 s" D9 e7 S5 N7 S continue;
. c# t. C* A, V8 A1 t/ S lpSkill->dwLevel = dwTmpSkLevel;
$ `$ b- d9 j f2 \5 D6 x# Q }
' F8 `6 n M$ s7 ~' `. Q! s1 Q6 h } `7 x0 _: I# {! F6 z9 t9 d
}
2 x/ [1 G9 x; a, Z8 Z1 }/ m else if(IsHero())
+ G% c* ?" q1 [4 F$ W0 O, A7 z, R {
' h9 S: ^4 z; I1 {, j* U for( int i = 0; i < MAX_SKILL_JOB; i++ ) # `' N! ^; S( ^- K2 p# O
{ # l5 \& C9 B4 o( k
LPSKILL lpSkill = &(m_aJobSkill);
& |! ` G C& Q% E! u if( lpSkill && lpSkill->dwSkill != NULL_ID )
! S% v/ o7 ^- ]5 p {. }7 X, b+ r2 S! u: f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 L5 ~& C. C# l# ~9 j n6 k
if( pSkillProp == NULL )/ x& k" V; E- k# Z1 c
continue;
{, s8 o. A! O1 R) F2 S9 h) J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" u8 w+ _ A% m `% X continue;- `: v9 l6 y4 R. v5 c) O
lpSkill->dwLevel = 5;
; G6 L- x+ O; g; m9 I }
5 R: b) U8 }* `! P2 @# [2 V }
% J) P! T' m8 D: }# Z }1 G1 W8 {) l, V+ o8 u3 @( J8 Q/ J. r
else if(IsLegendHero())( d1 q+ @2 m) Q f3 D
{0 s$ |7 E% G0 l: v) ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 D9 d, ?! Z2 J$ W9 p
{ 0 e7 m6 b) d- [4 @# S. N9 x
LPSKILL lpSkill = &(m_aJobSkill);
$ Y0 V, I" S- q3 Y# N if( lpSkill && lpSkill->dwSkill != NULL_ID )! t4 n, u4 t/ g! D, ^. p& M2 o
{; ^2 l( X, Q/ L, @5 D$ b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); Y- m6 I* L2 I8 g" N0 Z* F
if( pSkillProp == NULL )
8 @: l. [4 {/ D) u/ H# r E continue;8 {) t! O* l; y+ {7 Z4 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
C( R7 t) b) R9 J# a continue;
% U2 c' Z+ Q/ U lpSkill->dwLevel = 5;7 Y* g. {6 I1 T- X& | {* N2 G2 a6 J+ z
}
: }: i. z% W; h8 m4 k/ m( K }8 F$ K# |" j9 b( B: g6 w
}9 \ E( t3 Q' X( R( Z) I' d
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ ~- V: V' B7 \ F1 ^ if( bGamma )
8 R4 V1 }% i8 W' o' H/ E {( e6 U' X+ |9 E( W, w- R$ Y
m_nExp1 = 0;7 B9 e8 [+ g2 T) D5 Y% x
}) o) W( j7 \0 v
$ G/ ~' V& m4 t( e# l, `0 N# A/ ^& u ( (CUser*)this )->AddSetChangeJob( nJob );5 V. b& C0 u# L5 ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 L5 K1 l/ ?2 e$ r) G6 G
t+ m$ W6 d# N! ?& Y* g D% _
8 S8 P$ [( H3 Y6 e& c5 k#if __VER >= 11 // __SYS_PLAYER_DATA
: F, V6 L6 c% {: e5 w% c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ z* u* G2 z6 C, P' h
#else // __SYS_PLAYER_DATA$ p0 j1 Y z" I. [. N, h3 A9 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 C+ m5 B! j( J* s( v$ F g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: v( {9 G$ b" B0 t1 {% i
if( m_idGuild != 0 )" V" h+ O O: j+ z4 X
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 v2 J# ]' ]3 A, y. q+ _#endif // __SYS_PLAYER_DATA5 ~. d V$ A7 {* t! D# ?1 [* c
SetHitPoint( GetMaxHitPoint() );3 g0 w6 D/ G) x! ?
SetManaPoint( GetMaxManaPoint() );
; F- ~- L- @9 p1 p5 Y+ { SetFatiguePoint( GetMaxFatiguePoint() );7 ]" R' J ]6 ~. g! \( q
if( nJob >= 1 && nJob <= 4 )
' o6 g& F/ ?5 ] {
( a6 f$ _. k9 ^8 ?/ h/ E' H+ I m_nStr = m_nSta = m_nDex = m_nInt = 15;8 \, d, M* [6 d+ N6 o: }2 h
m_nRemainGP = 28;5 R" H1 p, l" v
}
+ m3 }$ A! t$ X6 O I( n( V) E if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! ~/ z5 {# t$ y) V7 \/ O: S
{) A B# E I# i; }
m_nRemainGP = 118;
8 i4 z0 i& G! z, S6 W) D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 D6 j0 X! t( W+ N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. D( u/ ?0 O9 v) n9 E' q* m- Y }
* x. e! e/ @/ G$ H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 h) z1 J" X6 C, @" o( n {2 a- I* d) G f
CItemElem itemelem;
+ h$ L- H& @& B% C! D9 e/ b( ` itemelem.m_nItemNum = 1;
' g" ?. y% n7 M itemelem.m_bCharged = TRUE;2 \" t) H5 p. J' I9 g2 j* q! V
BYTE nID;
! f) H0 x( I, Y7 A# _: ^2 U6 ?- ~8 z
if( nJob == JOB_MENTALIST_HERO )8 K e9 I2 }/ P; b/ _2 N$ \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( f( S* O6 g9 X% n( ` if( nJob == JOB_FORCEMASTER_HERO )$ B& ?: f% `: S0 f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& g% }( V* W2 d+ p3 D* h7 B3 k: r. p# `( ?1 t( @5 ?
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 e7 x: w2 d5 g& W& A9 g3 H6 _. E) j }
G% r! C, s0 }2 O) ~0 H g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 Y3 t* N& N. ]2 k$ M9 @( R ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 w9 i2 w8 \7 C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" c6 a: m3 B8 | /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( Z, c! \: q3 m5 c6 @+ v ( (CUser*)this )->AddTaskBar();*/, j! G+ a2 ~; |- V) r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; Y+ J! }& }* S$ `8 |/ T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" h. N% H. A# w1 V ((CUser*)this)->CheckHonorStat();; K* p( h' w% l) M0 z) O
((CUser*)this)->AddHonorListAck();
) M6 @1 j& c/ K& f g_UserMng.AddHonorTitleChange( this, m_nHonor);" [9 X+ o+ p1 w
#endif // __HONORABLE_TITLE // ′Tà?
F2 m" x) Q3 J$ Z }# W- P! d5 L1 z( d
#endif // __WORLDSERVER
# W4 b t! j6 O) h8 f} : a4 O9 e1 [. S* P: _. M! N; W
3 \$ O+ ]$ |, k" Z: h" T
然后你进入functextcmd.cpp并添加以下
1 N% ]8 `- s4 b5 ?. E9 j6 c& A0 ~; c6 g$ @0 R$ _ {8 `
代码:
9 c5 Q5 m' o" `+ _# `; j' M5 jON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 {1 B& j; ?- ?; A- C下面插入4 J2 ?7 e0 M+ V1 L4 D: z, g
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 j+ U' @) f# ] @1 ]7 n5 P/ f, j$ u5 a$ P
然后你去! [& l' q V+ E: y) ~
9 B/ }6 u6 G$ T# ?- m* e6 D
代码:% z4 K2 }1 J* t4 E! U
代码$ k* q( e1 L8 i" w7 ?, |
BOOL TextCmd_ClearPropose( CScanner & s ); l0 d& M! `7 e" G2 S0 j/ \ V7 U( X
{4 Q1 U& U2 q; l: t1 }' E
#ifdef __WORLDSERVER
1 L1 a% \3 J" @! f' a, B CUser* pUser = (CUser*)s.dwValue;
* w- g, @; O3 H/ T g_dpDBClient.SendClearPropose();9 F! K$ j, Q6 K. P( a) f A5 {" q
#endif // __WORLDSERVER
7 F ?* d; c" E& K4 N return TRUE;% L) {$ o) A) \& z- `& n( B
}
7 i) N/ c7 `6 G& ^. `下面插入# c& u3 s' h9 Z% S
BOOL TextCmd_rebirth( CScanner& scanner )
4 X' j5 c& g7 \& `* j{
& h# v7 M9 ?6 Y# f& |#ifdef __WORLDSERVER
; y% H3 P/ p" G0 t2 \CUser *pUser;
: O! k3 M a5 b- D# j0 n' c4 s: apUser = (CUser*)scanner.dwValue;- R: \9 n7 S4 N, t8 R9 _( {# K. X. }8 _
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! v9 x1 s0 V- \! E( v' _pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& l E8 Z4 v3 {" n. M R' velse- M, X3 C# @+ _0 P) J
pUser->AddText("你还未达到重生条件!");
3 L' D+ L& v9 G" D#endif
$ M x- Q- }. [/ {0 R! [; Zreturn TRUE;2 _% {, |6 P7 C R* D& P
}
8 t2 T) j* }( o5 |: O( Y7 G' u2 S& K5 P
% f8 j: x5 J; h' [
0 b3 e1 q! m7 D$ z3 q
+ X% `: V+ R& I& ] F
|
|