|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 l& T A& l* O8 y
! K% Z3 w' \" A
Mover.h9 T3 U, }, G# K* y. ^4 |+ m2 a
代码:
8 v4 f9 A! [$ S; l0 n2 t* s! n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 a0 t# H u/ g3 S1 k
4 o! H! e6 s% N) j/ C$ C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; t3 r" z- o8 I# U8 L" f5 g, Z
. P0 C0 a5 m" U2 Q% U7 z然后你去mover.cpp添加. }4 P8 e- Z% |, p' _" i" V6 C
8 p/ J; [3 u) D7 q6 T
代码:& u2 u: s8 }3 }) h6 ]4 s0 }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
i( j# h! t6 C# D' M{
0 T8 i8 r/ a" J0 T6 M#ifdef __WORLDSERVER7 i; \$ P+ W$ |) q8 p! M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 m2 A2 I* ]# ?$ C" G, ~6 j6 ~
MoverProp* pProp = GetProp();
4 u9 z3 Q4 V8 B# V0 [" n0 ~ if( pProp )/ h) d t- C+ k0 \! X4 v
{5 \: x g. m6 c* \$ J0 L0 E
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" ?7 e5 J z9 T0 _ {
9 j# w" I" D, @ AddChangeJob( nJob );6 b1 a: r' O/ }5 o" |$ j& v! i8 Y
}else{
1 x: Z B% `. S9 ~1 f: A' `1 g return;
% Y5 K! W6 I2 [7 {$ T }
" G6 r$ C# a' w5 b* }5 z int nPoint = 0;
0 k& B; l% c7 D) P+ a5 s if( m_nJob == JOB_MERCENARY )
: y: u5 ?9 z) {3 h2 Z0 z6 j nPoint += 40;* C( Z3 ]8 o) `" I
else if( m_nJob == JOB_ACROBAT ) a9 h: L( p3 p+ Y. v6 Z9 Z- F' C; N
nPoint += 50;
- u0 {' }1 m5 {3 a# T else if( m_nJob == JOB_ASSIST )
! r( _( _! y$ h% ~% f* b0 J nPoint += 60;$ a4 Y* Z& B. z$ o3 D: E2 g
else if( m_nJob == JOB_MAGICIAN )
( l/ F9 r" l6 y" H7 W nPoint += 90;% Y9 L1 a4 u' B6 k) Q- Y# }# L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! ~+ f$ E* I. e: {5 W s4 [- B nPoint += 120;: @) I6 b. Q. `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). r! ?5 ^+ z% E4 Q0 ~3 A
nPoint += 150;
/ c& n1 b7 |" p8 t* p4 y else if( m_nJob == JOB_RINGMASTER )
! P7 t) e" C: r0 Y+ ` nPoint += 160;6 Z5 K4 @6 j* P9 ~) ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
$ @% E& N8 i3 i5 d X9 x1 H* p. g nPoint += 180;
$ H/ l: g; C: j* m4 J& \ else if( m_nJob == JOB_ELEMENTOR )
2 m- N- K- J2 q. M6 d/ [& S, F nPoint += 390;/ O" L4 z& Q/ M9 [: k' R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* J" s, `! w/ K* K) p M
nPoint += 120;$ M2 B. H5 p2 B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ B3 A$ N0 N& ^8 J: L6 b nPoint += 150;* W$ r8 u7 O8 J, d0 T, F# l
else if( nJob == JOB_FLORIST_HERO )* l+ M) T8 ^' m* p* s
nPoint += 160;
/ a' @" |3 f; M* h* n8 a. W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. I- x- B4 r- @- t6 B nPoint += 180;
4 x; f2 a3 ^- ]/ n* |" h' l else if( nJob == JOB_ELEMENTORLORD_HERO )5 T8 I; Z* m) P8 e# T
nPoint += 390;
) A: h0 k% f y+ S; [ k. l
2 S R& q$ x3 P( K# D$ x" G AddSkillPoint( nPoint );. C" X3 I G0 I1 p: I
m_nLevel = nLevel;
$ i$ U* r% M7 A4 [8 ?% x9 `6 X0 P' s# j% k" g8 ?$ X
SetJobLevel( nLevel, nJob );; _" l& E1 M* }8 E' Z
m_nDeathLevel = nLevel;0 v/ E" G C) G3 y, m
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 R' A; k2 f7 T! O- ?/ P4 t if(IsMaster()): p- G: Y& f4 M% ?* v' w
{
, t0 u! n' {+ `4 N$ r9 r int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
S# k* c, A% O. O% Z if( nLevel > 59 && nLevel < 72 )
* f" ^& N% V! K, t dwTmpSkLevel = 1;
. b* F6 ^7 T8 A* n7 C! N else if( nLevel > 71 && nLevel < 84 )8 c# Y* y6 u0 S& r* f2 S. W
dwTmpSkLevel = 2;
' w2 v# U9 {. T else if( nLevel > 83 && nLevel < 96 )
/ C$ K4 X S' o- [; H: K dwTmpSkLevel = 3;* T% j$ J1 k3 \' U1 q
else if( nLevel > 95 && nLevel < 108 )7 X+ u2 y& @, T
dwTmpSkLevel = 4;- T+ u( S3 M! b1 J2 S0 T$ I
else if( nLevel > 107 && nLevel < 120 )
8 X& y% A* L0 H9 h# G7 u; ` dwTmpSkLevel = 5;
" ~; ~) \7 \8 S9 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ Z# B+ _! b2 N9 x E8 ~9 | { " D2 q3 x9 o* Y
LPSKILL lpSkill = &(m_aJobSkill);! l9 h$ h5 q1 b3 P0 T1 q3 |
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 x1 t6 m" j7 B1 v- K
{
7 `& T \% [6 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ W0 m v, D8 [2 X6 W. s( D
if( pSkillProp == NULL )
1 L0 \9 r" D1 x* p6 {8 u, l continue;
( t/ P: y8 ?& p$ z" v% ~, c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# H- z9 k; G. V- `5 z continue;
k- s5 |" v' d& Y. b& F# L% Q lpSkill->dwLevel = dwTmpSkLevel;
! J+ T4 l: P3 F }
/ U, C* w5 f4 w% M7 j }
; ?9 [3 G7 C6 r" z' p2 u; [9 h$ @ }4 b. S# k/ [9 @+ S" ?* ~
else if(IsHero())
2 l. ~# u6 s" [5 ^& K8 d$ ~' `- R5 t7 K {" j8 K3 T1 B6 }( O4 i8 q5 h" H% G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : f4 x/ `+ K% L1 V7 ~6 V+ I2 ^
{ . N/ \! T/ f6 k9 `% b0 o
LPSKILL lpSkill = &(m_aJobSkill);4 s, G+ v- p- Y$ ~$ \$ j# C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: z; C; x1 n7 T% n3 Y0 S {" t$ V7 X; I2 J( d1 M) x6 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ W9 v; S* j& @; Y8 b if( pSkillProp == NULL )
+ W8 k% d2 x( y7 h% ^% S& P continue;
8 y" z, n/ z6 k y5 c9 R0 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 `) x; H+ ?$ A6 U+ p, b1 @
continue;1 k' v, V) y3 D
lpSkill->dwLevel = 5;
) E! P( K, l D7 i0 { }
! T5 e1 q9 X4 `7 v& D }
5 m$ f% [5 {- g5 N, S5 C- z }
# j/ {6 t m; n2 x else if(IsLegendHero())
2 Y0 M. i+ H0 A& p; f$ C C' l, y {
0 }6 H4 \ r% t for( int i = 0; i < MAX_SKILL_JOB; i++ )
' }3 H) t% Q" W { : ?# ?9 M0 u' z& n
LPSKILL lpSkill = &(m_aJobSkill);: A7 V2 k W9 J9 D1 [1 ?! R+ l
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ b& W3 d/ F# y6 t1 [" H; F, p
{& |& ]# i9 |9 [$ j! Z5 ?1 T: c" X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 P; Z4 J+ _) G/ F: U! _4 I2 a
if( pSkillProp == NULL )* G; k2 z8 O4 I
continue;
+ z: U4 x" c6 L0 m1 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 I: X! i/ I5 r5 k9 h
continue;4 g& d( |- y, N9 ~3 k$ A
lpSkill->dwLevel = 5;+ V( y& v5 T* p4 p7 T
}
7 J* T1 ], b: N }
6 \/ Q! }# v0 `# L- {/ a3 D1 Q }
$ P \8 Q7 P3 Z& d% j% s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; C' |* D$ b5 } \2 }$ E+ T7 l if( bGamma ), z/ z4 J; u8 ?# W$ A
{+ h2 A" V& C. G1 O$ z0 }3 n
m_nExp1 = 0;. ~+ M0 M( H( U/ w$ }
}1 t- A" D0 r- b' |
3 g! R. Y- }' S8 S4 a8 M ( (CUser*)this )->AddSetChangeJob( nJob );
3 o y( W B( q2 i @$ i9 v- K3 o$ I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 L) i0 U8 |: N2 \1 j* q0 o! f7 I: G
: y0 a K- a) K6 }* }4 ~2 t
, M: R# k( _; G9 r& u, d) W! `6 y6 }#if __VER >= 11 // __SYS_PLAYER_DATA+ {+ d- Q3 [4 n2 t$ x) ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- q$ ]1 q! y& L) {! e% t2 [#else // __SYS_PLAYER_DATA7 s" c. C% k( i$ i. K9 Q# r) O4 y
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ c L1 Y$ c4 d, p. E* E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 p4 G2 M0 G% V7 h2 } d4 U9 u if( m_idGuild != 0 )
3 _1 k0 Z& _$ j' z9 T( ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 A/ V7 y$ b3 j B+ p1 ]#endif // __SYS_PLAYER_DATA; M$ n# Y/ e2 i; f& w
SetHitPoint( GetMaxHitPoint() );# _ d, I( \: l# p% k" X
SetManaPoint( GetMaxManaPoint() );& L) x: h0 m4 D1 {. Q+ B
SetFatiguePoint( GetMaxFatiguePoint() );
: y/ L/ T/ m- a8 @+ z2 o if( nJob >= 1 && nJob <= 4 )
% D* Z2 Z* E- s* w5 @4 j {
/ s9 u+ f6 l, ]# [4 Q9 K4 ]7 o* Y m_nStr = m_nSta = m_nDex = m_nInt = 15;8 j* K* c' }% g
m_nRemainGP = 28;0 U- A4 o) g {. Z$ }3 H
}
8 z. x) |+ j: E2 V7 \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- r" z+ y* A, ^- B! n$ @' y* m: s- L2 [! K {
: q: K- E' p/ b m_nRemainGP = 118;' c* J h* g0 M# o: k: c* p$ @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 n4 z+ {3 f! a g. b& T3 o5 g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 H7 F6 N6 h B( o4 ^ }
# q6 s4 n+ P( b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 r& _3 `3 i& ~6 r" Z {4 B" O2 i1 P$ b1 \
CItemElem itemelem;% I) ?/ g" s6 }6 d
itemelem.m_nItemNum = 1;
# E; g$ I) I- g1 G: V+ N itemelem.m_bCharged = TRUE;
7 t+ U) }3 t W0 C+ L% m BYTE nID;
/ x/ w/ O8 G" ^, ]
# H# @4 C1 e% }( s if( nJob == JOB_MENTALIST_HERO )0 g* j& M+ L- \% c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, C y2 O+ q: O4 s! m2 [ if( nJob == JOB_FORCEMASTER_HERO )
4 B" h! _9 f; s3 O0 h itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, e1 A- G6 b1 c8 v" I* ]3 b7 {
3 I+ i8 N3 x& C$ Y1 T3 F P+ _6 x* O/ J ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' `8 a8 k8 E7 ]2 T }
1 r. T" Q' v% u9 w8 H9 u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) D6 u2 Z' [7 L! k) c i P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' D( N! k2 ?4 b5 B( P) e2 g: q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& M+ P( u8 L t, G0 ]1 m" B: H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 A/ ]$ A% v& O# a7 U ( (CUser*)this )->AddTaskBar();*/
6 [2 x/ P5 D ]4 j% |' J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 Q$ H& p( j$ {7 W: ^! S! l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 E+ X# c& b% t% z7 j8 G ((CUser*)this)->CheckHonorStat();
~4 Q; \( a& @6 l! D; c) M, O ((CUser*)this)->AddHonorListAck();
1 A; H% z1 ^& n# i. o g_UserMng.AddHonorTitleChange( this, m_nHonor);$ \& Z4 c% L* ^+ D: \2 H
#endif // __HONORABLE_TITLE // ′Tà?
% L; k4 n# g3 U# y9 V# f4 f4 E }, P- J- W. D, d1 K# [1 B1 t
#endif // __WORLDSERVER
$ g/ y% K [# w7 F+ [} 9 ?5 K2 `( H" D1 q$ E4 |
* |5 ~9 M, O- H( P, N然后你进入functextcmd.cpp并添加以下
7 X' W! G: x& t& |* J* V$ _* V- T4 S1 f/ u) `+ @5 P
代码:0 n1 d5 m1 J% y3 R) a+ A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) [/ \7 f$ ^$ [$ s/ F
下面插入
5 {* |5 B# O. c" c9 [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
0 W; H& B2 T, E# w, b
1 q3 W0 R% I0 ^& m! B3 \& Y/ `# v然后你去
! `/ G1 v' ]+ e3 ?$ K; i6 |4 r, s& x9 w" r; z3 W
代码:
6 L0 ^. R- w/ p6 C9 [$ e+ j代码
2 d9 q; P5 A& I# d% YBOOL TextCmd_ClearPropose( CScanner & s )* b! t0 k' ?" b' D) F
{
# D! g6 n c: n5 l) _#ifdef __WORLDSERVER" L! Q5 O1 ]5 A
CUser* pUser = (CUser*)s.dwValue;4 U& e0 c n& d4 i8 Z- q/ O
g_dpDBClient.SendClearPropose();
7 a4 u0 A. _" R9 w- I1 o- m#endif // __WORLDSERVER: T6 e) L" w! K" g
return TRUE;
( p: N# i& M( O8 J}
& s0 Q- |; B$ j& I下面插入- z# a9 b/ r' F# \6 l; X
BOOL TextCmd_rebirth( CScanner& scanner )
; o. W, t; z. \% @6 ^{
) Z# A6 g; v& `" N) x% ]7 F' h' u#ifdef __WORLDSERVER' a3 c% Y4 D* D
CUser *pUser;! `7 r% W% h( m" `
pUser = (CUser*)scanner.dwValue;) n9 i3 d' d. Q- W4 c% p
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& \9 h4 U" K" C! E9 l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 a, S% T+ L# b6 x' ^+ D- n* N) yelse
* v' b! o! P, l w# VpUser->AddText("你还未达到重生条件!");
, M% Z b2 O4 x% W! T; p8 @#endif1 g2 {. t |- G6 ^5 z p. o
return TRUE;
5 w* A. j- [8 `: f7 m}
# A2 V' v3 @% j) {2 h2 _+ S. R2 b& p$ w9 b, \, S
# ]" H& `* |" f2 B5 w
$ y- k0 |2 M, b! A
2 \5 {- r1 S) Q; B
|
|