|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! a* _4 f, E1 |- ~
* z4 W y( [7 q) x
Mover.h/ D3 _& R5 s( G$ p3 U
代码:# t+ `6 q }4 K, w8 ~6 d% s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 _5 T4 ~8 I4 Q8 S0 p. }' G% ~) t" P5 y S. w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ o" O, a. Y) P( E
/ S0 \- e3 N% g0 e1 @. f
然后你去mover.cpp添加
: G6 F" P& ]* h* [/ T2 a7 s4 o& t5 p% B N9 o) s8 e, ~
代码:; V m) k% y* ?* h/ s5 ]/ g& y. w
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 F7 o6 S9 x5 B4 w& F. O c) I
{1 O o0 y% l, W- l! o
#ifdef __WORLDSERVER7 `( ~6 i! i, G, i; Y- g6 R2 f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, Z% \ A7 c. r! c* H z8 C" s MoverProp* pProp = GetProp();+ S, j F+ c4 m4 e0 y
if( pProp ); g. G4 q) S2 \6 a* ]' l
{& O: `% ^! i+ E; F+ a7 g0 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ w& A+ o/ V# w: B7 [) t2 U
{6 M* Y/ {8 P% L+ F+ A ^/ N
AddChangeJob( nJob );, X- Z# z& f5 D( y& `& U4 W$ @
}else{3 B; Y: v8 z* p: @
return;
, c \) G% q" N% F( i2 ~ }; i9 P1 ^$ n7 S# M- h
int nPoint = 0;4 e |. W) ?& \8 V* Y( i- I: h
if( m_nJob == JOB_MERCENARY )
$ R' `$ I+ m+ W9 s nPoint += 40;/ e) M. F( I+ [% g1 {0 J+ X
else if( m_nJob == JOB_ACROBAT )
- _8 @. s+ Z& S: B7 z8 y nPoint += 50;
! d4 m0 S5 V( O6 n1 d9 b# q else if( m_nJob == JOB_ASSIST ) ]$ J" r9 ^5 G. l, _* x4 n) v
nPoint += 60;
" a. U& w* b$ U( d3 H3 d else if( m_nJob == JOB_MAGICIAN )8 h" z! B* g+ u5 c5 L' Q+ i
nPoint += 90;! z5 T6 {4 J/ s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# T. `% S) N P3 C' J- A nPoint += 120;
5 [, M5 Q9 o+ e; r, i5 {1 l else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ P2 b+ \8 o( \: k nPoint += 150;
u1 D3 K) F4 D. U' F else if( m_nJob == JOB_RINGMASTER ); }; T4 s0 w; d7 L; r' _
nPoint += 160;
! \, C. Z5 V; e- [6 d, i2 ~ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* Z+ e8 F, {( h3 ]( W V nPoint += 180;
" x# z( d4 b. r0 E. g, V9 L- r else if( m_nJob == JOB_ELEMENTOR )
5 \! Z" @( p4 ]7 T: p. M0 f J* A k nPoint += 390;
& Q+ z4 }! [7 I' z4 X9 q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
m$ L7 E0 P, Q( ^9 I nPoint += 120;
! A: C# Q. b# v: |) V- D( l C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), I, ~* b; P+ A V3 X9 q
nPoint += 150;
9 n- l0 m5 s2 _5 _) h else if( nJob == JOB_FLORIST_HERO )4 u9 B, w4 h+ e
nPoint += 160;" m- ^; |! L& ?! h$ M1 a: t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 ~5 e; m: {$ C' {* u# A nPoint += 180;
1 `: V T( H; R$ i. L& }/ @7 E else if( nJob == JOB_ELEMENTORLORD_HERO ): M4 f# x2 Q9 L" B
nPoint += 390;
$ o+ Y3 R/ |7 \3 V2 L# T$ U8 j8 `* N0 z; E
AddSkillPoint( nPoint );' a; t, R! s; B5 i+ H8 a5 `
m_nLevel = nLevel;6 Z/ b- R2 S- j1 W% Y! c
, X" ^; v: f0 A$ H SetJobLevel( nLevel, nJob );+ d' m4 I! G; o9 g; _
m_nDeathLevel = nLevel;
' v: s; U0 M/ n7 \" E; \* Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 b1 C4 f# ^9 T0 L# F if(IsMaster())
9 e2 \8 j# P7 C& C {. F, {5 D$ X6 E5 E1 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, O# t. x8 D0 _: F2 `, z$ w: m if( nLevel > 59 && nLevel < 72 )0 {% P5 b+ ], W- s' d
dwTmpSkLevel = 1;* P9 g- B9 Y% J$ V6 |
else if( nLevel > 71 && nLevel < 84 )# T4 o. p, f6 ]7 D9 `5 Y6 U) w. D( ?
dwTmpSkLevel = 2;
! e/ g$ ?( x' m else if( nLevel > 83 && nLevel < 96 )" |& U6 o9 j" g
dwTmpSkLevel = 3;
: \6 R* ~# G& C( B1 K else if( nLevel > 95 && nLevel < 108 )
. L4 g x0 x1 u& \% j- d: S& _ dwTmpSkLevel = 4;8 w) A0 W$ Q/ c( H
else if( nLevel > 107 && nLevel < 120 )
. x8 x6 m+ P/ C% P3 c, p* S dwTmpSkLevel = 5;
) X: X1 g+ b' U8 ^% U for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 n- O" s! \8 {' K- ?: C6 l
{ ; y: J' X3 w9 @- @& b
LPSKILL lpSkill = &(m_aJobSkill);$ D/ `* X: S- _/ ~4 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )% f9 N& R8 z3 |4 [' _: v5 Y d
{0 E# d6 M: y* s4 u% S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 e# K; m" d+ S; }7 W if( pSkillProp == NULL ): K. T+ F7 x6 b* B' X# r# O- i% g
continue;
6 \( _; n. G* W) P8 c if( pSkillProp->dwItemKind1 != JTYPE_MASTER); V# N' t# k" v) N
continue;7 T$ W0 n% }- T' W5 c1 N. ~" j
lpSkill->dwLevel = dwTmpSkLevel;5 g4 t5 p8 e; T# G2 ?2 H6 N/ t( a
}
* A$ k7 @, t5 A0 f! M2 |5 V }
) `/ C3 R7 p0 x4 e5 m }1 ^# h1 m6 u* v4 m+ Z
else if(IsHero()). r$ B0 O" H( H3 s8 t y& K
{
' Y' q0 B; n. P2 M for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 t" l- u5 Q1 Q3 Y- p9 j { 3 }3 q$ S, P% P6 ?
LPSKILL lpSkill = &(m_aJobSkill);
9 s9 X7 B3 S. n if( lpSkill && lpSkill->dwSkill != NULL_ID ), ~" c% z8 o! @' U
{
! s7 R8 O5 p. f) @1 Z7 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
w3 m% V9 ?; d8 D# F3 y9 n if( pSkillProp == NULL ) Y8 b/ a) E% N) p# r3 n
continue;
/ | e i& U6 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ \6 Q' N8 I+ D! X) D% i, q+ p continue;
4 _, v K, G0 v4 ~, f% X lpSkill->dwLevel = 5;% W) n( n" W: w( l+ P, ?
}
6 Y5 U+ z8 ?+ C }
0 s/ |6 V4 q& [) T- B }: n# y2 K8 e G6 r. @$ x/ \
else if(IsLegendHero())
' J, Q' M: ? b7 g$ h {' u& o7 B0 X: ~+ ~/ g* `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % q0 P( V9 \* p5 K9 F
{ ! }3 b) o3 J D y4 l
LPSKILL lpSkill = &(m_aJobSkill);$ r: Z8 @2 @5 v( m2 X: B
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ P" h% l: A( ~3 J7 z$ A( _2 x d {, ]8 t. [4 ~0 V4 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 w% y" M% |- R& L if( pSkillProp == NULL )
* S$ A! u( H8 W6 g1 W1 Z; P continue;) F, a4 [, x- U$ \. Y" z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 c9 k) h2 [1 _
continue;
' K) }0 ]1 v3 p# Q* F lpSkill->dwLevel = 5;+ u# X6 E! t) @* g2 ]+ \
}; ~5 p2 v4 c) d
}
& O- `6 h1 K4 d% {1 H }
8 i8 Z# u( \1 A0 D#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ R' {" y/ ~6 J1 k
if( bGamma )+ a$ r8 L9 C+ ^' j, p
{. R+ ~8 ?5 T7 ~0 E
m_nExp1 = 0;
9 X; l2 F; Y5 @* H% ] }
; }6 `* U$ j3 q2 d: v7 `4 m8 T" E- G( f% H+ i
( (CUser*)this )->AddSetChangeJob( nJob );
' L2 Y; ^+ L0 {9 K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' A( G8 O7 m% A. {
) D. j- \% R$ W8 }, F0 h* b Q6 z+ |# e0 l
#if __VER >= 11 // __SYS_PLAYER_DATA
5 e) T6 X* U2 X8 L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% c0 [$ b0 A2 O c" p
#else // __SYS_PLAYER_DATA7 @* I0 E6 Y4 P; o$ A
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 y- F8 G6 Q; z% [2 M$ d4 d! Z2 z g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% w( i+ v7 Q, D5 `# e
if( m_idGuild != 0 )
U% _, H- |0 [4 i4 I g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 k$ d! d' o) T% d#endif // __SYS_PLAYER_DATA
+ R0 ]* Y0 p& V7 w" f+ ?2 I' \ SetHitPoint( GetMaxHitPoint() );- O9 J! d) S3 G* G/ d
SetManaPoint( GetMaxManaPoint() );
3 L& U: e7 x2 n1 R" X* ?9 D SetFatiguePoint( GetMaxFatiguePoint() );
) B! y: W$ x' W, S" I# @ if( nJob >= 1 && nJob <= 4 )
& n1 d/ z0 A5 d3 E; { {
% M5 O7 A0 u' D2 K M8 W; { m_nStr = m_nSta = m_nDex = m_nInt = 15;' \8 H, d5 L& g6 l9 T- G/ l% j; S- Q
m_nRemainGP = 28;
5 ^( }* L0 j0 s3 }5 H! c3 k }6 R( j$ J6 |2 t& H9 b6 K0 b& | f; N/ \
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 S" b1 M- [0 M$ r3 g! _ {, Z3 F+ `; a, e
m_nRemainGP = 118;9 N; K3 |3 {! v
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 X) G/ {- G* Q' _3 ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ \+ ]& P+ C% |! c) B0 y }
+ O# y9 k7 D) r; _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )$ @2 g" }6 {! c+ z" A
{& r* g8 o. O5 @( [5 h7 d
CItemElem itemelem;
9 ]8 m8 w2 c# V3 L itemelem.m_nItemNum = 1; Y# F: D$ y% J1 l9 Q- Z
itemelem.m_bCharged = TRUE;
. q& B1 h" S& ~* S7 d) @" [# b BYTE nID;
: t! W2 J# I: D5 e" O* F, @" |% J0 {# D3 I
if( nJob == JOB_MENTALIST_HERO )
6 C* t$ l7 U+ P. ?5 y. K0 s7 P9 s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 L( I1 ]5 j4 z8 a$ v' V4 R7 @! V
if( nJob == JOB_FORCEMASTER_HERO )6 ^- j& e: q5 ~2 m. a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
6 z7 Q" E# R! }3 H
) H. a" n n y ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 u2 t; O) o7 _1 N. Q- L" Q
}
' o& a( M6 _. I+ K- x) x% y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 V! E& b0 {# P$ |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, @2 A3 S. U. A- r3 O* ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 C1 i) c3 h6 q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 Z3 ]* u& G% U2 f$ E+ a2 j
( (CUser*)this )->AddTaskBar();*/: B+ X. S) G- Q. P! T4 p/ J
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 O, i9 a( f) x4 N5 o' H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 s2 c: m; l2 P2 B9 Z; _/ ^
((CUser*)this)->CheckHonorStat();- n- x: v3 X* e$ t+ R8 s( ?6 m5 e8 S2 [
((CUser*)this)->AddHonorListAck();
. G$ ]- z. _! x+ E2 K g_UserMng.AddHonorTitleChange( this, m_nHonor);
' L3 v, U2 L6 T- j2 |- h#endif // __HONORABLE_TITLE // ′Tà?
" I( A3 p/ A7 u& ~) E }
6 P/ U6 r$ m$ _' I) b#endif // __WORLDSERVER9 {$ W7 F, f s/ y
} % g' \9 F9 Y0 m) A% l
: W0 B( v; C& C" L! U% A9 p1 f
然后你进入functextcmd.cpp并添加以下# v; r! N- z; K( l4 Q
$ h' g$ W! F$ Q% D
代码:
: p, T$ k" V% M- j! g( r _: [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' I" M# H$ g3 O1 n下面插入
( p2 k+ o. q( R1 l$ hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ h5 b/ }0 @2 i% k1 v( w- C$ f$ g9 y8 [0 ^% S
然后你去2 ]5 ^: \1 Q# Z# I
! ?6 \ G0 f3 _( R0 h+ ~5 p代码:" s7 o3 v- W6 T0 A/ K1 O. H
代码1 A6 b4 m9 Z+ Q2 Q- l* D" G; H x
BOOL TextCmd_ClearPropose( CScanner & s )
. y. k: V1 J+ k9 |5 G! o* ]' |3 m! J{ D! @) w& b! `* s
#ifdef __WORLDSERVER/ r: b2 I$ C5 Z* r
CUser* pUser = (CUser*)s.dwValue;2 j9 s! U& C) c- R% h& P/ E1 e
g_dpDBClient.SendClearPropose();5 R7 m+ U' V* G# s; J
#endif // __WORLDSERVER
. H. v) c4 n0 |5 P return TRUE;
5 `) r) B0 N5 f: `}
6 v; @8 S& Y6 }+ i下面插入
4 b3 D& |% h1 r- p; J. K+ _- Y }BOOL TextCmd_rebirth( CScanner& scanner )1 R+ R/ V/ ^9 |& k
{
* b7 A5 @2 P8 [: {#ifdef __WORLDSERVER2 B2 a; _5 v( R
CUser *pUser;: t, @3 Y) p8 V0 C
pUser = (CUser*)scanner.dwValue;
6 t u7 V( X/ g( y. yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 U) x6 w6 a* d; E/ r4 }3 \" mpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
! D& a4 E, J5 K: @4 @3 Celse3 r# ^5 v4 w; A4 h
pUser->AddText("你还未达到重生条件!");# p+ \: L/ H4 Y
#endif2 l3 I5 O7 v( w1 r! B: e1 m
return TRUE;" ~1 V3 y3 X0 x( h" r4 E8 o/ h7 {
} @, G' x. E; U/ [$ Q: }
0 Z+ f5 }. ^/ X- R5 N% K4 N6 z+ @
, z& x! b- h' |3 ] a* w4 _1 y4 x3 @4 g$ J7 e$ x% O
& T0 `/ {# ?3 g6 ?
|
|