|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- p: P( O. ~6 l8 U
$ z# L* R4 M( j. e
Mover.h
! L# ]6 S) {$ b7 m% k+ O代码:2 `" K6 ]3 `. |/ J" b3 K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- r9 m( G) m6 V4 _& O+ k" [" z9 w& [7 B9 Y, H, u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 Q. W" z& x6 ?1 \% I" b4 D& E) h4 y5 a9 d \
然后你去mover.cpp添加+ Z2 Q. _& W' i F! L) Y
9 B8 I% V) u# e; N9 f8 q代码:7 \2 h9 |; o7 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 G) O7 O# O4 R" [9 q" [{0 ~) R$ m* R+ P, M O
#ifdef __WORLDSERVER
M# G, y: Q2 z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; q+ w n" |( { MoverProp* pProp = GetProp();1 t" E8 \" R T% o
if( pProp )
9 ?! D" r! ?. u9 f- w# r {" U) I* r- D9 n5 n. @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 h' r x+ v$ O! A# h: V8 ?! q+ X# s
{% a4 g5 _! d' Q
AddChangeJob( nJob );
/ ]7 |; c/ e: D! C# ^ }else{
2 `8 p5 }+ c ]" r2 {2 B- C- H# `& } return;: b) U1 g, w* v. a
}9 J- e; U- Q |0 ?, r) ]9 ]
int nPoint = 0;
* y! F8 I7 O- o9 F% o* B0 F if( m_nJob == JOB_MERCENARY ), K0 O# M6 k2 `% h
nPoint += 40;% |0 \9 h, M, A. q
else if( m_nJob == JOB_ACROBAT )+ |% g. q, K* V- u0 Y/ k5 M
nPoint += 50;
, l# s) ]% V: u3 |8 R% X else if( m_nJob == JOB_ASSIST )
: e4 y1 K" E1 J; r nPoint += 60;
" t: N) u; K- O1 ?0 p' Y; ^ else if( m_nJob == JOB_MAGICIAN )
% K! o( Z8 z8 h nPoint += 90;
6 O' @; h D, r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 ? Y* I/ @6 U2 n: }( i nPoint += 120;+ m' V) N& o: k2 w0 U% {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 K9 i7 M2 F+ r" J; l- s! C3 Q
nPoint += 150;- l. u5 C" |: E- l; _5 t9 I
else if( m_nJob == JOB_RINGMASTER )( ]7 Z) I# i8 ?* U' L @9 Q7 Q
nPoint += 160;
5 H; J; M5 x+ W6 K1 n# ~' q0 K, h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 J1 U1 p5 k9 ^$ X nPoint += 180;+ e8 E, H4 ^2 Y) \" O
else if( m_nJob == JOB_ELEMENTOR )
+ M' @0 v9 K; b @$ V nPoint += 390;* Q; N& w: q' K7 }" d6 A0 X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 }/ R/ z% ]6 k% u
nPoint += 120;( v$ N* l+ f, F) [' ?/ ^ }9 ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 m+ H ~0 M( j5 V$ \ nPoint += 150;7 u1 J% j8 W: K& ?. X1 Q
else if( nJob == JOB_FLORIST_HERO )( N8 L9 t) L2 ?9 l% g6 p9 O# j* J
nPoint += 160;
% X G W' ]" i. Q5 t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ d7 X) D: Y6 k2 d$ @ nPoint += 180;
6 Q* e3 u9 ?3 u) |, d else if( nJob == JOB_ELEMENTORLORD_HERO )
6 Y, Z6 R$ q% \7 a- u1 o: V5 V nPoint += 390;! b# G: [5 H, M% c5 L# l
) u4 N# k( k3 k5 H. _& Y: r `& B
AddSkillPoint( nPoint );
" u) C# q# `6 a m_nLevel = nLevel;
; |$ @) T8 h; e$ ^- d9 e9 J% M# x
SetJobLevel( nLevel, nJob );
. @6 r6 N, g! _) k/ Q- ^ I m_nDeathLevel = nLevel;
' j; m r& K6 f% d; v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! w4 H0 W) o! ?- d4 o
if(IsMaster()). G& m- X( O# i( H8 I9 \
{ ]: d# l" Y: R
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, U" U) O9 l' m& u8 P1 T5 s
if( nLevel > 59 && nLevel < 72 )
9 H+ J& v; J; Y/ v* ` C dwTmpSkLevel = 1;
1 Y7 W3 B5 B1 V! O else if( nLevel > 71 && nLevel < 84 ): R+ X' F$ v2 S0 L% k( f0 p% C, U
dwTmpSkLevel = 2;1 i1 b" ]6 p; o- z
else if( nLevel > 83 && nLevel < 96 )! l# L( N8 [9 O. I* u4 _2 |
dwTmpSkLevel = 3;! C9 W! z8 t5 W$ A5 @
else if( nLevel > 95 && nLevel < 108 )
7 `, Z9 q! o& B8 S8 q dwTmpSkLevel = 4;
4 q/ Y' n; F! z& |) ` else if( nLevel > 107 && nLevel < 120 )
5 R4 h. [) ^! [& H% o' n7 D. i1 ? G dwTmpSkLevel = 5;& L. W* Y' F3 Z, a( W0 p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & g8 ~. h6 y9 w9 Q4 O
{ * ?- W- o" m, q/ Q! I. U6 F
LPSKILL lpSkill = &(m_aJobSkill);' S! o$ b7 l4 i2 `. S+ B# }
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 ~" H1 S, T8 W% n8 r/ E
{
7 y' t9 }# C; u0 r, a1 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 Z4 n+ K7 T3 v8 L& ` if( pSkillProp == NULL )
2 V1 R# j8 H; i, ~, {- C continue;3 W! Y& q& f- b4 i6 Y" L3 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( d2 Q7 `: H( t2 A. x
continue;
2 ^, y: v! J# b3 T) S lpSkill->dwLevel = dwTmpSkLevel;0 z2 G+ a* {: o1 E- M6 S
}: V% Q8 s( w- _7 t1 }
}8 A+ O M7 ?9 D) H
}
i+ ~4 j4 H: q. F2 A/ h* n else if(IsHero())/ V% Q" W5 c; |
{; A9 R) }: E+ l( N" e4 l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" b" g) n0 \! G) t0 v( c9 E {
6 d. g% O6 I6 J; X. @" \4 t& _ LPSKILL lpSkill = &(m_aJobSkill);
4 O$ N3 o, T3 W6 g5 D if( lpSkill && lpSkill->dwSkill != NULL_ID )
( t' ~2 z, G3 {1 W3 Q {3 ]6 f' z% X: X* L% B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
@8 q6 U7 L6 P& T P" z if( pSkillProp == NULL )
7 Z& I+ Q2 b" P. C. n continue; w- m u& N6 t% g; g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
s& `( i' n: y1 G continue;3 K( D" P; F% M3 [' Y
lpSkill->dwLevel = 5;
6 G* t; t3 m; x# v/ Q/ p: E( i }
7 w+ V" `0 d5 `+ I }+ r8 p+ v" l6 h+ a6 P8 F
}/ N/ E' U9 g5 h d& ~: N
else if(IsLegendHero())$ X; Z( p/ Q. A. u; @0 q' g
{* ]5 f+ J5 ?9 q% G3 M8 s- x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 t1 a( \% f, J6 U" T {
+ |1 B" Z' r6 O2 g- | LPSKILL lpSkill = &(m_aJobSkill);3 ?+ d3 a. w5 w
if( lpSkill && lpSkill->dwSkill != NULL_ID )) M9 N: e# k! B5 m- H
{
/ g$ `& k/ S8 |0 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . ~; g( P! }/ a6 C/ Q; l+ \+ y
if( pSkillProp == NULL )+ A7 B) z' H7 F4 j
continue;
& A0 J5 A2 V0 h+ Z' P" J& q5 s9 I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 L" O1 u8 r" z4 g: \# Q; [
continue;
; Q' j. E- e o& r6 ^ lpSkill->dwLevel = 5;
9 w0 |" M8 p0 R K }( F! z+ y4 n0 w- ]% }
}
! s5 r9 |, J5 V& \6 R }
' G7 M ?" s# f- F#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ R. X [- Y. j1 O7 a- X+ Z/ J7 v$ \ if( bGamma ), o, M1 S9 P+ u% t( F: C6 I
{+ F7 v3 R6 C @9 P; `8 _- ~9 o
m_nExp1 = 0;
4 G/ ?6 S; B# d& D2 c }
: b% J( s8 C. h: C1 ~! q0 r$ l0 L' R( S. a
( (CUser*)this )->AddSetChangeJob( nJob );/ U- Y+ O0 ]4 O- v; ]+ W& x# y4 ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) a" K# l1 ]& H8 A) J: S0 T
. [9 q4 D. T$ l8 [8 ~
1 E8 z/ j+ ?) n, s* ?/ o#if __VER >= 11 // __SYS_PLAYER_DATA
+ l* n2 r2 t$ n2 E9 c( x% M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 S" d4 h I+ q" k f#else // __SYS_PLAYER_DATA/ v& _2 a5 S" s1 A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% {8 j/ g3 [$ {9 y: B$ W
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 h C) X( Y* {# l( h/ k if( m_idGuild != 0 )8 j O4 q! S9 W
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) a" W, z, U/ q! d
#endif // __SYS_PLAYER_DATA" l1 @% a3 u0 ]4 D; H: _7 S
SetHitPoint( GetMaxHitPoint() );+ C7 u0 A, o4 L- f9 s/ B6 n/ y
SetManaPoint( GetMaxManaPoint() );2 y9 c/ q# T* G5 u0 m
SetFatiguePoint( GetMaxFatiguePoint() );/ V2 O N) w4 Y3 F2 W+ s& P
if( nJob >= 1 && nJob <= 4 )
7 A X- L. y) c$ d+ K% Y- r {# g; A- b2 B/ V: t( b, K# B
m_nStr = m_nSta = m_nDex = m_nInt = 15;& s) i6 O% K* V% Q& r
m_nRemainGP = 28;) ?- I; q6 i; z4 v
}
! l! j6 @9 o' J0 C& p* k9 } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) |3 c6 e/ a7 n( [! d* N# K. h {" ]+ A' u, B) w1 M# A) Z
m_nRemainGP = 118;
! S# H& i) E; W0 t6 L( m$ G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& G0 u3 g# P. N, T8 [/ X. W
m_nStr = m_nSta = m_nDex = m_nInt = 15;' g: j8 O1 c' S$ O/ M
}6 x. u" d- n. y: n' k v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ g+ _' n- b. Y+ X: q" z {
7 A ^' ~5 F B+ n; o- O! p CItemElem itemelem;
v6 x& [. V! R. S# t& ^6 B' x itemelem.m_nItemNum = 1;
* b$ M" s8 |: V) g+ R itemelem.m_bCharged = TRUE;
: `0 ~4 e" r* i+ m BYTE nID;
! Q9 B' H/ n8 W2 [, m' _3 E- h+ ?/ a% m* h; j4 d: F k
if( nJob == JOB_MENTALIST_HERO )
O9 U3 C- Q( ?; `$ O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; G1 r$ z* V; Q1 q7 }2 }
if( nJob == JOB_FORCEMASTER_HERO )
6 D8 C8 [* X, m' l+ s itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. G8 g) k9 N: }0 s
* Z }+ W/ J9 l4 n& C) C a& K ( ( CUser*)this)->CreateItem( &itemelem, &nID ); q, c% `3 Y/ S/ x, [3 I
}
% S P A d! \$ q% E& z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& w: h- y( B' {5 ?& o; B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; D& J. B& ~$ ?9 g- j! J( ~ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 z p' ]5 f6 z7 L9 U& x/ L" k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 r4 G5 l+ s8 b+ \- `
( (CUser*)this )->AddTaskBar();*/
]1 E$ l& B) e8 f$ B ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' t1 L4 Y$ f$ ~6 Q% B, ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 n! Y6 U+ w% Y
((CUser*)this)->CheckHonorStat();- |6 Z9 I( G4 [$ ~0 G5 b( G
((CUser*)this)->AddHonorListAck();
2 K! J! k1 p; S0 b) Z, S g_UserMng.AddHonorTitleChange( this, m_nHonor);( `4 b% H1 d/ s% B
#endif // __HONORABLE_TITLE // ′Tà?
{1 C7 e" j$ t" W% y5 Y }1 H; X+ R0 e* g- O
#endif // __WORLDSERVER
$ ?8 X, t8 m) |8 g}
: z1 L6 K; u5 E8 |, j# U8 e
1 A3 }8 s) S5 O$ s4 a/ Z然后你进入functextcmd.cpp并添加以下
8 O' X" a9 y+ W8 T% L' D4 y
8 N( n$ N) I5 m* Y, X4 M, k8 K" H8 W代码:
1 R( x! b* J7 @. S7 tON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) S+ L( Z" ^3 b" d" h& n6 J
下面插入) R* L6 R6 W5 Q5 R; D9 l* X% N
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 a) C6 a" e$ w6 m6 W8 V1 h
2 x5 l9 n+ p3 }8 E! i1 r( O4 i! ]然后你去
8 c+ v5 R) ^9 g2 {1 a$ x4 K1 Y6 H+ r* q! H( w, G$ y
代码:1 t5 L( s' y& Y, q1 x4 ]
代码
3 \) s* d* _6 C: H, @BOOL TextCmd_ClearPropose( CScanner & s )0 j3 A) K; V' y( ^9 q
{( e1 v) X- v/ I9 D
#ifdef __WORLDSERVER
+ e' Y/ `+ `6 {2 t6 L3 @ CUser* pUser = (CUser*)s.dwValue;1 o2 _$ x- {* l2 L/ o* {8 L
g_dpDBClient.SendClearPropose();
1 @( [) O6 V( d; P' R+ c1 ~# s9 ?#endif // __WORLDSERVER5 O. n; ?$ t2 X; C8 C0 W7 E
return TRUE;
" h7 r' q) n5 x& R d3 ]+ V. p}6 l/ i1 B% }2 j( i
下面插入. w* E+ y4 O* p: j1 S4 h7 I2 | I
BOOL TextCmd_rebirth( CScanner& scanner )
3 }# ]* z: D- c{
2 K# H8 k! N0 {- I! v( ^/ n8 \. S#ifdef __WORLDSERVER; `+ S" v( c1 _) U
CUser *pUser;2 a7 G. G9 b) o- n
pUser = (CUser*)scanner.dwValue;) D( W' X( u$ C8 k- M- i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 B8 h8 m7 E( s- l# {1 G
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 A6 F0 L! ]5 G1 k+ |" b s* \else
1 [2 ?6 ^ U* J+ ^4 w6 d6 T) A4 e7 ?7 ApUser->AddText("你还未达到重生条件!");' B/ J/ Y) |1 H
#endif. ?& f6 C: i7 ^9 _6 _
return TRUE;# ~# d3 G! l1 K; ]
}
' z4 }% H( | N& O( ~! ^
9 [$ t' D, J% X$ |8 ?
3 i3 w! U0 } p r' w4 Y( N0 r- U" P9 b
: P! r1 O# i5 D& l$ d
|
|