|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' }) V( f1 V! l& d- g' I3 I6 f
+ D, J: t) [0 v0 g4 L, wMover.h9 Q' e) y# t& i- o: K
代码:
- D& P* i1 i, |0 a) x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) m9 i& n4 t5 F& Q3 i2 o1 i; J! p2 ?0 F! ]0 d" c3 J' J7 [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% B: ^6 Z* o3 y; z3 m
" f. h+ w) G, A$ Y7 u: b! v然后你去mover.cpp添加
$ K7 X& f( g2 Y1 [
7 R4 z8 R1 q$ K- i8 ]6 z! v代码:+ x% p5 c! r: d0 }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* z- x0 ^) t7 p; P! r) a2 I
{
; V- f" r/ ~& J/ E. z$ t" h; d#ifdef __WORLDSERVER
9 Y7 t2 D9 s6 u$ B // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ O8 i! `% Q3 s
MoverProp* pProp = GetProp();0 S `4 N* ]$ t. O/ a
if( pProp )
2 K" P ?7 O% `/ p. T& z {
- S8 r* L8 d0 d( |' ^* d if( nJob > 0 && nJob < MAX_LEGEND_HERO )) N- d8 r& W% U+ F' g
{" f) m. K: P2 C, d# p" r
AddChangeJob( nJob );
) _/ V5 a8 X% U) U1 b% V }else{4 r1 ^( k6 r, h. u' R
return;
3 F4 V* ]6 G/ _+ A7 i4 v }
' C8 s. L3 O0 \* h, @8 g( ^ int nPoint = 0;+ P# m( j$ N# I% @# C5 M" p
if( m_nJob == JOB_MERCENARY )' D' J; _& _( m" e7 g: Z Y+ h
nPoint += 40;
. _8 F* T0 q- W0 N$ o+ C1 n else if( m_nJob == JOB_ACROBAT ). U! Y8 G# O' ?( l8 i8 U v4 ~
nPoint += 50;, ~. F, L( b8 @! C
else if( m_nJob == JOB_ASSIST ) \1 l4 \( ?) z5 j4 H
nPoint += 60;" r$ S! S' @, t3 z1 K7 n
else if( m_nJob == JOB_MAGICIAN )
- n$ ?; t" h4 V; A- Z' d" L: O nPoint += 90;5 A4 I9 y K+ r- t) |' q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ M% y! J, A9 Y' `0 B$ F
nPoint += 120;. M$ O1 }( }( s; s9 A
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 \7 j! I1 Q5 b% h8 v, M- V nPoint += 150;
) B5 | T- f: G2 H8 m else if( m_nJob == JOB_RINGMASTER )
( u0 u- y3 E s# h* Z) Q nPoint += 160;
7 K" b9 p% j% Q) l$ s) g else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# T/ L3 B" Z' F9 e v
nPoint += 180;
/ B+ l7 ?. j8 m# b+ ~$ R; ^3 I else if( m_nJob == JOB_ELEMENTOR )
- }0 q! s, G( {9 w$ U: B4 T+ M1 m' j nPoint += 390;
3 |# L) b/ _0 f1 q9 h7 r2 H else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 c& g d9 o! U3 x+ Y# n% ~. V nPoint += 120;; m8 D2 b9 @8 T- U3 r B
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ i* C% v& I/ m& T4 D: _ nPoint += 150;
8 H( f7 b: n: f0 [0 J* ^9 W else if( nJob == JOB_FLORIST_HERO )
* ?+ i; l4 p: T( G* f4 k8 L nPoint += 160;
" c9 s3 e4 H( ~, p3 T else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ }# k0 X8 `4 b* h+ C# W" ^
nPoint += 180;! |* F0 ~% e; p
else if( nJob == JOB_ELEMENTORLORD_HERO )
F; s* S1 V1 b) j: Q nPoint += 390;
) i. q2 i* z4 H/ D7 v7 r1 p$ r# S6 v
AddSkillPoint( nPoint );
1 C$ o, {9 H$ d3 I m_nLevel = nLevel;. M0 G( j3 x; z$ [
6 u$ Z% O% Z; G6 R
SetJobLevel( nLevel, nJob );
9 ]7 \8 u# c; g9 q% ~7 A6 F' L m_nDeathLevel = nLevel;8 | ^, G' U: ]. C5 ^9 e1 ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; {! W: l$ ~6 m/ a if(IsMaster())
* E6 ?1 K0 c; D" A {
( X, Z( b8 p+ s" m; q& Q7 O6 w int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ c$ J2 ~% F, U$ k5 v if( nLevel > 59 && nLevel < 72 ) J8 F. z% J9 X" [
dwTmpSkLevel = 1;
2 m: p/ R8 ?/ g6 N7 a else if( nLevel > 71 && nLevel < 84 )% T0 ~* ]# E; @& D( |9 U0 x) V+ Z5 u
dwTmpSkLevel = 2;) F A. G! \8 h/ K
else if( nLevel > 83 && nLevel < 96 )
( I) Z- Q% }2 n, t6 j dwTmpSkLevel = 3;. _# n8 v$ h# z
else if( nLevel > 95 && nLevel < 108 )
0 C. y( u' J0 j2 B/ x4 ` dwTmpSkLevel = 4;6 k' Y7 \% Y' _' r! h, I4 }
else if( nLevel > 107 && nLevel < 120 )5 |3 t' {/ R! T, _$ z. v
dwTmpSkLevel = 5;. W- u. o: t& C5 O6 T5 [: \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( c; b+ u7 C. a4 S. j. M8 V {
% W2 k: ]1 |# G7 M/ Y5 m& E LPSKILL lpSkill = &(m_aJobSkill);
6 A2 s/ k) h7 Z- t: Y8 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )5 W+ m( c5 @! E, i
{8 S0 n, t1 U% H+ T# F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 R' o0 q: ]9 e7 a* r
if( pSkillProp == NULL ); [. f% M! q) n. U" _5 L( Z
continue;
0 C0 O5 {: e( {& ~: p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# Y) @. M) N8 F7 J( a2 P2 }
continue;6 Q" J6 M3 a/ Y: t4 i
lpSkill->dwLevel = dwTmpSkLevel;
& S# t( Z! v/ n: b8 J% L. V }
! @7 Q8 @: I' @2 D }2 R9 k% z8 v5 z2 ]
}8 T g l" ~+ z2 m
else if(IsHero())
) x3 m; h2 I+ Z5 _) I {
2 i& S( F _0 G3 G( b' u9 k+ w8 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) " {1 D2 w* ] @! a& @% b$ }& A9 E
{ + R! w; `0 w9 Y6 R
LPSKILL lpSkill = &(m_aJobSkill);+ ~+ e( I4 s, _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 z: d+ a; K' s0 w {
# ~ ^2 L' M3 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : t; D D- k5 F" I
if( pSkillProp == NULL )8 q2 o. I, t1 t& e9 q2 _
continue;
6 [: y) l b7 F8 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 r% {8 U! S; G3 F8 ] continue;
3 F* c- g6 j' [( ^' O' T lpSkill->dwLevel = 5;
: X0 G3 w5 e) [ }
I5 }) Q L6 }& t! i- i6 v, \2 J }' `2 c5 w3 t; o7 g
}. @7 g( ?7 P* \, t7 k
else if(IsLegendHero())
- `8 Z2 j$ ^1 ]& ]' q {
% }1 [9 g' E% O' {8 H) O for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 o% G; p3 P. n
{
5 p( N! U. O& A- Y; s' Z1 A6 x LPSKILL lpSkill = &(m_aJobSkill);3 W$ {7 W$ v' U C2 H3 E" M
if( lpSkill && lpSkill->dwSkill != NULL_ID )- {: z$ p; x0 n" c
{: ]* J0 l/ C/ x) `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% f+ \- t% k: L, f$ K* {3 i if( pSkillProp == NULL )' c6 l! o% a/ t3 y6 P
continue;% @; L2 Q. f. `4 I) G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 }) p) G1 t3 C) b continue;7 E% f8 p8 V, T0 z4 n1 v" R' R
lpSkill->dwLevel = 5;
9 i9 \1 F( K3 [5 w* {0 I }% g3 ~& l% R& R3 F7 k
}
# \* v$ Q5 H9 v8 J ]' q }
9 a7 _) E9 k5 s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ o. M( L9 h K+ p if( bGamma )
8 K! d; v* A5 |2 `" ~ {* t: E, O: V8 Y* q d
m_nExp1 = 0;
) v* Z2 K# h' u0 K. [ }
: m4 G7 f- T# W1 H# y7 J/ d% E7 n9 D$ K* I+ J
( (CUser*)this )->AddSetChangeJob( nJob );
6 |) L! ~. {0 b8 L, I9 ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 u2 N: p3 G/ ^% R0 k) B0 v# H
. T' i; m" ~! a
3 d6 D1 i$ C0 k0 i: d+ t8 k5 m! Q
#if __VER >= 11 // __SYS_PLAYER_DATA$ s& P: ^7 ~; H& A8 v
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ A! G! ^% _- I- [#else // __SYS_PLAYER_DATA
$ Y; x7 ]+ E/ j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ T: k- v( ~" |0 w: \* q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* I% c/ {' Y: c$ t7 K if( m_idGuild != 0 )% S+ W/ {6 b& q$ Q$ L* H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( [/ p# j0 w t- O+ i0 q! _
#endif // __SYS_PLAYER_DATA
7 j/ @0 _0 s7 n$ A5 Q% g* C1 s SetHitPoint( GetMaxHitPoint() );
5 u1 [7 d: K8 X SetManaPoint( GetMaxManaPoint() );
+ O# D; R1 m# @8 g, p+ ` SetFatiguePoint( GetMaxFatiguePoint() );
& y" c' z5 {4 A( T6 E if( nJob >= 1 && nJob <= 4 )
. I1 J3 d) Y3 N5 F { ~" Q5 h3 r+ x( X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* d' K% r4 n" K- b0 Q( e. E& h m_nRemainGP = 28;
' J# l5 V0 z! G7 P% H; z }4 Y, p5 s, p; h6 d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 d8 a) Z# F3 n% f. ~5 C
{
; E$ K9 w2 R& r, G9 e4 X& l m_nRemainGP = 118;$ {0 m) `; Z8 X* b* l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( c+ T8 d4 z3 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 _$ S2 b+ B5 ? }
4 J/ R, T5 x& h) X& j if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 M! N) p4 R6 O {6 X9 e' r* L2 b# T: v: [8 t/ c! e
CItemElem itemelem;
% t$ L( H- Y. q4 a/ D, i. { itemelem.m_nItemNum = 1;# r1 O8 u4 A0 C
itemelem.m_bCharged = TRUE;) J3 V4 r, N+ j) E6 M
BYTE nID;. N7 b T. j# a& t& b; ~
" I2 m# L* v. o* N if( nJob == JOB_MENTALIST_HERO )% R9 M# Y7 \4 a9 }& [1 V+ D Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! L& j4 q2 o {' r/ \# F* L
if( nJob == JOB_FORCEMASTER_HERO )
9 `3 C1 A2 T+ e" F! \8 L3 \; H9 u: O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' S4 t9 d" }/ h8 _4 V, ?
# f2 c. s( S. P( Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ h" e7 u' \# O! F' O- t5 }2 y }6 q5 A) E9 K6 \8 _2 l/ v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' V+ M8 P: L/ f+ \2 h/ q) s+ [ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- R$ A/ Z u: y1 }4 Q/ B
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ H+ c+ V L* ~% o! h% c4 S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: k# t9 i. k+ ]" Y5 ?/ d& r/ K ( (CUser*)this )->AddTaskBar();*/; R# ~; ]4 S1 y. t( p6 | E8 M
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' {5 W( S1 K' p, j/ a2 m#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* f; M% p& R% }1 |; @0 ?
((CUser*)this)->CheckHonorStat();
( d) }2 N5 H6 x1 ]: d+ h ((CUser*)this)->AddHonorListAck();) ]; u( Q6 W- ~* u7 [: I
g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 L" o( W' M2 y' ^$ j: _5 f#endif // __HONORABLE_TITLE // ′Tà?+ l$ V; W3 @+ Q$ |1 O* n
}
% I I" [* c) R! ?6 U#endif // __WORLDSERVER
8 {; }" F, i) n% z} 0 q, W# z3 O( k2 k4 j
" B3 ?6 `4 u% K2 I4 h
然后你进入functextcmd.cpp并添加以下
. j! ~0 m' B: a' j7 X- Q# j. O/ V! m' y1 N
代码:
7 e6 U0 Z6 F- _1 ~. m+ pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 }* P0 F( y* j, T/ e( S
下面插入$ Z- d1 }' S( B
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 K8 a9 G; j, H( s) ~2 |
1 ~9 A: |0 Z9 j6 t) m p6 l然后你去+ P4 A d' `* @9 ]! w, _; R
. {2 d* X% H: z8 W/ Y5 z: S代码:
- x# K; e9 F1 @/ ?+ b代码
, ]! a; t: O; b3 XBOOL TextCmd_ClearPropose( CScanner & s )
& y( r4 ^' z7 G6 S, }: Z; v+ _5 F* k{
9 c. E3 O6 S2 V& D* U, {#ifdef __WORLDSERVER
8 j* } j1 o% i, I- y CUser* pUser = (CUser*)s.dwValue;
3 O! x: Y1 X6 f, F. S- I8 u g_dpDBClient.SendClearPropose();
/ o2 R! {- M+ c. R#endif // __WORLDSERVER, f8 m* t( B$ ]/ w' ]2 j
return TRUE;
! |$ g$ @4 a" x}
6 F! C6 e- Z; v$ e; Y9 r下面插入
1 t* o& @: _, a, K& ?" t) E8 KBOOL TextCmd_rebirth( CScanner& scanner )
5 ]2 K- Y' E6 {9 X( R{4 r; Y1 g* @3 C) m% O' Q
#ifdef __WORLDSERVER Z, A# R5 q5 ^( T
CUser *pUser;3 }4 X/ c7 P" R1 ~7 B
pUser = (CUser*)scanner.dwValue;
; m. Q. h& ?8 A3 D4 n" vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 T5 P/ i9 A$ |) u' w$ J: a6 t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 h3 J6 [5 Y7 e8 R
else
3 j- ]' V8 S, Y1 epUser->AddText("你还未达到重生条件!");
% d: r2 `2 }: R; f7 {#endif
, \4 E( p2 \* D: S* P3 B% \return TRUE;. H5 a/ S1 N! Y' `
} $ G3 G* M9 Y4 p$ ?- J2 Z7 s
4 a3 R! v. x0 Z; ~. E. |: z% o$ d( v; L! ?
, V3 U/ ?4 ^7 T5 t) H6 i$ E* J3 F; q. ?; p8 A! t: {
|
|