|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: z6 c' V% q5 I3 |
6 i. Z; }) j# {* j; W3 g0 ~Mover.h; w; E7 w6 L9 b7 W7 H- |
代码:
& d4 K% u* B K( W) r4 e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
O$ K8 Y4 K$ _5 r7 _) x! z9 s; G( B" J0 Q! Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 C6 w8 Q/ t) E8 d$ m
; I3 f2 Q i( H8 K" j( x; F然后你去mover.cpp添加
0 p! L) t' E7 A, d- j9 [& |
\1 |/ [4 B! C9 U代码:
- W: T' \ g. Q! g2 O' b f5 W7 jvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 n5 Z+ ^4 S, U3 k) n" K' _# h
{1 I9 p9 r* e: {* m9 ~
#ifdef __WORLDSERVER
2 ]7 m9 |4 Q8 B // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* v W5 {* h x" f0 ]8 S MoverProp* pProp = GetProp();- _* f8 V- ?/ O \) n( ^0 _/ F
if( pProp )
q* c7 U) T2 i* p$ s% | {# ^& |% Q+ @( T% {) p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! h. i: T- l; I/ [9 K# E
{; h3 `/ I" J* h! C& H5 y0 t% e
AddChangeJob( nJob );% u7 E5 m% }1 Q3 }6 [( {, j( X
}else{" z u1 Z7 \/ k
return;
& W6 o9 h1 k" N/ \) T0 H x }, q s% v4 M- \1 G- B
int nPoint = 0;
) I) @1 ^0 W) M; Q! w3 X if( m_nJob == JOB_MERCENARY ) T+ j0 ]% W0 x' g% ~7 }2 j. x
nPoint += 40;) |6 ?6 S# J& {, N v8 D
else if( m_nJob == JOB_ACROBAT )
# y0 ]! ]+ @5 J( ? nPoint += 50;
' ^; ]& I0 j2 K# l5 O7 q else if( m_nJob == JOB_ASSIST )
2 `' @ Y: U1 V7 h2 M) x& [ nPoint += 60;& J M( }7 M9 u2 _
else if( m_nJob == JOB_MAGICIAN )
) S5 {* \* F1 I( ? nPoint += 90;
6 u e* Y+ B% X8 M9 U# o f, @ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! C J+ d+ @& {& F/ r, C
nPoint += 120;$ v7 ]; ?' ?$ w. `
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 t5 {" r6 G: a B6 D
nPoint += 150;9 B& c+ U* D y4 @* Y
else if( m_nJob == JOB_RINGMASTER )
; J& p2 n; e9 ?0 \ nPoint += 160;) b) I' T- ] W3 T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
& w$ v/ k5 J1 s" Q3 K nPoint += 180;
) c9 \! ?# B+ D8 j/ I. \# t else if( m_nJob == JOB_ELEMENTOR ); ~: N6 w' R7 R) ?! ?$ `
nPoint += 390;) b. V* M1 S' a( m% d; `3 A
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). |* {7 X; C( i) D
nPoint += 120;3 w7 Q9 f3 U; m& d% y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; Z; C1 `) ~- J& Q5 k nPoint += 150;. E3 d) A: a3 V1 @. |+ k
else if( nJob == JOB_FLORIST_HERO )
* Z: a" w/ U: M( s4 F2 ?5 {" o1 ] nPoint += 160;6 x6 e: m( e u' O0 a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) W ]7 ], l! s* f
nPoint += 180;
/ z' i" p* o* h9 d else if( nJob == JOB_ELEMENTORLORD_HERO )
; t( g; G u" c! w nPoint += 390;
4 N0 g# M. U* G- u v/ }! X |. P. V& Y& B3 w% i1 G
AddSkillPoint( nPoint );6 Z5 l, d& C$ v1 W' m
m_nLevel = nLevel;
( Q9 I; Q' ]( ^- a: I/ e- g% x2 h
$ L/ g( f6 w# f p4 E8 S; R SetJobLevel( nLevel, nJob );0 O; q K& r8 W. @4 Q- B3 _, ^
m_nDeathLevel = nLevel;5 \; I6 y1 e/ ~1 {5 O
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 c' o: k4 f o& C: K, ^ if(IsMaster())
! h+ X, L' ?7 q# h# S {
" g5 V) R1 w7 ^) T int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' A$ S8 Y {8 }
if( nLevel > 59 && nLevel < 72 )
( v1 u; }7 |# Y6 [$ s. f7 a! ^ dwTmpSkLevel = 1;! |7 p' Q- m2 v) U
else if( nLevel > 71 && nLevel < 84 )& h4 A/ ~2 w! v$ p" j, Z/ W/ O
dwTmpSkLevel = 2;
0 w2 t' U: M* i else if( nLevel > 83 && nLevel < 96 )
1 l; J6 p4 b& E. x9 G: ?; l, U dwTmpSkLevel = 3;
( K5 W" @0 W6 U3 H else if( nLevel > 95 && nLevel < 108 ). O* z" _5 ?9 D) a; Q8 g$ _! m$ W) W
dwTmpSkLevel = 4;- E9 Y c+ c/ f$ S) e3 \/ T: V
else if( nLevel > 107 && nLevel < 120 ). ?, b7 H0 @; ]2 A& Z5 _1 h
dwTmpSkLevel = 5;
8 h& S' ]1 H0 u0 z1 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 |. v# o7 t: T* H; x% v {
$ Z4 G0 C% m& ^ LPSKILL lpSkill = &(m_aJobSkill);( H- k/ G: O" C2 e5 m
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 u" Y' n$ w3 |) d0 u D {
4 J: \# W' N3 z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 e, P4 w" P0 }2 W if( pSkillProp == NULL )
% x' X( S4 A% X; t: g, S$ [7 K continue;2 k6 F1 o5 t9 c9 j* e+ w8 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( E# O& U! x# Y9 l1 ~ continue;2 u! Z. c/ W r# t% k* o/ u. L( |8 z
lpSkill->dwLevel = dwTmpSkLevel;
: C* o1 H; W) K0 G/ p! I% g0 n' T& N }3 v0 a! x4 `9 d0 j7 h9 X
}, `0 P* @: J( H
}" C& \8 j3 d9 p6 t' |) N
else if(IsHero())1 B. m h( u7 o3 e+ p# N" U, @
{- M5 m/ j6 c! R( c4 E* X& U
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' i6 j. n/ p: f8 n { 0 A* F1 o# \3 P
LPSKILL lpSkill = &(m_aJobSkill);
( L5 X$ Z T0 ?+ U { if( lpSkill && lpSkill->dwSkill != NULL_ID )* K+ M+ C6 ~3 ], l5 m
{( M- C7 f3 i# `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - ]7 [* c5 z' t
if( pSkillProp == NULL )3 X' i# A9 C7 l4 j9 N& S, C5 u
continue;
8 v' q& @+ n, r& P6 c# e+ q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* W: I3 b, G0 w( ^) N5 X continue;
5 y; z1 Y# ?2 T+ i, e m lpSkill->dwLevel = 5;7 T0 I% i9 B, [" [( P9 ^0 a: B( ^
}+ K" e9 `2 l9 X6 q( D
}. A6 q8 C# b- W( j' L
}) z [# z" i' Y' Y2 f8 r% ]
else if(IsLegendHero())
- y4 v$ B3 N4 B. ?3 o3 @ {# b& L2 N9 e. E" R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( {; z) K* ~( \$ ] { - Y9 r/ ?3 s- b+ u- M( Z
LPSKILL lpSkill = &(m_aJobSkill);1 J/ D. y: z. U7 X! ?9 [0 W3 J( k
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 d$ @0 [+ g* X) n' W* n2 [
{$ G) u7 K7 F% k: y# p; G8 v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 @3 {2 V- j# h7 Y3 W7 a+ y: _9 d if( pSkillProp == NULL ). F. l; r4 p$ u0 `
continue;
( Q: G$ B; l0 u) b; Q8 |* I$ p2 ~' w if( pSkillProp->dwItemKind1 != JTYPE_MASTER) Z" K& w# ^; e, Z2 t/ ~* f5 \
continue;
: e* y$ l1 b6 {* B. Y$ J/ A lpSkill->dwLevel = 5;
% V, I9 Q; H+ p" S8 [6 [ }' u; U: S }. K9 o5 p K6 a6 |# u
}5 w, u( w ~; i1 a( f# g: |
}( b! a; E7 m3 {& X( ~" S
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: R7 J6 a: E5 Y if( bGamma )6 A! `/ d! `5 N7 _8 S
{
- z4 L+ Y3 D0 z/ F& o( m; f8 {0 c m_nExp1 = 0;' P5 c* b# V8 M% P
}
/ B" d. Y% v" q. q/ q6 b
; e) W3 Y" b, P# c' j4 v ( (CUser*)this )->AddSetChangeJob( nJob );
; ?2 ]! a! i6 v* v& P1 w, G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) n/ o0 r. o+ K/ y5 d4 u8 E O
6 G* i& S- O. Y' }# d3 T/ e1 ]) a, N5 ^' V+ _; T/ G. G2 Z- b4 Y* P
#if __VER >= 11 // __SYS_PLAYER_DATA* b! {6 O& t4 G' H' Z0 r& H" X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ H6 I/ L6 n0 }- E#else // __SYS_PLAYER_DATA$ j3 S1 c& a+ u6 w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 @ o) X2 a& Q0 e4 j* F5 `$ K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ F; G3 s7 V; e9 [0 g* p if( m_idGuild != 0 )8 |9 F: B9 k \8 O
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 [% {4 Z( @; q: k- G
#endif // __SYS_PLAYER_DATA( [5 |- u: [4 j. m
SetHitPoint( GetMaxHitPoint() );! M; ~' C6 _ r' |
SetManaPoint( GetMaxManaPoint() );
+ P ` z* K2 s. R( Q' M+ ` SetFatiguePoint( GetMaxFatiguePoint() );
6 z% h5 P$ ]" W- _7 Q2 q" G' R if( nJob >= 1 && nJob <= 4 )
9 t( ?+ g, [8 D, w4 L9 K { o* L! V' f# X `
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 G3 n: }. C# m7 t2 L3 @8 w# E
m_nRemainGP = 28;
. r- U0 Q% r% G K& N4 h- \ }( c2 |0 e" s+ b0 }/ v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 n& v2 |& r. g+ C6 r- d4 B
{$ k' G) j7 `& a
m_nRemainGP = 118;& o3 C @. c& Y Z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 j% b. s2 a7 Y2 @* F m_nStr = m_nSta = m_nDex = m_nInt = 15;* c) m8 U, S+ Y% d
} o/ O7 _$ ^2 h6 f% j4 ]
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! R }5 { O3 c) \9 s& [2 @ {7 f! y, D% U9 `# p3 U3 Y( j
CItemElem itemelem;
( H3 C, W& n( H! _7 j& R itemelem.m_nItemNum = 1;
, i; M- R. \% H5 V( \7 L" k6 o9 S itemelem.m_bCharged = TRUE;
8 Z6 J7 F: T* q1 ]5 U% ^ BYTE nID;! o8 ]# v# O- `1 | `4 Y
0 F4 V5 H' a. f4 P if( nJob == JOB_MENTALIST_HERO )
0 q' o7 b. x% ]! W1 W* F6 ~( a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ d0 {! v9 c9 H U# S if( nJob == JOB_FORCEMASTER_HERO )
! _1 {" y& D% z7 z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% F7 V6 A2 S/ U8 M3 Q J6 ~( i
0 m) f1 e- l' `- \0 h+ T0 \, g ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 j7 N8 j) X9 _# B
}8 y e! ?7 o3 V; a) t0 R% a
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) C& V& {! s& A, Y9 R7 \" C6 N ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! d3 g( A9 w. f0 T* D8 s! ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( O* Y" c$ j9 w4 v9 F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# N, G( |$ \) \7 D, x7 h
( (CUser*)this )->AddTaskBar();*/
' h! k# H" Z; O7 A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* z/ G, ~8 R8 o, q) ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? \; V2 P$ i' g1 g+ P
((CUser*)this)->CheckHonorStat();( K0 n. P n" k' c5 D
((CUser*)this)->AddHonorListAck();7 d- x/ a9 w+ c3 g. X+ i( M
g_UserMng.AddHonorTitleChange( this, m_nHonor);" a. ^* x: @. @& W( E8 O) a
#endif // __HONORABLE_TITLE // ′Tà?8 L* ]- }) E4 i6 p# l
}7 K( o( Z. z% o) d$ V, h; d
#endif // __WORLDSERVER/ @ R+ M# G! ~+ c7 t1 O# N3 r
}
8 L$ y1 B' M1 x$ N
& B; K- T) W0 o# O然后你进入functextcmd.cpp并添加以下 [8 G2 y, a% k' K! s$ O0 B
2 V$ E/ w( Q% H3 e3 q代码:
9 D% k+ } g' vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 K) V/ @" Z7 ~3 ]下面插入
! u: ~+ k7 C. k8 m& I, GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ R, o" s% O: F3 g6 B7 \' P( D
, B1 ?4 ?/ E9 o0 d" Z. {然后你去
/ `$ p$ e6 p" a8 s$ Y& F( _$ |" Y+ O, ~/ ]
代码:5 `2 \4 ?! z+ T
代码
5 I5 L+ I/ _% a& U8 _- C0 Z J5 i pBOOL TextCmd_ClearPropose( CScanner & s )
2 d4 p& K% H u: }! a8 d{1 K. U$ J4 w3 \* l! t* f( N( H
#ifdef __WORLDSERVER
5 F- ~- D4 Y2 k+ ]' t1 N CUser* pUser = (CUser*)s.dwValue;
5 W; t0 {2 [% F g_dpDBClient.SendClearPropose();
8 v7 L0 a. z0 E$ h8 I% I#endif // __WORLDSERVER& X3 ]: ?# R& V" u O
return TRUE;
h3 a5 i+ Y2 x3 i! W2 Z2 L* i}4 q+ L: v. Q3 W
下面插入 N7 \; d4 U* f
BOOL TextCmd_rebirth( CScanner& scanner )
. B$ L( o1 a/ w, ?3 G+ r4 }) a! n, t{
1 d9 [% y( x- S% x4 ^#ifdef __WORLDSERVER
% n1 l; s* P' _! uCUser *pUser; J3 v; p U5 C% @
pUser = (CUser*)scanner.dwValue;
3 M7 H& P' v: j cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
m4 A% n6 T4 |& e6 L! GpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 ~" Q! h( w2 k/ n% x% J# @" I5 Gelse
+ t ]1 H6 }. I/ qpUser->AddText("你还未达到重生条件!");" `' J# j' u7 \$ C8 q
#endif( k$ B2 B% X6 t8 B
return TRUE;
! A2 M5 D1 [8 U2 v, ?0 U} 9 ?% G% b4 S1 n
9 [. Y. f! k0 d
; _" n4 p4 e5 j4 n" U& v
9 m5 E) O6 U; R: b. W0 I. A. s f6 P9 B4 a* y+ W7 V
|
|