|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- @1 b+ v* }+ P3 @* W! I( I% F6 @7 a9 U: w+ v+ E$ [
Mover.h
9 G3 f, D! e# J( B5 B( b代码:
! e/ D) s @2 g2 d9 p/ I0 x& b找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. m H+ C; S' t- d
, `' m& q3 c+ F6 Z; u. z" M2 j J0 ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 V% ^8 B% t8 w) C7 M w3 J$ S+ R2 R+ Z
然后你去mover.cpp添加
: N1 Z0 O" V1 ?6 j$ @" B! g# Q
代码:1 Y2 Q$ H/ X3 l; Q0 \( T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 r/ g$ h2 M9 b# j! I{% ?1 G9 o. b( W* g, K1 ~+ e( E% ?7 S9 V
#ifdef __WORLDSERVER
; l2 O% ~$ W* C0 N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 w. X$ d6 t* O& Q! E
MoverProp* pProp = GetProp();2 X b, M. {/ ~% l: s
if( pProp )/ t* M, _5 ]$ p( H
{
8 t8 j) p! u) j6 J1 `+ Y1 ]$ c: ~$ p if( nJob > 0 && nJob < MAX_LEGEND_HERO ). c9 R% e5 q& c8 R1 L9 O X# {4 o
{2 o* B7 P; x# j$ C. R, w
AddChangeJob( nJob );$ `! t5 _: A% a( e$ f
}else{
+ F. }5 n/ t/ u4 T2 ^' d return;: o' L. L1 ^2 r4 i% k- t
}" c( L, {* m# q1 L
int nPoint = 0;
! R- \4 m4 ]0 [ if( m_nJob == JOB_MERCENARY )! U9 |! {9 ?) n. z
nPoint += 40;. t! M. \$ H: Y! p$ k8 T. r! I
else if( m_nJob == JOB_ACROBAT )
$ R! ^; l- R4 d7 M. H4 g/ k6 J1 r nPoint += 50;
" N5 n& t! y' B+ y+ d( X, L4 N else if( m_nJob == JOB_ASSIST )1 @4 P# Z- p) j- i
nPoint += 60;& t( @- j6 Y+ _2 V, | z r& `
else if( m_nJob == JOB_MAGICIAN )
& L# `2 X% n' T' @ nPoint += 90;3 [# K! I" W! `* |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ): r1 x1 v2 y. b u
nPoint += 120;8 X( n- g7 ]0 m. e, i( O+ j0 O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( r5 K8 v/ ?7 q7 ~- [- {' A8 P8 ^ nPoint += 150;
8 l. A6 }( \* ^% j% C8 G else if( m_nJob == JOB_RINGMASTER )
, W% t8 V" g8 `6 ?+ V3 R5 U8 f4 D* f nPoint += 160;- H" B0 z+ S# X2 n9 r; ?2 A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 o* E# J* W8 \/ B
nPoint += 180;! G, @2 @( V. {3 O, R
else if( m_nJob == JOB_ELEMENTOR )
$ u, s; u/ i2 S! K nPoint += 390;" \" y( ?) P5 Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 D! w: |0 e& R$ ~/ y9 B! F
nPoint += 120;1 B& g3 x+ P/ W2 l2 c' M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ G8 t5 v, w2 D nPoint += 150;8 A' ]! t8 R w# z
else if( nJob == JOB_FLORIST_HERO ): t5 l; p4 f* E+ A& F' [4 I
nPoint += 160;1 k `+ R: Y7 q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )) ^2 y! F: ]( U6 z' _
nPoint += 180;
; I& E" s2 L6 q$ z. X$ h/ }4 \ else if( nJob == JOB_ELEMENTORLORD_HERO ) K; w0 e6 B9 M- X! `) v
nPoint += 390;* D" e; [( w2 y
8 Z7 c7 X% F, g) A+ r" j
AddSkillPoint( nPoint );8 n1 k0 G7 [# v' ]) z& j
m_nLevel = nLevel;
- c# e2 H9 M! d4 O+ U4 k5 V5 {9 W
9 X7 H& t# T0 \ SetJobLevel( nLevel, nJob );
7 d0 T" U; a, ^0 F% j& e m_nDeathLevel = nLevel;( e9 ]$ f o: H& K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* V. R' b6 i$ B& E if(IsMaster())
1 U: _! y5 k# G: n0 J/ | { B4 {- W; m- p; F+ n3 s. C$ w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* T, {* W- I- Y% r8 ]' ]# u# [' O3 F if( nLevel > 59 && nLevel < 72 )/ a+ V; T4 Z' b9 Q& }$ Y
dwTmpSkLevel = 1;
8 B, n- F, A! \5 j else if( nLevel > 71 && nLevel < 84 )
4 A& L+ ?, T0 Z) M dwTmpSkLevel = 2;- ]0 n5 @ }- H7 ?
else if( nLevel > 83 && nLevel < 96 )9 K* U" s% s) K. ~
dwTmpSkLevel = 3;
- c7 s3 g6 c5 E. v% C* M3 C else if( nLevel > 95 && nLevel < 108 ), A5 i5 p5 M9 H2 _8 _
dwTmpSkLevel = 4;3 F0 r- u6 U' S6 v
else if( nLevel > 107 && nLevel < 120 )
; s; X1 |5 M$ Q5 c dwTmpSkLevel = 5;8 e: M/ B% S2 I% T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 U/ n% @* B7 X$ `. w# T$ D0 J* [ { 0 \9 r# ?. O) O: o! A6 [4 b
LPSKILL lpSkill = &(m_aJobSkill);
7 N/ s1 Y' a# g. P3 h% ]" t if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ? P# ^) {: q) v( i$ r {
8 `! \8 D) ?: W4 j& m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ H( s( ]+ @+ _: h if( pSkillProp == NULL )# D, U4 u0 S- j# a) i" ~9 D
continue;4 t$ z' `% c+ g1 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* X. x0 V: r( k7 }/ O continue;# h6 Y# f3 R' V' j* C
lpSkill->dwLevel = dwTmpSkLevel;
3 J" g4 c0 R1 x$ @6 ` }
1 |5 B7 c e. `0 N! l$ q& R* e$ m }6 N4 e6 D3 v! i
}7 }: ]5 L: N! w; x
else if(IsHero()), u! l" V1 I0 B& B. a, J( h+ i8 s
{
- p6 c: a+ l" R1 W5 v4 A) t/ l for( int i = 0; i < MAX_SKILL_JOB; i++ )
' H, I& y; |( L3 a* ]2 X! [% \ { : g" I+ @, S& Z5 k1 H' e
LPSKILL lpSkill = &(m_aJobSkill);7 I8 q L/ P+ v1 J% a6 \( c: b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 m/ O% o! l/ f6 B: e1 Q g' B {6 C6 ?# h. c( f7 K( q& q* t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! d; i4 n$ ]* |- E
if( pSkillProp == NULL )
! ~" s* ]' y: Y* S4 j; Z y5 [/ o' X5 G continue;8 t/ i* l! y. _# ?( k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ y" x0 O/ b/ r continue;
0 C" s# d) |; F# Q F1 T% k" w lpSkill->dwLevel = 5;
" `: f( ~2 {& m }
' M# x J* j! x- e {5 a' ] }# `% v5 p5 s8 L& O8 r+ Q! I% _
}
% w. a# B B& n* Y else if(IsLegendHero())
% {, {, A3 |* h" g {
- S6 O# B m# | for( int i = 0; i < MAX_SKILL_JOB; i++ )
; p( V/ A' s4 ?; a {
# ~+ a4 S4 N/ p ~0 D$ H LPSKILL lpSkill = &(m_aJobSkill);
/ G" N+ n6 l3 m. k# D) G if( lpSkill && lpSkill->dwSkill != NULL_ID )
. m5 a/ y5 f q) H {( B6 b! W% b/ B% C- A* X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% N, u3 _, F: _2 u if( pSkillProp == NULL ). ~. H5 `1 ^" S7 g, E, V* p
continue;
! i& D# S: Y6 l1 b; O- ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, C$ W9 b! \9 ^5 Z continue;
, z( F: s( M6 | f/ u lpSkill->dwLevel = 5;
$ P: U- r; y5 E6 V0 ]) B" S }
; t' O/ q" Z2 X }
! J" a Q: `0 }, B2 Q }2 s$ P* x5 P; O; f3 u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 V: `3 \# M# v1 v# R" Q
if( bGamma )( N& N. r H9 Q4 i+ p9 T7 O
{
; a% ~3 x# }3 ~* }/ b) e m_nExp1 = 0;1 v7 T7 E( Q3 r
}
5 p0 q; T' [( z, N5 I- j) m, v3 f3 P: N7 Q
( (CUser*)this )->AddSetChangeJob( nJob );3 w' |7 I8 h2 z% U/ k) c
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 I6 `( S# H* v8 _5 o$ _
+ d4 X' N$ [% N: ]7 P' f* q& {
5 E+ k. P( _. y% ?. G6 e* J' j#if __VER >= 11 // __SYS_PLAYER_DATA
- [9 Y5 J; P- x) C/ A, H g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( _& y1 H- D" e#else // __SYS_PLAYER_DATA; E' T% H+ i& [) R5 ~0 K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 Z* ?, _% K+ W; s" X' ~6 V: G g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ X2 G& M; z! `' T5 P6 {; m0 {( B if( m_idGuild != 0 )
4 S" j8 C2 \ ~, S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- y5 Q6 O) K/ Y! v( H" g#endif // __SYS_PLAYER_DATA
& @" y l4 ]! M' K) m) W3 b SetHitPoint( GetMaxHitPoint() );! h5 B# E' C! P2 o+ E- P
SetManaPoint( GetMaxManaPoint() );
& A" e0 a7 R6 s7 B+ E+ ^0 A. W; M SetFatiguePoint( GetMaxFatiguePoint() );9 c: S* y! P8 ]( k7 |) W8 `
if( nJob >= 1 && nJob <= 4 )
3 f8 t9 p6 b: P+ F+ e" y: P {* o3 L* N2 @! S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 F/ R7 B$ w: N* ] m_nRemainGP = 28;7 P$ V) j8 N' i; j
}& U8 S) |* o) L9 y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )% F3 a5 `: E' Q/ D9 N
{- U+ ]$ h( V4 x& p, `: v
m_nRemainGP = 118;
: z& N2 a: U+ _ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 C; K S% V' q6 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;& o" N2 ?: i! a. Z! E8 s( S. c; c6 ^
}6 B7 S2 ^# ]. i' V Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- n# o/ K6 B" t3 A; g {5 `! R' F. a& R( x' C! Q3 \
CItemElem itemelem;
; w+ ]3 h% }: r# K itemelem.m_nItemNum = 1;) c: H, e0 R. n% ?: ^
itemelem.m_bCharged = TRUE;
" p! x. ]& d0 U; G) t# S, d% c- C | BYTE nID;
# O* q6 c$ k0 ~6 P7 ?, ^& K0 j: f5 G7 l& \
if( nJob == JOB_MENTALIST_HERO )
0 i0 }* _! M9 R! Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 Z. ^ n2 \' v. K. w; P
if( nJob == JOB_FORCEMASTER_HERO )! i0 @+ c; a, g9 G* u9 x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. U5 l A+ j$ |. _( ^
* C, W6 r. x+ w2 m& `% i ( ( CUser*)this)->CreateItem( &itemelem, &nID );8 ^9 C' s0 M- B0 h) m! c
}8 O7 R3 Q, R' e( `6 f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* ]" w$ I, s5 C# D7 h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* {9 n0 j2 \3 G) F1 ] ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; |# ~' V8 ?: l9 e7 Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! p( N9 p1 {+ X+ G' u
( (CUser*)this )->AddTaskBar();*/
# }& @) r1 s; v* S1 K/ c* w3 j5 Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 q- O" d: V P6 P5 N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) {: ` u& D- l4 h
((CUser*)this)->CheckHonorStat();
' i0 I+ u' b# x8 \! K ((CUser*)this)->AddHonorListAck();
% n. P7 k/ {* O) ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);0 [4 h( Z' h8 y! c6 g; B |" r. ~
#endif // __HONORABLE_TITLE // ′Tà?
6 @4 R3 N# g% [ ~ }
- N' Y: x! p% H( X' f$ |3 l8 ?#endif // __WORLDSERVER C9 |+ B* c6 X- g
}
0 V8 _2 U- v- o" ?' K1 d
$ D/ n/ a7 M$ E$ i% \/ u然后你进入functextcmd.cpp并添加以下
; i% V, V/ C. m% ~+ B' D. z' J: l/ e+ Y+ }
代码:/ q( y- Y: E1 g$ x0 S) h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ P0 H$ c4 S7 Q |& t下面插入( {+ ]& ?- f& H; j
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ R+ c6 \9 L: F. k- |) S% q- o
$ \8 H2 k9 _+ @* \然后你去7 q4 X3 m! H1 I( H& I; k0 _
6 ~( P# J9 O- M7 R1 w+ J代码:7 m+ y) I8 c" ?* g8 b
代码5 m4 {0 y* m/ A3 O1 B
BOOL TextCmd_ClearPropose( CScanner & s )7 r; k# C. X7 W, \) V& m
{3 W7 F2 ^; \4 W4 G
#ifdef __WORLDSERVER1 \: H8 R% y8 T' s6 B3 n
CUser* pUser = (CUser*)s.dwValue;6 M Y! F' _1 N+ Q+ K
g_dpDBClient.SendClearPropose();
" H* f0 Q: r$ J- W4 w, M#endif // __WORLDSERVER
# B3 S2 J/ Z; L! N, j2 F% c return TRUE;
4 A& g- W0 v; y}" m7 M U* Z& p# r
下面插入
8 m# _, n5 w3 I% `* R3 j, sBOOL TextCmd_rebirth( CScanner& scanner )1 h, y* \, i2 L! a
{
+ N' p3 V) i! {8 H#ifdef __WORLDSERVER
/ p" H( I' c7 B. X8 HCUser *pUser;4 Z" l( _9 F7 z7 x$ j
pUser = (CUser*)scanner.dwValue;
& }: } t- l3 U3 v) Q7 R: vif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 y0 h5 p6 S0 K* r, A& u: j% EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, Z& p, f$ R5 U, W) l" K9 w
else
* g( P9 z0 `& W. Q* R3 F) fpUser->AddText("你还未达到重生条件!");& U6 ^) U( P% x* b
#endif8 F" X6 s. ]1 v3 _$ E6 r% ^
return TRUE;
6 {) z' @- h0 `9 R# v* _' I) r2 f} ( Q7 ?% D5 A( s! e$ \
0 z/ F( b% w# y0 V8 B
% }* v* @9 g/ \4 T2 W( \
+ A& F. o+ J& W1 j. t( x
" x1 R O6 X1 [ |
|