|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' I- T0 I* B# y% a9 |2 x8 v2 d6 Y) U0 I9 o& @0 x
Mover.h0 e# E, n9 ~/ x7 [" [2 O
代码:6 t* X9 E0 R5 T0 z7 l+ e; d# h: @3 P
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: ~8 b5 C4 [# H0 j0 g! R. w# D. S+ c" n0 ]5 C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ X% f; R# I: l' ` D3 m j8 ]# _& T. P
然后你去mover.cpp添加
- L6 E; c3 s1 k/ a) s+ k" ?( Q2 N- M- \4 Q
0 S8 n: ^& X1 _% ?代码:
: f! s# o6 B* E/ w8 Y8 |3 L; ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# O7 p1 f3 |8 {2 U9 B) E
{' J' _7 w! [' |. b
#ifdef __WORLDSERVER
" r/ [5 o. |+ l: w+ d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& y8 s3 s* Z$ |6 k% X, ~7 Z MoverProp* pProp = GetProp();
6 ~* x# c! w# Y) s if( pProp )3 w' ^0 f a2 W# Q
{ `/ Z$ D& u* o6 }' x2 d) F" _8 V
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): f- W Z5 E$ k3 l5 X
{
& i$ U' L4 g7 O# n+ q* h$ N& O, J AddChangeJob( nJob );3 y9 p% K, D5 [) W2 e/ }; n
}else{. l, ?; O g0 O. s6 y
return;$ t: J, W9 e! m% ^5 L. t. b. |
}% Z$ J% |% U3 n- i3 j- b Z
int nPoint = 0;# C6 c3 O6 t; x3 \
if( m_nJob == JOB_MERCENARY ), X$ W, n( q( W# ?+ w+ W( Z! C
nPoint += 40;
/ Q) e7 u4 |' U6 |" z else if( m_nJob == JOB_ACROBAT )
8 j1 T3 ?- P3 X9 P1 B nPoint += 50;# I6 }; l) c& d6 w. J& a
else if( m_nJob == JOB_ASSIST )
6 H$ r0 j6 |( I% f. m nPoint += 60;
# I1 ^1 |5 Q. b, C! o; V$ r2 n else if( m_nJob == JOB_MAGICIAN )
! v2 @1 f: {- K( t4 B nPoint += 90;2 ]) D0 a1 N/ Q7 Y/ V1 D n$ w1 \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
~, m. C7 Y4 H. J7 k& p, G6 t. Y nPoint += 120;" U2 c# H4 y/ t7 ~& Q# O5 a- \1 W; D
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) D4 c5 h5 Z1 e9 g
nPoint += 150;
1 g8 [( J5 S( A else if( m_nJob == JOB_RINGMASTER )/ b' T" E5 L% I" n9 y
nPoint += 160;
2 o# Y, y( T3 J1 L0 w else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 m: C1 X: y; W4 H$ K D+ I5 N
nPoint += 180;
5 C* V9 L; H m. { W+ g else if( m_nJob == JOB_ELEMENTOR )0 v, ]$ s& T, V$ K( o' M% U
nPoint += 390;
# X" A# X0 [4 I8 h1 n5 b: _ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- f1 N8 {1 U# ?% N$ F% r; Y nPoint += 120;8 Q6 U" |5 v8 s
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) `8 _# f5 [- i7 m; m3 \ nPoint += 150;
# Q* y% u* g, h$ m else if( nJob == JOB_FLORIST_HERO ), G" O8 p- K3 ]( |/ P+ |
nPoint += 160;! o2 [7 f q/ g
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# X2 v Q, V' K5 v! `: H nPoint += 180;5 r9 S# ^3 n* h0 ]3 K% F) {
else if( nJob == JOB_ELEMENTORLORD_HERO )
n5 ]( {5 R ? nPoint += 390;2 D7 [9 g G- P
& W; p2 ?" T: N+ o5 d! ]3 D! j) A AddSkillPoint( nPoint );
9 I- _/ ?/ N( G% X3 Q5 c- b- S0 R m_nLevel = nLevel;4 a) z4 w8 f ]& Q' S
0 Q ~) q$ m+ J& W% m SetJobLevel( nLevel, nJob );
" w6 H+ `1 A ]/ o* e m_nDeathLevel = nLevel;
+ J P* R1 F5 E, z3 D6 J#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. i/ K. n p. }; @ if(IsMaster())7 ?% U- _6 z7 L" U. L5 B
{
& o3 `( R( w( p2 N" f" y1 ~ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% P9 H/ `: ~9 Q) f
if( nLevel > 59 && nLevel < 72 )
2 u& {3 ^+ k' _ dwTmpSkLevel = 1;2 `: y* T9 u! Q/ [! R
else if( nLevel > 71 && nLevel < 84 )$ \ Z9 M$ w. F0 x
dwTmpSkLevel = 2;+ H: l m0 P6 M9 t1 |9 Z5 y
else if( nLevel > 83 && nLevel < 96 )9 G% x$ B" M1 P) H4 X4 z
dwTmpSkLevel = 3;
2 g1 t$ S( c& \' `4 j# K else if( nLevel > 95 && nLevel < 108 )2 K, `2 d3 w6 Z( M g# j
dwTmpSkLevel = 4;% M9 } g; I" S8 P
else if( nLevel > 107 && nLevel < 120 )6 Y2 @8 q1 f1 O* W
dwTmpSkLevel = 5;. j0 K: Z* O% f, r' B X x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 I( e5 K y3 ?) V- V" e6 O: d0 A
{
1 z) O4 j6 l) j7 H, H LPSKILL lpSkill = &(m_aJobSkill);
+ U* V0 } ?, A4 g, e4 G1 C if( lpSkill && lpSkill->dwSkill != NULL_ID )) L, h1 M& t0 M$ P! R
{
/ |. T5 p6 f2 P) } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . T: J# A8 ^/ H5 |
if( pSkillProp == NULL )& j5 f1 X: V3 }; S/ _
continue;* R+ @( x9 _% O( |+ |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 T- v+ w4 R7 L* v
continue;
6 T7 r- n8 R2 C, m0 q lpSkill->dwLevel = dwTmpSkLevel;- h5 O" t- l5 U
}
; U+ J3 p* F3 C }% d/ q+ u' K. d1 Q9 P! z
}
0 y# ^3 k- |# o: M else if(IsHero())( U$ W3 [$ t9 t+ J& L4 S& ~' f
{
8 d; }! j3 I! C" ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) . A( K# z4 d2 I0 ?+ A5 x
{
/ m1 q: z6 J! ^! T7 s8 W7 W LPSKILL lpSkill = &(m_aJobSkill);' z/ ~0 i! v# p; o
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 g' X! c! I8 |$ H" ]6 m
{
) \. ?" @) w# B' m/ [' @3 Q! u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + u* v+ j( O D+ M7 Y# C0 h
if( pSkillProp == NULL )
2 F' d9 z8 N W* a: o. H continue;6 v3 a x$ f! w+ r: ~9 v5 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- ]8 V0 M/ p y0 h# b
continue;
8 Y# M, G% t1 l2 v0 c8 D, y lpSkill->dwLevel = 5;
" [: l! P/ i1 N4 w }
+ X7 Q( J5 l% u: I* u; C! w" a9 S }
1 T# W: @2 s- |7 Y& D$ G }
/ D9 E' R4 W4 h/ y5 Q7 v' C' A. I else if(IsLegendHero())' ~! ^2 H2 G" u
{& i5 g4 w6 w$ ^& d2 w0 K7 }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : m \, Z5 l* m" S. N- W
{ 1 x5 I. P5 @2 t& n
LPSKILL lpSkill = &(m_aJobSkill);& r5 d) T" }4 N$ t/ n- s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& m7 i+ G! G5 }5 m5 A& k+ i {$ K0 S! @, w% r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 p( Z, d9 p- H4 t0 `5 y
if( pSkillProp == NULL )4 A% r9 I- B8 k
continue;
0 }/ J' o. ?$ S& r' I' ^3 N& l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 M C f* S5 X4 f. }# Z6 g, q continue;
( U. Q0 J' T, B! w lpSkill->dwLevel = 5;
3 V/ ?7 A- C* A }: O& D% h2 Y! S
}
" w5 Z# l" K2 I- e' Y9 l }
! v% K/ T& a0 q6 H3 `#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. w( j# _( ~( P `: T- a
if( bGamma ). r3 B& u: d% c1 Y* g
{- i, k. v$ T5 ]& n) l. y
m_nExp1 = 0;: Z+ H' O; k5 Y/ B) x X
}3 K- h" N# B: T3 }$ {+ g) b
8 m }- y7 l( f. e. M) ^
( (CUser*)this )->AddSetChangeJob( nJob );) s6 r, r) g# k' i: M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 E% n B& n0 _
/ g( ]4 Q$ o8 ^- R' B, j3 i! g/ I& i5 d
#if __VER >= 11 // __SYS_PLAYER_DATA- E- w3 y! s/ `$ h* a; L4 }
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- H- o# g1 r8 O- c% t
#else // __SYS_PLAYER_DATA
% T1 [ U& _, M0 h% V7 u g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: ?1 D; _6 G! J/ A5 U4 ^3 P0 L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 W) U% P1 N1 ^) C3 Q7 q% h if( m_idGuild != 0 )1 ~/ ^; i7 f- i9 W* T8 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 s9 ]- |% `; l1 {( I
#endif // __SYS_PLAYER_DATA2 h9 P2 m5 `; x5 N4 m2 ~$ K
SetHitPoint( GetMaxHitPoint() );2 V" Y; }( i1 {2 |& _: M8 I
SetManaPoint( GetMaxManaPoint() );
2 i+ a& d+ R N7 E# f) d SetFatiguePoint( GetMaxFatiguePoint() );
$ y( ^+ T" W2 o5 u8 n# l- T if( nJob >= 1 && nJob <= 4 )
/ l% J: G% _6 m {! N2 u5 i9 ]& j: ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- S9 o; i' R7 X1 | k9 q* p6 V m_nRemainGP = 28;; `1 Z( Y- D9 X& Q0 Z+ h( L) S/ j
} E, P/ }+ ]# q0 E( U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 P" Y: v5 g: t/ R& `7 q {( y3 b! O# h1 r* g. Y
m_nRemainGP = 118;
0 N% [6 X/ f. H6 u% x //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% w* B/ k# d2 w' p4 n" E$ K5 U5 {
m_nStr = m_nSta = m_nDex = m_nInt = 15;* D9 ?( f4 o6 X
}6 ^8 i, Z' ?# W; B* p, M6 }7 L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% N, E* o. v1 Q5 ]
{: _, o1 u* P* s, M
CItemElem itemelem;+ g) Q) P& r" V+ M9 `* s
itemelem.m_nItemNum = 1;$ ]8 z4 v$ {! p
itemelem.m_bCharged = TRUE;
2 ~$ B q6 u9 L$ x2 |: M* w+ b4 r BYTE nID;
" y0 m* j; s5 h$ A% r" a2 k5 ]# L$ ^1 O7 {8 R
if( nJob == JOB_MENTALIST_HERO )
( R2 Q$ g( Q4 ?. m, v' f$ i itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* Y/ c; L. c6 F, H( W( o
if( nJob == JOB_FORCEMASTER_HERO )( A1 o" j+ h5 G- u+ I1 E, Q+ e m) r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# S8 K2 e0 S- i8 b' u$ o
% p- M+ {5 o# z3 _% { ( ( CUser*)this)->CreateItem( &itemelem, &nID );
! N2 ]' ?0 l: k }2 [) _( B0 {/ ]/ U& `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 }) P" D0 r: R7 K. `7 S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ I. Z# Z5 V' R" Q; c; |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& W! b1 \/ b: J/ R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, C! h2 W: W* B: o ( (CUser*)this )->AddTaskBar();*/3 |) ]$ T: x2 R8 W% C, G: K. P! s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: K6 p5 S8 d! l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 ], b- M" e# m' I' R ((CUser*)this)->CheckHonorStat();
: k& f+ J0 |: s& P) } C ((CUser*)this)->AddHonorListAck();1 n1 i: d: L) r4 B# ]
g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 l0 j& e2 Q2 B#endif // __HONORABLE_TITLE // ′Tà?
* Y' g; e- ?( s4 ~7 K# s }
2 d. X# P/ a. e" S#endif // __WORLDSERVER+ G) N. d% ?- R1 k% m, Q6 T, q* U5 g
} 0 F. g; c: J1 a3 O4 C
S9 X: V& m* l0 ^- o- ]! ^) @
然后你进入functextcmd.cpp并添加以下
0 i* H$ x7 c6 p8 k: e: M: X X! ^; L! A5 ~
代码:4 @$ v$ U* p) h: L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( U! p! D2 ~6 a6 I; ^( j4 f6 r, }( F下面插入8 A# H. t# P! } P
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & t9 S* E! @3 ?3 O5 @" i- h. U
( |2 u' W: H+ B7 R8 r; U7 Y! q; x7 b然后你去- \/ Z8 h7 I; Z5 L) F* T7 h
- V4 m/ i1 ~, @- J* L代码:7 j8 \. M- M2 P) ^6 R- v6 y
代码4 k2 c+ O# h/ e0 x
BOOL TextCmd_ClearPropose( CScanner & s )8 c; I( k) h) E, ^# G+ ]6 _% M/ S
{/ g' d) K4 U% [, e- S
#ifdef __WORLDSERVER, Z5 J; s* v" S' n+ I& S
CUser* pUser = (CUser*)s.dwValue;
- q3 ~0 ~! a$ C' h" g4 d" C5 r g_dpDBClient.SendClearPropose();
4 @+ V$ Q+ Y; d, u" h9 j#endif // __WORLDSERVER& F3 W/ g' G8 j+ m/ l8 Q4 D+ X; B
return TRUE;, \; t5 D" f8 A3 T" C |; n
}- f! s, p% v2 i. P2 P- B
下面插入
% D5 C3 c- q6 @+ x- `; [! uBOOL TextCmd_rebirth( CScanner& scanner )
0 ^+ @- H3 P: e; X0 l{
* Z, s5 u6 W# n#ifdef __WORLDSERVER+ |# ^+ ^( M/ G ~' v- Q" Q
CUser *pUser;
3 P* ?# `7 x# Z$ H- x" H8 g' c2 \pUser = (CUser*)scanner.dwValue;6 z1 x5 r1 ^: `8 G5 [0 I# ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( E! s2 ` B$ O) LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# t" u( a3 _3 y& u* M4 v1 [5 F' p
else. C; O) i' v+ P! n* f2 L# D) Q
pUser->AddText("你还未达到重生条件!");0 \% |2 R0 n: A: G* ^
#endif
1 o2 S( T) v/ o, \, Areturn TRUE;0 T9 j, k5 ]& M0 R ]4 p4 L1 \
}
l! j: [3 c. i( ^4 P
' Y k: i5 v' I# A, F5 Q( E6 d' j' o, d. c! Y K6 @$ B a
1 }# j3 c+ N; F( c! N3 w' f `! T; n$ d. j8 H) \
|
|