|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; h; L6 D6 m! b/ s6 E7 i% A5 ~; o. E2 e+ Y d8 o7 U
Mover.h
" R) U6 ~3 p, N& ~4 ]/ C代码:
8 r8 T2 ]6 U: ]& `6 @8 y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. O" ?+ V8 j# T r+ j2 E
& V3 v6 i/ H) ]% D. P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ; A, E/ P3 S- _2 l. R8 c( S
) [3 X9 O: S% {
然后你去mover.cpp添加
/ |/ }: U" R5 D! Y4 B* H! a; t9 @+ C( w, l) W
代码:9 U. k) G0 F3 g4 S+ j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ ]' o( A: e5 F |{ ]2 h, B5 c6 d" f7 h
#ifdef __WORLDSERVER
. G1 l# U) c* K& u6 K @( s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( k' S- S2 z2 r* ?# h0 T4 X% o
MoverProp* pProp = GetProp();/ P# Y/ s- z- \! [' s5 P3 V
if( pProp )
- V6 A' P9 ~2 J& e( k" k {
6 B! P3 d" }- a z+ y' u4 i if( nJob > 0 && nJob < MAX_LEGEND_HERO )- P2 u8 b8 v/ d
{
H: @2 T. R6 u: W8 R" L! [: Z% Q AddChangeJob( nJob );
9 R( {" P1 L. [. D f }else{
. `+ {. w9 h8 P8 W3 V return;8 O$ K/ |& L+ [+ a7 A( ~
}2 K5 y/ T$ C" M+ a
int nPoint = 0;
' Y3 c+ c+ W9 s* y2 { if( m_nJob == JOB_MERCENARY )" ~) j" V! C! J) j; V
nPoint += 40;+ P! ?/ ^" D& @3 y0 B4 U
else if( m_nJob == JOB_ACROBAT )
3 @+ F9 i+ O) B$ Y+ d0 ~6 z nPoint += 50;1 z& U! X8 h5 I/ O0 m
else if( m_nJob == JOB_ASSIST )$ R6 _# u6 a9 M' q" y
nPoint += 60;+ E" |# r6 D$ E1 u
else if( m_nJob == JOB_MAGICIAN )
4 p$ {3 b' u+ b f/ b0 l nPoint += 90;7 B k7 c6 J# }4 ~5 [5 r0 A
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). ?0 N% g2 M6 T6 L# J
nPoint += 120;
. `8 [* @! m# d' V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: I9 n: H6 ^6 K% D* u9 Q nPoint += 150;
' j) Q$ e/ j( b else if( m_nJob == JOB_RINGMASTER )/ ~3 N( U) z( E# K5 D
nPoint += 160;
6 ^2 I4 V0 [6 w5 W% s6 T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, P6 u! {9 M* w/ W( h: \. ] nPoint += 180;
% S9 J! a0 X8 M. F& \5 j* D else if( m_nJob == JOB_ELEMENTOR )
3 a0 m) v6 a; ~$ a nPoint += 390;
- G1 F: i( h: y. s# F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ W* b- p; f. K+ f/ ^4 _
nPoint += 120;" a( J. M1 r9 B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); @. ^3 A% R/ ^# N6 H1 P
nPoint += 150;
) U% N& o0 c; B6 m1 |2 p else if( nJob == JOB_FLORIST_HERO )
1 {4 R# w( X7 }8 J nPoint += 160;- h0 G ~8 p+ r( Z4 A- F( j. O
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; B% N, B% @, R" m nPoint += 180;; m; x# a1 `, G- y& G& S+ K7 }
else if( nJob == JOB_ELEMENTORLORD_HERO ) |, y6 k1 ?) d5 r, _
nPoint += 390;. d2 @, J6 v5 {9 k
/ `$ g- k8 T" A T* M/ ?
AddSkillPoint( nPoint );9 o2 Z2 y% o* U# q5 U2 q
m_nLevel = nLevel;
: `8 x8 o1 C, G+ o
7 T7 R6 i: q1 n2 y SetJobLevel( nLevel, nJob );$ B% y: G) I* l. _5 q
m_nDeathLevel = nLevel;' q- z3 y8 A ?/ N1 {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; v$ ?+ @% `, C% {; u
if(IsMaster())
7 q6 }+ j" d) W$ t3 }+ q# H: i {! ^7 O4 k7 M- |" R. |( R, P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; T5 x3 Y; n6 `5 K$ _% C8 L if( nLevel > 59 && nLevel < 72 )
" t* B+ r4 }' m8 D. I& A dwTmpSkLevel = 1;% m% r* U3 v- N- x( _# y' ?
else if( nLevel > 71 && nLevel < 84 )
6 x3 }/ g' h$ P dwTmpSkLevel = 2;
% [ W% R9 o: W else if( nLevel > 83 && nLevel < 96 )7 R, q g0 x+ N& `0 }
dwTmpSkLevel = 3;
% Y8 e9 [* Q* d0 e/ d else if( nLevel > 95 && nLevel < 108 )* R# k9 @3 H' R% W$ o: N9 G
dwTmpSkLevel = 4;3 ]8 C, a* T3 J! F# S f' ?+ Q
else if( nLevel > 107 && nLevel < 120 )
1 e+ u5 l, D! Y+ u D dwTmpSkLevel = 5;
1 S- M* {( d6 w+ E: t+ G for( int i = 0; i < MAX_SKILL_JOB; i++ ) : g8 t. V& m8 A$ ?. [' C! O- g1 h" x
{
! T1 G# N! n4 e( E: p% \ LPSKILL lpSkill = &(m_aJobSkill);
3 v) R5 \* k N M, U5 h5 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )# U0 \- N# x' q4 E7 ?. B
{1 A |0 I7 x: Q" E( J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! W9 R X* x" ~- f if( pSkillProp == NULL )
9 B; t8 A8 M8 ?" ~/ q: v continue;
3 }& t5 P, F& ~: E6 a7 d% i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 R8 J w. d `! y
continue;3 V5 g+ M. p. O/ F1 |" V% @
lpSkill->dwLevel = dwTmpSkLevel;
1 y$ r) A5 T1 N& ]$ ] }2 G% g8 b3 Y1 B( A3 b+ O
}
4 A: j6 c0 d! r1 L }' j% A) g ~* t( x* g0 O- F+ g
else if(IsHero())* k8 Z3 e: ^, X7 N/ @" k9 h( @" u! p; o
{
+ n5 H( [/ q) {; J, M9 I6 ^ for( int i = 0; i < MAX_SKILL_JOB; i++ )
: d, t* G3 H' |: y* n r0 _' k {
9 L5 [8 ~* y. W7 Q6 t8 A LPSKILL lpSkill = &(m_aJobSkill);6 r S# d4 G. `: L! {, Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& F; s% T+ j2 B+ O- A' C. W2 s7 Y {0 v) A- P- U4 [5 L- K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % J1 w. j5 C( g( }) p. ^
if( pSkillProp == NULL )* u* t7 f. J9 {3 s0 [# k( S
continue;: F6 }2 b' h' f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); P6 i2 o0 a9 [; C3 Y
continue;. e9 R+ e5 ^: {: f# I1 z: d3 l6 p i
lpSkill->dwLevel = 5;
" x" y* L6 O" t* m5 a( k }. @4 G6 v( S9 w4 l9 ~) s
}! A5 d- {* q. J
}- H/ t. y" F1 Q0 s
else if(IsLegendHero())
f- ^% H) A/ ?, n4 r" a {$ i& V' C- Q6 V! v& i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 d8 T* }1 `8 A n+ w1 F, h9 s
{
8 j2 @! d/ G3 c4 f, J; r LPSKILL lpSkill = &(m_aJobSkill);
* W/ m U, Z+ f% J. g* K if( lpSkill && lpSkill->dwSkill != NULL_ID )2 [0 }( l1 `' |! @ f
{
' y6 [6 Z" Q) z% K! H- E8 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 b6 L) w, ], F! s& p1 H! S
if( pSkillProp == NULL )" u, ?. O1 u" o3 P
continue;" u) ]' Y, c n$ g1 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): \) G; J+ n7 A. t
continue;
# _1 t+ x6 l- N# k, S9 m lpSkill->dwLevel = 5;
' S T! Q, n1 L4 {9 v! S! x }
* U" N$ V) o, F }. P( `% \' I3 a! i2 w: B
}
% ]- R7 R4 @$ P3 ~. ^- o3 {" g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 |4 V% D% X9 Q- Q
if( bGamma ): Z/ x6 [& L/ m2 g2 u2 c4 h
{: f9 O: q4 z6 a
m_nExp1 = 0;
. T1 P+ i6 y2 X) O5 @1 ~ }
6 [" w" l. t: I6 y+ w/ ~/ p5 |2 z) `/ i0 \- p% W5 P5 K" p2 W3 P
( (CUser*)this )->AddSetChangeJob( nJob );
$ W$ ~7 h& Q+ v! d/ U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% x! a1 z. S3 ?: z6 T$ Y) Z2 P: A# G, @) v7 s4 X, {7 ^3 G
( u: |0 T2 w- v, q. M( ?- X
#if __VER >= 11 // __SYS_PLAYER_DATA1 ^6 c+ E$ |4 ~% B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" G' c7 |5 M0 ]8 B6 S V+ e9 w
#else // __SYS_PLAYER_DATA9 X: W: a9 d/ S4 w! C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ S: B/ R9 V$ r0 o: N3 g. O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* {6 X- j( y' @7 D) F. o
if( m_idGuild != 0 )# A' z6 v$ J- G( ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; X. w( _2 ]& X1 w! H#endif // __SYS_PLAYER_DATA" n9 a' W7 ^' ], Z
SetHitPoint( GetMaxHitPoint() );
; N r0 K. O! u SetManaPoint( GetMaxManaPoint() );
; z3 g$ t+ X, H# N SetFatiguePoint( GetMaxFatiguePoint() );1 V" F0 h5 d, J& t( q1 W
if( nJob >= 1 && nJob <= 4 )- W& e2 o6 A* E4 o6 }
{
* H9 s/ ^1 [1 j0 r* @ m_nStr = m_nSta = m_nDex = m_nInt = 15;# ?+ B: q- N0 Q1 d8 c1 p( ~3 K
m_nRemainGP = 28;$ i2 b) @, ~ H' n- i6 Y: X" E- l
}
7 C1 h* G- I! Z" k+ J if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- }! k) [! h# g- P+ [- E
{. L& X9 [9 i$ Z, v2 n
m_nRemainGP = 118;" x& ?5 ? r5 l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ t& Z: z/ r( U$ R9 P. ^9 | m_nStr = m_nSta = m_nDex = m_nInt = 15;
T$ n* Q1 U8 p$ d4 } }
_. Q' c& Z5 _2 Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' p! u) k2 \5 } {- t' t7 ^/ W4 y o; Y4 Y
CItemElem itemelem;' z3 F/ g3 g% G- j s/ N# o; `
itemelem.m_nItemNum = 1;! W- ~) j5 E4 y3 A( h+ }3 B
itemelem.m_bCharged = TRUE;- |( L4 Q+ ~- z# `
BYTE nID;
T* m' r1 A: c% M/ A3 G
t4 v. D8 \7 y+ ^% w/ X if( nJob == JOB_MENTALIST_HERO )# n( |1 h+ x5 |: x2 T/ u4 J( v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; r; F2 j3 G1 H
if( nJob == JOB_FORCEMASTER_HERO )
) H% X0 V- s8 f) m3 A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, c8 H. p. V! T% \6 e3 e Z, I+ B+ r7 }" ^5 A% t0 Y* I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
% n+ @$ C" T$ z& ~% x/ Q3 F, `% z }6 H* F% l3 _0 ~0 S2 |. F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. v2 T. b. P' z% {6 v1 R0 d1 E
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ ?4 c3 V) ~: M, p6 M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 }2 A, P; k( C- V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: l$ `9 v4 L" T, K ( (CUser*)this )->AddTaskBar();*/
" ?3 [2 s3 G3 f! b- U1 r0 L3 Y3 n* W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! t, p. l7 b& [; k$ k
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# l' K5 S+ }. A% c5 [
((CUser*)this)->CheckHonorStat();
' T5 c$ x7 k2 l, e ((CUser*)this)->AddHonorListAck();: E: i0 K% K: W2 K
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ d9 ^/ {6 ?0 W: ?#endif // __HONORABLE_TITLE // ′Tà?
1 `$ A1 c! V* P, W% @ }* m- U* |; I* Q0 q! a# U
#endif // __WORLDSERVER' v7 v8 \# m3 h: \9 V1 }- S3 x
} / `2 c/ }9 r5 A0 w+ |: Y0 _
$ U3 Q/ E' J" ^" _* b然后你进入functextcmd.cpp并添加以下
9 ^1 f9 k( A8 ^/ X4 Q: F5 y+ ?# G* L m P3 ~
代码:( Q# \7 g# r7 [- T, s" ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): v3 }: y0 X3 C1 c b, @/ E
下面插入
& z6 ~/ t6 d+ o ]ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ N2 k1 O2 ?% y
3 @" G1 q: E2 K8 X; ~
然后你去
( q/ s* l: ]1 {; i9 i& F# S: v* K. t; X8 V$ W
代码:9 S! s- y$ }2 A. x
代码
. Q0 {9 I+ O2 m: @BOOL TextCmd_ClearPropose( CScanner & s )' t( z5 `& E; Q# ^
{& v, x/ `8 w* j2 K* |: k( j. t
#ifdef __WORLDSERVER! W& c8 k9 d/ Z; p e3 q5 _
CUser* pUser = (CUser*)s.dwValue;! U1 e5 @, |& E! Y7 H. }% w# S
g_dpDBClient.SendClearPropose();
' g6 a4 G& _' Y5 M7 ?9 l3 X/ h( ~; P#endif // __WORLDSERVER1 j. W% w3 E# ~! S6 A! _' q! }" I
return TRUE;& r5 s; n+ Z0 W6 |) a, z
}2 n; Q& s9 m( \7 S: ]; q0 k
下面插入$ d: b8 q0 ]4 z+ M j- h. s8 H9 G; l
BOOL TextCmd_rebirth( CScanner& scanner )/ f: v# o" R, O# D7 u
{
9 D' J/ i0 E/ c" x0 e; z, {( I#ifdef __WORLDSERVER
, H6 L6 g0 g, JCUser *pUser;
1 u/ l* W" [6 A% hpUser = (CUser*)scanner.dwValue;
3 }) A( Q3 ^# w% Lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
6 G+ I6 a9 R4 f; Q4 n: Y( e& upUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* H8 s3 d( t7 j; D- X l
else
) T1 L D% b7 ]3 A" M. p4 |* UpUser->AddText("你还未达到重生条件!");
6 x! R0 o3 r- \$ y K#endif
x. G$ G# e8 a3 K: X8 {$ Qreturn TRUE;) K% Y0 [4 r; n
} ; m( y) F. Y( U1 }7 y- }% s7 N& u# Z
1 ]2 z3 L; ]% ]! a5 G& ^8 I$ @1 `
# i% g. Z8 R7 X! L. r
+ S4 K4 H2 M' D9 o( i5 {6 }
; Y T A$ z; f( v) [2 K0 m |
|