|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ V1 K5 @3 n4 _- k
# t, a) r2 k b# z/ d3 M
Mover.h) w! q: v( ~ g2 @' E5 l, k
代码:
) f) F& q: u6 \, Z1 c" t8 O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 R; k+ y% h. B; i& R4 a) ^
" T0 ^6 _% M* Y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' f: t5 u7 m9 C; u9 `# X
0 j4 {9 h, C4 G2 b) Q
然后你去mover.cpp添加
5 }, o* B/ o3 L; z- a3 [ i v: T& S/ c5 j) ?8 \4 t
代码:; n$ J# |, B2 _1 P) K
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 r5 a4 w, \8 Y" i v
{* o8 t* {$ d( `, o
#ifdef __WORLDSERVER5 p, r; n e0 c- G6 |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 k5 F) f ~3 Q+ t# N: r. C9 ~ MoverProp* pProp = GetProp();6 B9 _. s) I9 _3 v; {1 T
if( pProp )5 g p( J- u% F( X
{
, s) \+ s( U3 N3 D- x9 u$ q9 P if( nJob > 0 && nJob < MAX_LEGEND_HERO )) |: A7 |8 u/ C" l
{
5 ]$ l) s! @$ t) \ AddChangeJob( nJob );1 p: S0 u3 ?( A& M2 U5 Z; ?5 f
}else{" D) t& g9 k8 `% C6 r
return;
3 t0 l. Z2 N7 f5 l" N3 @ P }0 m$ I: M! _: r1 f9 ?5 H
int nPoint = 0;8 S. p% p4 q3 a3 U( L+ `% d
if( m_nJob == JOB_MERCENARY )
& x, @+ q4 b2 @- K! ? nPoint += 40;
" i- n' H8 L# B# n# T& u else if( m_nJob == JOB_ACROBAT )
9 H# l# _+ ?* _! c& U2 M( T nPoint += 50;) [* H8 a9 Q- }1 i1 T/ a
else if( m_nJob == JOB_ASSIST )
: q/ V* t; b( L, V6 V1 J2 R' w nPoint += 60;
# c& l6 K5 }1 w7 G6 L) x) C9 R else if( m_nJob == JOB_MAGICIAN )
" q0 v. F$ m, E/ S nPoint += 90;+ ]; o- i4 h \# ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* D( q: I7 P4 c- a
nPoint += 120;- n6 {: \- E8 r4 L* N' L" w: R3 q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 [4 n+ C3 X9 c- q
nPoint += 150;
3 O2 I! ?7 @4 j/ B2 H else if( m_nJob == JOB_RINGMASTER )
! x- [0 l3 L' z: o& ]+ M7 X nPoint += 160;8 t- c8 V- P& V0 K6 ^# X" H
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ Q; Y9 f7 @" @0 z3 u7 c. Q, w* e nPoint += 180;6 ^- Z$ X) k/ [& x: A2 n; I' x" Z; }
else if( m_nJob == JOB_ELEMENTOR )! I5 {# C X+ |9 {* e
nPoint += 390;' f, n0 h' k% Y1 Q5 n1 B
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). J- `" c; e! i# s" H9 U
nPoint += 120;3 Q" C: c' `9 }& V. M9 Z8 M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! V+ d+ z( `9 d1 K% R nPoint += 150;
i' J' Z% _# v. S9 F1 f1 Y9 J8 A else if( nJob == JOB_FLORIST_HERO )/ O t$ b& ~; e
nPoint += 160;# S$ G& j+ ]2 |$ q8 T2 Q) j2 |
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. C" g4 @2 E2 k nPoint += 180;
3 x, u- x7 b" e( q1 F else if( nJob == JOB_ELEMENTORLORD_HERO )
, Q* P7 h. z m0 y. O nPoint += 390;8 R9 G0 ~; r3 J5 ^" f! v
' B7 W# Q( N; c% x# h
AddSkillPoint( nPoint );
9 H% I; x" r" g" ^1 f5 M/ F4 R3 r2 c m_nLevel = nLevel;
, b+ ]& q+ W, u. v
/ [; f$ L' |* w. E SetJobLevel( nLevel, nJob );; t4 y7 P l" d
m_nDeathLevel = nLevel;
+ s, F: d( l7 [$ C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ Q' g$ g: u( P: k- S if(IsMaster())5 Z- y+ M% p, l% ?: Y+ J
{' q3 o2 Y! T7 ?3 c; r4 b# o
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" P" V4 _! h9 {: n/ w- ~
if( nLevel > 59 && nLevel < 72 )
0 p" d; N% W8 f dwTmpSkLevel = 1;
. [9 r5 |5 u4 s5 E0 H else if( nLevel > 71 && nLevel < 84 )
_! c/ q3 Z: G+ y( Y dwTmpSkLevel = 2;
s9 v. ]* k5 {# [6 G# S" p else if( nLevel > 83 && nLevel < 96 )" a* o: M9 Q H) h
dwTmpSkLevel = 3;; ?6 \) Q; }) E3 ^( l" l* e) [
else if( nLevel > 95 && nLevel < 108 )+ H3 Z) V7 K v8 w
dwTmpSkLevel = 4;% m0 V _0 c- T# U
else if( nLevel > 107 && nLevel < 120 )0 f, `7 F; e) y" I7 N
dwTmpSkLevel = 5;- Z5 |* J) e. _. x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! n1 X1 ^# U; H; m$ b. J {
7 j9 N7 U1 O1 v+ `# ` LPSKILL lpSkill = &(m_aJobSkill);! U3 V S' a$ i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! S9 e' \3 Q$ O# c+ R! D$ N7 k {
" S5 F* X* T$ R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 g1 E5 b# M0 y7 ?
if( pSkillProp == NULL ). p1 X# b3 b3 `" r; q' a
continue;" L! G# S3 a9 ]% Y3 r- p" ]6 O/ Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& M& L1 w( J6 S% X1 y4 E. G {4 q continue;
3 z+ l9 b5 d0 z: ^3 `9 S lpSkill->dwLevel = dwTmpSkLevel;1 [& W! z! m' D/ n7 j1 W
}: S: l4 F# B& z- q
}
3 I6 a- t0 W+ N% B$ a* N0 O' A }1 O- h9 W/ B- N' n }
else if(IsHero())3 k% S1 z5 i! y$ c
{& v+ |" n7 P* h1 T- O0 `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, O# x- B! Y4 B { % z5 S% D+ T! c5 o
LPSKILL lpSkill = &(m_aJobSkill);
6 E1 y4 L! \; w1 x if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 j8 l, B- V# p1 e' `# b( b0 J* y: ? {6 P- `5 z- t3 l) t, }0 K, k2 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 S8 N. j4 d* t" x if( pSkillProp == NULL )4 u3 B, D9 Z X; S2 a" [8 T7 |: d
continue;
# \! ^) f9 F, `& l! ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" c% O: U. t2 s3 W+ G L
continue;
. q- B" H p- G lpSkill->dwLevel = 5;# I; b$ S" I3 x; d2 ?) t, c! @. W
}2 V$ W) F1 s5 I# v- S8 b3 p
}. r( j7 E u$ v9 h5 L7 Z+ F
}
( ^! ^+ c0 O: V6 [+ _ else if(IsLegendHero())0 w7 \: y" H" c o! p; g$ B X
{3 f4 D* U) m" c( w& [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * c# T8 s- Q% B
{ E3 J% J. m @( f
LPSKILL lpSkill = &(m_aJobSkill);
3 K( y4 k' _% s7 L. w, N if( lpSkill && lpSkill->dwSkill != NULL_ID )
) M/ R! R/ g9 Z6 _+ J6 Y6 Y) T l {
) n0 i0 v" c/ M7 R/ \: G/ r1 ~" f+ n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; M" R* L0 Z* R" p# j [9 n
if( pSkillProp == NULL )) h6 E. V4 }; C; M
continue;, H6 v/ X- @9 G. Y1 p, {7 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 a: p1 u& g' W2 a9 V6 G continue;# ?1 X8 j; k2 O) m
lpSkill->dwLevel = 5;6 n, Y$ P' V) X0 f% ^% N
}, e+ h7 N) L3 i; H% r X
}( k4 o/ C/ b# s2 }, l& ]
}
# H, }$ C) y# k- T& L+ D6 I#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! C" M% A+ `# d4 ?% I8 z& E if( bGamma )
% a/ m' }. E1 M! O {8 c4 L* K- _7 a, q# T- p# q
m_nExp1 = 0;
. t" o8 C2 @: n6 h; c) P9 b1 \ }
( z2 c* A, q" P: A& T3 Z2 V+ _& Y3 a$ m# c
( (CUser*)this )->AddSetChangeJob( nJob );
T- C. u0 P- D7 m" J$ n g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );. P) q, ?0 D( I2 L4 X
, g0 m; R& j/ D
9 E- G; g3 O: a& R, T#if __VER >= 11 // __SYS_PLAYER_DATA
* ?8 w1 \8 I1 v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 r, b3 m, [* O#else // __SYS_PLAYER_DATA
2 `. H6 Z# G* @9 n& h/ y9 a g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% y3 J. V% V2 m/ g" i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( ~8 `: `2 I& J z/ s+ t7 h& @
if( m_idGuild != 0 ); q4 ], k% [& @7 I; A" o
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" k6 v! h9 u j& w8 l3 ` d/ Q3 V: c#endif // __SYS_PLAYER_DATA
+ B. T2 ~5 L& \+ L- r: c SetHitPoint( GetMaxHitPoint() );, F Z4 a, s" R
SetManaPoint( GetMaxManaPoint() );4 O: _ a, k) p: i0 ^
SetFatiguePoint( GetMaxFatiguePoint() );1 {! h& a+ n& x2 c) v# O. p
if( nJob >= 1 && nJob <= 4 ); T3 {) s% B( O/ I; J
{
5 j% h/ j W/ J) k& p9 E m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ k4 u* y+ p* N. ] m_nRemainGP = 28;: F/ s, R% B0 [5 T% Q, a
}- H0 ]2 ]" K) c; k+ _
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ E' q7 q, A X6 }5 C {
6 E5 o( L6 o9 C$ S1 ?3 r m_nRemainGP = 118;
) k# _3 f& F5 m8 p3 M! j3 t //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ A; g# u0 C/ S7 i' v( G# I V m_nStr = m_nSta = m_nDex = m_nInt = 15;& s9 b" q) N6 r, l6 U9 d
}
( ^- X% q. p( @0 J( Q. R* s) L* z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# O0 ?1 D* ^+ ~; a4 Q {
$ Y2 x7 }, v/ r* K6 K9 t$ U CItemElem itemelem;8 Y3 m) p7 @9 {2 f1 ~' u
itemelem.m_nItemNum = 1;# l Q( r! Z) |, P- A
itemelem.m_bCharged = TRUE;" [9 V# `' m1 ~ B' y5 ]0 q: F
BYTE nID;
, ]. H) \% M7 v2 s
& h, Z1 ~- k6 p f* l if( nJob == JOB_MENTALIST_HERO )
' _' l: d! O! z8 y- ?" q+ j9 w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ I. o+ j- C1 z) z3 P
if( nJob == JOB_FORCEMASTER_HERO )
+ o4 ?+ D2 h) _0 y; |3 U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' _, P/ K3 o7 K/ p) ?! z. a+ |
3 o7 Q, G l) ^$ C4 a1 `
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 ], {' [3 p8 Q5 q. P% P
}# P& b# I8 N. N$ K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- Z Q2 }' U- F9 ~, A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; Y+ U% a) ~$ X6 ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! I6 b7 G$ }* i! k6 Q' ]3 t( Z: R# B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( a9 B/ U! E; r ( (CUser*)this )->AddTaskBar();*/( k! L7 c/ ]* a2 S8 q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# ]# q6 \, `. o2 D& X9 c. ~% S, k) q' v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
4 s |+ l9 s5 t& P- M ((CUser*)this)->CheckHonorStat();: ]' Q7 l/ ~! J
((CUser*)this)->AddHonorListAck();
3 h7 [6 ?6 _: Y! }1 e9 J g_UserMng.AddHonorTitleChange( this, m_nHonor);" [% s- ?- m2 h/ f5 `, T
#endif // __HONORABLE_TITLE // ′Tà?
7 b$ ]3 f, ?+ _7 l) V5 } }
" z" {5 D" ]' P#endif // __WORLDSERVER0 F3 |5 ?. ]( e9 }2 v# u1 t- @
}
' I' e( ]" q" b b7 d% V, ^8 s/ k& {5 {4 s+ L1 @/ I6 H9 f
然后你进入functextcmd.cpp并添加以下6 G+ Q6 b( [$ z9 [, ~& D( d7 o
* h3 f0 P, O0 J1 w7 r/ t# O- c
代码:
' ~/ U" `1 Q+ {8 J5 E0 j' i' g7 zON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; W4 [9 R9 N" B. n5 I下面插入
9 A4 u6 U V I% o$ gON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: v" c2 Z3 C7 D0 M- X' f" X
) N: s6 s- r+ Z, X3 O' S4 c( p然后你去1 x- \) F% R. C
$ h4 Z2 }! V6 f1 l, j; c/ D* B0 E( L
代码:5 `- T& D! V/ C ^
代码
% t- \" E! e, N+ d* iBOOL TextCmd_ClearPropose( CScanner & s )
3 a! n$ I6 B; ?6 ~{, g! S1 ]1 A' L7 W. u
#ifdef __WORLDSERVER9 w! F( Z- |9 Y' j8 ?' ]5 F( \! T
CUser* pUser = (CUser*)s.dwValue;/ {9 \ d7 N1 O3 d; s% R; e
g_dpDBClient.SendClearPropose();
# i. G; H8 x' K7 X$ a3 _( o#endif // __WORLDSERVER& {, n" y! Q1 H' S$ u7 {: X
return TRUE;* ^6 I0 {( z8 e3 Y' x
}4 M- L* ^! H3 v# }) J
下面插入9 d: p ]" D! B% }. ^% `
BOOL TextCmd_rebirth( CScanner& scanner )
% n* x! c7 i; ^# E8 q1 J) |, O{
5 O. q1 i# Q% X1 M0 p#ifdef __WORLDSERVER
3 B( F |! [, Q: J7 a9 M7 |& R( NCUser *pUser;
' I( B# s% S# v2 r! LpUser = (CUser*)scanner.dwValue;; L, P4 z) d) c) K* p. R" f7 D
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); X) J9 s" u3 p4 O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 i% K. r& W) q* K. c' m4 Q- b
else
& t: q+ t9 R. b4 HpUser->AddText("你还未达到重生条件!");
# X5 L2 ~8 K% g* M: h6 |$ K r#endif" F$ S+ m0 S: Y% B4 r) Q1 X+ v
return TRUE;
3 p, S' t1 \ G/ B} * X% |( G. I" ?. Y% a2 I
' Z9 B) r; Y& ~3 M1 @1 ^( I& Y
0 ?* @2 C2 L9 d( T+ z, Z% Y% |4 i& e( r1 @2 k ?
7 C! t6 I, I3 `. f9 V
|
|