|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" e9 u0 H1 d. g
- t" t# m- K" Q r: [6 B4 OMover.h
. c6 B" e$ y" } a+ ~代码:) U* J7 B: x4 `5 D5 K
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, j/ o8 R0 S+ L" F1 {+ T
" e5 M2 q" Z# ]3 r' R9 P下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : j& R8 O6 C3 ?7 Y( w
& j' g6 L, L( z0 O
然后你去mover.cpp添加+ K, i- t% p- w2 C) |1 C* R
0 q/ h# G# J( v2 Q8 B( m. ?; o
代码:
3 E5 q) A, u- Q ]/ H# ?void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 o1 g/ H. `- Z; n
{
r! m. K. n; Z9 O! B% C#ifdef __WORLDSERVER* M3 Q& a! W9 o; E' O4 w' j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ L- Z0 n2 c) c5 u; V MoverProp* pProp = GetProp();
. J$ {* A# l( W3 r; @8 D if( pProp ) W$ A) f+ Y8 g( R% ^
{( h. q6 h$ d7 V- q
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), \7 j$ t8 K7 z
{
, W5 R; `: t ~7 _, p AddChangeJob( nJob );" G$ t) ~" {& Y2 _# c
}else{$ n4 T4 t5 w: C; ~) S5 }
return;, x* R4 O5 k& s
}
, [( U9 G/ H$ I int nPoint = 0;' U+ H) Y' |& m! `: _, Y& e- h
if( m_nJob == JOB_MERCENARY )
) Z; x4 D( H8 `4 { nPoint += 40;
/ ^: i: f- W' n8 U) ~0 Z- k' P else if( m_nJob == JOB_ACROBAT )9 N) a @' `5 O4 z! O' a) v' ?
nPoint += 50;: r% @, r" P1 t! x
else if( m_nJob == JOB_ASSIST )
+ y- q6 E' _) n' S" _; |1 e; V nPoint += 60;
/ D y; e% [8 Z, ~' W8 v" x I0 D' b else if( m_nJob == JOB_MAGICIAN )7 ?8 J" Y1 @8 A
nPoint += 90;# e3 K: x8 P) j2 H
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# y- i! p( X/ E: N9 P7 X
nPoint += 120;8 {2 ]: T* C6 B7 X. S6 _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ ~" A7 n! R+ s5 i. M' F1 y: j nPoint += 150;- p1 P9 t/ ` G9 I7 Z# k9 U$ U
else if( m_nJob == JOB_RINGMASTER )9 R) a6 p$ \+ A' B# q6 {
nPoint += 160;
" E( u- D+ s+ k% u* \8 H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 Y% {7 N& n2 @7 L& H' a6 E nPoint += 180;/ ? r% L+ E% c
else if( m_nJob == JOB_ELEMENTOR )$ |( s. K, u g- Z4 x4 y& ?
nPoint += 390;6 w: f, @9 {3 [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 M N& u9 A5 p5 M1 @9 T6 ^* p. M nPoint += 120;
# c+ g. S% V4 o/ g5 b5 W6 g* | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 N5 b7 R. I5 G- k; ]2 s: k
nPoint += 150;) H. |* F" A6 M% y
else if( nJob == JOB_FLORIST_HERO )
2 E. n8 ]) i$ k* j' j7 h nPoint += 160;
) r0 E8 I* J9 ?7 T2 | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )* Q) m* M$ D! i, c3 I2 p
nPoint += 180;
. E0 d- r& O. V1 a# S else if( nJob == JOB_ELEMENTORLORD_HERO )% N! ?6 P7 r; w {$ T3 ~# `
nPoint += 390;
3 G! T; c% h7 X2 F$ M5 m4 x/ K. `% W, z4 x+ N( L: a. l
AddSkillPoint( nPoint );
- }% n- S7 A5 O/ k# k m_nLevel = nLevel;
0 {3 V; C# z% @* u/ h( p/ I. D9 K
SetJobLevel( nLevel, nJob );$ c5 H8 U$ b' ]5 h( y* R# M
m_nDeathLevel = nLevel;% k0 o1 ?# Q* f, m$ u0 M$ o& P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* a# F2 L, P8 P7 [
if(IsMaster())
6 g/ d5 i# h1 h5 s {1 }# ?! ^' J% p8 L! \% F: r2 _ ?8 j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 e* J6 K( t; q ?! \% i/ ` if( nLevel > 59 && nLevel < 72 )
& Q/ Y* Q3 p0 l. ^7 t dwTmpSkLevel = 1;/ S+ E! C/ T5 d: P( ~
else if( nLevel > 71 && nLevel < 84 )
6 s- w* C. d' i# m1 P0 \ dwTmpSkLevel = 2;
- R- B# O0 S. K& k9 y else if( nLevel > 83 && nLevel < 96 )# Q+ q2 j0 }. _% \1 l0 j& B8 k
dwTmpSkLevel = 3;
- d8 r& d# q/ M0 z& e else if( nLevel > 95 && nLevel < 108 ), R% i) Y8 j- k4 x
dwTmpSkLevel = 4;# n; X& a/ r: b) B2 i3 Q
else if( nLevel > 107 && nLevel < 120 )
4 k( u* o9 p1 V$ Q) y; S dwTmpSkLevel = 5;5 `0 W% f1 u' O% v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' I" K2 V( }) W+ |0 B, d {
& m" d8 c- g$ |# w LPSKILL lpSkill = &(m_aJobSkill);& M M+ c3 c. I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) B- C4 U( M" r; _. \" [ {
; @7 H6 P0 o I# Q2 b0 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" K; Z. V1 s* P" ^/ D; S if( pSkillProp == NULL )
- v. Y7 w2 z, M! k8 T3 r/ m6 a continue;
0 H2 b' W8 S- c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 m% s+ W q1 ~6 c continue;/ j; C3 @. Z5 c: R" H9 e
lpSkill->dwLevel = dwTmpSkLevel;: ~ \, ]* J. s1 p5 `% f4 i5 n4 d9 T7 E
}8 d2 f j O, _9 t3 k
}
+ I" Q! `1 i% f }
# n# ~0 S$ G2 v5 m, J6 h else if(IsHero()) i+ a8 B- B& _- v5 X0 b3 D
{
% N' N# ]( }; V0 ~1 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 }8 Z' h% Q& f* n4 B, T) [ {
1 x: e: v8 |2 S0 j c7 I1 _4 c/ W" F LPSKILL lpSkill = &(m_aJobSkill);9 i7 A: \1 `$ l3 r& o
if( lpSkill && lpSkill->dwSkill != NULL_ID )# u" X/ {, H" X, D" a* R
{9 ~2 K& L- t3 d* I+ i" b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: V" @+ q6 ]( F+ }- F/ t- y6 N h if( pSkillProp == NULL ): q9 \4 [& y, x
continue;
* P7 x$ U9 [+ N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" X4 ^* p- q! R: [& |- ~) e) \ continue;0 y, @/ H1 Y( G& R+ c/ C% E7 A) ~& |/ K
lpSkill->dwLevel = 5;
+ E! @* T' ^+ x }& V z" b& H! }
}
) u2 W2 b2 m9 C! P1 ^" ^, ^ }
. t* i( ]5 H% f- Y else if(IsLegendHero()). S9 L8 k/ s9 F9 w
{. }) y( j9 u e! P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + U7 V" }. X/ l! K7 s3 L
{
# ~" C% `8 l6 G3 m2 B& i# |9 x LPSKILL lpSkill = &(m_aJobSkill);* ^+ ?3 u. ], D- Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )# E. p& L O9 w6 h* j; @6 W
{
P# ~5 J2 @6 W, G! ?, i5 M/ J3 A% @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; _' v9 j2 B3 U. u9 q4 h) d* g9 K if( pSkillProp == NULL )" s3 g) o g; _
continue;+ n y0 v1 `0 N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
m0 [# ~4 n6 H1 t6 Q' O continue;2 t* `, y6 G$ B" O6 k) A3 q& Y
lpSkill->dwLevel = 5;
& j W7 z2 `" B }( K/ f6 X# b7 a/ p% k. F" V2 K
}
& x; c5 {7 N1 [# g( N1 m }
; p; V1 ^3 m4 K& C' [) b#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% }; d' z f/ [# ]0 p
if( bGamma )
! `, \3 Q* K! f" P o: v/ Y {' z# ^" x3 o' _; o. x: }
m_nExp1 = 0;
8 T9 ~' c. P( u$ q L6 W: s( O }
: c: Q) s- N7 q6 `/ X p
; H8 ^, d( @( X4 S6 W8 N ( (CUser*)this )->AddSetChangeJob( nJob );
6 ^( [# Z1 V* B U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); e* F- B% G) Q2 l& @% C% s
' t) F4 q% O# H5 H% z; @( x8 k0 V! Y
0 y2 I& m* \, F( A( D7 W+ S/ a
#if __VER >= 11 // __SYS_PLAYER_DATA
$ g/ G: T& _3 G/ L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! Z! ?# x0 c' }) [/ z1 G0 W- b#else // __SYS_PLAYER_DATA
: J' }4 ^, T& B9 _ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 [! Z) W- D- b1 C8 a: L g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: n8 Y4 W7 z, ]" q" w/ r! O if( m_idGuild != 0 )9 D( [; Q0 W, k; H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
[1 S4 u1 U8 i' C s: I#endif // __SYS_PLAYER_DATA
" w( k8 d5 o% z, A SetHitPoint( GetMaxHitPoint() );
6 s7 p8 i: g' @) V O# s SetManaPoint( GetMaxManaPoint() ); Q; f, @( ~+ [
SetFatiguePoint( GetMaxFatiguePoint() );
# p* i7 I8 i+ v+ ?* Z! k if( nJob >= 1 && nJob <= 4 )
! J6 [- v3 S! |, Z {. c1 X/ ]0 Q5 z6 z/ g9 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' ~3 \- l. [8 q" @+ {! @0 v: F m_nRemainGP = 28;
% g; F2 y5 ]: O3 O# n& c8 P# M5 _ }1 O$ v" ~4 ^; {5 I$ s* [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; Q+ s! C- \, f$ [ {* \3 V4 o2 t7 r( U5 e9 n5 b- H
m_nRemainGP = 118;
: f. v4 G+ L2 K* p) n; y: Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
) i% s0 Y( F; ]2 p m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 g* g3 A- x/ `6 E% o! Q9 I+ E }
9 Y2 Y8 f& Y- c! \3 m/ q* B# g3 F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ d( f# a" b- Z* ]( t1 }6 M
{
7 r, F8 p. \: Y2 ^ F) s5 r CItemElem itemelem;
" A+ i- i+ G1 G R' Y* I8 u4 J5 x itemelem.m_nItemNum = 1;7 G- e: T! |( d: a2 C0 `: j6 \
itemelem.m_bCharged = TRUE;! D2 Y/ V" W' h
BYTE nID;
) `- }9 }% o) {4 `
7 J8 F, A) w$ R& R" Z3 w3 I if( nJob == JOB_MENTALIST_HERO )
2 b& D5 W( G& F: |0 T' I% R& [# q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 y7 J) y5 m# R1 p4 k/ ?' I if( nJob == JOB_FORCEMASTER_HERO )3 u. T8 K7 O/ E# W3 H; r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% v9 ~; b+ Z$ ~! ~4 S
) J% P1 K3 M4 L/ N# F, i ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) Z/ [' }; k! J }1 s; \ s2 C, m
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 q$ ]! d" |2 g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( }3 g, ^% H7 x6 d$ N6 K0 S( R8 r! S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) t0 p2 v7 e# _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 C1 r8 U0 X8 N
( (CUser*)this )->AddTaskBar();*/
4 z. S8 _" r. L# g. f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
% G5 M' K) @9 @#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 O. i4 ]: k& J. {' u
((CUser*)this)->CheckHonorStat();- ~+ E( c' P5 P% |% g1 S9 k7 b
((CUser*)this)->AddHonorListAck();7 [7 h2 ^3 b6 G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% i7 B: u- G8 x4 Z. I#endif // __HONORABLE_TITLE // ′Tà?6 s- l: U; R9 b0 z" H2 b7 P" T
} i$ y! M, G9 l1 J2 u' o. A' T$ L
#endif // __WORLDSERVER' h6 M4 H0 N; Z: Z2 M9 p" e) ^
}
" ^# D7 r; l, Z& F4 L
7 K1 w6 B/ ?7 t* L j然后你进入functextcmd.cpp并添加以下6 @8 A, Z! E$ F P( J: {* R. V# {
K X$ k% V7 I' T y代码:4 @$ ?# w0 \4 k( A4 n2 X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: N' j- M* R% _1 _% ?下面插入
F. O- B% J# q" c8 YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , M9 v5 H! a* c% |6 H }
" H- b! U1 h- s/ F- k
然后你去4 m' G# f1 B* @' A. o$ ~6 t
3 e6 m( a# ~( @ k* `' Z, ]+ P- r
代码:9 n* Z* Q) m5 |$ _ K- J3 J, X1 k
代码
! y8 z6 c M8 ^" y/ UBOOL TextCmd_ClearPropose( CScanner & s )
0 G n6 B/ X5 v6 M$ }9 J) t& u @+ W{& g; {% ]9 w. T
#ifdef __WORLDSERVER
) y# A5 M0 {; h7 q1 X* G CUser* pUser = (CUser*)s.dwValue;! W5 B" [% h+ E. X4 T+ X0 k, }
g_dpDBClient.SendClearPropose();
# X A) J$ m5 K' y6 g" w. Z7 M; ]#endif // __WORLDSERVER0 \# ?3 k- K6 A6 h
return TRUE;
" B/ T+ \ B& J( r8 N9 Y1 ?# V}
& q" W) }! W/ s9 [: b+ _& j下面插入
' y8 |" f0 [. V2 M$ W a, g# bBOOL TextCmd_rebirth( CScanner& scanner )
8 \9 t& w% C1 F7 s1 P" `8 {; o{. B+ M: I: @& z7 W% {- X
#ifdef __WORLDSERVER6 T4 Z7 \# T' s: X
CUser *pUser;
6 f' d2 a5 c, [( G OpUser = (CUser*)scanner.dwValue;
" z- v" z _8 Y- N( t8 ^" Mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 ^9 j: L) [( u, a4 A' [2 OpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% N& i0 l# h$ C/ G6 Delse
$ F- d9 j+ Z6 K9 `: NpUser->AddText("你还未达到重生条件!");
) n: i6 W" g2 K5 c& n4 _#endif; q* T" x( H1 s- q8 m
return TRUE;5 Z2 L2 A i0 a2 `+ Q9 G
}
# `- I. ` K* F' b5 b3 H
0 G' {: r2 R2 u7 m
' o# h8 l+ [" ~% Q1 Y6 g1 L( J* r+ A: O+ M1 |8 j1 y. \
, D( p# H! ]! j: y
|
|