|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 Z" K1 f$ ]8 S! J6 g: J7 f! Y
( M/ p- p5 Y6 o* X% E9 H: ~2 dMover.h' @) L$ T Z* H1 n5 L9 J5 t
代码:
$ a/ `% Q, L# ^% X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ K. o6 R: Y O6 P
- ~2 `( ^, z r. b/ \, S
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! g# ]3 t5 Q5 T, M7 _; u
, b. c" W$ S* ^( m然后你去mover.cpp添加
1 j+ R0 m4 S+ }
' O# j& M- ]3 h- E) C: `代码:1 U: r* W& h# i, D. Q# H) s! o
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 W6 h% a. B9 o4 D( b+ m. g" Q1 f, l
{
! \% e5 ~0 M. y- x1 x+ U+ w9 c2 F#ifdef __WORLDSERVER( j4 h7 O; V+ j1 Y3 C) v2 Q8 c4 b2 p
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! n8 [5 B H: q* J. j9 X6 D- N
MoverProp* pProp = GetProp();
P- y5 A# C3 i( m1 ^' v if( pProp )' z' n1 Z1 p' ?; [# Q8 e& n* f$ d7 M
{
- j% o6 t; U) n$ ^7 I. a7 r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. c8 E( E( K& x3 f2 C9 {* D" g6 T! I {
6 I+ M& G& |, Q) v5 E; | AddChangeJob( nJob );
* v7 G6 A$ }( x/ I9 e }else{
. d. C( g" }& z; Q5 N+ X9 J- i return;
_5 F0 ~; u" V9 M2 D0 w$ U }7 c) ]' z, @1 U- T( G
int nPoint = 0;
% X- d5 v1 `3 f& @; ~0 p if( m_nJob == JOB_MERCENARY )% v8 a0 G' Q3 q* S
nPoint += 40;
8 X `/ V8 [7 J3 L; } else if( m_nJob == JOB_ACROBAT )
" U0 l2 e" u/ m% _+ \ nPoint += 50;
+ F, Q! h4 a% \& B4 ~) h3 y else if( m_nJob == JOB_ASSIST )& `. M \: N- s' r' g" S
nPoint += 60;) L( t' S: n1 ^! c( O
else if( m_nJob == JOB_MAGICIAN )7 Q: |7 n9 c$ e# A
nPoint += 90;
! k/ A& G$ k( ` [+ G else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. m4 b7 w1 U9 f5 \- V& ^ nPoint += 120;. R; d; m2 _, \! c9 f
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, a2 U( |) ]9 V& P% L nPoint += 150;# L7 Z, ?, A7 f! G; ?1 J
else if( m_nJob == JOB_RINGMASTER )
% s, J; d5 V" S) M. x nPoint += 160;3 v; [* U7 j' Y) y: p3 w
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, E K7 V# g& u3 i/ b* j9 s: `; q nPoint += 180; {! `- E, [- J; ?7 V- E8 T5 v
else if( m_nJob == JOB_ELEMENTOR )
+ n* M3 l1 ^3 u/ y nPoint += 390;
; M( o; b. K. {: a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) w; {/ m$ P5 a5 W' V
nPoint += 120;8 Q0 k$ y9 A8 _# q, P/ [5 Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 R' s/ ^- G- {- n- \- o nPoint += 150;0 A+ T9 m9 e# g0 C
else if( nJob == JOB_FLORIST_HERO )
. n2 \" I0 n/ X, u0 Z nPoint += 160;0 v- W! u7 R1 y+ ~4 {+ j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ X! L3 t; L$ k) t
nPoint += 180;
" V) F& P$ [- N* ^( v: L else if( nJob == JOB_ELEMENTORLORD_HERO )
, {7 W% R |! u; ^9 i. n4 j nPoint += 390;
2 K7 u& j7 p! {# i
7 Y' `' \" H4 [2 c3 m AddSkillPoint( nPoint );
4 O p3 W/ }( I! O. r m_nLevel = nLevel;8 ^# a/ w* n+ j9 [ c0 N
3 X' D0 p( q! U SetJobLevel( nLevel, nJob );, s) z) ]( B7 ]' {) E, @% h7 L) i
m_nDeathLevel = nLevel;; Z& t8 [1 r2 S, E& R2 K0 J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ P8 h$ a) ]3 M O
if(IsMaster())
( S2 P+ }0 J {1 ?; _ {! ~$ _7 N6 Q2 _0 F0 Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 n" U. a( z6 n if( nLevel > 59 && nLevel < 72 )" m9 t/ ]$ o) i$ Y& m6 L# s
dwTmpSkLevel = 1;
5 m4 x$ R/ b8 G( R else if( nLevel > 71 && nLevel < 84 )
, d+ c1 z% f# @, \ dwTmpSkLevel = 2;& Z: C' [9 _: b5 T6 L9 S! E$ r
else if( nLevel > 83 && nLevel < 96 )
( o; i- K$ P4 z dwTmpSkLevel = 3;
, l1 X% F7 L ]) m1 P! i. ]2 u: K else if( nLevel > 95 && nLevel < 108 )
8 x, S# e* j( ^( G9 N1 Q' ] t dwTmpSkLevel = 4;
2 w( v4 ~: P( ]5 J else if( nLevel > 107 && nLevel < 120 )
0 \6 U; F9 q5 D* j& Z9 |3 q1 g( M dwTmpSkLevel = 5;5 D& @- a8 J" D( O; C6 |5 b7 n" G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: t4 l Z8 C0 r3 S" V( ` { 4 [: G0 V( o" h m! Q w
LPSKILL lpSkill = &(m_aJobSkill);" r; k/ H. I S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& P. p/ v' U; c' t {
) |4 g9 F) |, Z9 E* c2 w5 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . f$ k9 S1 \3 y4 D9 b" N
if( pSkillProp == NULL )
/ G( R: z% Y8 L, k5 U, ^5 d continue;
) Z0 P$ d# i- V; \# ~; e! d9 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! E) N+ @4 O1 w) G5 l0 U continue;7 |+ }, n W- T0 {
lpSkill->dwLevel = dwTmpSkLevel;% ]* I% i* @5 b, Y
}
9 q7 h4 g$ S5 @: ~% _5 n7 a }
! h8 e/ h- a1 t, B( B/ K }
$ F" D3 c* R8 q/ t' m- S else if(IsHero()): o. j- W2 `4 A9 X4 \
{- q5 |: ]4 B: j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + t8 m6 v' F" ^" v
{
0 i z+ T8 p# X! ]' u# |7 A LPSKILL lpSkill = &(m_aJobSkill);% D1 t0 L1 J6 I, p' z6 e* M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; P$ H* ~3 k+ B" i9 X: g {8 V# q5 C# y$ I5 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 b9 P0 D! S0 W) A+ W+ V6 i, N if( pSkillProp == NULL )7 z5 L/ Z" ^$ R1 z' ]; t/ ^
continue;
0 ~0 K: Q$ l1 W3 K/ G x I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: \3 m! O$ ~2 w$ x2 y3 f' |" h continue;
. N4 j* r8 {' r2 B6 H lpSkill->dwLevel = 5;/ A. y W) D$ T1 S. H& R( ^7 T3 u, p
}
! Y( K3 ~3 l0 l, G: n2 B9 B6 ? }
; d% q* Q: R) } }
9 [& D& z% d& c! X8 Z, p else if(IsLegendHero())2 x( k. o g' i! w( p6 ~
{6 s L9 F" E& q* j$ w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : y2 M( t6 M7 K1 y
{ 7 p$ x/ c( }5 o: e. L1 i( T' R& K# r
LPSKILL lpSkill = &(m_aJobSkill);& g% P, V1 i6 |' n2 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )& i0 G0 O! \- E8 E# I
{
- ^3 S2 @' d' N% k! W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ X2 [& N' N+ w) M$ ]+ S5 _# L2 n* U
if( pSkillProp == NULL )
4 c( r. ~0 P7 s/ ]$ n/ d continue; y/ i. c g& r2 @; t, s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) a# O1 G1 ~5 \1 b2 U; g
continue;* P$ W7 @# h" Y% ~6 \
lpSkill->dwLevel = 5;8 [# f5 d7 N0 h% a7 Z k* e
}
8 c9 h" J$ r# m; n( A" ~) ] }; d- v/ w7 Y2 N6 K9 t1 I/ K1 H4 _- k
}+ T6 w# o7 {# Y5 {* N& a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% W. J$ O% m- o% s6 Q if( bGamma )" @1 J, J/ Y. p7 Z% }7 |( h: k9 m
{
. t. s8 M. t, I) \ m_nExp1 = 0;- N" k% u. _: ~/ }8 u0 k- ^
}
, K* m0 T5 t+ m& `3 D4 P8 Q
+ `6 l* Q. b+ F( }' M) X ( (CUser*)this )->AddSetChangeJob( nJob );
) i- f9 Z+ k7 }9 m/ [+ K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" x! i. t' a6 x; I+ T, [
, G3 [# l+ H' C- g* z: T* {' u6 I) F! n: r1 Q9 o
#if __VER >= 11 // __SYS_PLAYER_DATA6 e A6 |6 A: ?7 n2 ~4 ]& \/ r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, J0 k n( Z' y/ a#else // __SYS_PLAYER_DATA
% O1 B |) e. |' W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 d, k/ z' V: t' O! h* [9 }
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' L$ r/ y0 U* D
if( m_idGuild != 0 )
( @2 F- D4 r- C- Q' i+ }1 ?3 N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 x# V8 @7 M* D) }- O( I
#endif // __SYS_PLAYER_DATA7 L G+ T# K4 F' f5 W( O
SetHitPoint( GetMaxHitPoint() );
: r/ `5 ~( d( L' I SetManaPoint( GetMaxManaPoint() );" S# K/ k1 I$ z% P. Q# W8 C7 o
SetFatiguePoint( GetMaxFatiguePoint() );4 e& t& X& q5 X' m; @
if( nJob >= 1 && nJob <= 4 )
5 I. P4 k( T' p B) X1 Z3 M. v {/ q% i! [5 W% I' w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 W+ u! |4 ]/ A; Z: U f. Q2 G2 _9 b; w2 v m_nRemainGP = 28;, R" I, v& p1 s+ C* j
}
/ U6 q- l6 C+ x! I2 c0 ? if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 r& u$ `! g/ ~: G- ~5 h {2 H J8 S. W8 D
m_nRemainGP = 118;
0 D) F; H" r% U( E( o2 i) |. P: ~ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 q: }" o$ W$ K( n6 c m_nStr = m_nSta = m_nDex = m_nInt = 15;* F( ]6 I7 k, [2 O/ Y. k. b( t
}
+ e/ g3 o% D/ N& y7 V2 E+ k& C if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! n) E1 _* s0 ?$ B% D
{: b) L- S$ b3 P- ~
CItemElem itemelem;
! c3 p' @# K8 I5 Q3 |( M itemelem.m_nItemNum = 1;
: C$ K& A5 v" g' k ]9 f$ z itemelem.m_bCharged = TRUE;
8 q$ u4 M( d% i4 j% d' c; } BYTE nID;
; `8 Z2 C; Z5 Q3 n' c" f( i G, P
if( nJob == JOB_MENTALIST_HERO )7 O* o% r+ V. I! _9 G4 T
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, D4 X7 i9 t1 j7 }& H if( nJob == JOB_FORCEMASTER_HERO )/ N4 I- V9 G: `8 C N7 Z4 \
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# D5 J: R& _' Q; W# [
5 r: \; j+ y' }2 G ( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 ~. ?6 W: I) R; R4 V* e6 H }$ F$ [- T/ ~" e# e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: d/ J1 M, o+ {# J% \! Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) A- W" _3 }6 d8 F( U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& R8 {# H3 |5 U) f4 @( Y1 z" o) ? /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 w# @! L! B- e% J7 s ( (CUser*)this )->AddTaskBar();*/1 G6 O4 m9 g4 V2 s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
c9 e6 q- u( }0 _; h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 j$ w& h& X, F6 K) I( N! L8 Q8 r1 y
((CUser*)this)->CheckHonorStat();
! Z7 \/ e) _" }; O ((CUser*)this)->AddHonorListAck();1 P" w" \8 {5 K- b7 G( {$ l
g_UserMng.AddHonorTitleChange( this, m_nHonor);
# B( U* z, h' @5 w6 W( ]1 d. O#endif // __HONORABLE_TITLE // ′Tà?
& s+ f3 A5 I4 U* y4 q( s }
& _& h8 G0 j9 `#endif // __WORLDSERVER
3 |, H7 B8 f! C J} , Y. [8 c- @) J( H
& \# L3 M9 m, y% j5 ^* Q. t ^然后你进入functextcmd.cpp并添加以下
+ I2 f: Q1 P# r
" b# }, U2 X) i代码:
: R8 N3 A) [0 MON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% C) _# u: Q( D6 Z8 c下面插入
0 i6 z0 u/ `) {* {0 DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( l5 H4 H3 |4 I8 r! u
1 B d9 v, F# [. B7 f然后你去
: W9 a* O7 t. E( [, j' L) U' ^
% Q5 l. }& w% P6 o m代码:0 }. }3 y/ `9 ~+ L; ^
代码
6 V* X+ I. V, G0 EBOOL TextCmd_ClearPropose( CScanner & s )
# T+ S4 P o0 ^' R{
/ ?7 r9 l' A- z+ \. a7 ?#ifdef __WORLDSERVER
% F6 G; Y) t: A4 L8 t' y+ P CUser* pUser = (CUser*)s.dwValue;
- v: W* q8 v! M9 i2 r g_dpDBClient.SendClearPropose();7 D# r% ` C! M) ?. u
#endif // __WORLDSERVER
- W0 _+ V; v7 J2 _ return TRUE;2 s9 z" Q+ O. |2 L6 ^3 R
}% u: @! t; D0 S# u5 {+ l3 F+ P
下面插入/ _% |: n3 ?8 h/ k2 [
BOOL TextCmd_rebirth( CScanner& scanner )( ~. \3 s& c/ l3 R( n/ ~
{
* z2 e V5 K8 I2 e* i1 g+ n#ifdef __WORLDSERVER
. G5 N. j8 p7 n4 g" P9 ]CUser *pUser;, ?" E$ {7 s6 H. F
pUser = (CUser*)scanner.dwValue;
2 C v7 ~1 k) } U$ V4 u/ |5 Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- f$ o( F3 \; ]& M/ Z* i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" ]; ?' j& Y0 e5 C Aelse) m& S$ g* n( P
pUser->AddText("你还未达到重生条件!");
. g5 d' G8 U j& b$ e. Z#endif
9 G8 ^& i) L: R( [9 ~3 n) breturn TRUE;
9 O& R, v* C- g& s. k& K- Y9 p, h} % ]; t- i# D# b6 A/ L) Y" z
7 v& T# J9 Q% M9 }
% F; `. i% J! P/ o s& r- M6 o6 K* N
: ?9 B2 ~2 t+ }1 x |
|