|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel# Z- @* C) m; z2 {
$ t; \1 ~2 j: {6 I, P( bMover.h/ {- {4 m' d! M
代码:$ o7 O2 i2 b. s2 V p
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# o+ j; F2 `2 b3 U8 o) g' h
7 n/ M7 b% E, u. M( ?% [& _下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 n7 x5 l ?# P* {3 N+ _3 x- d
, Z2 N: l! @2 B. u9 m然后你去mover.cpp添加
: h: v/ R* I# q1 a% y' B5 [5 i# l' ~6 A( Y: B
代码:
( Z# B7 p1 e3 P& f% P$ F7 j3 zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" |8 D" C& `2 ^, n{# }; U8 f$ v* V: H6 e
#ifdef __WORLDSERVER
6 ]. U2 I6 k1 ^6 b% _9 i, Q3 B! ~% N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* u8 R8 `% `# |! l: Q MoverProp* pProp = GetProp();, L* z$ K7 O! S# m# G9 d
if( pProp ), {# G; O# q3 c4 d" h' |/ m) Z4 _
{) t/ V8 ]; D; ~3 s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, ^1 \- k6 P8 g5 Y) W p {1 P% J( E; q6 y; L
AddChangeJob( nJob );3 g& D& P8 B8 o
}else{
9 @- l) u& i5 x0 T3 I# B; _, z. V4 w return;
! D: P( Y9 U) a& J1 e/ F }2 |9 l5 n9 c! |. m4 N( P
int nPoint = 0;/ u( d0 [- ]8 G! V
if( m_nJob == JOB_MERCENARY )
' Z K! v, l. j4 M% I nPoint += 40;
1 C% y8 o* m0 o7 r4 j else if( m_nJob == JOB_ACROBAT )! D* c# c/ K1 [4 }5 y
nPoint += 50;* _) a! `2 @6 g8 w) i
else if( m_nJob == JOB_ASSIST )! i, v9 P6 b; ^' K' d% x
nPoint += 60;
3 Y6 e3 P2 v3 b7 W; @* j' z else if( m_nJob == JOB_MAGICIAN )
$ j8 a' C/ i6 N2 y nPoint += 90;
2 r. m, m: L% N! I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 a" i+ s0 N! R. Y. n- h# a0 ] nPoint += 120;# D9 R- I9 O+ T2 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 f3 l: O8 o& g0 f9 H1 o nPoint += 150;8 J3 e+ y2 b$ l8 W/ E- d
else if( m_nJob == JOB_RINGMASTER )8 ~% l0 L& |. T. Q5 n1 x
nPoint += 160;/ e9 j- V D, `4 ^9 I3 b9 y
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
" O: Q; Z% M. M/ q nPoint += 180;
: D- m7 r' e4 a5 t4 v3 j else if( m_nJob == JOB_ELEMENTOR )
1 }) k6 J, S( u4 F9 ?( f nPoint += 390;
% K' r- R; z0 z+ @& u5 [ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 Y% p9 o3 A/ b) e- G- \3 `
nPoint += 120;
6 R9 v; v% O3 l- |+ d else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ D% Y' Q& P7 v+ \! l# ]
nPoint += 150;
) d) J8 l0 ^) u& \; u8 M4 v2 E' H# Q else if( nJob == JOB_FLORIST_HERO )
. t& V9 b( P# M: { nPoint += 160;; w) |0 l9 u# n+ D' e0 A" u9 i
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! Z6 q. T7 T* y/ d3 f
nPoint += 180;
9 M7 U6 r" w: N' W3 p else if( nJob == JOB_ELEMENTORLORD_HERO )
% M: C ]" k# k7 ], m* a nPoint += 390;, z( a1 _& a/ o' w/ t
8 Z& [7 {6 d& ~
AddSkillPoint( nPoint );$ ~% J. a% M, N( }2 d
m_nLevel = nLevel;
+ H) K! _/ E W' W
9 J. @& v1 ?* a! V0 V# ` SetJobLevel( nLevel, nJob );
& j# n4 p0 l4 R( U/ o, H8 i0 ] m_nDeathLevel = nLevel;
- X; _! f) y. c2 c/ I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% y% v5 D+ v# g4 _2 \
if(IsMaster())1 b1 ^ K7 h5 n V6 k& l# |
{. d5 x& H W# E" U5 P3 g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 |1 Q$ w/ `( F if( nLevel > 59 && nLevel < 72 )
0 R& v% W: Q( k6 E; D( g1 D' w- d- R# X8 M dwTmpSkLevel = 1;
/ Y. S) M: x7 }* e7 H2 |; U else if( nLevel > 71 && nLevel < 84 )# C3 e& R: D" _1 X9 j2 L) J
dwTmpSkLevel = 2;. b2 w7 c1 C& J# [: F- {$ x
else if( nLevel > 83 && nLevel < 96 )
, t1 H) _: W9 L% L9 t dwTmpSkLevel = 3; I8 m* C* Z( v( u$ m
else if( nLevel > 95 && nLevel < 108 )
' i$ l6 w; f0 G! M2 _) X+ M* s dwTmpSkLevel = 4;; ]% C8 J) b- r& W+ q3 X
else if( nLevel > 107 && nLevel < 120 )
. w& r% p- k2 `' x! o% ^ dwTmpSkLevel = 5;
3 s* D2 I5 {: k2 a0 j" z5 M for( int i = 0; i < MAX_SKILL_JOB; i++ ) . t: j. j) G2 v8 g2 H+ _
{ ' w. N: s6 o" W, G" L3 o: V1 U
LPSKILL lpSkill = &(m_aJobSkill);8 e; _6 q4 _9 b$ Z! p/ n& R* [% x+ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* P% v9 K/ ]; w. | {' w1 r4 Z' t, F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; b$ K+ P( [. n b4 e* q N3 U if( pSkillProp == NULL )
! ~. i/ T* O N% j4 ] continue;
3 y6 J# f- ]4 y8 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# B3 c! |) |, V+ @1 q continue;
$ O. d R4 ]2 h3 X3 _1 A, l lpSkill->dwLevel = dwTmpSkLevel;
6 `3 O7 A C# T }1 v* r2 U5 R( H6 _ K; g, r
}$ t, M! z) s0 }
}
. U- k7 E, U) ?; C else if(IsHero())" [: U" a; u& ~+ \' `7 H y+ v* B/ d
{" b; h) p- f4 Y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 v4 q' |6 d" C( C+ v# R$ h) l { & }+ R, m" a7 [" I b- @, i
LPSKILL lpSkill = &(m_aJobSkill);- @' Z3 A/ F) t1 i) W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* D( Y t3 Q: {; ]4 t+ a {
k' j1 d# a3 j2 o7 v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 @3 s- h9 } b9 j% Z( | if( pSkillProp == NULL ); h2 o7 A5 q( r5 L) m7 H! {( Y
continue;1 h6 {& ^% R( Z7 D, e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' R) W7 C( D( l1 E( V( ? continue;
+ | ], a. R! x2 t1 W3 g lpSkill->dwLevel = 5;
: _4 O: v- U9 s& U5 S8 R% j }8 ^0 ~ Q* q' _ J5 z6 a
}8 T6 K/ W* _1 p1 z0 ^8 G
}
1 M5 r3 a8 O! P* @$ |# }6 O else if(IsLegendHero()): a' f$ Z/ h2 X, [( z5 h: r
{" ~0 v/ n) p1 l7 a8 W9 C/ s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; G* [" o' n3 K8 B7 l& D: `
{
7 T. g: C2 ~; S. L$ i I x3 w LPSKILL lpSkill = &(m_aJobSkill);
2 m( T. K! G m% ~0 @+ v1 D if( lpSkill && lpSkill->dwSkill != NULL_ID )6 a4 P6 G* K3 v4 ], P, x
{+ F; t5 C' a/ @! v2 ]+ \- h2 S$ f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / w% Y2 z5 K5 V) P) _ ?
if( pSkillProp == NULL )% }( c4 H6 {9 W. Y L$ j/ s
continue;8 z# n2 S( P7 h6 }3 r9 I) H; ^& e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 l( m: t* v- U O1 ]( d+ ~+ S/ ]* a
continue;- |% E$ f6 M T; D* E
lpSkill->dwLevel = 5;
8 r/ R' c) i3 s" u, a W$ G& `( ? }
1 Z3 ^$ w5 r; H }
$ x& }* I8 V3 R. ~# n }
. g" J% E; `7 v% ~#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 D# }+ t% n" f if( bGamma )) g; ^" M- Y* B8 A+ [
{" E4 J4 Q1 i: ^+ T
m_nExp1 = 0;
+ o+ G* s8 d2 U2 |3 |- D( V4 V }, K/ W1 N! r$ h* s' ?5 \3 j
- U4 V( G* i6 C: O5 l ( (CUser*)this )->AddSetChangeJob( nJob );( z& v: q7 e$ n/ H1 |) d) l6 y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. K' [. p, K: e. o! H. d
" K; ]( Q; L* P, T0 |8 l; P/ R4 e
#if __VER >= 11 // __SYS_PLAYER_DATA
; @4 {4 F P% Z2 y; a' } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ v+ v" ^; E$ \+ s# Q* C; ?#else // __SYS_PLAYER_DATA. X3 R) Y: c' a0 F3 K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! V% T3 p/ ~$ t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 b. J b! G% G9 c) j7 X
if( m_idGuild != 0 )' v7 b+ [4 S, r0 ~) Z+ d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 l4 L, u* Q4 M& G" I/ @#endif // __SYS_PLAYER_DATA1 E C5 x* H7 v* Z. |3 J: X
SetHitPoint( GetMaxHitPoint() );
9 c' h1 l; N9 I SetManaPoint( GetMaxManaPoint() );
- c# b2 H; N9 W. [% C7 S SetFatiguePoint( GetMaxFatiguePoint() );
$ }3 p- l) h# w: u" _+ H# P if( nJob >= 1 && nJob <= 4 )1 Z0 S/ X# m k; {7 K( B. ~
{
* [; M4 Q* V7 b6 r m_nStr = m_nSta = m_nDex = m_nInt = 15;
& a) t' ]8 ~/ i, q# F2 { m_nRemainGP = 28;" l* k+ e* I0 `
}7 q7 i3 S% I6 A4 s- c( q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 {7 o" `0 c2 R# H4 C$ E5 D
{4 m2 V0 d9 k1 I5 Q5 d
m_nRemainGP = 118;
( b1 r/ g& {6 j6 x, h& v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 s8 o0 C7 W8 q. F: g
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 R# V$ l3 _; ~2 _7 A; f
}" x }+ |; u4 H1 @- y6 n6 ^
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) W4 D( _% U* Q. C# s$ j P5 t
{
, J- S" U% N+ j$ y) V CItemElem itemelem;
7 m! p7 `2 ]- }, Q6 V itemelem.m_nItemNum = 1;
6 z, G6 i/ E' P9 [9 P itemelem.m_bCharged = TRUE;
' s' T: p3 {* Q) k L BYTE nID;
, H- K/ n* ?! [0 T: {3 b7 H; Q* h: T$ e
if( nJob == JOB_MENTALIST_HERO )
* b. V( a* a% g) T* U( V f itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ A# M- \) J0 ? U. c' l. q' N if( nJob == JOB_FORCEMASTER_HERO )
7 I# `7 ?+ L: s6 u, l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 C( z {. j* \# O
( F7 y9 ^0 n6 U* f6 Q ( ( CUser*)this)->CreateItem( &itemelem, &nID );0 T, B. |8 e1 {( D, y' n k5 r+ a
}$ r+ ?' [$ `# k. _! }$ @
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 X. Q n' t" o8 P1 W" y1 G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
y# U* v6 j7 b5 B ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) b4 l% u# v0 p6 V# ?$ }0 `" K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ I' x$ w$ y. \ P4 |. {! s9 a' L ( (CUser*)this )->AddTaskBar();*/; Z8 r2 }+ q: N4 V+ a% p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( J# y% F& o+ A/ Q$ `' t5 t#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 V* J7 |5 I$ y+ E! G
((CUser*)this)->CheckHonorStat();
1 u* Z; c2 @* F( f$ T' F7 L ((CUser*)this)->AddHonorListAck();) h) A1 I. e/ ^ \' N6 L
g_UserMng.AddHonorTitleChange( this, m_nHonor); C H% f6 P0 x+ C2 W( T
#endif // __HONORABLE_TITLE // ′Tà?" v% `7 f4 Z3 R, ~& Y& t7 a
}
" g- n+ j1 X$ G6 \+ O#endif // __WORLDSERVER
" O: B S X) `6 f} 9 n7 x! j0 Y0 M/ M; w9 b+ s2 Q) t& \# X; @2 a
: V, E2 f6 f+ e9 Q" s6 x然后你进入functextcmd.cpp并添加以下
3 N7 ]& {6 Y& a7 v+ W/ a W
3 M8 r& ?! B4 y代码:" y: x4 ~; c4 K6 K1 H. M0 b" d& H
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): ?. K4 }( @$ Q4 J* P, U
下面插入
/ O8 W. y# ~" |; ?# I( |# V5 @. `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 c! I3 ~- P8 A. _
3 Z' s) k3 m0 [- G0 A
然后你去5 q) s4 Q# C* S) j6 n
' I* Z- J, i- Y' c
代码:
: E1 i# e& u* Q3 r) K, X( @0 O代码: X6 ?" F+ w9 F- F E! O* r
BOOL TextCmd_ClearPropose( CScanner & s )
$ N. i0 y& \4 L5 g' V- x! d{
- ]& Y: m( J/ N, t#ifdef __WORLDSERVER1 u% c" v$ I) f' s
CUser* pUser = (CUser*)s.dwValue;
* _5 l/ [: z% Q& o1 S! e; G q g_dpDBClient.SendClearPropose();
* Q- n" Z0 {- V- k; e#endif // __WORLDSERVER+ `# V# S f5 L7 P4 D( x
return TRUE;
; z% r" @+ k6 R8 G! P# b; _}
( U$ T* [9 d; D6 v下面插入+ z5 G0 j' ?% T! f
BOOL TextCmd_rebirth( CScanner& scanner ) F) c& ^. [! @: |( z) V9 K
{
& w' ~5 M3 t! q- q) r# C#ifdef __WORLDSERVER. R% ^5 G) L& U$ F. q
CUser *pUser;2 t$ I* B2 O$ S! u1 E! `* d4 T
pUser = (CUser*)scanner.dwValue;
W; {4 h$ z8 Y4 N( Oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 E$ i: _ R" D2 b6 O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, F/ Z2 W6 b4 {2 C5 [
else
# Q; t; W& Z0 h, O+ jpUser->AddText("你还未达到重生条件!");5 X9 D( J8 ?! K! q" s
#endif. E2 Q. P' j Q" V5 ^0 t
return TRUE;( W, O. O2 [, i6 k! ~# t
}
0 @+ q0 H9 I6 t* @/ W% Y; }1 f& F% l8 O# }
b6 N4 Q6 |. s, w" K7 m
6 m& {* l A% E: K: p; T& e6 `( b1 J3 O) R2 _+ z9 A
|
|