|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" Q4 M5 _% c# G7 D3 [7 b
9 z. k& o9 } P. [9 ~- bMover.h' f+ i- i* v, m9 W
代码:
/ A8 @$ `- b- Z! ^' C找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& n) K: D# A' o7 ~* U3 ?
7 O% }! I M9 U0 O) D
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 y1 r3 ] O# r
5 s" @9 l- x4 Y1 _: W( g
然后你去mover.cpp添加# I- g9 @" }: e Q
; R$ y: u: o8 M0 ?5 g l* G" Z& o代码: `2 F8 x0 r# `/ [4 q( ~ `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( f# b# W) c' h# n9 c) ~7 `
{9 K" Q& o, K5 y# d9 L( q; D
#ifdef __WORLDSERVER1 j# X* j* D! Z( \3 V g
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 }) ^+ X6 @/ p$ S3 Z! r2 ` MoverProp* pProp = GetProp();
; b- S* I5 G; c x; K7 i$ G if( pProp )9 N+ m' Q* ^5 L C
{2 h- c; o* w8 w3 G% H. ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 D& s2 W5 u# d" f& w2 B% ] {
, i$ g( l0 e0 ~0 j& f% a( b AddChangeJob( nJob );# J/ D' V2 S/ K% d
}else{
9 @: G" h2 M H return;+ i' u. L/ ]/ k- i! V
}1 [* `9 [% G: W4 {" z. R7 e3 n. s
int nPoint = 0;
8 ~* f) e$ |- A! Z if( m_nJob == JOB_MERCENARY )
' C7 D( n" i6 w: U9 t1 a( T# E nPoint += 40;$ F3 w1 N5 [( k; ?
else if( m_nJob == JOB_ACROBAT )
$ P. C5 A! w( e( m; G nPoint += 50;, w" h! N# @) B7 J$ ^
else if( m_nJob == JOB_ASSIST )) W7 d* U y; Q$ `
nPoint += 60;
' l+ H; `) F8 R1 b! R5 e7 u else if( m_nJob == JOB_MAGICIAN )
0 J! z+ f- [. H0 t8 |7 L nPoint += 90;1 P2 J% C' J& s# t+ T$ L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
r7 Q' e! Q! p+ m; @0 G8 n nPoint += 120;8 \; K' t: U3 g& K
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) p# V4 ?! Q" S) ]1 |* ]4 O" M2 f" n. u nPoint += 150;9 ^) ]7 ?7 @' Y5 K0 |$ V& n& M
else if( m_nJob == JOB_RINGMASTER )% U* l9 ]. K6 v8 [4 _
nPoint += 160;
, S3 r. }: i9 i, m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( J' g7 Z( B p7 Q+ q nPoint += 180;' A- E& v, R: _' ]9 l7 A: e- j
else if( m_nJob == JOB_ELEMENTOR )
2 [% W: _2 w4 ^2 i* F nPoint += 390;
8 g& f& I, B" m( e5 ?& N9 T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* F/ A1 C+ S6 C( c! Q \) n6 D7 c( e nPoint += 120;" ?$ h9 Z# r7 z% Q% X0 p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): z* X* E0 _' }8 F) D
nPoint += 150;
* h* `+ z0 c- t% h4 z else if( nJob == JOB_FLORIST_HERO )
) A7 R! e" M* x9 v5 H/ U4 E nPoint += 160;8 T. N, _) B% k% b' p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 X S" N7 p. { r, s
nPoint += 180;
$ t9 Z' W) N" S else if( nJob == JOB_ELEMENTORLORD_HERO )
8 s& I( b/ _2 s0 s7 i3 q nPoint += 390;
7 K" P5 O) ?4 x% @$ y' a6 O1 y1 P0 T- `* a* t/ A1 Y0 I
AddSkillPoint( nPoint );/ Y2 R7 I3 _6 D
m_nLevel = nLevel;7 s& ]: @% b4 a. C: E0 W$ X3 i
& P( _: b% c# ~4 G6 f8 \" i SetJobLevel( nLevel, nJob );
, J0 Y+ z" F; N m_nDeathLevel = nLevel;* N* {9 [% w2 z2 ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! M: O; _5 O0 S" _ q8 A0 O2 _% } if(IsMaster())5 R" y6 A. k9 J
{
, r d( v( [( B7 l+ l int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' e- B7 n) l# L! ^& e
if( nLevel > 59 && nLevel < 72 ) B/ c0 P S+ h* D( ?
dwTmpSkLevel = 1;
0 r4 B! d4 Y0 F' @9 V I8 i else if( nLevel > 71 && nLevel < 84 )
6 {5 ^5 t& j% @% a4 ]9 ^' e. G3 } dwTmpSkLevel = 2;& K6 @* ? N* A3 y
else if( nLevel > 83 && nLevel < 96 )
6 l6 p) \' `! m. q7 t1 e dwTmpSkLevel = 3;
4 O1 d# F: v& b7 t5 ~ else if( nLevel > 95 && nLevel < 108 )9 w, v" o$ e# ]( s+ u
dwTmpSkLevel = 4;
8 f: a) k: `1 |0 i1 L else if( nLevel > 107 && nLevel < 120 )
4 v7 r4 s3 ~' M; _- ?* L8 q0 ] dwTmpSkLevel = 5;9 _4 ^% y2 \' p2 f. y9 K2 U0 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 m s$ d' {" e3 V7 } { v8 p- i( ?( \$ g# x; s
LPSKILL lpSkill = &(m_aJobSkill);8 \. w! C, A2 @/ h
if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ c8 }( T8 E( p3 Q- E {/ C( f, u5 Q" n4 |' F; J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 A' L a9 ~/ l3 N l8 V
if( pSkillProp == NULL )6 u+ ~2 ]$ G* U
continue;
3 t3 a8 j Q7 J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* P0 \. d& J7 ^# E( {: F continue;
7 O+ D2 h' {& H; o lpSkill->dwLevel = dwTmpSkLevel;$ T7 b' C' @- E: c3 y
}
# Y, w1 K/ G9 n$ h: s+ d }) T7 v% h) E e2 n- x1 z
}, k3 h% ?8 A- h* S
else if(IsHero())
7 @# M9 e; D) j3 O {3 P& [* q& F- r5 p, P, ?& M
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 Z" s% p4 u3 E" u; g5 x
{
& ~$ J3 V9 }8 q" e/ d1 y5 ?4 m4 W LPSKILL lpSkill = &(m_aJobSkill);
' Q# ~/ |3 D# V6 v; ~& H& f if( lpSkill && lpSkill->dwSkill != NULL_ID )
# M- O5 w0 i1 g. D1 V {, B5 l) O% l1 o( m. l) e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ R# B+ ]: {6 U if( pSkillProp == NULL )* X, j# o) ~. }/ M' @# F1 m
continue;
0 N6 t8 N% k; M+ p, b% X( q9 h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ d0 d9 l j! [- G8 R continue;, l$ g, Q7 c% r& @% w
lpSkill->dwLevel = 5;
: ]5 k9 ?0 r6 Y }8 J @9 Q: u9 U0 O0 d# Y& T5 T x
}
+ N b; @7 U& L& v8 V }
! t$ l; j( f5 }: V0 x# r else if(IsLegendHero())% [4 V& p: A; J/ R' A
{
2 B5 Z% y5 M( O- |" w for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 }# r* ^# w, } h' \8 ~
{
' u7 e P. e) Y1 L9 u LPSKILL lpSkill = &(m_aJobSkill);0 N& l( m( N3 b O- I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* U2 d: k8 B% p; j! m& ]! v$ X {4 j' b( q! O; y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: {7 z S* R) e5 l3 o if( pSkillProp == NULL )3 ^; J! R# ~# F
continue;( ]! Y# K0 x6 l" V5 N! l- @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* h' b* Q1 I( S continue;9 K, n/ C4 s8 `7 O6 h
lpSkill->dwLevel = 5;
; F4 I* N, E2 a* _5 i( P8 l: ?" m; e }
( y+ f% C, o* p } k6 F. ]7 y" k& K9 W) x
}
) y$ x( n$ j& R# o: G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
?8 q' l @' E5 Z if( bGamma )# C0 P! e$ P9 a; n/ ^) X
{
* s1 {+ m d; x2 |5 J. p m_nExp1 = 0;: {. c" I) V# q, q: m* k
}
! E: r* u6 o/ P8 q5 J0 p [7 U5 g) x! p7 p ^8 w% @" `5 A
( (CUser*)this )->AddSetChangeJob( nJob );
; Z/ M4 r+ f/ w/ v S2 Q8 I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 m+ {6 f, R# y& o4 z! Y1 M3 g4 S
& l! r ^& q' V. j7 X' f* \( }- V9 ]; }. x2 k
#if __VER >= 11 // __SYS_PLAYER_DATA- f# z1 }( ]- }0 X' Q* b0 @" Y5 W9 K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 s4 i% s- B/ _" ]* {
#else // __SYS_PLAYER_DATA
% U+ C0 [# ^- k% U" A& t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ X' H+ u- o8 L! Q, s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 l* [0 a' a4 p- t+ n2 Q if( m_idGuild != 0 )
; u) X5 C! A1 s# m+ T- y; U2 u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ O' {$ y9 n" P% i
#endif // __SYS_PLAYER_DATA) P! J7 m# z, t' ?1 t2 O7 _% ^: u
SetHitPoint( GetMaxHitPoint() );) W+ _8 k5 G8 A' X: ]8 p& {
SetManaPoint( GetMaxManaPoint() );
8 }" i) A" D; p* |- i% G SetFatiguePoint( GetMaxFatiguePoint() );
% i" t. m* ]% d8 L3 x7 N/ ? if( nJob >= 1 && nJob <= 4 )' r ^! g0 S2 o# u! [/ }; W
{# s* [/ Y) v' T! P. B. {3 |2 _% R
m_nStr = m_nSta = m_nDex = m_nInt = 15;& K0 W- R0 e7 Z3 b+ \
m_nRemainGP = 28;2 O* _( [: U8 K2 B$ @2 \# d6 q4 n
}
3 K }7 g; E: ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! v1 C* X9 s" k1 x {
7 Y& @6 O* G" G( |7 {& n# W m_nRemainGP = 118;3 }2 H6 g, X5 |* L+ \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) U1 A& J6 O1 W7 l0 K3 z* }" P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, w% c$ f9 H, e% x) { }4 f- Y8 Y- A, s. C# P2 u
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' d. `" i" w9 }5 x0 H6 X {5 G. x! z" W- a3 `
CItemElem itemelem;2 g! V7 r) H' d) Q Z* }
itemelem.m_nItemNum = 1;" d7 ~$ R' j' b# G7 S; L
itemelem.m_bCharged = TRUE;# n7 _+ b M% a, V- N
BYTE nID;
2 D$ t$ i9 E ], m
9 M* A4 ?2 O3 h! ? if( nJob == JOB_MENTALIST_HERO )! f5 _2 g8 G" K; W, v5 C: {. m# o& k
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; T; A6 ` c* W/ {( O! p( t5 N
if( nJob == JOB_FORCEMASTER_HERO )9 R* b q! V- D# q4 |2 M& Y0 e
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" K4 M) e* A4 Y* a2 U9 @
7 T8 O+ t. T5 A) K7 d ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' @" T! v/ V$ z+ m- [9 j }5 B* F) T) }5 y) J: f( S9 S4 v
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 Y- K9 ?) m6 a5 n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' F+ T1 f5 G2 z k. x2 r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 y$ }2 U9 X( N4 p6 r4 K /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% q7 h2 W( Z$ ~% [9 C7 Z( C
( (CUser*)this )->AddTaskBar();*/% U4 l3 Z" s1 g. R$ a
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );! v# {( y, T4 |4 Z% U( t: d& V6 p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' ?; |' v& O8 l+ j# X* d2 N2 z
((CUser*)this)->CheckHonorStat();
7 c2 y- ~1 ^- U: z1 ]: O ((CUser*)this)->AddHonorListAck();* c! r' }0 v B# z1 s
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 I/ ^0 o, N% e/ {& \4 o3 E0 }
#endif // __HONORABLE_TITLE // ′Tà?
. p2 Y+ c5 U% P" R }! m- F! ?1 L- Y& u G0 O
#endif // __WORLDSERVER3 u/ n' R1 ~ ?9 D2 g( i( m+ n
} 0 B: e9 b9 b6 }) D$ F; |+ J% l
% j# M6 s" y) ]1 w: g% r
然后你进入functextcmd.cpp并添加以下$ w/ ^- B( J- }2 R* Q5 S1 G
/ }+ g4 N. ^' t) l$ g8 E
代码:& l& S; |7 a+ \0 u; A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' O+ B" n( F% s7 V8 T
下面插入- t+ L& w! _- Z& [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" V( B8 W! C& V+ j; @* [7 h7 Q, r, C" ~6 n7 r5 p+ }% i6 J" i- K
然后你去
. O; T& a; b ]' n6 R1 C$ m
" q- X# v: k, S! f* C代码:
4 \$ d5 X: a1 P6 H, H6 j, A' D代码
2 u* {# c& a6 z0 Q9 FBOOL TextCmd_ClearPropose( CScanner & s )
0 T; Q/ g) h4 c1 L2 t{5 z1 z$ i' h' Z* G b+ q! R) o
#ifdef __WORLDSERVER
: T) m% P0 i S CUser* pUser = (CUser*)s.dwValue;
; I# a9 l1 G* q) @ L% L g_dpDBClient.SendClearPropose();+ O8 z) b( {6 Q' N4 g* P( A0 w
#endif // __WORLDSERVER
& h1 B4 M1 a9 ^( m" B r2 _$ B: B! [ return TRUE;
5 B: s# s; p3 N, X Q8 e}4 G$ J0 N! W8 \; i) Z+ W8 R( G7 g
下面插入3 u7 q, J2 y7 g4 l; D0 R2 Y# f! Q
BOOL TextCmd_rebirth( CScanner& scanner )
9 E$ j4 e) m+ @: u7 p# G4 r5 r{
0 s1 \! e7 d/ _/ F# c#ifdef __WORLDSERVER, S9 S! z2 b0 l0 N
CUser *pUser;
' n+ f# I$ n) p0 k9 U7 }: apUser = (CUser*)scanner.dwValue;
$ J0 P8 ` v/ z1 r; {% C0 _" [+ nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( d; @; q# I% y1 DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! \7 m, ]5 m& v" Gelse
# m6 \. ~* c) L; J. K; H$ _pUser->AddText("你还未达到重生条件!");8 z7 `3 o# T6 G2 O+ f
#endif
* G$ [+ j: k6 o4 G4 J3 Qreturn TRUE;
. e# J. A% r; m/ G: L/ u, E} 1 ?: }; Q& P2 K- O8 T
1 m! g# C9 y3 q; u1 V+ ^% h7 U2 ~0 @$ i
" J1 V6 @9 P# h+ d g
3 X# O6 P. ^ ?/ I. j" N# U) R |
|