|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 G; {3 Y, b: s+ P U5 q( ?. Y5 A8 ]* j2 W/ e* S. ^
Mover.h
8 y3 D( J# g$ w+ e: K* N代码:
" Y+ B6 a# `* ?* m% _2 Z: q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! ~# |9 l4 s" R4 L
7 A) z4 X' v2 M" G# |8 [, Z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
i7 i. K; o7 ~8 T; t: ^, o% [
! e5 b# l0 P/ e; ^0 L3 i然后你去mover.cpp添加% d5 a6 Y- d/ e! X- m2 K$ y6 X8 R
$ G2 Z6 K& g7 ]) y5 Y
代码:! ^) H# M& [( T1 ]* ]
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' x! q* U, i8 ^) F) l% y
{
; S5 t, _! ^! p#ifdef __WORLDSERVER: T$ }2 e2 a6 g8 d2 Z4 k2 A
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 K" y! d1 y. o! F& G6 C( n MoverProp* pProp = GetProp();
% H+ O5 v2 ^5 \& Q% V U7 \ if( pProp )
/ ?! F7 [: @3 Z6 h6 I; v {
T) ]; p; B9 a/ L! n* i ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 ~2 j6 J$ e5 M4 f& p3 k
{
& m# @6 u* Z4 H/ ^+ `, v AddChangeJob( nJob );/ M o3 {( B0 z6 @: x/ @ r) l
}else{; W! U8 \$ P6 L9 e
return;
$ U* W% Q: j$ k: P. r" @ }
9 C9 F, W; X! T* A int nPoint = 0;
6 a/ G. w0 u/ _% Z7 D; i, |# i if( m_nJob == JOB_MERCENARY )
5 s( {0 ^' [ H: e+ y( b8 j nPoint += 40;
3 |3 ?9 J5 J8 K% r else if( m_nJob == JOB_ACROBAT )
* v( b" n. d ] nPoint += 50;
' K3 }% z/ o# h else if( m_nJob == JOB_ASSIST )
' X6 t1 |+ l) g nPoint += 60;) J- o3 C' _5 a+ i
else if( m_nJob == JOB_MAGICIAN )
/ ~4 \ H+ c; X7 i nPoint += 90;
7 \0 _- D1 m" x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( T+ d( _) O. j, y nPoint += 120;
C9 X% ^" y- @! [ `/ | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! w3 I8 H( {; ~+ ]2 w
nPoint += 150;8 f. S2 S2 ]' C0 ] j3 Q) v
else if( m_nJob == JOB_RINGMASTER )6 d: N |' X# x% B' \4 \0 Z% ~
nPoint += 160;
+ |! j* J8 G" u- T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- F! C* Z/ G) A5 T( t6 W, f3 J( W/ q
nPoint += 180;
- b; I6 y" [6 O" Z/ D! e3 Y/ R else if( m_nJob == JOB_ELEMENTOR )
5 L3 U2 z# D m# [ nPoint += 390;1 h/ L5 K8 `9 Q% y# e1 R9 [7 m5 {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 P' W, L6 `1 @- U& @# ?
nPoint += 120;) a. M+ ] q O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& H. q1 X6 p' _: y4 u; c
nPoint += 150;
; F6 `1 z# ~. J2 u7 _ else if( nJob == JOB_FLORIST_HERO )
9 w% J0 {) c3 k nPoint += 160;
3 k5 v" Q6 o+ B5 M; E. f7 W else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
q6 u5 ~; s/ K S' y( C3 P a nPoint += 180;; z2 k$ S3 m$ j3 L. a4 a
else if( nJob == JOB_ELEMENTORLORD_HERO )% Z3 z& |; z7 V9 v) u5 I
nPoint += 390;% Q# J" S+ v6 C) Y H
' h! t0 x/ S5 ^2 X( C
AddSkillPoint( nPoint );
! k' O V' J! C7 Y m_nLevel = nLevel;' m+ W& C$ x4 a% r$ v5 \0 }: R* S
! H, H/ {2 L1 A, f2 J6 H( O SetJobLevel( nLevel, nJob );* E* d+ |3 K: x; u1 y7 P9 j
m_nDeathLevel = nLevel;' Z2 r8 K5 Z/ U% N0 S7 o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" y$ ?1 B1 M( R
if(IsMaster())( N% W E2 ~6 l$ e/ N7 q
{# K/ s$ u/ {/ Z- V; \
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 a& ]! N/ Q4 a, U if( nLevel > 59 && nLevel < 72 )
- b5 B* O) X6 E. L8 R+ j' Y8 a dwTmpSkLevel = 1;
. u: Q2 l& q! Y: U( l2 e else if( nLevel > 71 && nLevel < 84 )
6 O2 A3 V# z* i% h dwTmpSkLevel = 2;, t) H$ j4 @' ?
else if( nLevel > 83 && nLevel < 96 )- O" z/ x) V6 q& \2 K, _* [
dwTmpSkLevel = 3; B5 ?4 P2 [4 E+ |+ P9 g
else if( nLevel > 95 && nLevel < 108 )
; l# `2 P$ F! p% f dwTmpSkLevel = 4;
+ I# y7 ]4 i5 h. ]2 Z0 Y0 E else if( nLevel > 107 && nLevel < 120 )/ C9 }3 @, t* g# L* D( G+ ~- |* Q
dwTmpSkLevel = 5;
6 v4 n* }9 i) Q4 [& ]* s for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 E: {9 r: Y: ~6 d P
{
e" O4 ~0 }1 T8 E6 C* @ LPSKILL lpSkill = &(m_aJobSkill);0 h1 M1 D7 c/ y4 H5 l4 T2 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )& q/ X' Q* x7 r/ A" p
{
0 ?( I# a/ j S* E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) S3 q) Z s# n1 f7 L! W3 y! }; g/ k
if( pSkillProp == NULL )
1 C. ?5 l- U e5 R+ e4 ~# x continue;
3 h" A2 L% F- t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' W' m% d: O& I5 n& A4 k continue;; m+ A$ F" x9 _! n* p$ s
lpSkill->dwLevel = dwTmpSkLevel;
# G, I5 d( j) S. ]; | }' e( ?- m. W: d
}
. p* d1 N; J* z3 c8 ` }4 A& {' B v* }5 o( [8 i1 Y [
else if(IsHero())
1 o2 ^. o9 \) z {
4 r; z+ ^7 y V" g2 } for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 K7 }, w8 \# K' R4 @4 X
{ % }8 d3 x3 R: J* A) R
LPSKILL lpSkill = &(m_aJobSkill);3 W& P' N3 H& l7 y* A* F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ I: A+ n" n" S) X0 x+ }# _& S. N4 A {" d! J, Z& ~' C$ y! t" m" `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 o& H( h/ K5 R6 _, g9 B if( pSkillProp == NULL )
1 v0 P5 F6 ^ _! Q! f, F0 y" B* U1 P continue;) n# [( C4 e+ U. U9 o7 M. F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 H) U' R; S- e% _" ?; o
continue;
7 k" h: d+ W( G& | lpSkill->dwLevel = 5;1 ?1 Z' W$ \% N$ k# J7 K- j7 W. o/ ^) W
}2 f" S* \. A) n6 V8 a. ^0 C) t; |7 k' t
}! F4 d! x3 U2 h
}
8 p" j0 O$ a) N8 _$ |9 Q7 j* ?/ l else if(IsLegendHero()): V5 V% S9 ~$ H+ n* l, i; A
{
$ l/ m0 t b( k+ |0 r. n6 u9 D for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 U: m' Z; |; s) h! X% o( n( } { ; z, T0 K' z% J/ V# z; z
LPSKILL lpSkill = &(m_aJobSkill);9 u0 F0 B& W; G! ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 \& t* D( n% c { i0 k/ v: H6 r. ]) e) Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 B# n5 S( }% O: z9 Z& X if( pSkillProp == NULL )
/ @) u7 z- J# \ continue;
. D# y' j8 Z- c4 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 Z+ R4 w5 Y% ]6 ^2 ]8 Y/ |1 ^' V
continue;
3 ]2 b+ `# B% _( k2 f6 @ lpSkill->dwLevel = 5;
) N7 r, t; _, s. c! t1 m }& W$ h6 x* ]5 c2 H* \" g
}% v3 A; m/ y. \0 ?# A5 M7 G+ Q5 V
}
$ E" n" U2 P; x6 u( p8 P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 M% H& L* |$ W0 f+ R8 }
if( bGamma )3 B3 i/ i7 r' E/ b0 W+ _% s1 A3 y
{6 n2 N( l) _- i* W6 E
m_nExp1 = 0;
; T- h& g. N, X- \% P7 m$ M }
& X5 q' h' x- M2 S7 f2 S! S- t
. X5 f- Z3 L! t: v O ( (CUser*)this )->AddSetChangeJob( nJob );
1 E% W# _: }. b) @ A4 _+ _1 K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 G5 @3 B$ s1 ^6 i1 o4 p5 ~- Y7 @
% O* ? Z, C, H/ y" {$ F! U
$ w8 i7 M0 l2 E$ q3 ]5 l) n) J, F#if __VER >= 11 // __SYS_PLAYER_DATA
4 N! l0 i4 g# t7 F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );9 h+ G1 p: Q' C0 ]& l; Y
#else // __SYS_PLAYER_DATA/ Q5 Z; G; Y0 k* ~0 c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- t# T8 _6 Y5 B( U6 c$ [
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: F! q5 S' r ^
if( m_idGuild != 0 )
- C( k4 R3 G" j; v g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, K( Y9 [; q( e5 `; a#endif // __SYS_PLAYER_DATA% ^9 S' m+ @9 [
SetHitPoint( GetMaxHitPoint() );
0 q% V. X" w" s SetManaPoint( GetMaxManaPoint() );/ u1 H4 ^; Z+ [3 Z
SetFatiguePoint( GetMaxFatiguePoint() );
- I4 J$ C% E) E if( nJob >= 1 && nJob <= 4 )" M* j, f( G7 k6 h, a# H3 q) a4 Z" Y8 t
{, ]5 e6 R! l( a
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ _/ Q1 z4 s6 S1 O
m_nRemainGP = 28;3 r. y% A# A! m1 j* y3 v0 Z' c
}
, r* P" M: U( d. n& ^& o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 {' v/ u" G, i; g
{3 X& q3 _" ~( p# `1 v
m_nRemainGP = 118;0 @8 H" P n$ z4 s6 l( ~9 \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ o8 V/ a, p$ r. g2 A; | m_nStr = m_nSta = m_nDex = m_nInt = 15;7 B" y( T0 a' }# Y) V
}
! c% J0 K* R4 Y. K2 u/ ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 V* x/ y) l4 K: ?
{, k1 A& E5 K6 x3 \
CItemElem itemelem;
& ~0 E$ \) r/ e _$ k1 n itemelem.m_nItemNum = 1;
7 G$ L& k; _6 l z itemelem.m_bCharged = TRUE;. |; z& z) ^5 o) j
BYTE nID;# a: s0 X j5 k& Z: W0 R
# U1 H3 @- |- X& p+ P& U& Y8 `& M
if( nJob == JOB_MENTALIST_HERO )$ O* R2 o# H3 x4 a6 p
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;9 L% i7 O4 E4 q! {5 s
if( nJob == JOB_FORCEMASTER_HERO ): l H C, j7 z: J$ K% M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# J) v9 W V: K) D$ ?$ M
b# ^ \1 f4 `" n
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 k7 ~8 F& G, _7 ]+ b/ R }
4 j2 \, f( W) i% d" u/ D/ o6 ^' a g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# p, s- x) Z* z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ W+ _. F& ^; a+ }- k/ g+ S
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ G+ e* [2 S/ B6 g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( T K2 g! A, h3 x
( (CUser*)this )->AddTaskBar();*/5 l3 k z% Z% h; G4 e
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );+ Y& A' }4 c0 B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ g" [" j* O3 H& Q0 m
((CUser*)this)->CheckHonorStat();
6 |5 b, A% J: n ((CUser*)this)->AddHonorListAck();
; p. G4 Q" D" l& S- _1 l4 V* ^ g_UserMng.AddHonorTitleChange( this, m_nHonor);% O( j$ M! D; T! V# p( D' c
#endif // __HONORABLE_TITLE // ′Tà?
^5 d+ [6 \' O1 X m- S6 P }3 Y3 R* H1 ^7 l2 J V# `) m
#endif // __WORLDSERVER
9 l0 ]% S3 r7 V}
8 P& `" S V- J5 J
: Z8 F) t! j, ]+ }% O: ?然后你进入functextcmd.cpp并添加以下
' C( `+ t& h3 d! ]0 k
2 n p# S" J2 u代码:$ P5 Y' y M6 I, Z( v7 l
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 r3 W3 I9 t: Q m% O下面插入/ R% ^$ f) z# `5 |' w% M' S% {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 C/ ~8 u- G! [
/ v4 F& T* s' {& _7 I6 _- y$ y# F然后你去; y7 G' j9 d1 @( q2 D" C
! J0 g( _. z. y
代码:2 j0 x- M) s+ L* J6 o* L( n
代码
$ X# ?! I6 c/ MBOOL TextCmd_ClearPropose( CScanner & s )
6 u; J+ \/ @: {( t% b/ [# |{
4 ~' R( j. V( K' B5 v: h#ifdef __WORLDSERVER
$ ], f3 }( j: o: ~ q5 R7 U CUser* pUser = (CUser*)s.dwValue;' y6 I4 l5 J5 W
g_dpDBClient.SendClearPropose();4 U7 B4 S6 G p
#endif // __WORLDSERVER, n# w* Q( ~ b' n" S
return TRUE;
% O% A. X/ U/ _- X* t; W}0 {) t! A5 n) w% |
下面插入+ }! C7 }. @2 b9 d/ | E2 P" z |
BOOL TextCmd_rebirth( CScanner& scanner )$ \7 Y4 |2 E6 Y( a
{/ \, [" u5 d9 n4 s+ J
#ifdef __WORLDSERVER0 T$ I0 \3 d, E' W1 v
CUser *pUser;
% X) {* w$ a$ i" {4 lpUser = (CUser*)scanner.dwValue;7 B$ a! { G( l" H' G4 e
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 a. o3 a8 [( V3 i" E/ p9 i- V/ wpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 j7 M( h8 m$ Q
else
, p( C& g3 }9 fpUser->AddText("你还未达到重生条件!");! N, `$ Q7 E H V* F
#endif
( ?. Y4 k' B$ q* j. H w* c9 o- g, preturn TRUE;
( O7 n `9 W" Q" g} / P3 K, W( I. Z$ t1 E" ^
' E2 }4 Y z$ m+ C6 }: b1 n- C5 r' J; \
3 C1 U: d2 C2 Y( o) T' @8 A5 ~
- t( d. b3 A# i O: f
|
|