|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 |# D2 P9 c3 Z6 k8 b. Z$ n* h6 D2 r ]; k6 K! q( w9 X# ~
Mover.h2 M6 f- e# P5 G) u& m
代码:
( l) L0 V! H/ Y0 W' z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# C9 X9 r1 G. g6 P7 y! m' _) w) W. y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 |' N# T6 S' \) R% F# D
) w% [4 @1 f' j- M3 {8 _( r' g然后你去mover.cpp添加% ^6 k* n/ |' V8 l
4 {7 [# |9 Q0 T( E9 U7 u# g9 E3 Q
代码:0 S- [' T2 h, n b) B+ E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 k& [. \5 V& X: p; B. i) m( b
{
' s6 e& ]8 c+ r. O#ifdef __WORLDSERVER
9 A" t4 e5 {& K // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& ?+ T7 k' n/ i! k3 ~6 v8 i
MoverProp* pProp = GetProp();3 H' l g, p% U$ V8 K
if( pProp )
1 @* B7 z+ Q1 E( W9 e {6 H5 h5 @9 m3 ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 P0 |2 f" @7 n9 T! Q& a3 W- o
{
$ b. u7 d2 k% w/ ^$ z AddChangeJob( nJob );
' y- t( c5 P4 M. B( F- ? }else{
6 [5 Z2 m/ s7 n) p( `0 R return;
( p Z: U3 v9 {3 B9 m0 y }
: B; m8 k/ t/ J9 f$ [, C( | int nPoint = 0;
& y0 ^# I- Y$ x& x( Q7 o4 X if( m_nJob == JOB_MERCENARY )
; e0 d) u, q6 N: f" y+ j nPoint += 40;
; x3 a( O$ I3 T0 t; V+ I else if( m_nJob == JOB_ACROBAT )! R; x1 F& r. I* D- o& q2 K
nPoint += 50;) C9 h, V( E/ v9 u! @( m
else if( m_nJob == JOB_ASSIST )
& v8 f) g+ W) L k( ? A3 S# j% O0 ? nPoint += 60;
$ E/ e! R& h* a. F+ ^: r; f else if( m_nJob == JOB_MAGICIAN )
8 P! v$ N" G: M! ?- \ e nPoint += 90;
+ h9 |" i6 ^* Y. E/ e. g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* m& j4 q$ s( e8 j0 t nPoint += 120;
7 Y; e) u! w ~& t, s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! r+ Z* i v5 f6 d+ D. {$ _1 ~
nPoint += 150;! c# x. p0 a* Q" X* C p7 t- k/ \" l: {7 e
else if( m_nJob == JOB_RINGMASTER ), I, _- ~" g8 \) a% v V2 d1 J
nPoint += 160;
; V2 E. @$ t. |7 [" M else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% b. X# r9 C& @4 e' U
nPoint += 180;4 k* n6 Q H6 e
else if( m_nJob == JOB_ELEMENTOR )' N! Q: Y* G2 K$ x
nPoint += 390;8 K5 W1 T4 N: p, G2 E! f: A" i$ ~; F5 j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 `9 H- Z9 F% X! v+ ? nPoint += 120;; G5 k4 q' A% {3 P. g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) D6 V; c' m' L( e S, K. W
nPoint += 150;
v" X9 g2 n% e: C3 b else if( nJob == JOB_FLORIST_HERO )
5 O( l% H2 _* w% y nPoint += 160;- m' ?2 l: ^9 r1 Q3 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' N6 W. |8 D; J- ~0 p& V5 i X+ m nPoint += 180;
, S0 W/ Q4 D1 _+ B5 V% ^* t else if( nJob == JOB_ELEMENTORLORD_HERO )
5 S0 S* @) ~# a& [ X; u( ^ nPoint += 390;+ o; J" X1 r: e/ h, {- f/ v; L) L
; p3 J+ X4 x4 v( G2 v) c3 t2 P6 ]) F AddSkillPoint( nPoint ); O) C) F+ d5 X& b+ J4 ~! N
m_nLevel = nLevel;
! b" |2 y F7 U
4 {, I( w1 d! @/ S* r SetJobLevel( nLevel, nJob );7 ^; c8 `3 X: L1 h3 {) r% O
m_nDeathLevel = nLevel;# M p; P% u! h/ j4 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% b% @& V( C6 E: s$ c4 J if(IsMaster())( p5 r3 S: B Z# ~
{( S9 O% J3 K0 M { O0 b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' M3 T: H' Y7 t
if( nLevel > 59 && nLevel < 72 ): P/ t# y8 C, ?5 k* r8 x. j) R
dwTmpSkLevel = 1;
2 m0 Z6 }7 p# o8 \+ z, ~8 V- q, Z else if( nLevel > 71 && nLevel < 84 )
" x8 G: I' p" w# W: k dwTmpSkLevel = 2;
3 O8 K; b) a8 e. G" s9 i$ | else if( nLevel > 83 && nLevel < 96 ): p+ V5 H/ S4 m. X( h
dwTmpSkLevel = 3;! }) M! z% ^7 Y* W
else if( nLevel > 95 && nLevel < 108 )
( |" C/ d. \% i. ]8 L dwTmpSkLevel = 4;: H; P! M4 x2 j0 n
else if( nLevel > 107 && nLevel < 120 )
! K+ i3 p8 j; x8 ?- y8 e. C$ G4 l5 U dwTmpSkLevel = 5;
; U% R! {5 F6 q" |# @( z8 S; s& o for( int i = 0; i < MAX_SKILL_JOB; i++ ) " U# Q! B8 X' G; i
{ % T; _) t9 V# r- _' k
LPSKILL lpSkill = &(m_aJobSkill);
8 O7 O! U7 T+ @0 C1 [- @3 F if( lpSkill && lpSkill->dwSkill != NULL_ID )% c C l8 u! k" z9 M! a, F
{
, M; j2 Q D0 O+ a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ a9 ~. w% U8 i. m if( pSkillProp == NULL )
! T0 W6 J$ q- ~ continue;! D" S3 c+ _; P! Y* o5 s. F# b b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 S" O: `8 e1 E" Q/ u8 i* ~
continue;$ j. B5 |- i8 p# `/ Z# R1 }* {- }9 E
lpSkill->dwLevel = dwTmpSkLevel;
( g: l! X, x+ |! {- ^3 F% p }
- \( F3 |3 K7 R: }' H. ] }
. m% ]/ A' X+ s! C/ m) D4 j# E2 @ }
) d2 S3 d _. t+ A% N. G* S2 m; {8 P3 ~ else if(IsHero())
/ H# \' y2 s" e8 r! h7 t {
, p8 _, C- ^; A& p* Z. j4 E for( int i = 0; i < MAX_SKILL_JOB; i++ )
% n/ l2 _" Y) Q; |* N0 V { ) b! Q* Q% e+ k3 D7 ] ^" v m
LPSKILL lpSkill = &(m_aJobSkill);
* J, Y/ `2 l7 U3 W if( lpSkill && lpSkill->dwSkill != NULL_ID )1 x$ d/ N* E; I m$ e
{2 P) @; m$ U$ ?) _% j9 f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. J) [# r1 \3 ? if( pSkillProp == NULL )3 r: f8 C" T% G! m' H# x4 N
continue;+ _( z0 `. {3 K: i9 D: p5 a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% P; K1 b7 C8 _ continue;
+ C. O% H' o/ p o* k( {7 N lpSkill->dwLevel = 5;6 O9 i: ?7 n6 W h0 w) s, H/ _9 A
}
3 _9 F! i( E/ b ]7 f" t }8 h! h i5 h" J) q5 }: S$ p
}
5 i9 y/ o' M( e8 ]7 O6 \6 K: ^" v9 t% ~ else if(IsLegendHero())
) K6 U9 @" ~' G+ M$ Z/ n7 [; S/ i {
( s) U8 Q8 s1 @$ b, ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ]; w3 q" T( x0 h, a
{ : l4 q1 _' n4 G8 r
LPSKILL lpSkill = &(m_aJobSkill);
( W: A3 ^- z, E6 J: {8 `. ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )) _5 x! J& ~( L8 Y, a9 y6 F$ p
{. Y: U7 F* h2 w$ Q* ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) h5 b8 f0 p: K0 w m8 T6 M! L
if( pSkillProp == NULL )
$ ^+ Y5 M1 K2 ]6 v continue;- j0 E( F3 s) p; t5 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 v; H" p' O( N! u( J0 O# _
continue;
( X7 L# S( p' a) c lpSkill->dwLevel = 5;2 B4 A; V N& E& V s; t+ j
}
, D, B0 l+ G3 H1 `7 R4 p# T) o& P) f }3 ^& @4 v' k& x
}' D& b8 C7 Y) x' z0 r
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 T, {' B1 U0 H' B, X8 h9 l5 M2 Q
if( bGamma )
+ W6 N" D$ j' y* z" G, m( R {
! t) {% e# \5 M, g+ X+ D, S m_nExp1 = 0;
) a8 }0 }7 v' E7 o4 o, _ } D' [- G2 i% G. R" u
) D) n @3 N$ A; J$ k1 u
( (CUser*)this )->AddSetChangeJob( nJob );- \3 A0 h y- O/ P% Z% ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 d* X! ]: D& K; n# Z+ X
7 |9 G7 x, R" w+ c. B
* z" q/ W$ a# H8 L
#if __VER >= 11 // __SYS_PLAYER_DATA
4 H5 _8 m1 J2 M( |& L; M, y0 T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( y8 f8 M$ ~6 N
#else // __SYS_PLAYER_DATA
5 [/ d: [: o' o" C4 X- F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 W6 I1 i6 }# b! b' D/ V g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& q9 R0 t2 D- j$ I V$ [ if( m_idGuild != 0 )" F f) B3 Y3 E) o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
L x( y7 m: o9 u4 N2 L: D- C" r5 @0 M#endif // __SYS_PLAYER_DATA
9 k/ D( T3 J. |. n+ {* } SetHitPoint( GetMaxHitPoint() );9 F5 t" G- [1 y& j
SetManaPoint( GetMaxManaPoint() );, v9 ^/ V6 E7 N5 t- @
SetFatiguePoint( GetMaxFatiguePoint() );
6 v& H) F j3 U1 q/ k if( nJob >= 1 && nJob <= 4 )9 L- o' Q) { F1 c" R- x9 g9 |
{) X6 Q* |, \3 C8 }1 v' E( A. B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- L; a4 j$ Q5 O( W& Y; a& t m_nRemainGP = 28;5 n9 l1 m+ y! w
}
( Z1 W1 \9 T7 q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 u3 E8 K) S; N# U5 p5 I7 t
{
" V9 G# J e9 T m_nRemainGP = 118;
: F. e9 S( s# _! T8 V8 I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 J& \4 G: S. w7 L8 O0 v
m_nStr = m_nSta = m_nDex = m_nInt = 15;2 p, a+ ~4 m7 Q2 `* n9 V* w
} e+ P( L8 {+ m4 u% i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* x; o) ^5 _; Z' O3 N {/ ~$ W* s' g3 R* ?: E4 f7 k
CItemElem itemelem; h: v8 k" ]9 M
itemelem.m_nItemNum = 1;6 ^3 D1 q! l4 k" S @& B" p- N
itemelem.m_bCharged = TRUE;' u# z, q5 W& ?
BYTE nID;* |0 W4 t* |& m a
' H' s5 \* ]: \) u' r
if( nJob == JOB_MENTALIST_HERO )
8 i4 I- h' j1 d9 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: J) x) q# X- e/ ~; y1 R& F: S5 C
if( nJob == JOB_FORCEMASTER_HERO )
" F2 z9 @9 [7 f9 d8 C itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 }/ j; a$ `0 n2 z
# t# L: O! u4 j: O: \$ B
( ( CUser*)this)->CreateItem( &itemelem, &nID );/ u+ J# K$ |# U( m$ u+ G( v0 j
}8 t& O+ u# \ u" Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# t5 W" T8 l; Z. W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 D9 S: b# \) M5 J ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 S4 ]5 r, A5 C" C6 p; ?: C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
4 l7 n2 b5 r3 B ( (CUser*)this )->AddTaskBar();*/
8 _& M: \% k% k7 ^1 U8 c* e7 Q6 r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ D, }/ U* c0 R7 {" Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' {' O" X1 s: i( a1 G ((CUser*)this)->CheckHonorStat();" w, B" R: e* k, ?7 [; F
((CUser*)this)->AddHonorListAck();1 X' v- b5 D# o! E, W/ E* v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 \- K2 T1 x( L4 h, i I x#endif // __HONORABLE_TITLE // ′Tà?
3 L* u/ D$ ]" U" X! ` }
T% ~$ `2 t o6 B#endif // __WORLDSERVER
: |+ X! H7 |$ K. _}
. K# i4 Y$ z! P! l% v, j# m( g/ A3 \+ a
然后你进入functextcmd.cpp并添加以下, x! M$ X8 _& d$ H: p* z
9 R; D6 J1 i/ t1 y* Q/ N: m代码:
( W, n6 }% A$ R" }7 @3 y O; FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ [/ @0 ?6 R' g" n下面插入3 A! k0 [4 h5 d2 M! `) K, J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; b4 ^' d0 d( e5 f
7 k* X% J* q8 v- l然后你去
% n- \$ r# ~0 |& O: n# B5 ~+ Z {2 |' p0 Y/ x' ^
代码:4 T: D7 i, m) T! F! o( T
代码; n0 f" ?& F6 J6 Z4 W
BOOL TextCmd_ClearPropose( CScanner & s )
9 i$ F" T- J) i0 P8 n{6 b( {( D/ Q" n1 ~
#ifdef __WORLDSERVER
+ g H% _0 W1 q! n+ N5 k CUser* pUser = (CUser*)s.dwValue;
8 b' m2 B1 M7 K1 |( I9 k g_dpDBClient.SendClearPropose();( `* z. D! z) H+ }2 S X. { k+ U
#endif // __WORLDSERVER
* T! Y5 _. a) n5 b6 |8 M$ h$ a" h return TRUE;# H# X- |) k( j- {
}
- ?0 j9 ~+ D& Y7 Y8 J) o$ J8 e下面插入
. l/ p# ~; q- d5 d2 A+ W* s0 ?BOOL TextCmd_rebirth( CScanner& scanner )4 u& y' E% G7 _& g) o
{- u) a( h" \& J" Z N
#ifdef __WORLDSERVER
2 Q5 v& V( v p* P0 p8 ~1 w3 hCUser *pUser;
: P* t2 M Q6 e: n# R+ HpUser = (CUser*)scanner.dwValue;6 k. b$ j- {0 v/ }# g1 W; O+ H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- v! W4 z4 J! R/ npUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 r6 ], K# A' u! f7 U9 gelse
. [( _ \4 C% j0 {pUser->AddText("你还未达到重生条件!");
! I# t& ]; d/ J" |2 c. y#endif- I h5 [4 O; `
return TRUE;
* ?- H0 w- B# a2 ]}
) R9 c7 T+ W D* M6 |1 A
, J! v1 C8 E8 j& J: n/ B' d* s1 G0 H8 L( C
4 n0 K, p I( C# x- ]& W9 S, g
/ z f: W8 ^( q, L* Y* u: Q |
|