|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 j5 h3 `5 C' C) P/ [4 I9 v8 P8 D8 T$ d- M
Mover.h1 C9 O5 E$ |( {7 m- _2 L3 o
代码:1 {% S6 @ m) p7 k+ q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) A# w2 h i, A( o
0 L$ d% ^$ K' _- o) H" D& k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; |" ~+ y1 x: E Y) O6 W4 x3 m D
然后你去mover.cpp添加* Z8 s' `& i: e" ?) r1 E; g5 I
G7 D% l- d% I1 P5 w
代码:. D/ N+ C. @( `" M7 w# w! m
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ j i/ }6 v1 R4 E
{
/ v/ H( _3 g0 [9 T" p: h3 d% }#ifdef __WORLDSERVER
! ^: [6 ~! D' ?" I- \3 Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó f! }; F# E0 Q t \
MoverProp* pProp = GetProp();4 o4 t- l1 m: U: C. l0 k8 N% R
if( pProp )& L9 {: U* m; I0 t, Z
{
% v8 g! N, D F" k if( nJob > 0 && nJob < MAX_LEGEND_HERO )- _/ F1 L1 I& J. y
{
5 m( n) c) I0 p0 s AddChangeJob( nJob );
7 c8 {6 U6 X, g; |; t }else{" K+ r6 q0 `) P
return;
- C) H N% @' B* S" o9 } }
! s8 X7 ?# u e; Q& f int nPoint = 0;
) \/ m. p. |7 f' v( |1 ? if( m_nJob == JOB_MERCENARY )
/ R( V% j& W5 h7 b# R nPoint += 40;
! p' c' J8 u+ k" q% W else if( m_nJob == JOB_ACROBAT )3 p7 a$ y3 s, W) K9 u
nPoint += 50;
# u6 b5 s8 A& l5 M3 C% j: a else if( m_nJob == JOB_ASSIST )/ D1 E! D$ U4 i7 E& t
nPoint += 60;6 W9 z) }& u: e0 g
else if( m_nJob == JOB_MAGICIAN )% z2 N% @0 u' F! Q! h7 J
nPoint += 90;
- q, S+ s- _+ v$ a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ |: c ^: G" G- F0 L0 @
nPoint += 120;' k$ v5 C* l9 Z7 r8 q8 m
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 ^6 }8 _- q' a1 h2 E! Q nPoint += 150;# M: `: ^5 W! E& [0 w8 h
else if( m_nJob == JOB_RINGMASTER )
& V/ U/ N5 I4 \$ L9 y" a5 v nPoint += 160;0 i4 M2 g; [; x5 Q' Y: r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! O1 C" \" A* [2 B' I9 o
nPoint += 180;
) D x! D6 T& ?/ i$ X/ m q9 R% K- K; e else if( m_nJob == JOB_ELEMENTOR )8 |$ `3 X2 M4 c: V
nPoint += 390;
8 E- }" W6 g% c# s) n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 ]" ~/ P* n$ V nPoint += 120;& B- O, g7 G4 D$ _& A7 t9 P+ G
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); X5 t- G) Z1 F1 D# \$ L3 f
nPoint += 150;
( Z( Z* R1 y4 o3 Z2 s g7 a else if( nJob == JOB_FLORIST_HERO ); a* G& _. f$ q1 J2 h# Z7 l# K
nPoint += 160;/ D8 F& Z% k0 i: r/ C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ u% s$ X" j( _: x6 x nPoint += 180;/ x) R* S) x! x, ^( A! q1 w
else if( nJob == JOB_ELEMENTORLORD_HERO ) \* _/ r9 l4 N4 H4 k# a
nPoint += 390;6 O- v3 ^2 ?4 q
f z1 A' N' V' f( D* v) d AddSkillPoint( nPoint );
: w4 l8 a# P$ t O m_nLevel = nLevel;
( m) U( _0 N2 M9 q: |! y J3 M! ^( v! f( Z0 E2 X; w
SetJobLevel( nLevel, nJob );" D$ F1 E1 ] Q! w1 `/ g# t& J5 ^
m_nDeathLevel = nLevel;
$ E6 c6 @1 w" k+ L G1 i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- r. o4 l4 i& h% g8 d! E4 N if(IsMaster())
( l9 f; U" N2 X, C5 a' W7 | {3 n( v$ u$ b6 J* r' J: s3 n) C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 w& V: ?4 O, w7 j if( nLevel > 59 && nLevel < 72 )
W3 x7 n. D/ I' T* d: U dwTmpSkLevel = 1;2 m U6 _& O0 L+ v, \2 G0 G6 Y
else if( nLevel > 71 && nLevel < 84 )7 @( @3 o9 N" a6 E+ j% T
dwTmpSkLevel = 2;7 T( O8 T0 Y7 A& C* S6 B, N: A2 }2 a: J
else if( nLevel > 83 && nLevel < 96 )
; S( n2 f" u+ q F dwTmpSkLevel = 3;
: R0 t5 A' D1 J/ k else if( nLevel > 95 && nLevel < 108 ): ~3 R; _: I6 k7 R8 R) g
dwTmpSkLevel = 4;/ f z0 W! S8 W
else if( nLevel > 107 && nLevel < 120 )6 d% D' g S" d" Y) G6 @! {& Q5 Y
dwTmpSkLevel = 5;
7 D; Z, v2 Z+ Y# t for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 m$ [' {6 O( ?8 r' U { 8 W$ A4 e* A$ s9 b7 ^
LPSKILL lpSkill = &(m_aJobSkill);
7 y; C+ M2 m. \5 [0 M if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 }1 [" n. ^5 R. q {
( w7 n& b F/ A+ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& g9 I) O& I8 l. C if( pSkillProp == NULL )! J: F, V4 p& _( A7 i
continue;
+ T" a; o2 e0 `" w9 Z7 v5 n if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 t0 c2 g5 A6 r/ a' y/ u. a
continue;
) ?' { p' [7 W: F/ ? lpSkill->dwLevel = dwTmpSkLevel;
% a+ X, a3 z4 f" p }
: h/ Q5 y4 u9 U8 U0 @: `: m$ m }
+ {! f) J/ f o3 \: c5 l( w }; b2 A5 X0 N: M1 N, y0 [" P
else if(IsHero())
' p; o3 d' P, D% F; l {+ \8 D5 k% o+ h( K( T* L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* n# |: u' t$ Q# x0 U { % `/ r5 U2 [6 g7 a2 c7 n2 c# `
LPSKILL lpSkill = &(m_aJobSkill);
# g# t! o$ O1 A3 a1 @+ f B- N, z9 v! u if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 a' w9 f) k5 ? {
1 H0 j9 @+ z8 K; ?3 K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - i3 N6 T& X: X/ I9 C% j4 j( S
if( pSkillProp == NULL )1 W8 s5 r H, v1 N
continue;
% \7 L) H9 [8 A6 s8 X9 @0 ?1 n" C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( N* j: L3 ~( q! O' t& r+ R B continue;; Z# S8 f7 i5 ^' k
lpSkill->dwLevel = 5;3 V& Z7 c8 R7 N
}5 }% ^. _( H* ]* I/ }& ?
}# `8 i3 |1 R* b2 r* a
}# V7 f* O6 d1 X9 W7 v# W
else if(IsLegendHero())) p0 c: ^2 `1 E( l6 T8 r) O A
{
- y5 V% e' d+ r' s! r for( int i = 0; i < MAX_SKILL_JOB; i++ ) / V' ?" `3 d/ r* U9 q2 t
{
: ~4 C1 U, { N LPSKILL lpSkill = &(m_aJobSkill);+ b7 C" Z) S$ d! N8 O1 Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( M5 i F2 t2 T6 J {5 y8 l/ e, K9 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 W* ]) i4 a3 B) B O6 M0 e
if( pSkillProp == NULL )
9 c( k6 l1 W1 t: C continue;6 ], n. U/ I2 D$ u% f* l( F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, {" |4 _: o! o; M/ M4 A continue;
7 |' I+ L0 E/ M6 Y lpSkill->dwLevel = 5;% z: n- u# l, O/ V4 H8 ]$ M4 q- ^/ o
}9 Q9 e6 ^+ v# v( R2 I }
}
& t8 Q q3 d! O! s. H- |! B }* e3 m4 S0 R6 I. R9 i6 T, s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, w) n8 A! }' h if( bGamma )
* ^ L3 e0 C7 G; F/ X { Q" {" k' F8 t6 ?. Y
m_nExp1 = 0;+ P5 i* j2 D. T, H J5 C$ W
}
- `% M& p ~* W1 [' w: ?1 Y) z" h1 @" g8 [- @( Z
( (CUser*)this )->AddSetChangeJob( nJob );. W6 i/ N# V) V% _: W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ ?9 t* }/ g# K7 G& @
+ y8 y5 X! i) E: h/ k9 `; r9 W4 U( }, M ^; e( L/ r [
#if __VER >= 11 // __SYS_PLAYER_DATA5 z3 [& b) _' z+ L1 f! Z% b2 F: \
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 ~* d+ s' R0 u+ o7 E
#else // __SYS_PLAYER_DATA# v6 X1 H* Q* X3 b
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" |2 v0 C+ \# W9 a' a1 z1 \/ c) U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 {! h, O: E. _8 [5 G4 Z! A+ C @% N/ S if( m_idGuild != 0 )
d+ T+ E& K) \0 @( c) _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# G" A% t" c) n9 ~& F
#endif // __SYS_PLAYER_DATA2 T' Z: R8 J5 }. d2 j
SetHitPoint( GetMaxHitPoint() );
% x2 o5 k6 F/ W1 i" b- u$ j. }$ N SetManaPoint( GetMaxManaPoint() );
) y* I0 m) b( k8 v SetFatiguePoint( GetMaxFatiguePoint() );( ^$ A8 M ^: Y4 X" g! }
if( nJob >= 1 && nJob <= 4 )
* F( W/ s# A( I- d# d' V {
2 W2 i: l5 R, F# q+ V1 Z# s k" r m_nStr = m_nSta = m_nDex = m_nInt = 15;
% U2 M5 J: ]2 z9 e m_nRemainGP = 28;
# C# `( j U8 R# L# v* g+ a5 O }! q9 |( q+ E) I; M4 R* v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! X3 }+ Y3 g" T {
! U* G; I7 i" k$ s- v m_nRemainGP = 118;0 V3 t5 s3 X! T- W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% J3 E, a- F4 ]& `1 ? m_nStr = m_nSta = m_nDex = m_nInt = 15;. W' e, T9 ^, m) w% r, D* E7 f7 q
}' z8 o+ q3 j. ~$ U! [2 }) J9 n
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ a8 O1 M! |6 \/ s
{
7 D6 O' }# L: w8 Y, a% j, ?+ M$ Y! _ CItemElem itemelem;" D7 x* h8 X0 s# D3 C. }7 r
itemelem.m_nItemNum = 1;$ c" ~4 Q( v8 q) \
itemelem.m_bCharged = TRUE;- ^5 ?# R5 Q0 C) k9 m, o& |0 i
BYTE nID;
7 \3 [# f1 n! V8 l- P3 q3 B
0 k' P' E2 K" y2 x4 b if( nJob == JOB_MENTALIST_HERO )
' E: N* l! Q, r: O0 z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- z* i& s0 a% C0 z
if( nJob == JOB_FORCEMASTER_HERO )
# I$ \% ?1 V( c, V2 w. `2 o itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 I0 c! A/ A; ]7 a% e7 ~" S Y
! A% X2 l \. ` ( ( CUser*)this)->CreateItem( &itemelem, &nID );
! ]7 n# U% a3 ?- a; @4 |: T }
, Z2 W" J0 S$ Q# V( G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 l4 o# c" q* H0 I) K
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- p& G9 |% H5 `8 _- v4 s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 ]& u( j5 X* i! y' \ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% Z. I& K, y& k: A* D" ~& C ( (CUser*)this )->AddTaskBar();*/
. l, w- Y1 y/ r" l) k+ | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' N; |3 ^) v0 J4 v* C) y: N
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! j0 X+ V$ I6 v0 Z ((CUser*)this)->CheckHonorStat();( p+ V6 d% ^7 D0 C l
((CUser*)this)->AddHonorListAck();
. ?, b8 J1 m' n- _- x g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ v" ?* c0 f. @: V' `#endif // __HONORABLE_TITLE // ′Tà?
" Z+ Q5 ^$ v8 ?$ r* L! ~" o$ O, D }2 B6 `! h+ G. m
#endif // __WORLDSERVER
9 y! b V8 u4 v* O}
# }9 q& @& n# W2 v5 n
7 a. b* H& q! @& l9 U- j- m6 c8 }然后你进入functextcmd.cpp并添加以下
& f0 V! R1 N# F4 D" d% q8 |' a9 h5 z
4 n) T/ g5 @3 ?* h7 S代码:% R% \. \+ {! S3 f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! X i+ U3 c) }5 p3 [" X3 |. r
下面插入
8 D8 `3 ?) _: ]9 }+ kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 ~6 Z. o- C' W, u! K, `
; _, _) _4 M% f3 b然后你去0 y/ ~% g) s/ T; H' w' J& f0 e0 _
* u8 k: D1 D9 O _/ n代码:
. r' l( L! y; S. _ T4 l* S6 w代码
, o/ V7 b, P9 D6 FBOOL TextCmd_ClearPropose( CScanner & s )
4 ~8 X8 {$ r9 Q6 V( k8 G5 ~; n9 ?/ I{
' c( E0 I( L& A. {6 D* o9 r#ifdef __WORLDSERVER+ c1 ~: P% y7 y2 |' h2 N, i0 _
CUser* pUser = (CUser*)s.dwValue;
9 d2 l1 a% P @' K6 e g_dpDBClient.SendClearPropose();
+ F. }5 [" }) B) t2 L#endif // __WORLDSERVER, [$ q* e+ j1 F0 o& J7 m! d0 E
return TRUE;
0 t, X" p8 \* r2 z% Y}
4 Y- c2 ?# g" d O5 a) A+ b下面插入' z: N( R5 [2 n& {- y* ^
BOOL TextCmd_rebirth( CScanner& scanner )6 U0 d. J$ w: f2 D: k* {' Z
{+ I2 P! t, y3 W! N* B* T
#ifdef __WORLDSERVER5 w8 k% A+ D8 ]. E
CUser *pUser;
$ O; n5 v; ^7 apUser = (CUser*)scanner.dwValue;& ?7 N, P. r; l# ^5 z8 u
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 m: X) V& m4 F! \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; }3 n; Q7 l& A' P& T# e$ d
else! [' D" B" b9 r( {4 O3 t& P! {
pUser->AddText("你还未达到重生条件!");% N# Z& E$ x( G' ^* j* |6 ]! J
#endif
* s/ `& k3 A+ G* ?return TRUE;- x. z9 B/ D2 P2 j& }
}
( ~+ `4 N3 H6 G* X2 j
. f+ r: ], C" D$ s. b3 |7 @: L
) B4 C0 t; ?; t% O; {0 R8 `; k7 b& z: \
" n( R n( H8 L1 T* g3 t6 H |
|