|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* o4 D7 B/ @) w: \1 z
+ Y+ `; j* F) ?8 iMover.h, i" \8 C; U, M: x
代码:
' J8 V2 ^% b5 c0 G2 z. a% i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 j9 @+ o" e& j/ J+ k$ \# r1 d, E& J* n2 F2 Z3 |& A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 s7 l: f* K( o c1 l
; T& |4 v+ p Q1 N6 E然后你去mover.cpp添加
- U/ e# n: H$ E5 x. [- l% {. B) }6 V3 w3 B- w
代码:
- q1 o! Z# a7 ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 F3 n; F: D q- _. S
{
2 Y! v3 G6 q f, R/ \) u; F8 R#ifdef __WORLDSERVER
) q- x5 O- Y2 [! f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ G9 H5 R' i9 b- |1 x2 C" f
MoverProp* pProp = GetProp();
8 W, D$ P# L2 y: e" O if( pProp )0 N( d6 o, a5 ~ K$ y6 r1 ?7 f
{$ r% i+ ~& b8 R0 O3 X' s
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ g! C# G0 Y& y9 i! g0 Y0 z) s
{( }+ i1 K; P) e
AddChangeJob( nJob );
8 W, I4 E& l& F* r% z }else{- ~' e( B* T4 K8 t" p& X" s( L0 }' }
return;* E1 P% {& ]+ P! N& \* v
}
$ P$ P x4 P: `0 [& y; S0 ^ int nPoint = 0;9 }& s2 I5 B3 h3 G; I" F
if( m_nJob == JOB_MERCENARY )
: Y( o& ~3 s/ G9 v( N# a2 \7 ] nPoint += 40;1 e2 _4 {# ~" m- B
else if( m_nJob == JOB_ACROBAT )
3 I* ]- k8 d' j# j1 {$ m0 ?1 \ nPoint += 50;
) C$ N q/ T( E T9 ?3 e8 s$ U4 H else if( m_nJob == JOB_ASSIST ): h: w" v+ i6 p1 E4 W
nPoint += 60;' {6 ]& ^( G9 S
else if( m_nJob == JOB_MAGICIAN )
! e6 O9 @" a }8 l$ y nPoint += 90;* |3 N! o9 Y7 }# U5 v; `' {" E* j
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( p8 I: O4 Q( F# G
nPoint += 120;
6 N4 Q7 P7 G; O# L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. V/ S$ ~% U- `" H3 f nPoint += 150;+ ^8 z& z1 k+ [/ @) A
else if( m_nJob == JOB_RINGMASTER )9 b0 G9 S y6 _1 n/ O
nPoint += 160;
2 S/ |+ Q6 u6 w- j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 `5 S0 E& L% w2 C4 Q nPoint += 180;
+ o) |5 {; f* L. I: V" N$ }6 f else if( m_nJob == JOB_ELEMENTOR )2 |- ]& p9 p0 K* t9 f# c+ K
nPoint += 390;
+ s9 @; G: |7 \- b5 C( {+ } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- h+ F7 L8 ~6 P+ f' x" S6 k& z, V
nPoint += 120;
4 v6 k- B* P. x0 z( K0 | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% U/ |& |" i; ]! x nPoint += 150;
: x2 F: G; P V2 a: P7 g/ ?! J else if( nJob == JOB_FLORIST_HERO )! r- u3 y% m$ \& r
nPoint += 160;
. W* S( f& U; [$ Q2 I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )3 {1 Q. T) @4 _4 Z, w" t
nPoint += 180;
2 j* ]! p, }4 v5 j" B else if( nJob == JOB_ELEMENTORLORD_HERO )
4 G/ V# F4 p" R# i7 I9 d8 G nPoint += 390;
8 F9 ]4 O; U: X
$ F. O" F6 w! b- K* ~' H AddSkillPoint( nPoint );' T. O# a" \! z% V5 L
m_nLevel = nLevel;
6 F% K. Z' Z3 J# A+ ]' E$ J* r; b2 J) ]9 G" f
SetJobLevel( nLevel, nJob );
2 }: x0 T+ U N; e m_nDeathLevel = nLevel;
) @$ k2 a i; | Y0 y( i#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; @" r1 r5 u w( ?1 f
if(IsMaster())
! m; {7 r" S5 S7 s {0 l( Z6 Q+ b1 |; f& G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" ^/ C( a0 ?6 Z* m( o8 b
if( nLevel > 59 && nLevel < 72 )( S- Q2 s' X3 m/ C
dwTmpSkLevel = 1;2 w1 s) k1 B2 p% {$ W' Q
else if( nLevel > 71 && nLevel < 84 ); ^- I; j4 G' D# f- N
dwTmpSkLevel = 2;
. ^6 I5 M( o; g# R0 m else if( nLevel > 83 && nLevel < 96 ): f3 w5 h% W0 w
dwTmpSkLevel = 3;
' m" w3 O% c* ~( B/ x9 J. N else if( nLevel > 95 && nLevel < 108 )+ H% H* c2 o" O' \5 \
dwTmpSkLevel = 4;
Q, u7 G4 e& b( P; T+ z( C else if( nLevel > 107 && nLevel < 120 )6 G$ j5 Q1 ?/ F9 c p8 {/ Z+ ~1 Y
dwTmpSkLevel = 5;' s. K- q6 y$ k L5 c0 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 Z W% H8 K( d5 Z9 B8 T. v" k
{
2 J1 G: u x: m) {3 n7 L, T' G LPSKILL lpSkill = &(m_aJobSkill);) H& e4 `" V: k8 }8 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )
|- p# r- F }; o1 a0 l+ c' b2 \ {; n5 w9 [- Y6 u* K8 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 B4 e8 R* J6 x! ` if( pSkillProp == NULL )" r+ M$ |4 a/ z, j4 A
continue;( J6 ?8 ` [3 w0 X5 ?% @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- |7 N( P7 I& j# |. c k& j
continue;
8 o ?0 I' a7 n! X; d5 K lpSkill->dwLevel = dwTmpSkLevel;
8 P8 R- L! m+ |$ M1 y8 @ }8 _7 m# q9 ]: w/ p( H: R' y
}
) [* V# |- s8 @3 o4 D }/ R; j# _- _5 t8 B4 k! F! u3 {9 s
else if(IsHero())
* b5 I- D* i1 C2 ~( g( c {
! I1 E/ [7 }% F8 j: } for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 q( T; l8 x/ m8 \1 G" ^/ P {
+ n: Z* L6 Y( N, P; _1 f LPSKILL lpSkill = &(m_aJobSkill);
/ f3 M0 A( P) k5 j( t8 O if( lpSkill && lpSkill->dwSkill != NULL_ID )+ a' }' V, `+ ^7 \: b
{$ h! f4 q# d) p6 ^- k3 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- ?9 Y+ K3 `3 }" a if( pSkillProp == NULL )- V c1 y- u: A3 K
continue;- f P( L8 \: e8 P( `6 I9 B3 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( ~' F# n, m& T) }: H" j continue;2 C* b; h5 z4 [+ D8 C8 r8 p
lpSkill->dwLevel = 5;3 J# B. g: ?' [
}
) V+ h. |; O8 j, I$ l1 _9 U1 [ }9 G$ Z: m: w# a6 H- H0 `! c4 Q
}
& u8 R9 h1 N) V9 p5 ~$ @ else if(IsLegendHero())0 ~$ L6 v( _4 s/ N
{
0 K! Y/ \* X9 ]" n8 z4 E1 g for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 x6 x0 R% m3 ]+ O+ d/ u
{
. y8 ^$ C: [" e F9 S LPSKILL lpSkill = &(m_aJobSkill);
) f" E0 u; T) h4 n, A if( lpSkill && lpSkill->dwSkill != NULL_ID )
" u B2 s5 ^! ]* i {
0 G# b* Q% h0 s- D( @9 x! D6 q$ m ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% F4 G4 r0 c( y; S$ I if( pSkillProp == NULL )! I- K: u* k2 O+ O8 v# v
continue;: D5 G1 ]7 R+ `2 f; {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 O8 G- G" Z/ @/ n- M- n/ R continue;1 h6 o5 N4 C& O6 `8 H
lpSkill->dwLevel = 5;
0 ^( D0 Y. d( m" T" n7 X4 O! o }4 j, G8 L, u& h- [' K. Z
}* p8 d' K& D6 I; x8 T
}
6 D. L+ m; p3 F5 B0 L$ {#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- M! `3 ^: k, I3 P2 G5 Q7 n if( bGamma )
( g2 e& k( G+ y" G, o {
% g3 Z7 d' f* _* Q$ P m_nExp1 = 0;
& c* A2 x- Z1 O6 N& C* w( l! g }
. ]( l% r% H5 e% z7 G. I @
' h$ F+ V$ ?# U% y8 U8 Y" } ( (CUser*)this )->AddSetChangeJob( nJob );
. H' a* V5 h/ i6 T/ C d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% a1 }" i1 w$ b# K
7 ]' ^* Z! \; k
' {5 O$ ]8 B' @#if __VER >= 11 // __SYS_PLAYER_DATA
q0 a1 @0 [0 S. \( R% C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* J7 T8 V# P" i: K; a5 W% ^
#else // __SYS_PLAYER_DATA
' _% e$ w! }* E, q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: u. b) r) ]4 U( g N' A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; w6 |+ q. _# B- K8 J/ U" D; o
if( m_idGuild != 0 ), L0 C* Q0 k3 A$ v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# z6 z' p7 j( [5 w1 y; ~! t
#endif // __SYS_PLAYER_DATA' X F1 P' [, b
SetHitPoint( GetMaxHitPoint() );
: f# L/ W! R$ @8 I. k+ t SetManaPoint( GetMaxManaPoint() );
( w! `- Q+ K2 _2 i' X% u SetFatiguePoint( GetMaxFatiguePoint() );
6 P0 T- z3 ~# h if( nJob >= 1 && nJob <= 4 )
9 J/ y0 ]2 H5 _& R- P6 U {6 x9 |" @! ^2 l- B
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 a. }+ C; {8 z N$ L C/ P8 @0 S
m_nRemainGP = 28;
. F% s$ }# {% `6 x }- A6 H: z0 T# G0 s" Z+ ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' y' W/ t7 ?. F
{
9 K0 A" A' S. W" [9 [ m_nRemainGP = 118;
! ?" i4 S# @6 X. w3 N3 k- D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; b [& ^9 ^5 i+ w
m_nStr = m_nSta = m_nDex = m_nInt = 15;' z: v z* Z. o& p6 H! @
}
7 z o' B1 t! q1 ~1 q- S) h if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 \& E# w( m7 @! d- M' B
{
# W6 m2 g6 D: h) l CItemElem itemelem;
. k2 T8 b' Z" F) [. C itemelem.m_nItemNum = 1;
5 Y0 _: K: T- u3 r itemelem.m_bCharged = TRUE;
- s$ K+ a2 G1 N) v s+ J5 z$ c. N BYTE nID;# z8 q; i3 j% h' B
6 J8 I) T% X0 B
if( nJob == JOB_MENTALIST_HERO )( ]" G4 H4 U; Y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' I- |5 q6 G5 t2 c# h! Z1 {! g if( nJob == JOB_FORCEMASTER_HERO )+ Y/ q1 o/ h. f* F7 V5 B6 ]1 |
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 C( S6 K: @. a! G0 t. O% G
/ Z+ m# i+ j- Z: Z H. F6 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 }5 U1 a+ g4 O
}
$ W' p4 ]2 y, B8 r3 N; M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 e7 k3 y; u& _+ `% S ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ o8 k/ [: t+ D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
b7 x6 |5 b: A+ V2 |" n; T7 y4 Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 b6 _: l: |2 K ( (CUser*)this )->AddTaskBar();*/
& R8 R( j/ ] ^: `# c, I) ]6 ^/ W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 q& U9 T/ f5 J6 g; J
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 R( \& K1 p- B' h |1 @5 F* A
((CUser*)this)->CheckHonorStat();
9 _( G" {9 l5 ^5 ` ((CUser*)this)->AddHonorListAck();
1 r0 H" f/ `' [6 [) o g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ J5 t' A3 _/ w2 x#endif // __HONORABLE_TITLE // ′Tà?3 ~4 x: a8 T t% G
}
8 y0 b: @' [6 b8 I; y' [' C B#endif // __WORLDSERVER6 U1 ~, D' T( e( P" `
} 4 L, n1 s, m' C+ ` ^: P2 |
; J0 F. H" n( c7 C4 \然后你进入functextcmd.cpp并添加以下
% y# E1 X! ^; D3 \; W3 B7 H# ]* Y
. m( y% _+ |. z; Q( Q8 {代码:
+ m% w$ J* Z' K7 UON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" y0 [" z3 f% t6 {9 n% n/ J3 `下面插入
T0 d; O; U! _9 X; [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( {5 N$ V5 {5 i/ y& L; t+ O# o. @/ P) P6 J
然后你去% V5 b: K9 g7 t5 w! ^
; k" `# p) \% A5 D3 U
代码:8 F9 K1 M' \2 S$ V; C9 M
代码$ Z# R3 P" t* d5 G
BOOL TextCmd_ClearPropose( CScanner & s )
( D9 y) T }" K) q2 d `/ Y8 q5 e{
0 b9 P/ Y7 ?2 A$ V3 a#ifdef __WORLDSERVER
t* q. ~% G$ T( Y: X" f CUser* pUser = (CUser*)s.dwValue;
* s) q2 E' `/ a- a5 s W& [; _' h! [: s g_dpDBClient.SendClearPropose();# U- S2 k1 }6 {: H* ~
#endif // __WORLDSERVER$ a/ J1 o* `2 x) C0 b( ]2 _
return TRUE;
* x6 e9 r/ ~5 i$ ~) V3 y% Z}, A7 ?) x* U$ [
下面插入
7 e2 C! C: ^- W' P) ?* ABOOL TextCmd_rebirth( CScanner& scanner )0 y$ `( P4 R+ ]" I: l7 t U: s
{" m0 m9 F! q' b
#ifdef __WORLDSERVER9 g9 x3 b' [& k( a
CUser *pUser;3 l( _, o% Q7 D$ K
pUser = (CUser*)scanner.dwValue;
8 a W$ v2 m6 x, Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 f# K; E1 {* B) _5 Z* Q+ ?
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* f0 D- `& e4 r, C6 Y: ]
else* |; W8 o8 a7 [9 Y1 O" A! `
pUser->AddText("你还未达到重生条件!");2 \. U$ T9 v( o S4 w/ Q! b
#endif
: o/ q+ B0 O0 `5 ?. W" Wreturn TRUE;
- K; z! j- L) m/ ^, A. R}
4 d5 n+ V, ^, a/ C$ p7 m7 C" T* T V
' n/ h0 E# i. y2 E2 c) h
% T! D9 J" O! y) }! q/ [1 }5 a4 m
! m0 u6 n0 L) L( L" E3 h
|
|