|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! n8 ~$ j: z! ]
4 f* O+ f+ z$ u0 {3 RMover.h# V. M6 d# q% B2 q5 ]' G
代码:4 E6 w& x- Z% ]! E, G% q* s6 x9 h8 |
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: l8 x7 o* c0 c7 @/ _$ ^! g9 o) k7 u+ U5 p
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ Q: n$ k! a; Q" K4 G: Y2 D; m; j, \
5 z4 n" f) e& D8 _0 W) I然后你去mover.cpp添加1 r+ a: D. E" E& K* `1 @, ]
8 f, n; j. y3 _3 `; |) ^2 U5 ~代码:) u% N, L' t' W1 U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( A; M0 @/ B8 c* ]{
/ u5 N& p2 Q; ?9 h#ifdef __WORLDSERVER
4 P: A8 h7 _# Y1 F. O8 @ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, A: T7 B8 W# Q+ q MoverProp* pProp = GetProp();
6 h, _% h# q6 X" P, l; n if( pProp )1 ~3 ]! Y( n ?+ _
{
9 _2 }$ N* N- @9 ~7 D5 T if( nJob > 0 && nJob < MAX_LEGEND_HERO )
3 Q7 H3 q6 _3 y- h {
+ g5 \. d& s# e2 M+ x! Z3 Z: R! a6 ? AddChangeJob( nJob );5 S8 M$ f8 C; a
}else{
% n& f# w8 z4 r; u1 ^& h/ ~+ i return;
5 W$ V# r- U. R6 l ~5 ~5 q4 j }, j9 K$ X$ N7 W! S @
int nPoint = 0;0 q% o% v5 z- j4 r2 ]- e/ y
if( m_nJob == JOB_MERCENARY )
7 A: @1 h2 E$ Z0 n7 U nPoint += 40;& l$ ~) ]" y; l4 @2 U
else if( m_nJob == JOB_ACROBAT )
& {# L/ M/ l2 H, {' o- w2 y nPoint += 50;
4 U+ M- h7 C5 J7 t$ p( d; s else if( m_nJob == JOB_ASSIST )5 C, h3 }. A- N) W6 [
nPoint += 60;. {; G) A; A& k. A
else if( m_nJob == JOB_MAGICIAN )
. \5 h5 x0 S' U0 q+ r nPoint += 90;
. P; A& U: ~" I$ p' |& T) W" s. e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 G$ b4 c) L4 m, p; Z
nPoint += 120;
d- J. t' y4 f; ?6 J; G, @ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 Q$ x3 E# e8 y4 \4 J
nPoint += 150;
+ s! o' r/ n; m) B else if( m_nJob == JOB_RINGMASTER )
( g6 ~, q1 G7 i! P5 R nPoint += 160;* x T, e! S7 ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- \9 @# w9 m/ G& I* [( ]" O
nPoint += 180;
) z: Q' }7 Y( K: I: Y& ` else if( m_nJob == JOB_ELEMENTOR )
" w5 S) L/ q/ a nPoint += 390;8 l% C {. }5 D- O& \2 I
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 _: J3 i3 S) R! Q& k+ V nPoint += 120;
' _. ~2 R2 Z/ S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 y; [" V3 ^0 D9 @2 a4 U; v; Y nPoint += 150;
& R8 t* q! D# Y else if( nJob == JOB_FLORIST_HERO ), q: ^, g- s5 a
nPoint += 160;
5 O" [. f, Q3 j- V# D9 a else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ o$ y' r& T7 |
nPoint += 180;
( j! f( u9 o" z else if( nJob == JOB_ELEMENTORLORD_HERO )
& c3 v$ [2 f5 T/ f; O4 G$ x nPoint += 390;( C2 U# I1 R: ~7 l' V j
( G, _" M C$ k$ ^
AddSkillPoint( nPoint );
9 V8 T2 U) l! H+ D5 v, w4 o m_nLevel = nLevel;6 q. j/ g$ b* A8 H' \2 d$ b5 T
( F) r. K4 }2 ]. ? ^7 f/ ` SetJobLevel( nLevel, nJob );' j( ^4 A0 S5 y. D$ e! ~ r
m_nDeathLevel = nLevel;& F8 s2 V- }' I3 v. t2 C0 e
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( N8 L4 a9 b3 O, o0 o
if(IsMaster())
# J5 X0 a' m% |2 R6 @# H {5 l( A6 Y0 s' ^ ^0 p8 E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ ]3 [) H2 J: _" L! g* _$ _
if( nLevel > 59 && nLevel < 72 )
7 h; n6 g$ G, { x, ~: S dwTmpSkLevel = 1;
0 I$ R+ u4 Y' ? else if( nLevel > 71 && nLevel < 84 )
4 S4 r0 j- ?3 v; _ dwTmpSkLevel = 2;
- ]+ C( Y3 }$ w$ r" P* S. I* D else if( nLevel > 83 && nLevel < 96 )
( }9 l5 T& h4 q/ l) a dwTmpSkLevel = 3;
9 `2 m5 s2 D z else if( nLevel > 95 && nLevel < 108 )
3 V" W* n. E( w" P, g q dwTmpSkLevel = 4;
`# K8 c" y: w3 q8 c# _$ [ else if( nLevel > 107 && nLevel < 120 )1 ^0 v4 Y0 A }4 k# `1 G
dwTmpSkLevel = 5;
5 G/ [2 R3 D! j for( int i = 0; i < MAX_SKILL_JOB; i++ )
# C( Q8 B0 f1 H1 i* S3 C* W) [7 q { ' ^% q: s7 X3 G! r4 w
LPSKILL lpSkill = &(m_aJobSkill);
+ v& z V' s! Q' @$ C! P* B1 Q" K if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 U* F' N" a% I: i7 S/ e6 \ {
0 C2 G& K& `+ F6 I# r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( a# D' }) V! \) U, h( T: v! e; J; Z if( pSkillProp == NULL ); A; D% B. V, i$ K. q4 K
continue;
1 M$ x9 u) N6 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 c3 j" ^3 v: K3 p6 e
continue;9 x# @- ?, q/ O
lpSkill->dwLevel = dwTmpSkLevel;
* a; @& a: _- ~1 | }9 w3 O4 K0 _5 u& Z5 u9 t" ^" y& P
}
3 O. ~+ Z1 q3 z4 T' } }
; }% |/ b4 \+ E: H5 u else if(IsHero())
6 q N4 ^6 T: q6 A6 d1 R {7 Z! k# @3 v5 @! k( f, ?: g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 v f* r1 w+ \0 Z6 ~ {
7 Z' M. ?6 |6 ?8 p LPSKILL lpSkill = &(m_aJobSkill);
2 `& s% r) `% E) S. I if( lpSkill && lpSkill->dwSkill != NULL_ID ): B+ c4 Q- {( F9 ]. C! E% r4 r
{4 R7 r, x* m7 M5 H$ a4 n% o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" Y: ^9 q6 z; C# u% J9 I if( pSkillProp == NULL )
' Y2 A9 ?; x- ?0 o# t9 v3 \ continue;) [7 R0 |# d* V6 P3 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) T1 P+ |5 q& H2 f
continue;
) V2 a7 @) Y% O5 J1 C lpSkill->dwLevel = 5;# _0 H# G8 ^8 {5 T1 e2 a# G
}
8 h+ h, D( m) j- c& X0 y0 @ }
) W& b4 h- @ `, E }7 ]5 f* ]2 ?' m' T: A
else if(IsLegendHero())
0 Q* g8 ]& r5 c {
+ X7 l5 N+ E2 S Y& h/ s4 t for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 j: g1 ?! s' B' J# x3 R
{ ' \+ S ?8 x x$ Y8 Q( N
LPSKILL lpSkill = &(m_aJobSkill);
2 F, m8 H( C5 l5 T( B- a if( lpSkill && lpSkill->dwSkill != NULL_ID )
* g; Y7 g" L- L. P {
* d* g+ H9 P2 ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ^4 g7 R) f% r$ y! P
if( pSkillProp == NULL )* k! d# n; o7 }* R
continue;( ?5 X4 a- Z% [# |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( N. e3 M; a2 d7 u$ t F continue;6 Q6 e4 i- b' X, E
lpSkill->dwLevel = 5;2 o# A+ V4 i* \* t- u% K3 S: ^" Z
}5 U( [9 ~$ E& \* j
}/ |9 S1 ?/ Q8 i$ j- y6 m' \, ?
}9 O! | I a8 _6 q& Z2 F, P
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) P! K4 a6 g. n ?- p7 f3 r
if( bGamma ). k# V1 O- q1 \ `
{, C% Q% b! o3 @7 w
m_nExp1 = 0;/ M/ X8 }7 h9 D) d) F, w
}/ x8 W1 j/ G9 D
9 E. s/ h8 Z( L/ c
( (CUser*)this )->AddSetChangeJob( nJob );% x2 R- l/ P& K5 K% }
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ s+ `# r4 x5 d( Q8 p3 W
: }: ?1 s: z. H* U( ^( o
8 Y0 k6 r$ Y( m0 | X) n
#if __VER >= 11 // __SYS_PLAYER_DATA3 [. {* o0 b4 x8 P! C3 A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' K" T: K# J4 x: q
#else // __SYS_PLAYER_DATA6 J7 _; K/ f7 @+ h' V
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 o3 u* E$ B4 z8 A! m8 }/ O8 Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 g0 I! u- V5 e) @9 o
if( m_idGuild != 0 )( V" M# I% J" R- p6 i0 i5 K! y G
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 i4 ]3 ]/ m9 k9 b8 }( G#endif // __SYS_PLAYER_DATA% s: _3 F+ J, E. @
SetHitPoint( GetMaxHitPoint() );9 |* o* H( ]1 T2 F
SetManaPoint( GetMaxManaPoint() );
$ V, r( o1 W8 e" {/ r, G9 @( @& `! C SetFatiguePoint( GetMaxFatiguePoint() );: h$ Z8 \/ _1 M2 r: Q2 c
if( nJob >= 1 && nJob <= 4 ) U- z; f" R3 f) C: L) t
{8 K7 d% ~) O6 R& ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;' t1 R: `2 o5 M4 J# M
m_nRemainGP = 28;
9 ~# g- h/ }% i9 \/ c }
) x" o8 e% ~( L. } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! `) R% e% O% a$ s9 I
{- O: ^6 i. b6 l- K5 ^
m_nRemainGP = 118;
# T* m1 ?6 Z$ X" n6 d( J //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 d5 s% K3 ^4 t+ a
m_nStr = m_nSta = m_nDex = m_nInt = 15;" F+ E( _9 q4 z5 Y! w
}
% ?8 I0 B) T, S0 J) v if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 F* J: K. a# `
{- p4 S8 ]; Q( H( K, J
CItemElem itemelem;
5 s3 U4 S( a" X+ o: p' l itemelem.m_nItemNum = 1;, s2 S3 G% \5 g
itemelem.m_bCharged = TRUE;
) b4 a" I% D$ X" H, w3 f BYTE nID;% j. p/ t- c( K0 c8 `! v" b& O
9 q' {* U) B6 o; f6 |; O; I4 j- N
if( nJob == JOB_MENTALIST_HERO )9 m& t n8 e) C# a9 s2 W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. J9 e/ }$ Z/ n% O9 N if( nJob == JOB_FORCEMASTER_HERO )
0 R/ ~- T. N" K4 b' r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* s+ @" b, h6 ~
( i0 g; \: V! U2 b ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 ~3 j: x- F) s0 h& a
}
9 o3 i4 j5 F4 q# [" B; J g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 z4 @, i* _1 B$ E. N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ k9 P) _- i2 r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 `' Y& d/ P- ?
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 |( X: L a* t4 J7 {# x1 P: y, V& b- i
( (CUser*)this )->AddTaskBar();*/7 O# h+ W a, T9 q: c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' s; c" B# R* k$ s4 o
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' ]6 U7 h! V! V1 ?* l
((CUser*)this)->CheckHonorStat();
. E( d/ W% G+ `. Z/ j! `6 i4 x( y ((CUser*)this)->AddHonorListAck();
$ W% v4 A7 F- e; m( A5 F g_UserMng.AddHonorTitleChange( this, m_nHonor);) D+ ~" J6 I" u3 B! o; ^
#endif // __HONORABLE_TITLE // ′Tà?
; F; M! L* `8 r) \5 F+ ~2 x# k }
+ m5 k L3 A# g& W* d. R$ d5 I' x4 |#endif // __WORLDSERVER1 ^1 }6 m1 d4 e. b
} & T5 k- v- \" T: s1 Z& z* X
4 P' n0 e4 \2 }; [然后你进入functextcmd.cpp并添加以下
% w1 Q5 w/ @/ d7 Q" J6 A) \. V& S
4 Q$ W' G. g2 D' d" m代码:: W5 N0 x$ j# v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% |* v" [4 H( g1 U; w# |下面插入# z, `! g6 O q+ p8 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& f/ ~2 O0 Y3 }8 T# i6 Q" {% T, G ?+ t, u
然后你去6 Q V% [' j. r, h1 E
, K7 e, }9 i: r$ M/ g
代码:
& z1 t9 B7 u# w: h3 }) Z代码# D: ~9 T. Q+ q, r5 {
BOOL TextCmd_ClearPropose( CScanner & s )5 W$ ?- \8 C4 b$ W
{
# D6 |; [3 O. P1 V#ifdef __WORLDSERVER
6 {" }' s9 R$ Q6 |6 H CUser* pUser = (CUser*)s.dwValue;3 x- H5 N% A/ m, P
g_dpDBClient.SendClearPropose();$ e8 d- k- p. H
#endif // __WORLDSERVER) [, R3 E3 Q. j# k6 q) C8 s
return TRUE;
# a4 ^, ?: G6 R# U) k" B; }}
& n* {8 [; X. W/ C" y8 m下面插入/ |* g7 {& r% `8 ?
BOOL TextCmd_rebirth( CScanner& scanner )
$ T/ Q/ d4 i0 i/ v{- e3 p7 ]' j+ T. [5 e* m
#ifdef __WORLDSERVER' C9 ~% [' G" p) r9 M
CUser *pUser;
6 S. a; x( M1 n9 rpUser = (CUser*)scanner.dwValue;8 s: R5 t3 r& K& U3 o, O5 R& ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 {4 U) |: h8 K+ `3 {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ T% q) Y+ Z, c/ u t- p
else. s! ?& q* H N
pUser->AddText("你还未达到重生条件!");
0 T# C9 y+ ], W; f, T5 s6 ^#endif- y, \! J& H7 Z! }7 W. Y
return TRUE;. a$ ^( P; z4 X) k
}
1 \6 F. T0 F. w
`2 r1 P3 M C( t m P7 _. D
4 C6 L$ s& D8 h8 Z/ C2 x1 Q% Z2 r* [# e; n* S
" l* ?5 z1 k2 e0 G |
|