|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: V' J8 `3 [% L
4 F9 D5 n C# m9 \9 F2 g9 S( E5 o
Mover.h& v7 r% o) Y+ P# {7 u
代码:; j. s$ T1 l2 }" X3 K* m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 [( B6 M* f0 I
b" A0 l0 h( ]* f; {5 X8 [ M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 _" N& Y& P# v3 ~4 s. q# J3 W$ {) y/ g. h1 ^
然后你去mover.cpp添加
* d7 B( i, U. c. ^4 ]! e
4 x, O: g' i, B7 [- D9 }代码:
# K7 {0 S& o9 a; X. n2 n( Z; Q2 cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& z7 j0 G; i2 o) A0 \
{
) J; w j! u. _4 A R$ W- z& Z#ifdef __WORLDSERVER$ a0 T1 r3 `3 U J3 E5 z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; I; }, H4 B# e* |3 w; K. @6 D/ G MoverProp* pProp = GetProp();. w0 K- X! c5 K" A! b
if( pProp )
) j6 o2 o, K0 E& |7 p& v) D {; v: q0 _( v, Q7 J1 n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 Q6 j+ @3 X& {& h {
: @5 M' b; x, e( q$ p. b# Q& s AddChangeJob( nJob ); {( T8 A6 _- k0 y3 e- J# {
}else{
3 G/ A9 n0 \1 k) o return;
$ H( \. S( S: h5 U; L& }6 H- Q2 K }8 ]) c, m) i. m1 u" z
int nPoint = 0;
* E) l1 |# a. q5 i V, b* { if( m_nJob == JOB_MERCENARY )
, ?# R: }& r5 g, N! i nPoint += 40;8 f& X& l2 N7 N
else if( m_nJob == JOB_ACROBAT )8 l) w. Q; w9 b* |5 b
nPoint += 50;
. p9 m: E k& M# ^% q* p else if( m_nJob == JOB_ASSIST )
, `) J( h% ^' O; q! x8 U nPoint += 60;
' y! ?( u2 x! K" s9 x else if( m_nJob == JOB_MAGICIAN )0 _# d0 _9 ^2 w! n8 u
nPoint += 90;8 D2 y: D8 S8 P# Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- d! g' ?4 u1 G( @. `& j nPoint += 120;, r" ~& i9 R- U$ S
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) L0 I" I3 J6 V1 W% g/ q nPoint += 150;3 ^. l! \3 [/ e( V0 D8 e: }
else if( m_nJob == JOB_RINGMASTER )
+ c! f& w$ w8 E- \: Z nPoint += 160;
. r; [& t! B o6 t9 P; D else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# N( R$ {$ d6 n2 g5 W9 j
nPoint += 180;5 n7 e' i. t+ x* H9 h V( Y% g
else if( m_nJob == JOB_ELEMENTOR )
% s. S! d( e u* q7 V6 r# D nPoint += 390;
% ?& [: Q/ C, [$ A5 ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' n+ O, f( K% I7 ] nPoint += 120;7 l: a3 q& J4 m. Y, c5 j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )8 @- ]. u( Z4 @7 N' Q$ [8 h0 x" ?' ?
nPoint += 150;
5 [) r1 S }, K8 P3 I( @ else if( nJob == JOB_FLORIST_HERO ); J; _ I% Q( M U
nPoint += 160;
8 `. @0 O- H& b- q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 N4 [5 }* d9 P
nPoint += 180;7 ~# I. J% Y: J7 l( X1 V
else if( nJob == JOB_ELEMENTORLORD_HERO )5 w. z; {1 M! i: H
nPoint += 390;
( M& ~% i( [" w& R- O. F B- h
! D2 Z% a; g! a1 ^ T# M AddSkillPoint( nPoint );+ P7 t7 d3 I' z+ ]
m_nLevel = nLevel;
; M# Y% A' _, P$ n4 |* T/ R7 O+ Z5 g4 O( V
SetJobLevel( nLevel, nJob );
& ]8 }2 V9 ?& `6 s0 b m_nDeathLevel = nLevel;
! y% p, ?, d9 T( i9 _, |) S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 h+ a" O: f. J* u/ z
if(IsMaster())" h: c+ P) G' f1 I9 H
{
/ s2 W. D3 n7 ^2 Y5 [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 y/ N' P& j* A3 S if( nLevel > 59 && nLevel < 72 )* J( C0 G3 X5 h1 B; g! X
dwTmpSkLevel = 1;/ o# M, e$ R; d* {: O
else if( nLevel > 71 && nLevel < 84 )
+ D+ `* V, z5 k+ V( `. G. _$ K* e dwTmpSkLevel = 2;0 F2 A) @6 `/ r- t; j. W9 N1 a* g
else if( nLevel > 83 && nLevel < 96 )- Y9 R J: x' z& U9 H
dwTmpSkLevel = 3;! _7 }, q/ V) }' }
else if( nLevel > 95 && nLevel < 108 )" x6 z- W* X( \. R% w
dwTmpSkLevel = 4;0 K! |# u$ m( \2 A: H9 d3 L
else if( nLevel > 107 && nLevel < 120 )5 u' b& e' ~$ A/ S3 H, X$ I
dwTmpSkLevel = 5;" ^9 K6 F* @; b/ R9 w8 n
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % v$ ^: L3 \8 w
{ ! `" n- S& a- m( v& w. g8 y
LPSKILL lpSkill = &(m_aJobSkill);& X" w) u$ |7 B, a/ |- @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' x0 F& V6 Z; W {' `8 I! C' W( `4 L$ r! P* f0 X3 R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / S* L# b2 Z: d+ W* W
if( pSkillProp == NULL )
% E* E$ y/ r$ b" m! p continue;
8 {9 G. n$ z% L0 q6 a4 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER) C6 {! [7 O e2 [" o
continue;1 }/ t& m4 M' v, e _
lpSkill->dwLevel = dwTmpSkLevel;) K( J4 ~( d6 I6 {; ~
}
+ @ ], `/ V- C }
3 \# u8 ~% {. g }
* l# B; r+ I. L, I" Q: F$ ` else if(IsHero()); }+ @1 O7 O+ F
{' ^ W! g0 q% b! @! n8 R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ T0 P# W( n4 D& `0 C) g { * y; `# F& m) v4 p* e/ V
LPSKILL lpSkill = &(m_aJobSkill);
9 q4 J0 ]% ^+ x5 c if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 w( M' ^. z" K, T {' g2 a9 T( y# c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 h2 ^; Y4 V8 X, \3 \5 c if( pSkillProp == NULL )
' E- x/ D' k, y' m8 \ continue;
0 {, z: Y7 _2 z" s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 ^5 w. Y. w; Q- J$ ?
continue;
- B6 v0 Z: s+ o8 e lpSkill->dwLevel = 5;$ ~$ e, U1 S0 j4 ~ M5 I' l
}4 I- v: M8 r: v. _* {8 H- f
}
' y- k3 z9 p! B, ?) B Z# Q4 o( a }
2 V% C. C, r+ _1 l! _( I else if(IsLegendHero())
- a# x* ]; L/ S6 \" I9 j9 } {
5 M) m1 @2 b& E# T* X, S for( int i = 0; i < MAX_SKILL_JOB; i++ ) - L0 }& P- B* q8 G3 I$ E" j: _
{
% [/ `% v* [8 B0 N LPSKILL lpSkill = &(m_aJobSkill);
- j6 X+ ?3 n0 @# r# b6 ? if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 J" \* `( w' ^; {: R0 x7 Q {
7 j' R6 V4 Q$ v% s B* j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# |+ V/ J! w$ C; x if( pSkillProp == NULL )
, f' d* ~0 |' ~% j. g continue;* j! m- p4 k0 t; H, S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ i8 l) Y1 |0 R, p; B( K" Y' N8 e
continue;. z7 _, Q& {) ]( T2 J+ [" ~
lpSkill->dwLevel = 5;
/ d9 q1 M: J- }# p4 b( M p4 H }
. x+ u) d9 e A1 b. i( H6 y }
, \2 @7 k$ H' U0 I: t: m/ A- b @2 Z }' }9 F* x) }. D" ~" T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 V# _! g5 p1 W4 F: Z9 k. x+ @ if( bGamma )( z" K; m0 S0 m- A* G" T
{7 J# S/ U. W/ l2 Z' p2 ~' v
m_nExp1 = 0;
! ]8 H" m: F! ~ } [7 M/ n. h% b5 `
1 L; A5 j" A9 o) v9 s1 B4 M7 b
( (CUser*)this )->AddSetChangeJob( nJob );
8 O. f# \: G. c, c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ S1 X, c/ s% f! _ h* Z& [2 x* g
. b8 Y$ O7 s Q3 h1 A9 x% m5 _% u; N3 `7 h( N
#if __VER >= 11 // __SYS_PLAYER_DATA
, @' u; z2 t5 n F9 w. [4 \ Y K g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! j' o& M* V7 a- R
#else // __SYS_PLAYER_DATA6 K$ ^2 l: g! Z8 |% N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 J7 p2 A( |- w( ^/ B; i* f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 q7 F2 T) \& y3 r C; Z/ c0 G1 D
if( m_idGuild != 0 )4 Q: I& s( Q" r4 ]- m9 u: E$ c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 J) q6 \1 P+ i5 k5 s) [
#endif // __SYS_PLAYER_DATA3 c4 F3 ?/ N5 f: R9 Y2 @
SetHitPoint( GetMaxHitPoint() );
: Z1 @+ Y4 k8 F$ G( n SetManaPoint( GetMaxManaPoint() );' W+ V: C! x b, n
SetFatiguePoint( GetMaxFatiguePoint() );
1 V/ m& z' i8 V if( nJob >= 1 && nJob <= 4 )
! n' B/ j, n8 S$ K& [' C' o {$ l8 g9 j6 s. z% m$ q" c' }' C
m_nStr = m_nSta = m_nDex = m_nInt = 15;" [$ ] G2 X0 U- g! V8 F
m_nRemainGP = 28;
6 t' C- F# T' ^( m" ^ }2 K2 p' B% I& V3 L& v' z0 X2 z% G' m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- n4 L4 C: m0 F
{
( g* S l# D( M/ } m_nRemainGP = 118;
4 ?' J6 M5 r, c& w9 Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" F2 w4 [3 R: _) c6 B8 r m_nStr = m_nSta = m_nDex = m_nInt = 15;$ {4 d: _( c; U. l, T
}) ?( u$ [( c9 Z
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, ]$ [* A: {% q! p8 W {* Z& t( |& C$ U* i7 M
CItemElem itemelem;' D' l: ?8 }+ `6 c% e9 p
itemelem.m_nItemNum = 1;
' `) C/ x( p' p4 R+ x, q itemelem.m_bCharged = TRUE;
, |4 I! W. f6 z) [! }, n BYTE nID;, E; b5 ?. x0 e$ g6 p
4 [) [( L7 r- d' n% i7 [% j5 D3 H9 n: f if( nJob == JOB_MENTALIST_HERO )
6 Y4 E# f5 {, @3 y itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ V& X# ?5 Q$ T! Y if( nJob == JOB_FORCEMASTER_HERO )3 S1 U3 x% l9 I1 G' i8 o# R: H
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. b, z4 `8 {9 I/ [
3 A7 q$ v2 M# X1 `* J ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 P3 K8 V; l0 H/ V3 X" P
}
3 u$ C5 Q$ F0 t0 I$ f+ B5 h9 X7 B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 p; u( }4 j9 X3 ~' c
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' ]/ F& l* f1 Q9 x ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* K$ T5 B5 u3 E, }& Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 b5 U8 L$ H$ k ( (CUser*)this )->AddTaskBar();*/
- ~/ Q6 V/ F# G# P! } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
: w1 {1 S9 Z- z2 C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- I9 R% B4 B" D# A ((CUser*)this)->CheckHonorStat();
F: t- [6 [5 Q+ G) x ((CUser*)this)->AddHonorListAck();1 h6 P+ T( j8 \4 R/ b4 i# [( t* F2 q
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 Z0 i2 n6 i& a0 C#endif // __HONORABLE_TITLE // ′Tà?( A% o8 I- n& W
}; J$ e3 l& C2 W4 |1 u P' N
#endif // __WORLDSERVER' G; f& C0 ~! l3 x) }% N
}
; K0 Y* l }1 m4 b, }* W- B8 d D) O1 D3 e1 ?/ I8 [
然后你进入functextcmd.cpp并添加以下/ A4 m5 V7 J7 Z4 V# s1 y
% t" d) w; X: c0 ~: t3 ?
代码:" v2 y$ r1 r5 B8 y3 s% T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ x% z/ |0 s9 @, t
下面插入
% i+ a5 q' {: M) T( NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; N, f) K6 @2 N4 Z
8 }* j) `3 \0 E. e0 P然后你去/ X& c" x" a8 Q, P$ U! ^; C8 y/ a B
& N4 J1 g2 q5 q) z8 x0 c代码:. P; C$ H1 E, I) I( W* E
代码( C ?' }, i5 \/ E5 U' c; z; s
BOOL TextCmd_ClearPropose( CScanner & s )% j) _3 ~* I) M: k/ z
{; o: s( S/ y& \* }/ j8 t& P
#ifdef __WORLDSERVER
3 r( D0 { g+ _/ f CUser* pUser = (CUser*)s.dwValue;. d, x# e" _1 J
g_dpDBClient.SendClearPropose();
5 M- S% J8 \/ \7 l#endif // __WORLDSERVER/ @1 t* H/ E+ n. F( r
return TRUE;, A" O: x" q1 `' e
}
0 a) Y+ f/ _! G/ _5 c下面插入
: l. ?# S9 h, E' e% W2 Q" Z7 y6 iBOOL TextCmd_rebirth( CScanner& scanner )2 O& u) s, I, e" X8 O
{
& a" ~8 V3 R6 G# g' Z#ifdef __WORLDSERVER
9 e1 H' `" v5 lCUser *pUser;
7 M( l h0 d4 x: ]% _2 z5 spUser = (CUser*)scanner.dwValue;- ~1 X4 R) ]. u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! q1 u3 ?( f4 g4 B% O' _6 c4 t O& t% r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! A$ o4 M1 s3 \+ b8 P
else3 v4 C& V7 [1 c7 \
pUser->AddText("你还未达到重生条件!");
7 I! v# O0 v, i#endif
3 h0 ]; S, e' B3 f( l5 T) hreturn TRUE;
$ N6 ^2 Q% W+ c+ ~}
; E- A( @: ]/ ~ L
, g, e% L" d2 @ w
+ A6 O* C$ S2 B; X$ j* U+ _) V: U+ ]" Q2 J/ g7 H, {
j4 r$ q! m' w
|
|