|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 K( a* Y8 e2 _ [. T( r# U' a& |9 G4 H2 E
Mover.h
3 L) _5 U* a4 I0 K; ]* g代码:4 {& v6 p& v) P" W% j
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& M3 ?7 a7 U6 q; q3 u
1 p8 r, ]$ Y& s# {6 N3 J
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. U' X! O9 @& S: S, i! L" t" f+ ^* c; D" p( s3 X1 e3 X* b+ M
然后你去mover.cpp添加
9 _* Q/ N d$ w5 Z% Q5 t
5 s7 u2 B2 B$ l) ~, w# `代码:5 C7 y; @, b( F8 G+ q' @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 R- G c* U) G* I" e- Y( `{
. v. f) x9 I* w# }#ifdef __WORLDSERVER7 w( _" { H. S" t
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; x K/ X* X% E$ @6 f+ C2 g7 k MoverProp* pProp = GetProp();
$ ^) [ |9 D9 e if( pProp )
0 D2 v9 P/ }( p1 ~. |: R/ o, W {5 v! O/ `" r0 \" L! h- I' g. F; k
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), ]$ O- d5 Q' n( O" d
{
. y" z' [. `; \) [+ a5 m* ]5 [) K AddChangeJob( nJob );4 P/ W) g: ~5 _2 B4 o+ `
}else{
! V, Q& x" C) J7 ~4 u' m4 P: B9 s return;
9 ?' Z0 ?' n! l( ? }
6 M7 e2 ?& i& ]% K int nPoint = 0;
# p, k$ ~2 F1 B if( m_nJob == JOB_MERCENARY )& T9 a- }4 [! `/ t6 D: B$ _
nPoint += 40;
* [% W: u+ j, J else if( m_nJob == JOB_ACROBAT )( l0 ]: w! Q* v* ]1 H
nPoint += 50;
& ]$ p" t' @/ @8 j a else if( m_nJob == JOB_ASSIST ), r5 t H& M6 R8 p
nPoint += 60;5 [2 e5 U9 N) a3 k- k% h" r
else if( m_nJob == JOB_MAGICIAN )- B) D `% Y( T+ F, c# i& ^
nPoint += 90;
* m! D; L- F3 C4 ^' ~! A else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* z, N* Z* B& n+ J( @/ m F nPoint += 120;: h1 H1 S; ^4 u4 q# B) q& y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: c2 I' Z, E9 h& T nPoint += 150;
+ C' Z6 l7 f- O( l' e else if( m_nJob == JOB_RINGMASTER ), N% W" z I& ~+ {* X+ u8 O
nPoint += 160;# V: i9 C4 k4 m
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" t4 L' \* ?" s% J
nPoint += 180;: Y) L, e* S; d- r, `, m' ?9 Z3 N: W
else if( m_nJob == JOB_ELEMENTOR )% c" x) ~$ @* \) a( i
nPoint += 390;
9 q- {4 l4 T: l0 D' I# [ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 B0 ^! C; J! f5 b nPoint += 120;
: @6 `4 \( ?! F) r1 w else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 q( O% Z0 D% d6 r8 @9 J% e nPoint += 150;
0 j2 }" B( n! Y. e% G) n else if( nJob == JOB_FLORIST_HERO )* ?9 Y, j& C& N9 \9 X0 P7 J$ a
nPoint += 160;
6 y, h, r, F# R5 s \1 a else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: u/ G5 P, @ A4 |6 X0 T3 S# A nPoint += 180;
& n) v7 b& `* d0 o& K9 [5 m else if( nJob == JOB_ELEMENTORLORD_HERO )
; }7 A, n2 f: E6 ?8 r nPoint += 390;
( T6 X0 `8 W* j
+ C) o: \' v9 Q( O3 Y8 U AddSkillPoint( nPoint );
9 @' X6 `/ V. y; }# K y1 Q. g m_nLevel = nLevel;/ a z8 i/ J9 l- p
% G! k, u6 J& i; @ SetJobLevel( nLevel, nJob );
* `$ W* X' S6 g m_nDeathLevel = nLevel;
! F! X/ X+ V9 P3 T#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 d: n! q7 B5 N+ C1 r" M, R
if(IsMaster())
) w) `( `* r, [ {: [ u- [) Q/ G( P7 _
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, Q j% w, |5 T" v1 c if( nLevel > 59 && nLevel < 72 )
" u: o+ T% N5 y. m' R5 Y1 G dwTmpSkLevel = 1;
8 {4 v# z7 @( I3 ?4 {3 u8 g' ^ else if( nLevel > 71 && nLevel < 84 )/ o9 V9 l, J, u) w0 o
dwTmpSkLevel = 2;8 ?9 F' M3 c% k( \0 B1 o3 O
else if( nLevel > 83 && nLevel < 96 )) c+ n9 w+ Z: l( h* O5 B2 u4 N
dwTmpSkLevel = 3;
' H: v( F% V% | else if( nLevel > 95 && nLevel < 108 )
0 [1 f6 [. I; |; P3 {3 k$ _ dwTmpSkLevel = 4;1 J, x/ s. _# X y$ e: m. j: D
else if( nLevel > 107 && nLevel < 120 )
: F' q! u8 ]( \7 q) z dwTmpSkLevel = 5;
2 z* f( P* y4 W; s for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( V4 x7 i6 ?; Y* B! E- Q0 @* r7 k2 b3 B
{
; c+ C3 ^( @- B e9 i/ ~ LPSKILL lpSkill = &(m_aJobSkill);9 O$ }3 r% s4 T2 h& b* ^! q
if( lpSkill && lpSkill->dwSkill != NULL_ID )" w, ~( }/ e6 b. F* x: b+ M- D0 n
{
3 a: q' c( ]7 e8 n! a+ x, C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ Q, n' W3 @( B8 P- H4 r
if( pSkillProp == NULL )
1 F3 p4 r. W/ k, | continue;, c5 Z1 f# M8 f0 u/ M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* h. d) ~) `! ^9 J% G0 U1 l
continue;1 C" v5 X2 L3 X0 ^
lpSkill->dwLevel = dwTmpSkLevel;
0 `& @3 O6 D; O3 l+ u7 j/ `- H }/ J- j* M0 o# K
}) z# v2 y; }% ` X! F1 i I/ C
}6 U! u7 I/ _& J. X0 H$ ~+ m
else if(IsHero())
; |+ R- n$ d" J {3 v0 m- e. h0 [+ _$ B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' S% E7 p& `% h) p! i3 u( R; Q { % o! L; I$ [( a$ X/ o; G/ }
LPSKILL lpSkill = &(m_aJobSkill);
/ ^( Q/ d/ y6 o5 y p m if( lpSkill && lpSkill->dwSkill != NULL_ID )
) U' W& g" [- d1 [; C {
/ |9 I+ q, J; \& u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* W9 T# [2 a" Q3 C/ H# d' t8 L if( pSkillProp == NULL )
G. Q/ j5 Q# F- h continue;1 `/ Z' V1 w O3 \, ]. x6 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( C1 k5 d" D& P2 R5 k0 M' t9 k
continue;
; H* D9 W; S3 p# U" m lpSkill->dwLevel = 5;
$ _+ i/ M, w8 ~8 ~: O8 y }2 i( [" _- ^; D9 L/ G6 }2 E5 `& S
}6 P; L& `5 d0 m4 l4 {2 j1 z
}
! k" \+ K. E U- i% @ else if(IsLegendHero())# I% D8 Q( i m4 O- o5 b
{) x9 x% v+ r1 t; u, r. Q3 M. W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( \: @$ a* U6 }1 E* B/ E) n
{ $ k7 G/ u( N4 a$ N
LPSKILL lpSkill = &(m_aJobSkill);9 W' Y" v+ G7 n @" d
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 x4 z0 f0 M8 }$ T7 ~5 p1 m; P
{! m- L( W9 P, A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 { C6 T: B Y+ n7 P8 G
if( pSkillProp == NULL )
& U, J2 u2 I; ]! F m- \& S% o continue;
) E; y _$ O' R& K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! b! ^: A* b( l4 [# P
continue;
0 @3 O/ o# Q7 }" Q' A- `" ?$ J8 S1 n lpSkill->dwLevel = 5;
6 p/ H/ [9 [; ^. H4 l }
5 b F5 N: l0 [7 I1 j4 c6 Z( D }* [5 e, ]+ d% I. ^4 W
}
, P- u" T! E. N#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) S& K# [1 U* K; U- Z1 _$ x if( bGamma )" o7 c, r: A9 I) F. x
{
) v; N$ q4 [. A m_nExp1 = 0;6 D1 P6 B" B1 I5 k
}! n! U% X& p+ v+ f' U6 p( S9 q
8 {5 @8 [# K) x; M. H$ [* |! g$ S/ c
( (CUser*)this )->AddSetChangeJob( nJob );5 K) t# O4 j, o1 R3 a& ]8 O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( M- N5 G" `. U( i1 W1 s: d7 d+ |% j: l: Y7 w* Q, y }( b/ K
6 d: o- |, G9 D' K/ [" s6 \: h
#if __VER >= 11 // __SYS_PLAYER_DATA2 b1 o0 x, E% n. f8 |9 f- k
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* R6 n% u: E, c f: j#else // __SYS_PLAYER_DATA/ ^; t: }$ P' ?+ M" e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
J: n8 U A6 u g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# k; Z( j+ | R' k$ L
if( m_idGuild != 0 )
4 p. f' x8 o, p6 ^$ ?1 W O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* C- e' M0 ^& J, L! ^, R3 g2 a#endif // __SYS_PLAYER_DATA" M' e2 m) j0 b5 q f! I" g
SetHitPoint( GetMaxHitPoint() );- i K& m" q$ k; g8 ]: ~
SetManaPoint( GetMaxManaPoint() );/ C% v+ f, R/ _5 i6 p$ T/ P
SetFatiguePoint( GetMaxFatiguePoint() );
( D. R+ T) b- A! n9 t$ V+ X if( nJob >= 1 && nJob <= 4 )
G5 U$ |6 D% H6 I {# B$ m4 R6 }# d- u& [
m_nStr = m_nSta = m_nDex = m_nInt = 15;; A+ \$ I4 w* p1 p; B3 ]4 P9 |
m_nRemainGP = 28;
5 e; w. w9 E4 W3 ~! L2 W) _. m }
" I* }' r2 l& R4 F! m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 G% L6 y% y# u" m# g2 b
{* ~" v0 L% U( g" @- R+ U `
m_nRemainGP = 118;
3 x3 E- \# D+ j, ~7 ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ @. c% Z7 m" u9 C; i+ a3 O+ ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;) \2 v q& b! Z9 W- D
}* M; Y6 u+ {9 f: v% X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! t0 e) H( p! s( t( s7 G {
5 D8 X8 a r+ R CItemElem itemelem;9 i# ]- j6 U+ o# j" o, H3 W
itemelem.m_nItemNum = 1;
) f' F' N) p) r, m, u/ D itemelem.m_bCharged = TRUE;
* m; ?5 w. y2 D+ X$ E# D, h9 | BYTE nID;" z$ {+ k9 v# l! Q4 @$ I
; T" f# p+ N* v9 y$ i
if( nJob == JOB_MENTALIST_HERO )+ T* T. W& F+ A4 n" {2 @6 X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 |5 G* A2 T! g1 K, ^1 [5 v if( nJob == JOB_FORCEMASTER_HERO )* ~' K$ ]- j' S; O& O# ~" r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) t* W9 V7 ]( ~" ^) m
% z' r7 o5 S& Y+ Q8 H( f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' z5 V/ d! T5 q+ l/ D1 w5 Y }0 n6 b( U9 i5 X
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 y, j: G) D7 B& z- |( b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# b/ J/ M% d7 @- O; \ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# E f7 i/ e3 ~, m" ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" ^6 }. M7 z2 L( X$ U$ R; g ( (CUser*)this )->AddTaskBar();*/
" b' O) t9 T9 ^3 Z( t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! l4 P6 I) V1 q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" f, t: ?; H% k
((CUser*)this)->CheckHonorStat();/ W7 S' e6 a8 t: i2 j; v, F' F
((CUser*)this)->AddHonorListAck();# j7 y$ p( z) I5 i
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* D8 q1 @/ P6 D( [& Q#endif // __HONORABLE_TITLE // ′Tà?7 |+ K% V. F& h& N0 n
}
+ s4 }0 H& p- R4 h! k7 e#endif // __WORLDSERVER( X6 V& n, r' k5 G0 y9 D1 E$ p
}
- B+ @% }+ v) R9 O2 U" r. m K2 `1 q; m$ ?5 K: G9 O
然后你进入functextcmd.cpp并添加以下
. @/ t1 |8 t/ r( X+ z" q, S0 P5 `& w2 v
1 F# _# G# L+ n# f" V2 w! }1 X# g代码:
+ i" \$ x! L- P" Y# k$ A! ZON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# l1 D; z* v$ C) r; p下面插入
- R+ E, a/ k) oON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( q y: `9 L; o. _1 Q
' c2 \1 v( ~ w' W! L& X然后你去# ?3 g! t1 @ j) I2 C! X4 |) I+ J
, ]7 ~% a8 `; X4 o
代码:, D0 d5 S% l8 S! k( G
代码
7 |0 u3 U8 `; O; |9 k5 {BOOL TextCmd_ClearPropose( CScanner & s )5 w- j9 {* i: E, }% z2 A
{
7 l8 _% b, p; Q) K4 l; X. o. c#ifdef __WORLDSERVER
0 W* `8 z% L. {) s9 L2 L CUser* pUser = (CUser*)s.dwValue;2 Z: ] n7 X2 J. N5 V: T
g_dpDBClient.SendClearPropose();5 C- X5 |* p7 c" d% `# }
#endif // __WORLDSERVER" B$ D3 p( C+ ~- z0 g! m# _
return TRUE;
1 o( Z$ J+ `: E" n! W, y1 }}
7 E; y, a1 q7 M( l, ]% ^9 l9 ?下面插入
( x$ M3 q# X8 P8 ~BOOL TextCmd_rebirth( CScanner& scanner )
6 q0 a6 E' z7 K8 H& S/ L- f{
4 Y' C1 L4 }+ J& F$ U" H! f: u#ifdef __WORLDSERVER+ u7 i/ _# @, E' e4 w0 O, N
CUser *pUser;$ h9 z. @% ?8 {$ W7 Y1 Y6 M; P
pUser = (CUser*)scanner.dwValue;
" O' T g( _1 t! `4 K% w# m$ f0 yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 c* k! w7 ?% \% NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ [& k* n5 n, Y8 celse
6 {$ `4 O: P1 g& lpUser->AddText("你还未达到重生条件!");& O, T7 m7 b4 T6 x; Y
#endif
0 ~: X( \4 s3 Freturn TRUE;+ o4 E" h1 W; h- [1 I
}
) L2 r& d6 A& B" b
' y! |0 N" e( u* E4 c" e' s3 v7 ]% {6 w# T# I) v* E9 I1 v
7 u% A0 g) S" h- w) d g& ~
$ e' x; C& y ^4 M% M$ ~ |
|