|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. f0 z2 u- Z: W( W6 \
) m4 X' v8 u& ?5 ^8 t
Mover.h4 D% v _( Q) f6 N
代码:
7 r. J8 E, f3 o0 j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# O' [' x* m% m/ G
/ X# ^: z# ^6 o. ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 n/ F/ S; P/ D9 p: k) U8 q4 h' ^
/ F! l) u: [8 I* |9 C2 [2 Q: E2 m然后你去mover.cpp添加
0 _ B( G6 t V9 v3 A
; v. s6 A; K3 Z; _. F) B+ z) U8 t代码:$ s3 V- Y% N! B/ T1 a. R- {
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): ~. C9 Q( l4 p% w% `
{9 ]' {8 t0 u% |6 T# b& t
#ifdef __WORLDSERVER$ I* _2 d8 u: v8 x4 n! J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# m$ @& D7 r) R8 v
MoverProp* pProp = GetProp();" h% ~; W2 h# ~% {) K P1 ]
if( pProp )
! l7 O+ s$ w' f) y3 k+ { {) ^/ }2 Z* q) B; A5 d: V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 s9 q5 G& k: G$ h! f0 H) Y {; g! I- `% y; p2 G) i& e5 J
AddChangeJob( nJob );8 p* s/ E' |3 Q ?. k; B, x. m
}else{( x7 L5 B, y+ Z( k( w6 W# H& }$ e
return;6 i9 M: e. ^& P2 F) y
}
7 V/ n; a% t& D1 z int nPoint = 0;
4 k1 j( X5 k3 U) M; o) F if( m_nJob == JOB_MERCENARY )
; l$ e8 ~- t+ q nPoint += 40;
6 n- g% D* i1 T2 z! K else if( m_nJob == JOB_ACROBAT ) f6 F6 o* p( U8 ?& p4 y) A$ \
nPoint += 50;! ^ V) f& g0 Q0 v- S- ?
else if( m_nJob == JOB_ASSIST )' T4 x# s5 E) C7 r6 x
nPoint += 60;
: X! A s, ]( Z, N; i% b' y else if( m_nJob == JOB_MAGICIAN )
: P, B4 K! Q! }9 k7 S nPoint += 90;
* D f3 D- p9 ?$ K) G. u7 g; M1 b5 p else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). {3 f, {* g6 x/ f2 b6 _
nPoint += 120;: `* `8 ~9 K+ g- [5 h* _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 u1 F1 O" g7 i
nPoint += 150;" E; R: A/ H- ], I0 W, \& P+ q
else if( m_nJob == JOB_RINGMASTER )
; A- t5 m( d( C- t5 q: z: U8 z nPoint += 160;
. q9 k v: h6 W4 c& s3 j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ); t: e" x7 z4 G
nPoint += 180;
4 D, V# j4 W& \9 f; ]4 c else if( m_nJob == JOB_ELEMENTOR )- b( v/ Z8 p4 l# {, \
nPoint += 390;. i) |" a; w$ A' x3 Q; {1 ^) g
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 z; u C8 C2 K6 W8 x, w( Q nPoint += 120;
% [- `+ K& z& T, S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ i2 Q6 i2 L; M1 n
nPoint += 150;- }' n9 v& m, F. _; L+ Y- m
else if( nJob == JOB_FLORIST_HERO ), ?4 E. P( \3 K
nPoint += 160;/ M J4 J& U' `" U9 R$ o g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 d/ a) Z A, E! t+ a6 { nPoint += 180;
* g0 O4 }1 U$ K" q else if( nJob == JOB_ELEMENTORLORD_HERO )
( W9 z: K8 L/ o/ r+ c' Z nPoint += 390;
% O& ]; u( }2 L) o g! B2 O
2 h, y. }; O1 {. |9 V3 J AddSkillPoint( nPoint );
% L$ R5 G8 J- m# B3 R8 B% _: O m_nLevel = nLevel;- k+ O6 R7 r7 o2 {
5 o7 J4 l6 E& J5 I9 s SetJobLevel( nLevel, nJob );5 I# G& U" {4 \% W3 g' O% i
m_nDeathLevel = nLevel;
! a# G/ T; X6 k) J0 n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ @) s' M3 ~! G8 } if(IsMaster())
1 [+ T7 r. {2 \* C {
' k4 r+ U( c7 t- j% @ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! \9 M$ q) D% V. k( g! K- ] if( nLevel > 59 && nLevel < 72 )
# v; t. M2 b; T8 Y0 p9 H dwTmpSkLevel = 1;% \5 w0 s+ E( A
else if( nLevel > 71 && nLevel < 84 )( H7 R% P `% Y7 e% b _# S
dwTmpSkLevel = 2;
. j% o8 w+ H3 A8 t9 Y" | a6 s else if( nLevel > 83 && nLevel < 96 )& j, }9 ?; r) s
dwTmpSkLevel = 3;
' h! d" w6 z4 A! E6 I else if( nLevel > 95 && nLevel < 108 )6 ?% S* m. ?: W& M: H- R
dwTmpSkLevel = 4;
0 I( Q+ ~- o5 [ J+ x5 i" z' L& M else if( nLevel > 107 && nLevel < 120 )
\( d, V0 Z5 g- J# i I5 G' S/ M dwTmpSkLevel = 5;/ U) N$ |+ s, k1 g" M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - F5 A2 q0 b& o0 @ u4 `$ ?
{ . k5 x8 X, s0 c+ }
LPSKILL lpSkill = &(m_aJobSkill);/ A" Y X6 U+ y4 Z! U% M
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 M& w* E/ f. `& P
{
@1 q3 F( P5 O1 [! W- R7 ]% V/ A4 I! K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
p. K' ]. \7 e7 D9 k if( pSkillProp == NULL )8 ]/ `6 i: |+ {
continue;
6 w1 d7 I3 g) }# [9 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" B* A W' A+ B Y
continue;
! W' ?/ i( A% I. t lpSkill->dwLevel = dwTmpSkLevel;
b E! T/ W1 g' A1 S& X+ \ }. O8 v. r3 Z( l) `6 d! m+ j
}
, x1 E( o1 P' g2 G }
$ B8 J$ Q0 S- {" \) b# \ else if(IsHero())
( \: V6 }. X3 g$ {/ t5 x {
4 |) l5 K. ^+ G/ f for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ W" A, O7 p1 t: T3 O4 x4 o { . Q/ Z5 t5 | L+ R1 ^9 Y: O
LPSKILL lpSkill = &(m_aJobSkill);
9 g$ n* J9 U* E/ V if( lpSkill && lpSkill->dwSkill != NULL_ID )3 w+ s8 c# h/ k4 I' c
{8 }( O: K I. Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 A; e* N( M. l/ f j if( pSkillProp == NULL )
, x3 z) Y' X7 [9 q4 }2 N3 n continue;
8 ^3 M9 i) p& Q/ O0 I" |% ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% m4 i9 x; T J( z* H* e continue;
' _- b0 z2 S7 X$ z8 r lpSkill->dwLevel = 5;
4 i" ]* e% [8 N( b }
3 F3 z* m" Y( N$ z+ u0 k. q( c0 r/ X }6 y8 }# N# O* i7 Z
}8 V: \! f4 E7 E5 D; i# V$ ]
else if(IsLegendHero())
" y# z1 |$ U4 v" I% c5 o {: |+ s. b; \$ X8 h* R7 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 O. w0 h; {# @% V: z {
# _$ G. G% Q& @. X' _ |! I! _3 u$ l* f LPSKILL lpSkill = &(m_aJobSkill);
7 l8 G1 c J) G4 c* O3 b if( lpSkill && lpSkill->dwSkill != NULL_ID )% o( d7 @/ D2 @* ^: b0 C* w
{1 A& q1 M) }2 Z" ]% x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 P$ b6 p: C# i% P2 Z
if( pSkillProp == NULL )' R: C% v6 B- Z7 G/ M/ }2 G7 I: M1 k
continue;; i x _+ J: A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: W) b; s0 q4 @9 o2 U% h( k$ R1 i continue;9 G n6 G, J8 r4 a
lpSkill->dwLevel = 5;$ y# n! c: Y. M/ \" v3 v' d
}
* f7 e( m$ d5 G1 I6 X& a }
6 P; J, R- s9 V/ E) Z- N$ s }+ L6 Y+ O4 |+ z' e0 a4 M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 Z/ g; E! |# j, r
if( bGamma )
# V; |+ k: \" k! p' q# Q6 d {
% `* n, i) }9 k m_nExp1 = 0;
. ~7 s( P( Q/ c. x }' ^; y9 r% A% z
/ ~9 C3 a, g% h- V1 ?
( (CUser*)this )->AddSetChangeJob( nJob );
5 U; x/ O/ Z1 d) q; b0 j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); G7 I$ g6 p1 y. L1 |( @
2 B+ i% c: j l) X" t5 ~. N
6 {* {3 w9 C; S- g#if __VER >= 11 // __SYS_PLAYER_DATA- {; }. K2 W1 N0 V# D( `
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, N! O/ j/ V8 P#else // __SYS_PLAYER_DATA% ^9 m" J! D, ]: E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 Y9 \3 ^0 u/ S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ q# n' d# `8 N3 _+ u3 b, j+ N
if( m_idGuild != 0 )2 F% v1 @4 z1 s: n2 u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );) L7 B1 k$ m8 C8 Y$ l- L8 l
#endif // __SYS_PLAYER_DATA
6 I* A# S N1 m. @ SetHitPoint( GetMaxHitPoint() );
( U8 o# T5 u6 [9 H) L SetManaPoint( GetMaxManaPoint() );
) Y2 o; |6 w$ F7 c+ z" { SetFatiguePoint( GetMaxFatiguePoint() );
3 k( L2 J( {7 Z( R2 M if( nJob >= 1 && nJob <= 4 )
2 K, z0 a% ]; d/ ~" M% x {
! A# ~1 e$ V& n- x0 \# S m_nStr = m_nSta = m_nDex = m_nInt = 15;8 Y, a1 G% y& G0 e) r: Z, e* N/ I
m_nRemainGP = 28;
' o! K" P( } Q; G/ a( N }
2 E& [; E3 {# [! F m0 s% ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 P/ f4 \5 I4 j: z' ^. e$ v {4 }# f6 C- ?) p8 a# L3 q/ I( O8 T* K
m_nRemainGP = 118;
5 p, T, P0 |$ e //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, p& a/ o7 {: b# b2 A! t. b$ g3 Y" S m_nStr = m_nSta = m_nDex = m_nInt = 15;' @. ]' K& T$ h5 z/ Y
}
6 X4 q' `: F9 z! ^7 q. ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ o0 K8 Y+ z% M M6 a
{
: _ B# k* z) E( I F X CItemElem itemelem;
4 g- E; D0 w' S3 v itemelem.m_nItemNum = 1;
5 t- F0 D+ G. N9 A3 x- s# o itemelem.m_bCharged = TRUE;, Q L' S O1 J; k
BYTE nID;
: }7 s( J' @8 Y. ~! B4 r( K, A& I3 Y% X' g! M: F5 C
if( nJob == JOB_MENTALIST_HERO )
+ P& C- S/ P, G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ c0 V e2 B$ \( C! t" c& y if( nJob == JOB_FORCEMASTER_HERO )& x4 l. i& c. M1 w5 C. S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& ?9 E5 a6 V! J+ O
0 Y0 ~: J! L. M! [" P$ E0 C
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 y% N) S& q f' w; _* t0 F
}
2 A& V+ M0 I1 J7 e. Z* J2 k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 K1 _# j# ^" }- P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
. _2 {: F6 j8 Q; _* i ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 j1 g5 S# d+ v7 f5 v
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& S; l! H; B' g# V ( (CUser*)this )->AddTaskBar();*/
3 k& ~, Z8 k: t. U( o' L; W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ a; X* T1 i: }2 o; s" H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" d5 z% J; A8 J- b5 M( Z: l
((CUser*)this)->CheckHonorStat();5 a' Z; n" y% F, w. e
((CUser*)this)->AddHonorListAck();* A p2 E" { F# Z# I% A" w$ G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) I. V% @( ?) m: p#endif // __HONORABLE_TITLE // ′Tà?0 P0 P1 N* ]: ^" M3 R* ^! S7 Y+ M
}
! x l* L7 G8 z#endif // __WORLDSERVER
+ p: d: ^, F, f9 y7 `} ) n: Z4 @- q4 e: H
3 ^, n# C; R; v/ H5 u0 j然后你进入functextcmd.cpp并添加以下
( ?9 K, e; M' G- c$ D6 _3 A% C) I# ?' Z5 R+ Q
代码:8 }( c( {' S. U1 m
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) f0 R3 k4 N4 W- v8 P
下面插入
" ^9 h6 m; t$ E: b) rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 k0 a. I5 s! ?& x: Q
3 c, R& Q1 V* B1 I6 b. P然后你去
6 g$ x7 |) h( V% ^/ o) S5 N; o" [3 ~$ h, K
代码:# N- Y; k) z" Z0 @4 M8 }
代码) N. z% U# ^/ ]; B3 C
BOOL TextCmd_ClearPropose( CScanner & s ): h+ N' J3 ~, W& p! y' g0 p9 S" v
{
, J2 l4 v" o: T/ }% G* ~: _#ifdef __WORLDSERVER1 j& M% i/ q- E9 }& x3 l# K
CUser* pUser = (CUser*)s.dwValue;
" f/ o D, P. G& F g_dpDBClient.SendClearPropose();
* z1 ?- i% p/ T; v1 \ ?#endif // __WORLDSERVER& M3 t, V0 O- m( [/ K/ S& @, J
return TRUE;$ @6 z& P: Z, [
}8 N& c2 m A Y
下面插入
. ?; k5 y9 y% MBOOL TextCmd_rebirth( CScanner& scanner )
+ i( G% o% X% [" Z& A& d8 @* D( j{' S, T4 }0 z/ D, H D6 O
#ifdef __WORLDSERVER+ c$ C$ I9 y! R) m7 n- x
CUser *pUser;$ Y7 H) r) j* m3 B0 N
pUser = (CUser*)scanner.dwValue;
8 W5 V, d1 ?' k9 r3 v. iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ h4 S) X5 G3 F+ L/ I$ b# a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& [# v1 i9 U' Relse
6 n9 o( S `) l& @) U: D0 FpUser->AddText("你还未达到重生条件!");
9 I9 W" q3 T: ^#endif l: F4 M2 N' S5 o3 o1 u
return TRUE;
# V' q: j' |3 i6 p0 U}
: n7 n! @7 A9 J! u
1 P" n7 T6 L' j: T; Y$ Q9 p" {
' ?$ S; A2 L2 U: x$ } f6 f5 x8 t% C, G8 q
1 B( ]! X5 S' O6 b8 G+ Y" k4 E I) m
|
|