|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. a7 D* e9 O6 g' o, I1 [: K, } B Y f) L8 Q
Mover.h6 ]1 m6 n) I. ~8 ^# t- M
代码:
* [# O( M6 B( B4 @/ Y6 T3 s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) Z$ G( g6 X) b) S8 y4 v) N: b. Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 z, t4 R5 j8 G0 o
+ Y5 V% r1 T% b! J2 n- ]* i ?然后你去mover.cpp添加- n8 ~4 u! Y/ M5 Z- L
; D+ d7 u* [3 o$ s7 D# ~' ^, ]8 a代码:
/ I1 U8 r$ }! F* mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 f, j9 y9 ^" \ j X. e{
- G. S( G8 m( X; C8 x#ifdef __WORLDSERVER' [& M+ `; c+ v! W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 ~6 }* ?. |4 Y
MoverProp* pProp = GetProp();, f. r1 Z. r* ]& J0 s' n
if( pProp )' ~7 S" V0 ]5 \1 W3 N
{
: g! ~7 ~, h# G: X$ ^$ a if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; {; }- Z" k- d/ I {
) z6 w! J' z" Q$ D AddChangeJob( nJob );
+ u9 J1 O) j& q: z Y }else{
! U/ L/ k5 c% H# R9 a# Q6 M$ z return;4 F- V8 }" s; a. K5 Z+ Q9 j
}# y% [. ^3 a/ s1 E3 O
int nPoint = 0;
6 G# p! q9 D$ X" z' W% K$ y0 P if( m_nJob == JOB_MERCENARY )
/ ?$ i! e! ~7 ]% S nPoint += 40;
$ b# X9 U$ g' z' I else if( m_nJob == JOB_ACROBAT )- P6 o/ e) W* l5 c5 N
nPoint += 50;; z4 i9 b( Z( j5 M G$ |9 Y7 |% B1 M
else if( m_nJob == JOB_ASSIST )
! ]5 A* e- A) h; S% M4 r# N nPoint += 60;
% P2 K2 L+ b# \: |6 c6 A( k: S else if( m_nJob == JOB_MAGICIAN )
9 V8 }+ U( g, e @% V nPoint += 90;
8 |+ y- w; O7 d- Q$ R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 J# w- h+ K5 x0 w* n1 S/ i! v& k8 ?
nPoint += 120;
! J2 u8 C& V2 K7 H else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" n+ n# \, }6 z8 ^7 y5 {
nPoint += 150;- A7 ?2 s2 \9 X0 C
else if( m_nJob == JOB_RINGMASTER )6 O5 T( `1 u! M% E0 C8 a+ k
nPoint += 160;
7 x5 n3 k# D/ U9 ?% C: i' _ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ). g/ i9 M- {. j; r
nPoint += 180;
! `$ g. ^9 n9 v* b else if( m_nJob == JOB_ELEMENTOR )) I* S9 o2 x5 f) o
nPoint += 390;
. b6 H$ P$ U& `( g$ A, E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* u; `* Z* U U6 z/ ]
nPoint += 120;0 D _( x: g; w* }; A# G* |- c
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: P2 t; R. c$ f' R, [! A nPoint += 150;7 t" _% `* `6 a
else if( nJob == JOB_FLORIST_HERO )
: v0 b p' H3 v, b) T6 ^' _ nPoint += 160;
! B2 [8 {+ I: \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 j7 R4 A0 V1 g/ O3 d1 X1 b
nPoint += 180;: T; J$ [5 ]5 s+ o. @5 J
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 ^ {$ F$ Q7 \) w2 @( r" ? nPoint += 390;
' Z: b5 U) d9 Q9 O, V1 e p& ~% w) O& y2 ]: i
AddSkillPoint( nPoint );8 v, {8 E' m7 \: {
m_nLevel = nLevel;
8 J& e( m( H, B' e4 p7 O7 w% x* K" E
SetJobLevel( nLevel, nJob );) ^4 K8 o. H- k# T9 Z9 t6 N
m_nDeathLevel = nLevel;
5 E8 z! v6 ?: D9 m6 K+ w: m#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 T8 D" C$ F+ s d1 m4 f, ? if(IsMaster())% x3 b0 T0 T: p6 e5 U! |
{
. h/ \# {$ n$ c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# t' P4 Q8 j9 @! p5 x if( nLevel > 59 && nLevel < 72 )+ L3 y0 G9 e$ {. ]
dwTmpSkLevel = 1;
0 P% z+ w; D0 ~! \( ^2 W else if( nLevel > 71 && nLevel < 84 )
- j+ N. y. K2 E dwTmpSkLevel = 2;
7 h- X I, o$ V% F5 I2 y else if( nLevel > 83 && nLevel < 96 ): X0 V' j' ]! U9 ~7 G8 |6 g
dwTmpSkLevel = 3; \/ B D6 z# ?6 F/ @5 F
else if( nLevel > 95 && nLevel < 108 )$ d/ B( n; T, V# a2 ~7 H
dwTmpSkLevel = 4;
3 G- C1 @# P' q else if( nLevel > 107 && nLevel < 120 )
; ~4 E; ^9 ]; O) u. Q% ^( f dwTmpSkLevel = 5;
. S$ m7 ]& j' U' e for( int i = 0; i < MAX_SKILL_JOB; i++ )
& d& t: e* w6 N6 I9 ^. f+ y1 m {
( d( A( \, R8 c# ` LPSKILL lpSkill = &(m_aJobSkill);6 V5 B+ t( H0 N8 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ \3 J7 @5 d- v) E1 ]) H! p6 V# v {0 u5 S5 `/ o6 `2 O$ A+ _$ K" P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 T# h) g+ F& ?8 N3 p if( pSkillProp == NULL )7 h0 F& D) P$ U7 h8 S4 n
continue;- y' R+ o8 j t$ M6 ?" ?6 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# g: E. k' D& I6 Y" U# e
continue;
! K+ M9 L( \7 x' L lpSkill->dwLevel = dwTmpSkLevel;% t1 f( c# S4 Q) H( e* M% B
}
1 T/ W" l! N& y" k1 W- O }
$ ~0 W1 M7 z" U9 u6 ] }
: }. j0 a) {# q" ~ else if(IsHero())
8 A4 ~0 P6 L8 |. L, A2 q {
3 P8 p/ R0 L3 ^; ~( N$ I/ y7 q* Q for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 g" W* z1 l" Y. `$ x { 7 G! {) U0 t! E {) S. |
LPSKILL lpSkill = &(m_aJobSkill);
: o% q3 y8 e" W+ z5 W2 h" _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
* @, |* x$ C- x" w( @, e3 R t { n; t: |' j7 f2 d- b8 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 E) K* N- ~' U6 T) {1 m' z
if( pSkillProp == NULL )
8 Q( L p% d! L9 g continue;$ M: l6 A3 s+ t$ r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" k% `, f. b7 r! ?! v( [5 c2 D
continue;
& f; @$ l2 U) l) ~8 a lpSkill->dwLevel = 5;
: d: {: ?+ c+ P/ H: z) B }
! b: @; W3 y X/ N' `( Z& T8 v }
" t; J. G1 ?. \. b( W. e! t }& z# @; I0 _4 l: C, n% V$ K
else if(IsLegendHero())
8 d4 J- J& D) }' Q6 E, I {
, r+ |9 v" C# h+ o) z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 g0 p9 Y& v# O& @% s
{ 5 k$ s9 }+ W0 N: y4 g D
LPSKILL lpSkill = &(m_aJobSkill);
! e1 a5 p8 z w if( lpSkill && lpSkill->dwSkill != NULL_ID )/ j H/ k/ R7 @- z0 G
{
6 K% }- ~, V8 u" W- H( t+ ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" M! Z/ x$ A; l. w2 i if( pSkillProp == NULL )$ G1 J0 G V4 C! a
continue;4 o# F9 X& y' T, H2 P/ B& m0 u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 R4 M4 T+ S7 ` continue;
& ]7 M b0 g1 m lpSkill->dwLevel = 5;6 y$ y- j- B4 ?0 B$ d$ |
}
0 c' K; D/ p8 F' c o7 O }
! Z% P m1 R4 ?6 }' ` }
! m( S$ b2 z% I& d. \! h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 R/ O8 p' Q. ~5 ~) `! P7 q; k if( bGamma )/ r" z( [: p J/ ^' N
{8 U4 N+ o3 n" X6 o; S
m_nExp1 = 0;
2 Y* t4 k& d; g0 ~& j& M }5 U8 V( L% M* N
* |. u' V8 N; k7 I$ e0 v
( (CUser*)this )->AddSetChangeJob( nJob );& C# c! ~! N1 t, }! f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( q: U/ k K) E4 M, M9 ]# m8 ?. v0 u5 u- M$ Y
" R; T; f+ e% E, B$ R$ n! k5 f. F
#if __VER >= 11 // __SYS_PLAYER_DATA
" Q. M, q3 S- y' V4 I3 O% L0 U$ N g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 U; U& X, V: d |
#else // __SYS_PLAYER_DATA
0 h8 l( J3 W# F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& z) z5 r1 |3 Z7 r2 d# L" r g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 H, I, u+ [, W& M* n if( m_idGuild != 0 )) s3 ]* ^7 ^; e6 f# S# j9 \7 z4 B5 s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. P; O# E2 x8 m
#endif // __SYS_PLAYER_DATA9 X3 E" z! g' }7 w! w$ \1 w/ |/ \
SetHitPoint( GetMaxHitPoint() );
, I* S* F; q, |& |! { SetManaPoint( GetMaxManaPoint() );
) \: s, h! N& e: L SetFatiguePoint( GetMaxFatiguePoint() );- @! X Y" }. c, H& x1 ~* P3 a
if( nJob >= 1 && nJob <= 4 )3 N( X9 c' G! Y
{
# e' a7 G. ?# X, x; y4 |8 B m_nStr = m_nSta = m_nDex = m_nInt = 15;6 a8 J. {, T- T
m_nRemainGP = 28;$ y& ?+ n3 T7 t) B0 X+ [ [ D1 Z
}+ B7 a* p; D l0 e. o
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( W U' ~, t) e% e. k: e* `! J
{
/ |8 r9 [8 e. k# i0 X m_nRemainGP = 118;& O. H' L! B7 A p( {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( t/ g4 I1 w3 b% _$ q; l/ L. j
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 K7 k6 R0 M( Y
}! Y2 `) F7 {- l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 L2 { f4 K' ~6 l2 k0 E& ?/ \4 t' Z
{3 j' H! g+ \' q0 \) {
CItemElem itemelem;
m' r0 t# x. Z itemelem.m_nItemNum = 1;
+ }5 I3 A+ C! W itemelem.m_bCharged = TRUE;
$ x# ?( Q7 _+ D BYTE nID;
1 C. ? C1 {- \% a9 _( B" u) Y. q0 w2 J* l
if( nJob == JOB_MENTALIST_HERO )( g0 \- G% \) l6 P
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 j) B: j! J5 }0 s if( nJob == JOB_FORCEMASTER_HERO ); u: C) h2 y( N! s e) Z7 N8 ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* C: ]: e, q1 N& a2 a4 b
3 z5 O$ X: m2 }4 Q6 u2 U ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 J0 y9 B$ I$ T$ ~; t4 @) v
}
+ K. \) \4 u2 s& v) f1 G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, U; d! y) c+ n3 M3 U8 Z1 g% b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) \4 {" p& A5 E! \. k7 H0 F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: z+ f# d" v: z) J: M# j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( | {' u l% I) T1 ]
( (CUser*)this )->AddTaskBar();*/$ e! A% k( K: n0 v8 j" Z) L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) o0 Z( r2 R7 k* V/ ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 ^$ }/ p& l0 K: V! v
((CUser*)this)->CheckHonorStat();6 ? Y0 U! V& H! D: X+ _) L
((CUser*)this)->AddHonorListAck();
) o! t0 T' t" o2 J- s$ } g_UserMng.AddHonorTitleChange( this, m_nHonor);; N5 {/ v( f) E: Z8 g' b
#endif // __HONORABLE_TITLE // ′Tà?
7 N! d3 ~ t/ L } }
( I" U8 ~- K; x#endif // __WORLDSERVER1 ]7 n# r0 m! ^3 i0 [2 j) _0 y
}
0 F! A) A7 K* a
' j( A( |* L( k% O& A$ |2 H% ]然后你进入functextcmd.cpp并添加以下) W) w1 o! u8 L7 } ^+ [+ K
+ ~5 x6 u* Z+ e$ D6 L) w
代码:
7 R+ P" B' R" J# z' q/ N7 h& wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) V) b- P3 F }5 b. K+ O
下面插入5 `+ F, R2 S3 a9 B/ }1 M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ C4 A# a& h- R: _8 q. t) ?% @, z7 A
然后你去0 G$ \, e6 l4 a3 E
$ ]" S/ [3 `' h" ?- X: U
代码:* e- H& a; ~: C3 e6 G/ o
代码
4 R7 }- S' B' z, S. h1 D8 WBOOL TextCmd_ClearPropose( CScanner & s ). [$ z" c+ ~1 ]! U) i ]
{7 v- B; \8 V: O
#ifdef __WORLDSERVER9 I' M& s, ?9 B1 G$ S, a
CUser* pUser = (CUser*)s.dwValue;
8 T2 K9 U, _7 ]2 [; P g_dpDBClient.SendClearPropose();0 c" E1 Y0 z8 m% l1 N8 _
#endif // __WORLDSERVER0 Q& c- C9 d6 W" y( o
return TRUE;( R e/ _- W% k& G5 j% O2 h
}- i6 U* v8 S$ I- f2 \) Z. T6 M) u- z
下面插入3 t9 `- t. m9 c* c0 E
BOOL TextCmd_rebirth( CScanner& scanner ), v; p+ u! \: C& o; `& F
{
1 b; j: z. C" z, s5 k7 X4 l8 M#ifdef __WORLDSERVER- o2 w2 n$ U/ M5 o7 j) |
CUser *pUser;. ]' N6 i# U4 X
pUser = (CUser*)scanner.dwValue;
) M/ K7 r( b1 s5 i$ ]! j2 Cif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 G: f# U5 s. ^. j# W% M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 r' u2 ~- l2 v' R: g, Oelse
, d9 b% O: N' g4 f9 ~( g8 @/ fpUser->AddText("你还未达到重生条件!");
3 Z) q) G5 W7 K% F#endif7 |# S _5 v4 D7 y* f$ e
return TRUE;
- x- O* {, Y7 S$ s+ h3 {6 V: j} 0 |* x4 V6 o" e; Y
4 d" l% l! b1 q& d8 Y$ y# E& ?" V0 r' r3 q5 @* H2 q4 U) P
6 H7 [- y. R: A3 l* [' y4 I; X8 O8 f: S
|
|