|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: [" U5 e( N$ Z5 d: k- Z# w; F3 s# T+ Q' l# s) \7 v
Mover.h
% E. H3 S3 L5 H, I R代码:5 D0 A+ Q) k9 {2 e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
X7 o- H5 C5 X3 Q9 n" ?
5 g( C: t' W0 {/ a) ~4 I: ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) M% I$ _( X5 U, ~% ?. }) c; g
" W& A8 S% i( Z. z0 r2 ?
然后你去mover.cpp添加( a4 t" w7 @. ^
" w- D5 q* S. [& I代码:
. K1 q- x8 e8 |: L7 kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 G' h* _: |, X{
1 _$ r" W' v! l/ c! j3 C% _' _ C#ifdef __WORLDSERVER
* ~4 J `. v$ O5 k // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 Q; w( {- G" e
MoverProp* pProp = GetProp();2 x2 `, k4 G( O" _- i) I& k9 B
if( pProp )
8 M1 n3 d7 C9 f* W' P$ x( U' F# i {" i/ y$ z1 z7 H! P- d
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): N: u" U& ^* q9 J& t. n/ X: L1 F
{
- N/ `: n- v2 D AddChangeJob( nJob );9 U# t; I$ g+ O$ h, l6 Q- m8 P
}else{( }/ h: g3 _! P) m' X, V1 X5 _
return;! a* N; [! U0 u/ m
}
% w3 P0 a+ m. K- S, e6 s int nPoint = 0;
* r( h3 M( f' i y& R+ N+ W if( m_nJob == JOB_MERCENARY )
) X# ] U4 t1 [ c nPoint += 40;
5 L" ^8 J" _) L- I# T, {2 G6 h else if( m_nJob == JOB_ACROBAT )
. l9 \) {1 J' l8 {+ R9 B6 F nPoint += 50; Z, e" w- \# G8 g% [
else if( m_nJob == JOB_ASSIST )
1 _6 ~% ?* Q g ?+ q, k nPoint += 60;( [4 [7 Z: ]+ Y; Y
else if( m_nJob == JOB_MAGICIAN )
8 _" u. M" a5 _8 p nPoint += 90;9 e2 F' n5 x+ a) }3 ]" J- W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ R$ d# O' M7 \. O3 Y: x4 V1 Y
nPoint += 120;
8 ] g; a( O& W8 ?- e$ ]. R" J6 }. g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); M- M g2 P \% i0 ?2 i) k9 { {
nPoint += 150;
1 p' f/ S5 q8 |+ Y$ S- u else if( m_nJob == JOB_RINGMASTER )) [0 ~$ o$ ^+ O( z( T7 `! t& j' `
nPoint += 160;
5 v" K6 y5 L: U, b$ ?: x/ s8 C: t else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 n9 m) O* `2 j/ T, p nPoint += 180;
7 v" y7 @; T! x$ K" I, O else if( m_nJob == JOB_ELEMENTOR )) l3 c8 \; O. W O+ g
nPoint += 390;
( ?" l; _2 ?- C" c' F; o0 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( u5 k3 i! K$ `+ s# g9 U
nPoint += 120;8 k' G+ e( {) I. v! `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 L6 h J# `% K; w
nPoint += 150;
+ T X# C( U3 M9 r6 W6 K. K: b else if( nJob == JOB_FLORIST_HERO )
& A" d$ v4 L9 D nPoint += 160;
, x6 K/ k _1 G1 `) O5 D r/ S% Y* z# M& g else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 z7 `9 f+ f# b1 T
nPoint += 180;$ h! l' B# U; e. ?$ |8 d
else if( nJob == JOB_ELEMENTORLORD_HERO )/ Y1 _' Z/ n3 s
nPoint += 390;
( W8 X a+ _2 C, m+ b2 v4 V" g _9 l3 b( Y8 f! X5 ]3 ^
AddSkillPoint( nPoint );. V( i* R" @2 t6 _9 h$ D- R
m_nLevel = nLevel;
) x0 Z, S. W8 G L6 u; |3 Z o4 h( i4 U1 Q" Q1 G* V7 L
SetJobLevel( nLevel, nJob );3 Z. G; F- w, ^, l" S8 l
m_nDeathLevel = nLevel;; Y9 ?7 G' A0 A8 G% s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 C1 F, G/ Q' {6 M4 R if(IsMaster())
$ ~! [: ^/ d8 d { j1 R+ T/ b0 [2 ?$ E7 _6 c
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1087 j! Y) o7 p: S% u* B2 J# _
if( nLevel > 59 && nLevel < 72 )
3 Y( {/ Y' Y3 o dwTmpSkLevel = 1;
& z. l V( P( _ z9 K y* a else if( nLevel > 71 && nLevel < 84 )
/ I' ~1 C# l, i dwTmpSkLevel = 2;% _, W3 S$ W. D( S a+ |& A
else if( nLevel > 83 && nLevel < 96 )& [5 X+ s6 I ?! u
dwTmpSkLevel = 3;
' M3 q$ G) ^" R7 I2 M else if( nLevel > 95 && nLevel < 108 )* D1 I9 j( G( y& T: Z
dwTmpSkLevel = 4;: D. i2 {3 u8 y2 {# T
else if( nLevel > 107 && nLevel < 120 )
2 R8 K- k1 d+ T$ q& [& }7 U1 H' Y dwTmpSkLevel = 5;$ Q% _0 @. r$ m# T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / }9 y; S' U: u/ O* k: l1 {3 Y( w
{
9 o* b' q6 C' p- a+ X! x LPSKILL lpSkill = &(m_aJobSkill);; q0 J* y; f2 q) G* R- c* m
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 d/ ?6 u0 W4 u% N6 I
{
' u" E8 C3 y7 z5 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 I- [. [+ ?! ^, ^$ {8 J# Y5 v if( pSkillProp == NULL )
) @7 D0 e8 Y* [# E) m continue;
* t7 t1 [* @* s$ M2 ?' ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" M6 c w+ c/ e9 |) ]# {" g# w continue;
, I3 y/ @8 j% g8 j3 d% V lpSkill->dwLevel = dwTmpSkLevel;
( B" q7 u+ [$ ]- d" i& V3 x }
$ z" n1 ?8 I, o d+ H% x }
& P+ ?0 G; Q4 E2 _ }0 B7 w+ e# l- B' a
else if(IsHero())
5 r7 {4 d+ W) | {, O, I, w% P% i6 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 s2 D7 h F+ ~ {
+ T8 _& R" [# p0 `+ M/ t) [ LPSKILL lpSkill = &(m_aJobSkill);; t" m% D0 O9 P) g; r
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 Y9 @+ n" ~# Z3 i
{
- x h8 v( i! P O | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( W% Q+ B" A; A if( pSkillProp == NULL )
' n: J, e4 S. b* o9 X$ S* U continue;
9 g1 H/ @' y6 a: ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& X8 L. F7 y& ?( D a continue;$ k5 S) ]- k, O8 R
lpSkill->dwLevel = 5;; y9 y: x: H3 w: t3 `- L
}
8 T$ c5 T+ c! U7 K2 V, ~+ i& Q4 B }
4 |+ o: R3 [( v( N# E. { }( i9 `; K! d) M
else if(IsLegendHero())
7 p$ X8 _5 Z0 P1 \" |, L+ U | {- F! A3 |# B ?
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" |. e# ^7 E( B8 _- R. I {
. J3 @7 F4 f# B( |1 _ LPSKILL lpSkill = &(m_aJobSkill);
" F. F0 {/ J2 C% b; l$ n if( lpSkill && lpSkill->dwSkill != NULL_ID )5 `, w2 O' e. V0 T+ n
{
$ [' [1 x) L1 _% f& N) T# Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( \9 p9 g! I* N- L+ L+ S- t$ h
if( pSkillProp == NULL )
$ ^# q' X5 B( F. V# W& l# m+ t# m! F continue;& u2 r+ j1 O: u9 ?! D8 F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& @6 P8 w. I7 G& P, }7 c2 ] continue;% C0 |; s L% N# P8 c
lpSkill->dwLevel = 5;
. P$ O1 l3 U( f' H% h5 J# ? }9 m4 |& v: o5 e1 }$ g. y
}" a! D. |0 z1 ]; u! Z4 \: @
}
5 @& l k/ H# V, [. X#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. r) _. `/ C6 Z2 N5 E3 |
if( bGamma )
: P% A- \3 T( G" E/ Y+ S8 A {2 Z% c1 H3 o) P& d
m_nExp1 = 0;" m) Y; q- V( J2 ]0 l% n
}) Y4 o0 W' p* n& Y) S K' U4 L
, H' V: l x5 `' }; O# {( A& U! y. j
( (CUser*)this )->AddSetChangeJob( nJob );3 q3 e! {2 \9 |; B, h) a: `# D% U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* D1 m+ b" Q" i5 |# H6 U' I
3 w4 [: D9 k7 ^% m* t
3 u" C) e; ^# ^- g2 t" s6 [#if __VER >= 11 // __SYS_PLAYER_DATA
4 f) ~' U! a- t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 \) H& E: O2 E" O2 F7 J
#else // __SYS_PLAYER_DATA
5 Z# r$ D. i; V' _& ]2 e g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 B) L$ U& k3 O( m. {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 A/ q# O7 P$ n' K/ g9 V% q" C
if( m_idGuild != 0 )
: t( f' P0 V7 ]1 c$ q' h7 p g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: V& M- A: l, j- z
#endif // __SYS_PLAYER_DATA+ K7 ~. ]) G$ |( B6 o) ]6 ?
SetHitPoint( GetMaxHitPoint() );) G/ B* j5 f# Z$ c/ e9 |$ O2 B
SetManaPoint( GetMaxManaPoint() );
/ h. g/ r0 E! X' D7 I) [2 B SetFatiguePoint( GetMaxFatiguePoint() );
# E5 T' _, Z& g0 j if( nJob >= 1 && nJob <= 4 )7 P8 c% m* D% A$ j, c
{' s% G' y; j/ y5 i, {# `( d* G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) j# h3 m) O( z. U5 A* j m_nRemainGP = 28;/ @& C1 V; e( O8 n/ P/ P! Y
}1 }/ }; j* N' X1 f& F/ b- V* p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# v4 A/ r- O5 n0 R) o {) h: c* ?2 Y; S/ L# }
m_nRemainGP = 118;
, o, y$ }. U/ s2 r2 A- V //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ L3 `* r% E; f! K+ M4 k
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* V1 ]" U: p3 m& t! q! I }
( z) ^/ W4 K0 W1 ?' ~3 d, H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) h, R/ s) a" ]" v4 N
{
K+ ?8 G! d; ^ W* \* V0 U CItemElem itemelem;
/ ^9 c7 |( @$ _! p, B itemelem.m_nItemNum = 1;
4 U( r6 A; ]3 u3 w0 \# j( X; @ itemelem.m_bCharged = TRUE;
( K( x( N- f+ Z BYTE nID;; d( n0 K) l. A8 I2 U! K: n4 O3 {
; \+ l9 U2 k7 [" W9 v
if( nJob == JOB_MENTALIST_HERO )
1 c% l) w8 I1 e a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# ]9 L$ l3 |) V; J. ^& K if( nJob == JOB_FORCEMASTER_HERO )
2 e; m( B2 T3 v itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 y* i! y3 I) L% D' a6 z, t
) |: U! ]9 {$ G! c8 M+ j6 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 Q0 A" E& ?8 @9 F! R }. R0 k( ^1 Z; z( L3 ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& j* q E$ @1 i. P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 f- R) d% n$ h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% H2 M q+ Q. h/ F/ T. Q+ Z$ t* g! q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! L7 j' K* r4 J9 b ( (CUser*)this )->AddTaskBar();*/, }8 e* Z# l5 V6 H: c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 n2 E8 W# Q; T: \: w) `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' r9 s9 q0 A Z0 l; O
((CUser*)this)->CheckHonorStat();
- n5 } o( w! b. W, d ((CUser*)this)->AddHonorListAck();; T4 R+ H) C+ W
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 ?# D+ Z+ M2 e6 T2 ?4 K" }#endif // __HONORABLE_TITLE // ′Tà?0 N0 o* P+ c, e, o% p3 T2 f" V( t
}# D1 U- }: C/ p# o; v0 t8 U
#endif // __WORLDSERVER
* L% H) G* C, g& }2 A! _- x( U% O} 7 D* ~4 }8 _" Q" X& M
5 Z" w( }: G% |% B# { F+ `
然后你进入functextcmd.cpp并添加以下6 {/ x+ E2 R! `
; B$ B. f- O `" O5 F
代码:, p% s8 |( h- M) P5 u( S( h/ \* _
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 q6 l8 M1 J/ t, L8 d6 O1 { r4 Y
下面插入
+ H& O0 ~7 n- y" V+ dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 n2 N# K; I) `5 }2 n7 j. U3 V, X5 e- `& K# l
然后你去
- q+ [& h6 |/ V+ T3 G# R
) @3 R) O3 g0 }代码:
+ y% W0 ?: {4 D" c# b1 x代码
4 j* B& b9 i/ MBOOL TextCmd_ClearPropose( CScanner & s )2 V% M }% `, E* {
{
, j: c6 }4 I1 q9 d9 f#ifdef __WORLDSERVER
`" t/ T' n F CUser* pUser = (CUser*)s.dwValue;
8 p- x2 O. N2 Q) {3 r) C g_dpDBClient.SendClearPropose();
% L1 N! }) D. H9 t; C#endif // __WORLDSERVER3 C) M" J2 z3 _: e
return TRUE;
, z6 V# B+ L* O" W}" [9 x# s/ o I& ?7 }1 e
下面插入. [/ {, [, {( d6 d* w' m* a
BOOL TextCmd_rebirth( CScanner& scanner )3 A- ?- Q( x9 h2 |
{" c9 \$ w# r4 K- f. f! Q
#ifdef __WORLDSERVER
5 O- i" ?; B0 yCUser *pUser;, E5 M7 B# v) v$ k/ P. ?; S
pUser = (CUser*)scanner.dwValue;+ `: L6 g* P( `1 s6 C) `4 ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 m3 J W& t/ g$ {( epUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# z7 b1 y- Q" ?. ~. E7 C W
else, E m* l) B7 i$ u& y
pUser->AddText("你还未达到重生条件!");! [( P9 D+ k# m! Q' {4 u8 \0 I
#endif
# w s+ t1 i' hreturn TRUE; D9 U7 `% d( k6 \
} 2 |: {& k9 Y% C9 q" w: ~( X
; ]* p' e( s. B2 a) M, r2 Y/ m$ b" q" I1 N2 W8 {9 l
; \& E0 p+ A6 D
$ L0 x( ?' g) T" D9 j2 n) @ |
|