|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) p0 V8 @; e2 W
8 r3 Q) K4 v' {0 i& I
Mover.h' c; L4 f, y+ W; F6 V3 {
代码:" _3 Y# [ L4 T Q, s# t- ?4 a
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" V0 {3 a7 o \: C% J
5 `; V, q9 w! m2 |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! f/ N+ e* f$ s' C2 ]$ q, _
7 D6 u. X3 m) O1 h: l g然后你去mover.cpp添加+ [4 e" W- S) s/ S
2 g$ S2 @& | U: X4 d6 C
代码:
8 y. k6 H; j8 [, T4 q9 h: V) dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! \" b8 |. n0 h. b7 q
{
0 R( ~ s6 k( m- S/ {#ifdef __WORLDSERVER. y2 v' O2 `) Q1 s ~: v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% u* q4 @/ n0 c
MoverProp* pProp = GetProp();5 `, Z0 Z8 z3 J+ S. z
if( pProp )
' r+ Q- X' {0 x; @/ K* i$ [ {
4 z n2 A \5 A. V1 ^) x E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 [$ X1 d* E7 T a9 e1 q {1 |" e; R# e$ a! }$ D5 z
AddChangeJob( nJob );
- Z3 d1 Q* N8 j }else{8 l4 M5 X) o, h, V1 t3 H
return;& h' G% _6 \' R: \
}+ ~* A4 i2 N. U7 y$ Z( c+ R% t/ _
int nPoint = 0;
5 z9 H. G+ y$ H if( m_nJob == JOB_MERCENARY )! H. `: t3 P/ N m4 C
nPoint += 40;
- q7 h% ] o; K8 x. O# P/ \ else if( m_nJob == JOB_ACROBAT )
- e+ C. ?3 I/ P6 W nPoint += 50;
; U7 k# p3 t) G) c else if( m_nJob == JOB_ASSIST )! G' P3 l6 R; ?
nPoint += 60;' g4 A1 G, n/ w( p# j3 G0 \
else if( m_nJob == JOB_MAGICIAN )
5 A$ d2 [- H' I3 N. w# J nPoint += 90;
, i# W/ B$ d9 i- ? else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 I' H v3 i0 M8 ^( [
nPoint += 120;
' F; l3 ]6 d O9 W: E: Q6 q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), i& _. l3 M, Y/ F, ^3 O
nPoint += 150;* x; _6 \( V) t
else if( m_nJob == JOB_RINGMASTER )
. o; Y3 v9 l# i1 H( j W nPoint += 160;
$ I2 ^3 [/ n" z7 w/ B' B; ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 h5 ]2 P4 r$ Z" u! C
nPoint += 180;
& ]8 [2 |* w# p4 R9 n else if( m_nJob == JOB_ELEMENTOR ): W O- H3 y2 w7 E) x8 L
nPoint += 390;
; l, \9 q* ?/ p, y+ |( X. e1 } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ [, Z2 Z/ E/ z# z2 ~. i
nPoint += 120;
6 R1 I1 }$ Y9 e1 s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" v) I. x3 p3 ~- [' F. l
nPoint += 150;# H' ?5 S2 |/ ^$ | E, k
else if( nJob == JOB_FLORIST_HERO )
: ]% E* |/ y' n3 E/ X8 R/ E nPoint += 160;
m8 I0 G' b! q% u/ C2 a. D5 } else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: P, r2 ?( I _ nPoint += 180;* t9 V' a0 l8 _) \0 |" a
else if( nJob == JOB_ELEMENTORLORD_HERO )" }8 Z! p2 N! X) G5 p; L; n& i+ j
nPoint += 390;; [0 [- C7 e" b8 N3 T" }4 }
+ y7 I& F% A6 n6 O* L$ W AddSkillPoint( nPoint );
4 l8 Z6 h$ H2 ]6 \ m_nLevel = nLevel;( U' [2 L/ t! E8 `* u
# i' G# u1 Y/ ^ SetJobLevel( nLevel, nJob );% v' N' a- \4 [ ? Y- f) v
m_nDeathLevel = nLevel;9 C0 ^& H# R6 y* N
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ b. y0 {- e/ ]1 O' [* U* | if(IsMaster())
& N. T7 c" R+ @% {) m {
9 n7 P7 c- S5 n8 \; B, |+ g9 }$ Q2 f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 T" ^5 c0 Q2 q4 G4 D' g$ F if( nLevel > 59 && nLevel < 72 )
% E5 N1 {1 X0 V+ V dwTmpSkLevel = 1;* @( Z, `9 Z" L% _ A( U- {
else if( nLevel > 71 && nLevel < 84 )1 H6 s& u9 t, s/ |8 E6 Y% |. J
dwTmpSkLevel = 2;) ?' K# h: ]7 A( n& N
else if( nLevel > 83 && nLevel < 96 )2 s4 c: O& l" ]0 d7 K
dwTmpSkLevel = 3;
& O. n; S. Q7 I7 g. r$ e else if( nLevel > 95 && nLevel < 108 )
) A; ^% m0 W: X. ~ dwTmpSkLevel = 4;
* p. \4 G" S. [1 {6 Q5 N" d else if( nLevel > 107 && nLevel < 120 )
8 D# {! f' ]# r2 {7 E1 F$ ?3 M dwTmpSkLevel = 5;
+ P7 E1 G5 ~8 g5 W1 g4 t% q+ W for( int i = 0; i < MAX_SKILL_JOB; i++ )
. J6 R7 D2 E+ O { # R. c3 X0 s5 o/ J5 s6 B. z
LPSKILL lpSkill = &(m_aJobSkill);+ C5 a: m# o3 w! ]" |$ F/ Q3 A' \/ |# j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* ]1 h ^3 m- u, m {
1 O9 l Z9 U* L; [7 c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ f9 h& f4 z' B if( pSkillProp == NULL )8 Y0 A. r! i D5 c
continue;
; l! @$ B8 t! Z: d1 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 u+ S( C2 ?* h, [0 g continue;
# R" S" r" h. | lpSkill->dwLevel = dwTmpSkLevel;1 f& a8 H3 z4 f4 A* d' m1 b0 m* p: }7 f
}# h- ` } B1 u) q% O" g* x% @
}4 S( `& r# B1 E3 w) ?
} I9 [9 v) T! L: N
else if(IsHero())
$ L, ^' J9 d6 p, s! x8 i {& k+ k" g$ B+ F; r3 C( t- g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) M- t" ]9 J+ [4 f5 A! D
{ : w5 C/ a2 i6 S
LPSKILL lpSkill = &(m_aJobSkill);( C1 ~! i5 s7 f. ^. v$ u9 A* ^2 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 Y5 {: h e/ t; x" U% p
{
9 x) a' H& F+ I4 ?; F2 Z% d, h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % Q! ^2 m% Y# ?% g4 D
if( pSkillProp == NULL )7 i0 n: A. ]8 z: J5 ^
continue;; [0 D1 z' _/ x" r" L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 K* i2 |5 j' L. i7 Y2 |2 Y$ b continue;" r* p# z2 C# o, L7 N
lpSkill->dwLevel = 5;
t* i5 C4 N$ l3 F, a }
9 n- K7 k1 U1 N( x; d2 U% u8 ^) ? }
- k S" _1 M( R' X% y9 V }
! B1 B, R& i/ ?. j' d else if(IsLegendHero())* F4 k) o* T) n4 N
{
5 Q2 V6 d; s! i, {0 d for( int i = 0; i < MAX_SKILL_JOB; i++ ) # E: R) Z) X& y& N" A' v2 {; U/ G
{ ' x: n8 e0 P' Z: N) k4 Y4 H. c
LPSKILL lpSkill = &(m_aJobSkill);# z' {8 O6 G7 d9 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 {; ~1 T/ K2 M1 x, b
{/ X0 A" @$ B: T' a4 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 a7 ?; C: m4 N. a+ y if( pSkillProp == NULL )4 l. z5 H7 @. U: h0 J
continue;, e- e5 n; W4 h- E: z; v5 O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 E* a3 j* S1 K/ t6 f
continue;& f" o" U6 u' g+ @5 {* a3 F; l
lpSkill->dwLevel = 5;, o3 J6 K9 O3 @1 t* W" ?
}
* T, S8 p& s; D S; w6 o }0 P( ?4 F) p2 z( l! V2 b2 J6 A
}
8 }3 x+ M5 D4 U- {; ~2 N#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 |" T8 ]9 ^% M1 h. c9 \ if( bGamma )7 M6 f! P* H% h, s$ O7 U' \# R
{, g$ Q5 _! o, o- r
m_nExp1 = 0;
% l# D4 U% ]" e: t9 k0 `/ _: C* b }. V2 l1 h6 {9 n9 ~2 a
3 q, |7 _% X% _ ( (CUser*)this )->AddSetChangeJob( nJob );
& x0 B' a) R$ l1 P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# d; @! B" p# M: [. O4 } X, @
2 W, T& w; _ ~0 J \7 b0 N1 H4 V, A$ h+ t( e% z" _- ^
#if __VER >= 11 // __SYS_PLAYER_DATA
1 k0 ?7 T- G! n: N) S7 u" T4 E! z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# C) o, B, V3 H+ w; f#else // __SYS_PLAYER_DATA
* ?4 W; c% Y, G* z5 d* o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 u1 x! e0 m9 ^; J: v* @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ a! t0 C: L1 h& @1 ]
if( m_idGuild != 0 )6 @* I* w# y7 A& A0 M' O: t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 B+ T* u1 X' H/ i' D- X9 ?# v
#endif // __SYS_PLAYER_DATA
2 ^9 K. A2 h& \ SetHitPoint( GetMaxHitPoint() );
5 P: Q& C& U! e& z# D- K SetManaPoint( GetMaxManaPoint() );
! a; t" J+ p2 {' j, t- L- k SetFatiguePoint( GetMaxFatiguePoint() );6 y9 N3 P7 ~0 r/ _+ s7 e9 ]3 ^$ L
if( nJob >= 1 && nJob <= 4 )
6 V7 m* q- m9 }8 ]" {- `, [, G" m {
. b, U3 w# l L0 s7 I r m_nStr = m_nSta = m_nDex = m_nInt = 15;
n& Q. o" I- f# ]6 @ m_nRemainGP = 28;% h+ h( W- q( g. K
}
0 t' f" a0 w( W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ V% P$ P# p5 S0 ?* n' A) A9 y
{
5 b( f) Q4 W) `! k/ X* ? m_nRemainGP = 118;
# p, Y5 r/ _% z+ _ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ L" {" r* X( B$ O; ` m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 a" H$ d8 j/ I' C" \ }
! z/ j6 `5 P5 m0 V; s; X/ ]& ^' T8 ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 F! k0 G N% @9 h% a; }- [
{
4 S" r4 b7 [9 i CItemElem itemelem;! h* D4 b" k) A* _) a/ Z
itemelem.m_nItemNum = 1;. V; V6 F" c/ |, L
itemelem.m_bCharged = TRUE;
o2 [* Q( p: a) w! @% {. v BYTE nID;
& S# k( L, `; |- r. E4 _4 ~2 \9 n F) K
: b- w$ M; ^3 @5 J4 b P if( nJob == JOB_MENTALIST_HERO )
! r, c* E- d7 r/ N, [# a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! E7 \! K0 N' @5 D$ U+ [! W if( nJob == JOB_FORCEMASTER_HERO )8 u: |; O% ] }& K) f% C- P" c( @
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
; _! X/ H. _/ [1 y1 E* K$ f# _- l0 h% Y7 M6 ^5 s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. k: \. M R8 w7 W/ r ~/ U }
- k+ }- l! z! f1 x, [0 f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 J: j1 p9 M. M9 B+ w7 c& _2 w, D ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! n+ {8 R) i, D0 o. S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 P- t, B' p5 v2 J G# p2 [: c2 F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
. x6 P- X3 m8 x I1 H$ W0 J1 K ( (CUser*)this )->AddTaskBar();*/+ Z: g7 A f8 n5 F# E) s8 [8 o
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ s/ ?9 w' f8 l t6 ]: e& z$ _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 b% w* W/ l0 b1 o4 V
((CUser*)this)->CheckHonorStat();
- G) D$ B7 l$ q- ?! t. {3 m ((CUser*)this)->AddHonorListAck();
: e9 e) i5 q$ G1 {5 t: @+ }" u g_UserMng.AddHonorTitleChange( this, m_nHonor);: a+ c% x7 \. D; F4 N# u
#endif // __HONORABLE_TITLE // ′Tà?
8 S8 G* C0 s; A; W# U' ~7 f, K }- G6 Z1 e% O7 g9 h
#endif // __WORLDSERVER) B1 N; I1 O+ d }" L
} $ Y4 i% ~0 n; P3 R" ^' F
$ E9 D. V* L+ w0 D( x# p6 N
然后你进入functextcmd.cpp并添加以下
# a0 o9 `9 w( c6 q$ O, O0 E6 n# ~' z4 }( `# s
代码:
$ P& k% U8 ]4 OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 p2 h; o* \7 e( Q& y下面插入
+ G/ r* s! ?4 Y# [) f" jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 A# F; h) y$ Z. G2 K
8 |, E8 S# [- a4 N) n' O5 s: f X4 N
然后你去( r' x2 r8 q. u
4 V$ S s) z3 B: b; }9 v- N
代码:
% g# E5 ?# V9 z& a) f4 R+ R* s代码' v7 b4 k' S8 S+ u- _6 U/ [1 S8 x
BOOL TextCmd_ClearPropose( CScanner & s )
- W b: S# H4 ^% ?5 _: g7 i% k U- J{$ k. L& o: n: R8 S1 K( x+ E1 J
#ifdef __WORLDSERVER" V v$ _5 {$ ^, {# M
CUser* pUser = (CUser*)s.dwValue;
! V9 f2 l6 q$ K" B3 a# X9 ] g_dpDBClient.SendClearPropose();1 q" m2 K' e. t* W* }. A
#endif // __WORLDSERVER
4 u3 O6 m9 {. _( {8 v return TRUE;. l8 [9 n2 \+ k, c% q5 ?4 {
}
6 f9 b' J c8 t- \& V% |下面插入
6 C/ Z- g" E+ [0 hBOOL TextCmd_rebirth( CScanner& scanner )
g8 P4 {" G* m5 }' s2 g U{# J2 q7 C: C4 |5 f: c% B) O
#ifdef __WORLDSERVER# {+ l$ \: E, X% c7 m! e
CUser *pUser;
( r, q* ~3 x' g$ z" y/ y7 A2 ~pUser = (CUser*)scanner.dwValue;4 J+ U: ^4 M! D+ P3 B% s" s2 q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 T! W/ }$ E9 m2 g& F8 E: U- }6 l8 MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. @3 ~6 u/ d/ G' s( a; o+ L2 s
else
0 r' R8 R1 K" k8 P5 M) W* E7 s- U0 s2 k1 hpUser->AddText("你还未达到重生条件!");
( e, [( {' F8 N; G- d8 b0 [#endif
& z: w2 f% }- B1 Ereturn TRUE;8 X0 j" _' f r3 u% U
}
* ?; u; h, A3 [. k/ Q; u R# K* b) n; y) c
T. {7 `3 O7 g
+ }0 ]8 C! x* O$ @+ H4 Q; F, |- g0 c! g: H2 T% u1 s. X
|
|