|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 C2 R6 ]3 x3 l9 D0 k
; z0 Z) V. r$ D0 BMover.h& Z: C$ N6 g, F. O5 H8 `" W) g
代码:+ E/ X4 H- C, a4 o1 [3 q3 b" N& a
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 g& m- \# H5 Q+ H4 E: {4 U1 H. u+ Y" ^; l) T: A* R
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' Q4 ]" A. [! R& j
3 B- O" ~5 L' V9 }然后你去mover.cpp添加
) g) P/ n2 _: E. ]; R& g. ]5 ^4 \% \; {
代码:. R4 K0 P# s5 n, a1 G# B; `' ^) w+ N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% y# h6 \& b& b; p: P/ z
{
5 l. t9 A& J0 g. R" a) S) g#ifdef __WORLDSERVER; r' o' q! j$ v. s* w" x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: h- ^! R$ e1 ? MoverProp* pProp = GetProp();
8 q# u$ R1 ?+ R) [& A if( pProp )
0 p u( O* h0 |1 j! ] {
" @- |* a x' U if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 @7 p6 d! B7 G3 K5 [: | {
+ t% `+ h" C. U: X4 `+ p* |0 | AddChangeJob( nJob );
- C3 m) [8 u/ r" X; z }else{3 J3 _* E/ l8 `; S' @8 `% M% p5 s
return;
, D2 r* t; d ?- q3 A }
6 E4 n8 s* X3 v int nPoint = 0;; o2 N& m B( Y* P" Z S4 M& Y
if( m_nJob == JOB_MERCENARY )
' L b3 m; S% g9 I# f/ H nPoint += 40;
( \/ M+ C/ {4 U5 |( H' ? else if( m_nJob == JOB_ACROBAT )
z5 O/ T1 a4 t1 O nPoint += 50;& |# R6 B3 ^8 l g( z4 q
else if( m_nJob == JOB_ASSIST )
" F/ F8 H+ Y! R* M nPoint += 60;
' F" ?1 u) a+ E3 D: |' a1 W else if( m_nJob == JOB_MAGICIAN )2 X" [& P( i# F7 X- y
nPoint += 90;7 n" s( n" x& A# y- s2 s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 i) ]2 V- N6 D9 \- x
nPoint += 120;5 j+ M( Q2 Y& U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 n) F6 f& X3 T/ s
nPoint += 150;
1 R7 p7 a) H$ c- J4 C3 f else if( m_nJob == JOB_RINGMASTER )* s$ |2 s3 ~& h
nPoint += 160;
, L0 u; m+ a. s0 e else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 P# c9 ?1 c" i! N
nPoint += 180;
c5 I% _; Q3 u4 J7 j3 m4 Q% P5 w else if( m_nJob == JOB_ELEMENTOR )
/ R5 O& M8 A4 w. e# S' i nPoint += 390;( d G! M0 @: c/ o5 k
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& z! O5 u9 V$ ?7 L6 T) i
nPoint += 120;% ]# S5 Z2 Q A' B6 v c# x7 i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ s& P( f2 u s8 `, |; X' V
nPoint += 150;
, `+ B- r2 R0 v& x# f else if( nJob == JOB_FLORIST_HERO )* }9 D* Z, j y# [, p, q) K
nPoint += 160;) [ {" s+ L- t0 w
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 U1 p* W9 _: K( j nPoint += 180;3 [9 A9 s0 z2 I
else if( nJob == JOB_ELEMENTORLORD_HERO )
' a3 b4 b* w- P3 b7 ~( T8 \ nPoint += 390;
1 d4 d* U# `0 z8 O- V% e9 O7 e) @( h& I& m
AddSkillPoint( nPoint );. T, E3 }7 @5 E2 Z
m_nLevel = nLevel;
" j6 D: k- L# R: `, a4 Q. I2 l$ F
* d9 ?' u& ?9 `: f' R SetJobLevel( nLevel, nJob );: k2 `7 F+ o) D$ }( M) V9 ~
m_nDeathLevel = nLevel;
# A. W9 ]' e3 O3 H! ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, R$ Y. B [8 }7 B
if(IsMaster())) [) i+ Z: B; T
{% U0 \! O) U' \/ b0 q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, c! t1 J1 O2 m
if( nLevel > 59 && nLevel < 72 )* E7 {- {. B, s
dwTmpSkLevel = 1;1 @$ i P r; ]7 B
else if( nLevel > 71 && nLevel < 84 )
+ S/ O* X/ N( U* Q Q dwTmpSkLevel = 2;
5 q0 _, ]' b: l2 A else if( nLevel > 83 && nLevel < 96 ): _/ A& B. U5 M- y
dwTmpSkLevel = 3;
. _( v: D, w) k else if( nLevel > 95 && nLevel < 108 )
4 r) z+ s. f* _- I& U( X, E dwTmpSkLevel = 4;
2 s. z* i8 _+ } t; j) a else if( nLevel > 107 && nLevel < 120 )
4 q* [* Y: a% z' O+ E* n dwTmpSkLevel = 5;# M6 y% J, B4 s/ |0 Q% O% l' a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 L7 I1 ~2 \5 c: F# V K8 [- J
{
+ n! m2 P" s! \- b, w1 k LPSKILL lpSkill = &(m_aJobSkill);- \0 J; s- @. M4 z* F; B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. m2 p+ `9 {9 p7 q! D {
' m- _/ q3 z2 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); T# ?& q3 n& ? ^
if( pSkillProp == NULL )
3 N% c. q% g" h continue;
4 x7 j1 C; \6 c. @. n# o7 Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 t, I& K! q( }! l
continue;
/ r0 c. F: \! @ lpSkill->dwLevel = dwTmpSkLevel;- ^5 y8 m. o/ r2 |$ y
}6 W. L' `- a1 H# z1 O
}$ J* H7 i2 O U A/ C- W3 @4 \/ z% M) F
}
" R2 ~. t& l3 X1 j" Z else if(IsHero()); C1 d& ~7 C' l0 {$ F
{# _; ~; }4 V) P" r% u6 j" I P3 j/ M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# u9 t: k/ v% Y' j; O- g9 E: Q { ; e/ _' k7 g" K: s2 f6 J8 W" H& Z3 \
LPSKILL lpSkill = &(m_aJobSkill);
/ D1 ~8 E- D* l if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 M- u/ o4 O0 O8 |+ s& K9 r {' `; j- R1 i7 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- j7 P9 W8 k* g: w! d" V, ~ if( pSkillProp == NULL ) S) q1 q# V2 D+ E7 D' C r0 P+ W, m
continue;
. d( I( J% W8 B- u% |$ ^6 {; Y6 p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ L1 @1 ^$ f- L" Q2 b& f continue;5 y4 W: V2 [* x& q2 q4 K
lpSkill->dwLevel = 5;6 e# ]1 ?& ]' r/ ^9 E
}
: [, i# H; @6 X9 b3 B }. @. D" d8 ~" [8 ^: Y/ m
}1 |$ R3 Z+ M/ R7 i9 P% v
else if(IsLegendHero())7 m! | U% s9 Z$ F
{
* f. E1 J; G7 Y6 V9 |* m5 x for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Q% b" e9 u$ q, h6 U P3 Z { 6 z- q/ u) L; s$ O# d2 `; F) e
LPSKILL lpSkill = &(m_aJobSkill);
# m1 O: W& o3 z+ [! N9 U" Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 T0 j2 z3 _2 _, O1 a8 {3 _ {
$ S! g% `- _( t W. X( ~9 D) V8 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 d- G8 [- ^7 I! h* R% R if( pSkillProp == NULL )1 K% V; p3 h# f5 z [& k( B
continue;
p3 G, w* l7 ]+ `' B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- X8 h2 o; H2 `- Y
continue;
* Z& j# v' k% Q V5 k lpSkill->dwLevel = 5;
5 O p8 L( z# m6 N }
1 j: q$ d$ h9 ~+ e) g+ E }% v+ b' K3 J9 N7 G
}
: Z& k6 F) j4 @, F#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 Z+ f6 I( P# W# r
if( bGamma ) v" D9 K3 @4 f% f/ t; |9 I* L( O
{& {0 c$ O/ [) X) V" x; B! h
m_nExp1 = 0;
9 U) \3 e: k" ?7 u# r4 s& I }+ O# i, r# c, x. ^
$ w; [' ?$ i: K
( (CUser*)this )->AddSetChangeJob( nJob );
9 a2 c% S( P- f9 ^9 y" _2 y! ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 s+ W# _' ]! {' m4 E' F% M3 |- S
4 V) r6 t7 Z$ ?' h& S: l$ D# \
4 B6 ~) {6 H. g+ A+ m
#if __VER >= 11 // __SYS_PLAYER_DATA% O, Z n4 U2 a4 q- ]: ]; E
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 w r" ?4 \0 b$ T/ J/ o. I. a
#else // __SYS_PLAYER_DATA7 `5 k# \/ }9 A6 G4 V( D- R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* k$ U- q- U" q3 c2 y- L1 U9 Q6 \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' P* I: V: N% r R if( m_idGuild != 0 )
7 \, o' n$ L2 M5 F, ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# G' {. U$ i( h I4 `) ~#endif // __SYS_PLAYER_DATA
2 @; B# R' u* X; E; q4 F/ M SetHitPoint( GetMaxHitPoint() );( c6 ?3 i) l, n& M" O9 |3 \* ^3 F5 U
SetManaPoint( GetMaxManaPoint() );
; X! ^! O! ^! K$ y! f" S: W SetFatiguePoint( GetMaxFatiguePoint() );
7 w9 _# }. W: B" t4 ]6 r7 g W& x; L if( nJob >= 1 && nJob <= 4 )
3 }2 g' ]2 ? ~3 }' b, L/ O& _: v {) d& k& ^7 z& _% a; [7 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;; D2 d% A9 A" V% `: N @6 C
m_nRemainGP = 28;
# n8 J1 @& ~" w% p k8 [+ g" ^+ w }
* T# a1 y2 W0 _. N if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: J7 F. @ Q: I! | {
) j z4 I- y4 L1 K. Q! Z m_nRemainGP = 118;" S4 \" o1 V4 S3 l" A$ O9 R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; v) D4 A; D" }, L5 G9 u5 r0 X m_nStr = m_nSta = m_nDex = m_nInt = 15;0 ~* U5 `8 p! m f. K
}
; Z7 w+ x- D3 t" l1 u0 U if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) O5 g; X O a2 I' i
{! K& Y! g" _$ T' c9 h/ x5 q! |3 \
CItemElem itemelem;
8 l3 D; i9 v# T5 ~3 s itemelem.m_nItemNum = 1;5 G, u8 x) u, d
itemelem.m_bCharged = TRUE;# Q5 ]5 a; b1 }! t+ E: ]# y2 u
BYTE nID;! }/ z) `! E( F$ C3 G5 B, u
( Z. @: a* A9 z$ | if( nJob == JOB_MENTALIST_HERO )5 m. P, Q4 S' W: I' y/ ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* x6 e9 W$ f# [ v, }( P
if( nJob == JOB_FORCEMASTER_HERO )
0 U' W" v* @8 x" @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: V$ Q! I, d( L0 O) B
" q# i n( a0 ^4 M$ D! {) s
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 P9 d, a/ P4 K% `# v: T5 b: {
}* F# n/ h Y: m' t
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) u, N6 f+ w1 I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 z& B4 d5 W& O9 p4 l5 b* g3 V: I ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- p4 i7 b& C8 T5 Z X/ d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: s, `2 v( Z' L: V5 Y- k$ [( i
( (CUser*)this )->AddTaskBar();*/
( L% N8 j! J+ u3 P$ M ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 b! p o$ r" x5 l w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 ?3 @) ^" c8 j6 T. W1 F& Q- Y ((CUser*)this)->CheckHonorStat();
3 k* k9 K; {! o/ j ((CUser*)this)->AddHonorListAck();7 m \9 N) Z) A0 o6 j' @
g_UserMng.AddHonorTitleChange( this, m_nHonor);+ d6 K; U3 H' |4 a6 `
#endif // __HONORABLE_TITLE // ′Tà?
5 S: L4 y% i, B5 L p }
9 M6 _4 Y- x$ n/ X. _( }8 h2 A#endif // __WORLDSERVER
* |/ R" x8 m" c/ `( F) l0 O+ D}
2 Y- c* c& L8 i) k9 e* w4 z ~' a" j6 r& m- e
然后你进入functextcmd.cpp并添加以下
8 M8 ?* f: ~7 k1 k% y$ Z3 o1 i. W
代码:
6 i+ p9 c W/ ^$ BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 H ]. w/ U. _2 n下面插入4 W8 V9 g) y f# R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 N9 m. A5 I# h0 k% }7 c2 D" [5 p5 ^3 b3 U: h( X
然后你去, B- B* D0 h1 x- D9 Q5 D p* Z
/ w5 C' n6 J0 x5 \1 j
代码:
! P5 v% Q8 A2 U7 Y4 s" ~, n代码6 ?+ N ^' S$ S6 Y7 V& T5 b9 m
BOOL TextCmd_ClearPropose( CScanner & s )
: g6 ]+ G6 @' P8 M+ a: {% o9 k{
; d5 M# b4 V! t1 p& n#ifdef __WORLDSERVER
& |5 I, S# ^5 a3 [& ]9 Q, n( X CUser* pUser = (CUser*)s.dwValue;
6 |3 Q/ p4 X: R* V g_dpDBClient.SendClearPropose();
: T0 e6 W. |5 B3 [$ I#endif // __WORLDSERVER
0 x3 _: ^! t# c6 v, s1 G return TRUE;* a& E4 v- P5 R: o- t
}
& R4 [, g' q; j下面插入
3 {1 f) _3 y$ QBOOL TextCmd_rebirth( CScanner& scanner )! U; A9 I2 j7 h% N
{
- }" c/ N& m" c4 E6 V#ifdef __WORLDSERVER8 o2 h7 y. f7 n$ H
CUser *pUser;
5 C9 |: h$ c! T' t7 Y8 ~! cpUser = (CUser*)scanner.dwValue;5 t& i! |; `0 O4 o& k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# E0 Y% u( e5 P g3 d
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; K5 _8 C& C6 l, M8 Nelse. d. r. v5 f* R s0 ?9 N
pUser->AddText("你还未达到重生条件!");
: k3 |1 u6 i2 p! N) H1 D9 G) _#endif
5 y# D; U2 L6 Jreturn TRUE;9 f0 u2 J- O R! M6 {# a/ N
} ' U0 ]2 S8 Y. d. ^ Q
8 r, d$ D' J/ C2 S( ~
3 I" G0 [. V( y) U/ I
; ^- H- h; i$ @! ~1 e% E9 j% L) Z5 l
|
|