|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, z4 F3 r; l/ z$ Z5 Y' H" X* A+ N& y( x; H" {2 z
Mover.h
6 q% _" c$ p9 D0 `) Y代码:3 q, B" a/ G( i$ r! w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' {; c' Y1 E7 v5 G/ X: Y
2 q) W& T0 E& _ n; o# E下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ( H* l( \ `1 Y/ Q$ P
' \7 v( u6 ~- I- N7 G然后你去mover.cpp添加6 }3 \: n2 F- Z; F2 M, e& Q, g9 d4 Z$ y
# A, E' r4 q1 P; x% X7 q) T3 K$ C, X
代码:2 D' A# n- H0 X& Z E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# ^. j9 o# N \4 b. d( Z( F' D F
{$ X @7 s, k$ |0 G
#ifdef __WORLDSERVER
# m6 A0 B0 y: q1 X- U* D4 z$ p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; q( B" g6 t0 w; B7 r1 B MoverProp* pProp = GetProp();9 h4 B' u& W5 y2 e4 l9 j4 b1 @* t+ @
if( pProp )8 h. Z: G7 R5 L; q
{
* d5 N1 O9 ^4 B$ w9 M5 J( i. H" k if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ j/ x9 Y" N; d$ c# y& m: J
{; R- ^( j. @2 s6 \
AddChangeJob( nJob );# T% ]" s" o. x, Q
}else{
; B5 o* h1 K7 r( y return;
6 @; Q. O0 `+ N) T8 Z7 | }
* n' B7 a( ~7 ^ int nPoint = 0;
3 h( J0 A. K9 f8 O6 j9 Z" N if( m_nJob == JOB_MERCENARY )1 T( ?7 U3 x2 F r; n3 W
nPoint += 40;+ t8 H! I, r7 b C$ A8 o9 K
else if( m_nJob == JOB_ACROBAT )
" M, O8 \1 z8 e: }1 X4 f: o nPoint += 50;, z2 T4 K8 i, L& F) O5 z, @
else if( m_nJob == JOB_ASSIST )
9 p7 O# {! q( Q a4 i, K nPoint += 60;; W Q/ M5 V! Q( W; M. l! h
else if( m_nJob == JOB_MAGICIAN )
& q% i( I! v. A' i7 [ nPoint += 90;% ]8 Z6 u6 m. v7 y9 m; Z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- G* ?& d: I4 d1 g& Z
nPoint += 120;( L' E1 s- W; _0 X
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* t- |+ }8 i3 W/ {+ v* }% ^ nPoint += 150;
; c* m+ `& f( {: [, N$ v else if( m_nJob == JOB_RINGMASTER )3 }. x" @8 z9 I1 V" E3 M
nPoint += 160;' T8 y; r, D) w4 l6 [+ M
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 X8 x3 B2 m, D) _! k6 e+ I$ e& ?
nPoint += 180;
. J) r) a( k: c" U- u( Z else if( m_nJob == JOB_ELEMENTOR )- F( y' T F! r4 R
nPoint += 390;& Z) ^6 V, G5 ^5 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, x8 Z5 d; z$ V+ Y$ C3 r' m \/ z nPoint += 120;
2 c( q$ d8 o8 D |! e$ t/ M else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 V2 e. Z9 {* o* m) c nPoint += 150;6 R$ N6 e% ~7 h) P; \
else if( nJob == JOB_FLORIST_HERO )
- o, J! r1 }, Y% l2 c. s: v nPoint += 160;
3 o0 D* G" x1 s1 n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 i: J; p8 m3 W& |2 F; `$ p nPoint += 180;0 s3 \4 a, q6 s& b0 w% ]9 |
else if( nJob == JOB_ELEMENTORLORD_HERO ); M5 _2 v% |1 v5 d3 }
nPoint += 390;3 L. A' j2 O# W! b! R# ]0 a
9 c' y& V. q! @9 F AddSkillPoint( nPoint );6 F" @) C" J! ?" A% e) `+ l8 V0 S* r
m_nLevel = nLevel;
* h1 v2 i5 ~( _( Y3 _5 P7 Z8 e8 X% O( _6 O% i- `
SetJobLevel( nLevel, nJob );& c. i7 j. M/ q) r7 @) y! a- X- Y
m_nDeathLevel = nLevel;; U& P# D2 R$ P! B( A7 h
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% B) g( y5 I% B! z# Z( R
if(IsMaster())
$ t k# N' {, f {
/ I7 }6 [' o( U6 G$ P. ?0 p9 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 L( o( T! i. C3 y+ N if( nLevel > 59 && nLevel < 72 )( u: G( m; t5 Z! {4 o' x- E
dwTmpSkLevel = 1; H0 Y. c6 {, ]$ ]3 @* L% c
else if( nLevel > 71 && nLevel < 84 )
: d6 u' P2 T4 Y2 o7 w dwTmpSkLevel = 2;2 W! s; P4 q+ w# \, x* q
else if( nLevel > 83 && nLevel < 96 )
; d. S- `1 D+ u4 | dwTmpSkLevel = 3;7 v3 U" i, }: O, a8 w* h# C* c* @
else if( nLevel > 95 && nLevel < 108 )
# V- @7 S! X" ]( \( I8 t& c dwTmpSkLevel = 4;' ~# d- i) ~' l' o, V# {. [
else if( nLevel > 107 && nLevel < 120 )! E% x S( p' x0 v8 R5 ?
dwTmpSkLevel = 5;
b }7 y- U0 D& }& L( [/ N) l for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ q5 |5 V7 b+ x8 {" k, L
{ , [8 \" ?3 z& L- b
LPSKILL lpSkill = &(m_aJobSkill);: @- k9 R5 {4 w7 w4 D$ e5 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )& o; g. U3 A) u
{, t+ L3 K- k$ ~9 E& K
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 L# Q5 k) T. E; E4 K; a
if( pSkillProp == NULL )
: i2 M2 B! Z3 f" R continue;6 S' I' c" F4 d7 I2 G. E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- D% ?% b, p. X
continue;
4 M9 Q5 }3 K- [% X lpSkill->dwLevel = dwTmpSkLevel;
; @* h" D1 _8 _' o( ? }
+ o. s/ S& ^- T' A$ }8 w" i' Z }
1 _0 H& c- d- k- C5 p) ?# R }- p: B0 E1 y# {3 |1 J& J3 m
else if(IsHero()): U; U# G/ o/ C- n
{
( Z" u8 ~: O* _. @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 f; c% h# X5 i' W+ X1 F { 7 S5 x' g8 S' n4 F& J8 {4 R Z
LPSKILL lpSkill = &(m_aJobSkill);/ z& M" c/ B( R% K' D& G
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ P% b$ _) o5 P
{& [& K+ Q% y1 a: K7 C3 b/ T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 W/ H# l, u& r if( pSkillProp == NULL )& t+ R# c' H) X) T1 H* x; s; ^6 _
continue;
5 X& N3 R8 V2 |& q x3 z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( ~1 o+ ?4 k/ {# g e
continue;
+ ?( A, i2 O. M1 T# d* i# X lpSkill->dwLevel = 5;
3 l9 _' h) _- A7 C( n7 F; u. x }
% |6 R3 _, e( I g }1 }. F/ @5 A( _0 b2 o% k3 N& K
}2 [- v3 P4 b1 U& D( z4 {
else if(IsLegendHero())7 S5 ^' L% Z: D! M+ f
{: ]& N/ ?! \- {2 k2 _, [% L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' k' r( Z* _: g6 Q1 Q y
{
6 e: |0 | h G& @9 \ LPSKILL lpSkill = &(m_aJobSkill); z7 m3 j. E& h g- N7 `: D0 U; `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* d W) X: e8 \: `1 d p y. U {7 N) q7 j0 v; O1 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 d- @" Q; z9 s+ G: a if( pSkillProp == NULL ); U+ m5 f' q) `( v) S9 {* X
continue;' u! r, z0 {4 ?' r$ q2 n @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- l6 R2 ^/ I3 i& x! K continue;5 b: h9 w6 r1 t; p
lpSkill->dwLevel = 5;& r3 X! H' H! G8 X4 b
}
+ J" y5 o: n+ k) \5 l! F }( f3 U5 K9 m( u. W" D
}
1 u \* c0 V5 C4 C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& @ U2 Z; O8 g; P if( bGamma )
) A6 A( {# ?7 o8 ` {
) s, ?0 z* f% q! l3 ?+ V$ { m_nExp1 = 0;
6 E9 N& l, _8 N6 H }
3 t: U E( n5 F8 \& X) M
# @8 s7 v. V4 Z* z ( (CUser*)this )->AddSetChangeJob( nJob );$ g; z5 m" J4 j5 m4 z1 K k( `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 f) [; h0 }4 F5 m+ C3 c3 t
; S/ I. k' T6 u$ r4 E" D& D( k9 j9 i
1 Q! W5 f% n8 a5 L
#if __VER >= 11 // __SYS_PLAYER_DATA: \$ ~' P- Z0 D* n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 p+ m/ O& \- ^" ]: E F
#else // __SYS_PLAYER_DATA! r+ q8 s, I/ y3 M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 h4 ~2 ~7 A/ s* m5 k" W g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ Q {$ G/ U. N1 u5 Y/ O, f# n1 Y
if( m_idGuild != 0 )" \8 d/ i' v0 i' G0 o9 B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% I7 P7 k. P7 S4 L4 \# y
#endif // __SYS_PLAYER_DATA
4 z, n4 S; |+ E P SetHitPoint( GetMaxHitPoint() );& V1 w- e' y( X% W) S8 ^; }1 n
SetManaPoint( GetMaxManaPoint() );
! k. T2 I: {! { SetFatiguePoint( GetMaxFatiguePoint() );
0 m: ?" h0 E( D+ a8 h' M: A9 [ if( nJob >= 1 && nJob <= 4 )
1 H0 T1 l. o0 I0 h$ y9 B; X {% @2 Q# }% r1 g' O# A' h- c
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 n6 Y) Y1 t0 [# D6 A
m_nRemainGP = 28;
0 H) h9 a4 W% P }
2 b/ {6 J3 A" l# A3 ` if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ P( X, C7 F9 X4 h1 a I; V( ^
{
; k3 |1 Q& Q4 S m_nRemainGP = 118;
8 K( g1 a- }: K6 y9 |" y1 i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 u( a. O4 h, ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 y* X5 C* U3 K' `* ?- `; F7 {1 b }
! o; a/ }4 V3 U1 k: F if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ h( T J M. C2 w: k' V {9 R* W; T# U! e& S& N3 s2 o/ J
CItemElem itemelem;
1 @# h6 m2 o( F) O/ I- l itemelem.m_nItemNum = 1;! f4 m! b1 f4 V0 h8 D( a
itemelem.m_bCharged = TRUE;- M2 o& y* W2 Y+ s
BYTE nID;
3 F4 J3 W- B, T0 O. q! m5 O! { J' r( s- |% A1 s/ _
if( nJob == JOB_MENTALIST_HERO )' Q8 w" \0 _* `
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; c0 U4 `, c/ m1 v if( nJob == JOB_FORCEMASTER_HERO )7 X7 ~& a1 |% V7 R) |. X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 X1 G: p8 [; _+ c' v& {7 k
* _& y! d N7 F" p3 r# Q8 u1 X4 R ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# s0 ]& o H7 a8 K# M3 [; \* a. P/ { }2 S/ b9 ~; i8 L/ y$ o3 Q* O# H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
b/ S( H( w+ L; f, o ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 a5 B- y$ g. G5 @# d8 n6 r; m ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" f' a( C) d( M. s" `: U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! x/ I0 G$ e' S: ], E4 Z# H
( (CUser*)this )->AddTaskBar();*/! X. v, j$ \. H( r. T
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% B0 j. B- z$ W) d/ }7 r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- \8 W( s8 L0 e% q- C. n ((CUser*)this)->CheckHonorStat();
' V; H* U. N- D' E/ E2 e1 y/ B" q ((CUser*)this)->AddHonorListAck();
* F1 p: X7 p6 g; ] g_UserMng.AddHonorTitleChange( this, m_nHonor);
* s/ M0 i' G2 ?, p( a$ @% ~5 p( J _3 _# b#endif // __HONORABLE_TITLE // ′Tà?
% k9 a6 R! Q9 o$ B0 o. H }
0 K- U6 c$ z+ n#endif // __WORLDSERVER, U/ c8 Y! z& ?: j! V- J( ~( t+ @
} 2 R2 K3 ?% H _
$ o1 J$ J8 w! Y5 x9 t4 S然后你进入functextcmd.cpp并添加以下# z2 v& u" g9 ^" X5 O7 F4 t
3 W2 h2 u" A0 J4 C/ S+ d
代码:
7 h; X$ t& t6 j# m0 a% DON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' N# i: F9 l6 h$ B/ V g/ z
下面插入9 H+ A- |& r1 a9 J
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 Z1 ?! B6 H) o8 \7 Y p) H4 t$ p. t3 K, y7 G
然后你去( a$ p. @7 ?0 e" U$ `8 ]: |
# ?' k( _# \& a$ g
代码:
; e: ?# u& c8 a. s4 }& s9 C8 h# ?代码9 y, v) [1 f- F( J! `3 Y `5 E
BOOL TextCmd_ClearPropose( CScanner & s ): X* y! S; j0 i1 |' W& V
{
% B! K# [2 h" Y. ^- M0 L* O#ifdef __WORLDSERVER
# V) u* B% v, L5 R CUser* pUser = (CUser*)s.dwValue;: I5 `- g( n; ?; V% y' W/ B0 C& d) r Q
g_dpDBClient.SendClearPropose();2 m- x7 m o \- s1 w: H* ]
#endif // __WORLDSERVER. C- d! E$ R0 o6 G2 ]6 ^' h6 n! d
return TRUE;( _. }# ]0 i9 q3 A
}( t( c+ w; a, _4 `: y* X
下面插入
4 E3 M6 |8 ~8 }4 T; m! LBOOL TextCmd_rebirth( CScanner& scanner )
' `7 P1 M0 Q3 b7 @{$ h$ g" j( U) N/ _4 G2 ^7 v# h
#ifdef __WORLDSERVER( K4 ~5 x6 ^- h- ^
CUser *pUser;
/ r+ O+ H) `/ ]- d# z1 Q zpUser = (CUser*)scanner.dwValue;4 a; _9 ]+ q4 D4 x* g: O, {: j1 W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( p$ E5 T7 \+ F
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 S$ a2 l% [: J# ielse7 X- x1 m2 b+ `/ @: M2 ] ^
pUser->AddText("你还未达到重生条件!");
t( j' u. A ]#endif
: w$ v# l" {; l% breturn TRUE;* r. ^9 \6 V( ^8 B6 b
} 7 G" |# G. Z7 A) G% Z) n' B
+ e F. D7 D. O6 G2 v
# h, F; V+ n* P8 F/ X- X# m- W1 r5 K
B+ F/ a' {' y1 Q. @" P |
|