|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 ?; L, z0 C- j' z% z% S
/ V' B# l4 B7 U7 C$ @
Mover.h
8 S% ]" m, Y% z/ L8 D3 S代码:
) }$ N1 n2 q3 z3 c, X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. X7 G' i& J+ k1 x5 _) K1 j
: O' p8 Q" K. ]1 P下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' Q* w0 t4 Z- x. O. u& W
' Y1 V( U+ z) w7 t然后你去mover.cpp添加
7 Q( [' T. Y8 _
% K% o$ ~2 ~" l代码:
m+ D1 H9 w0 l1 a+ y/ cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- F& N1 E5 I3 s+ q- v7 T! Z
{
+ h: _$ D% w+ {# U#ifdef __WORLDSERVER
' a' |6 ]( i7 T5 a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* R0 k6 P+ Y& o5 I, K9 u) O
MoverProp* pProp = GetProp();" @' _0 L6 `6 u8 u! x' ?
if( pProp )
. x* g a8 v# G% L {
, b. \% c1 s* _2 {& T if( nJob > 0 && nJob < MAX_LEGEND_HERO )- P- \1 x X4 g5 D; k
{% `- r- U4 x, g6 P9 j$ T
AddChangeJob( nJob );$ T! G6 s3 v Q4 k- t. Q" F
}else{- |7 \* b7 d6 A& v A
return;* f( ?8 c3 u j, M! u
}% U/ h, M; g3 J4 z% D7 j" r! u$ {
int nPoint = 0;
# h9 o6 r% W! S! v) p. @$ k4 K! s$ k if( m_nJob == JOB_MERCENARY )6 \6 u. {' F2 \/ Q o2 \* a8 W6 p
nPoint += 40;
) O0 ~' p z) g* S: n0 }& u else if( m_nJob == JOB_ACROBAT )* @; `* o, n4 n/ u
nPoint += 50;, y& j6 w5 I4 X0 j" H
else if( m_nJob == JOB_ASSIST )7 O% B0 b5 g, l$ G
nPoint += 60;
$ ]2 @) ~ u, c2 B) {0 _, v, H else if( m_nJob == JOB_MAGICIAN )
$ ~% c8 W$ v9 K# s# Q7 H5 ` nPoint += 90;
4 R! R6 j6 r. I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). \: t2 R( v6 d
nPoint += 120;- A4 L1 S9 {; X6 P/ V1 g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% ^& C4 b7 V' j6 ^+ p. ]4 v7 c" C
nPoint += 150;( ?9 I5 W( F/ ^8 G* I2 g+ a/ R
else if( m_nJob == JOB_RINGMASTER )6 c* K- W" ]8 w# l! m) d: I
nPoint += 160;7 v% Y# T5 z8 k$ J o# {& U( j7 I; r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% N1 T: A7 f. A* K( @2 X1 y c
nPoint += 180;
# X. a. Z. r* ~2 N j else if( m_nJob == JOB_ELEMENTOR )
/ Q6 M/ v- S- w Q5 K, Z" o nPoint += 390;+ s* T& H! E2 H4 L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ {. q+ W) }- f3 V nPoint += 120;' }8 @2 F# ~- g8 }, ?8 ?. ?- K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ D5 z! \" H7 q9 G' A7 n% L* ~# ] nPoint += 150;
3 k( {! r7 p; |- z else if( nJob == JOB_FLORIST_HERO )
$ C& e5 v0 n6 {7 N8 U8 P) o) m nPoint += 160;7 ?5 c5 u* ]" e3 n$ a/ R$ `
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( U. V- ?+ w) n4 ~
nPoint += 180;+ I+ |; ~' j( g0 \% T" |
else if( nJob == JOB_ELEMENTORLORD_HERO )
" v7 f8 `$ f ^2 v0 V$ p+ S nPoint += 390;
" M% ] }% @5 c3 f: Y* A" _1 F% e& t9 {! c, }4 c& s
AddSkillPoint( nPoint );: z: M7 k" z9 v- Z2 M# @5 j
m_nLevel = nLevel;# g) c8 ^+ T4 x3 x
6 y/ p, g" }; T; k SetJobLevel( nLevel, nJob );& B. p2 F' y$ ~2 f) A
m_nDeathLevel = nLevel;, l G, [ U7 ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 B0 ^8 l0 q2 D! N6 _ if(IsMaster())
5 H h) c) r; U {3 \/ x, D# c8 x' B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# X. l3 y" A" \6 o \, Z if( nLevel > 59 && nLevel < 72 )
& s! M# }$ c2 \0 O9 i3 O dwTmpSkLevel = 1;- L( B0 p$ X, k8 `7 M
else if( nLevel > 71 && nLevel < 84 )% o. R6 y) b3 I2 k
dwTmpSkLevel = 2; F+ }' H( ~6 m6 h( G3 O+ e
else if( nLevel > 83 && nLevel < 96 )
; ? h8 ?3 v9 V9 R dwTmpSkLevel = 3;1 F/ g5 L3 O* Z* Z0 w
else if( nLevel > 95 && nLevel < 108 )& O6 _1 q. W# Q+ i+ i
dwTmpSkLevel = 4;
6 w: d* M' s% o3 J' d else if( nLevel > 107 && nLevel < 120 )
' [3 { l# U# |8 a dwTmpSkLevel = 5;" w4 b) S7 j% O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 R. h) {" N" B# K4 r+ y { ! F8 l( D" V; L0 M8 n1 E
LPSKILL lpSkill = &(m_aJobSkill);
! N! P( {0 m# ]9 F% E' ~0 l& i if( lpSkill && lpSkill->dwSkill != NULL_ID )4 y/ _$ |1 T& ?
{: Y+ W8 S" p; y- J% W2 \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % k, p& H* s% B/ j. d0 U6 A
if( pSkillProp == NULL )8 A* c {4 s# y9 H% m/ e
continue;
! ?; f; ?3 ?& P! e7 l- M if( pSkillProp->dwItemKind1 != JTYPE_MASTER), d; ?9 Z3 c- z( {/ M
continue;( i! m, d/ p0 Y& Q8 M. x2 _
lpSkill->dwLevel = dwTmpSkLevel;9 F* G- _7 C" K, n5 Q
} I: g. }) Y9 b: W
}
' r h' F) N& G. I0 B }* n" N# U, V# G6 h. n
else if(IsHero())# x2 T! t" L5 { u4 D
{) f5 [9 G; G: t) Y( R' B4 ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 L+ Z- s A% a' R
{ $ ^# D) R$ p- q
LPSKILL lpSkill = &(m_aJobSkill);
3 E0 l6 f" V9 W& S if( lpSkill && lpSkill->dwSkill != NULL_ID )+ d& I; x- d& U0 o, O
{4 s0 f" I5 S: v4 T9 d" Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 {4 o% ?7 n% [& D
if( pSkillProp == NULL )
0 `' D$ p' y' a2 u0 W1 u continue;/ J* f4 a: ^* J" M) T5 ?( i; M8 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 w, O, }- h; `5 f* d1 M& k/ ~0 e continue;+ U6 C3 y+ [ A+ z* _0 H8 v
lpSkill->dwLevel = 5;
2 Z# m7 n6 L9 i5 s' x- F }7 ~/ o% c# I0 n( F6 s9 ~
}
( y4 d" ^) t F/ V! Z }6 N* m7 q \9 a9 T
else if(IsLegendHero())
- D+ ?: |$ N( B# h {
& @9 X- u/ n% `* o+ E& ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 r# p+ \) L( Q0 f6 b0 e
{
9 \/ W* J, E. m% d1 u3 \- Y) j LPSKILL lpSkill = &(m_aJobSkill);+ p" m' A; A0 ]' }4 q& F2 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 O% ^) a1 v3 @
{
9 j% [( \* m$ r- I) j5 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 G. }/ X" }% b4 W if( pSkillProp == NULL )
) \. R* Z' L) E, G, |1 B2 L continue;
. x+ L0 W$ _6 N# [1 E5 q+ t if( pSkillProp->dwItemKind1 != JTYPE_MASTER): |& T" x, i1 i' N5 I0 Y
continue;
0 I4 a% H/ R( P- }, [4 V lpSkill->dwLevel = 5;- |9 H/ ^0 c$ C; |: Y+ s
}
1 ~' Q4 K* ~9 X+ B& R( W' S }
5 L [: f/ G. ? }* D) m3 u" m+ G8 V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ F$ Y7 j8 ~: [& K; ?2 [
if( bGamma )
" E* F+ s3 t* D% s9 v; @: K {
0 E4 s ~! h) Z5 N' ^ m_nExp1 = 0;
, O0 Y) b4 i. A; }4 d2 U K }0 t6 p# |' n& i3 A4 `
& X) f; u3 k' @! i! V6 x ( (CUser*)this )->AddSetChangeJob( nJob );
3 f2 W9 X3 |8 |# M: | g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 P8 b- e$ ?: Y/ ^" ]2 ]* I
& {* U+ Q2 e2 i4 K8 o$ |$ H
* @0 K) w1 Z2 a
#if __VER >= 11 // __SYS_PLAYER_DATA
7 K( h1 J: k2 m- u1 x g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
7 q$ f( s+ m1 m1 _#else // __SYS_PLAYER_DATA
' W& W5 X4 w" ^& b8 t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 z5 e* \2 @+ L, K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
K& y7 Y8 ]& g9 @ if( m_idGuild != 0 )
# u, a1 o k; {- ~/ Y+ @ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 _1 y' m6 N) S8 o. v+ t& n" O
#endif // __SYS_PLAYER_DATA
; H) W9 v! @/ @" f SetHitPoint( GetMaxHitPoint() );
1 K8 R2 V1 i9 i. I- \ SetManaPoint( GetMaxManaPoint() );
1 t5 C0 A+ X% D- w9 p. G. O SetFatiguePoint( GetMaxFatiguePoint() );
4 P% Y* f3 h8 u. O if( nJob >= 1 && nJob <= 4 ); `- ^% c# [' l+ i# r
{. w4 Q; a2 J' M/ |2 a1 u& F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: ^9 c f) L2 p4 y m_nRemainGP = 28;% F9 }+ u7 w$ ]( Z0 f
}
% H! E; |+ y( A9 x5 W/ G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ r4 b9 c ?. @# S8 T3 C8 |
{, N8 Z5 \0 T3 X4 X5 f: C& G7 ~& N; _6 ^
m_nRemainGP = 118;
! y' A/ f! B% J- h7 V2 ?0 r3 S //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& v) \) v; q9 J- z0 c8 u
m_nStr = m_nSta = m_nDex = m_nInt = 15;% K4 `0 P* D# C6 q
}2 b2 o! I4 J3 x& Q$ Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* D# c) m0 O. @* w/ Z# B! i
{2 Q9 G) F8 {: `: ?1 }7 V
CItemElem itemelem;
# H' H9 J5 l' @ n' v itemelem.m_nItemNum = 1;
/ R5 j& g9 V5 S7 |- k z/ u7 U% b7 H itemelem.m_bCharged = TRUE;
; |7 Y: z: M0 @# g7 k, K BYTE nID;
1 O! O2 [* ]4 g |( [1 V+ e# ^0 H
8 n6 {; A, c! V. m4 S8 v6 ] if( nJob == JOB_MENTALIST_HERO )
8 M! ^# E6 j, d/ k: \ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) W/ D1 p6 M/ @( q
if( nJob == JOB_FORCEMASTER_HERO )+ C9 g* Q y5 e8 ^# U6 |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) s; n% A6 j3 P) } ?) J; x
4 ^9 t( m1 i+ h+ b" w D& @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );& y% d6 z0 C" E* p6 x8 W4 @
}: d% |7 g1 o0 h9 I' x; l# c4 m! o" w
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 s. M/ h; F0 S0 u* l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) Z% k/ L4 U( x, | ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, R7 V& T8 Z1 Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );4 U4 s: `$ H: w: Q
( (CUser*)this )->AddTaskBar();*/
. k( O4 @4 s& q3 _ v, N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, B. w& g1 p ^% B#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: ]+ D6 E4 w! K9 I0 t( |
((CUser*)this)->CheckHonorStat();" Y* H2 r8 ?* k$ U
((CUser*)this)->AddHonorListAck();' P8 B0 u# K) U5 m2 j# Z) x+ b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ C& z: \3 }3 F- {; h! v, ?$ J2 G% P. `" g#endif // __HONORABLE_TITLE // ′Tà?
( P9 D; b1 ~1 ~ }+ i- m. _8 ]0 b9 O. W5 f% J# p9 L
#endif // __WORLDSERVER) d5 h7 J& p8 w8 S0 G! I2 ]; x
}
% O7 t! v) [3 }. g. x3 s, v9 j
; P/ J( B% \2 V9 F5 ^5 U0 H/ `* X然后你进入functextcmd.cpp并添加以下. A. l$ U! E/ N' S6 Z5 p4 u8 X' i
1 [+ B/ o. I1 X, P代码:2 _% M" S* U! A4 Z6 V) E
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 a/ k+ p9 f5 t \1 K4 X
下面插入
( |0 X5 L3 R+ M' lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! M! { h6 n S( ^4 _; k! O# a; }; @& [1 ?# Z8 i( \7 s% P
然后你去 o% r+ P! D% ~/ `! o
; g+ ?) O1 U- r& G9 L" V
代码:% f8 G/ e8 z9 D
代码3 Q$ _1 w: F$ s6 G/ A- e! l: B% U z
BOOL TextCmd_ClearPropose( CScanner & s )3 ?, p+ }+ s2 y; I% N; h9 l$ G
{) v. ?* z4 E" F5 H3 a; C7 F3 a
#ifdef __WORLDSERVER
+ L6 k! y8 b, A( B y9 A$ s4 M CUser* pUser = (CUser*)s.dwValue;) G& o! A( c/ S9 }' T: V
g_dpDBClient.SendClearPropose();+ n T5 P& R6 j
#endif // __WORLDSERVER
! U' v6 I2 D; D4 n! \1 x return TRUE;
/ R, N! ~0 v! s$ Z}; U* o V3 A7 s# ~' b
下面插入
# v% ?+ t$ o1 ? L2 O& n- CBOOL TextCmd_rebirth( CScanner& scanner ), d; `* ?" A3 A& _ t
{, x: e0 m6 X$ z
#ifdef __WORLDSERVER' B% [( s \! S3 y# E
CUser *pUser;
+ Y* n: ?; S& fpUser = (CUser*)scanner.dwValue;1 q- r& _% d' `0 R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, k: T3 c' n' j4 ?& rpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 ~9 W3 X# C6 l7 p( h+ ?else
/ o1 O" N3 G) VpUser->AddText("你还未达到重生条件!");9 E3 T6 G5 S8 t2 v
#endif
& w* ~! s" q. c) x7 s/ V* Jreturn TRUE;
5 x/ p4 I, S: t# I}
% C/ |' D0 l. H( p) z
/ K# t: T' }7 P
. B! b$ X- p, i; L H- w
4 r4 u/ B/ L1 K' n
4 v8 r" }/ Z, s R/ l! ?. ` |
|