|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- x& d9 \" E9 }0 O( H- b: L3 [
% b5 p- P. b4 \$ P7 _$ ?8 l
Mover.h
! d6 p, W& y. f6 ^! a8 T代码:
, e: k7 D/ I) d, p( m; q6 E找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 ?# Z+ v7 X( \
6 }( w5 L: g' L$ e# d, P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 Z; ?& i( O3 L
6 D- z1 c6 g2 d) k: ~
然后你去mover.cpp添加9 b; Q, L: W2 H' ~
3 S; O( _. ?5 U$ f! P代码:9 q1 H0 C; B' M& W' F
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 n6 X+ L: D3 U! ~/ D( t
{
4 @& _( j1 X) Q, @& h# j+ z#ifdef __WORLDSERVER' r% J) V/ t) q% d0 c4 E0 {' O/ f
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 Z/ s7 m y" X. n! C
MoverProp* pProp = GetProp();8 |! O$ J& `, z
if( pProp )
; }1 t! K3 Y7 U8 x {
+ E6 x5 b" o, P f1 l. E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' p1 j/ \) ~/ {5 { G+ g( x) s" y3 ] {! `! s7 M9 q: @ W- O- t9 [
AddChangeJob( nJob );! }" @; o0 S4 f. H7 O( _
}else{
9 R$ Z; A. L/ b return;
: T F4 N6 {+ ^ }/ U( {+ Y2 S3 N: A
int nPoint = 0;- W! \6 h3 @: m4 k8 A/ c8 X- |
if( m_nJob == JOB_MERCENARY )
9 F( N$ \! c! l m( ^- v nPoint += 40;( e$ t2 [; Q8 a) n- r- W3 g6 r
else if( m_nJob == JOB_ACROBAT )8 X9 M0 G$ C6 y" g+ h
nPoint += 50;
" F7 @" ?5 b4 o5 S* D else if( m_nJob == JOB_ASSIST )9 F+ E& q& k3 h1 Y: h& z2 e
nPoint += 60;+ q" d& Q. g. l4 ?+ R
else if( m_nJob == JOB_MAGICIAN ): u4 m4 k1 k8 ^( u7 m* E5 k/ l
nPoint += 90;# h; {) L- {5 j3 ] C( F
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: }% F6 q5 X2 x1 C: Z4 g nPoint += 120;: @+ b5 X6 x5 D% U
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 T ]; G# [3 l; a* ?
nPoint += 150;
0 X0 ]+ W9 G. E9 q* k; X- c9 I/ T else if( m_nJob == JOB_RINGMASTER ); b' G$ K9 [! W; z
nPoint += 160;
8 W1 Y% g5 S+ R% k8 | else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 K$ D$ N: ^' e) A- C nPoint += 180;6 I9 u* _4 q) D/ t! L
else if( m_nJob == JOB_ELEMENTOR )/ V5 Z3 H# b2 S( j) Z ~8 p8 q* ~! F
nPoint += 390;+ F" i9 B/ y' {( N, b8 Q7 {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ M4 g! p. V/ [) ? nPoint += 120;
- U$ _4 B9 b1 A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
_7 l& i% T+ C# E8 T nPoint += 150;
* {0 ?8 D! A6 q* l6 C2 R else if( nJob == JOB_FLORIST_HERO )8 b0 \+ V* n. o/ }+ `
nPoint += 160;, C |- b! `, ]' K" I0 Z; N( |7 @
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 T \# _, e( c* `
nPoint += 180;* C0 C" ^; _3 H+ f
else if( nJob == JOB_ELEMENTORLORD_HERO )+ W/ u x; Y: X+ @! ]
nPoint += 390;% l I* Z; B1 }! E& C: k& U
; L% N& d3 L& N {: C AddSkillPoint( nPoint );# X. ~" I5 ~( N# y/ {
m_nLevel = nLevel;
5 a: V5 Z( i, u: ^# L; P' U0 {
! J' `2 h' H, a4 z' U SetJobLevel( nLevel, nJob );' O% t3 o2 b1 e4 q# M& V
m_nDeathLevel = nLevel;
# o6 @! G7 h8 S q/ l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 q( i) l& C# D; @
if(IsMaster())
* I6 o; i/ R8 N G {/ X) @- \) r* E Y3 C T* s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108" d$ y- T5 s' }
if( nLevel > 59 && nLevel < 72 )
& Y0 ^7 N. J( Z3 L1 @- R- I dwTmpSkLevel = 1;
* G3 e9 U, z- s+ k' o8 E else if( nLevel > 71 && nLevel < 84 )
1 W) H& e) d$ M: y( z( |* C+ W dwTmpSkLevel = 2;
1 M' U+ ], X0 J- l else if( nLevel > 83 && nLevel < 96 )8 t: D3 N/ w* S8 h% u- ?; O. h' ~7 W
dwTmpSkLevel = 3;5 U# w( }; t1 g" H4 e' N
else if( nLevel > 95 && nLevel < 108 )' b- W+ }* F$ ]# v3 ?! W/ N
dwTmpSkLevel = 4;
$ F) ]/ j3 K4 D else if( nLevel > 107 && nLevel < 120 )
2 `4 `- H9 e0 b6 c: b3 p3 \: K D7 w dwTmpSkLevel = 5;# r3 c4 @+ v) `( w' u; a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ]# m1 U A7 W) {0 {; u { # q2 J0 a9 a+ l, x4 y1 ?0 t
LPSKILL lpSkill = &(m_aJobSkill);
P& ~6 k6 m2 a/ f9 f# F+ s if( lpSkill && lpSkill->dwSkill != NULL_ID )+ j8 y0 {' S2 U, _9 C
{: h% I. n( @& A8 h2 c( n9 a# X# ^" \
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 a8 C2 y w ` if( pSkillProp == NULL )
7 F3 O# n! X) w continue;* w1 g) B; }) ^: R' X( m; @* W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 [1 A* M3 F- g continue;: K, @; ?( r' y' F
lpSkill->dwLevel = dwTmpSkLevel;
- F. k% ^4 s0 Y5 p: b( i+ v# _6 V7 M }# u6 `% [- J" b
}
$ Q9 |" ~- f1 `% ] }
$ A0 Z. d# J5 B2 {$ O5 J else if(IsHero())+ b' p6 W2 \; v1 X- Q; M6 F& S
{
- \7 z$ ]$ c4 K- j* n0 R9 I% V9 } for( int i = 0; i < MAX_SKILL_JOB; i++ ) D$ B! M5 i+ H& N
{ ( ~$ c0 r0 R2 o- p- t( S, v2 M( L
LPSKILL lpSkill = &(m_aJobSkill);' u8 v! S- ?. _ @. E, G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) t: r: T3 ?. \; |& [* z" A! E, P! | {% @) \# w6 a* a0 W. m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 F& [' M: H1 l [ if( pSkillProp == NULL )
U4 ?( I6 X) z' i5 k8 @4 r continue;
; n7 R- h8 i v8 G* q3 F7 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 g8 O1 M) S. G/ u- u continue;# d; {* C' C! @: @ b
lpSkill->dwLevel = 5;
$ D) R2 Y0 W) b% ]1 F, K* W( n6 i }
" w4 j2 R0 A4 y }
: g' ^& a5 q( `2 @# g! K. s }# F, }& w1 A( m2 Q, ^1 i
else if(IsLegendHero())
5 `0 W `6 @/ c, N s" E) W) ] {
# a9 Y) J* u$ }1 w7 |0 m for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 @) M# k, E ~1 q$ M
{
6 Y; ^' A* ~8 N LPSKILL lpSkill = &(m_aJobSkill);* o+ ^/ v% n! M* W! Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 F) `* D0 y, l1 |& A
{
, r4 C$ N# \; O/ p2 L- M7 Y5 M3 C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # c' ^' f) a( y. v) x
if( pSkillProp == NULL )9 O1 }( t( O( D T3 c9 d
continue;
3 _! \1 z8 l. E3 z1 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 {- z: l2 \8 F
continue;
5 s1 M: v3 x- S7 ], n7 U lpSkill->dwLevel = 5;$ R2 J- }9 \4 E8 b# X! N
}& G: N% s z- z1 D# U3 E+ D1 |' I( w$ p
}
9 Z1 D4 X0 r5 E) z: m }" V. G8 G# p, z7 L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 b1 W7 K! d4 U if( bGamma )8 q! W2 O3 ]* J- @" M
{
1 Y+ t/ c& ] e" n( d m_nExp1 = 0;
, ]. l+ ]2 E: a9 R3 w5 o ~ }7 T( W+ w. o- [
$ c4 g1 u6 N8 r
( (CUser*)this )->AddSetChangeJob( nJob );
+ P6 `: B% ^/ T8 L* o4 u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, V/ C0 K$ O! y1 {" Z
1 ]$ l4 ~0 P @. u y% v6 @, P6 \1 @5 w. N1 e' g
#if __VER >= 11 // __SYS_PLAYER_DATA0 o# t0 l9 z' N1 R, ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, i# \ w/ M* {# W, k7 z
#else // __SYS_PLAYER_DATA
2 I' U5 G/ g- @) I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 a; u, C- Z4 v0 Q6 {! i& O; E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) @# t$ z; u. f% a6 p if( m_idGuild != 0 )9 R+ r2 H" H: b) w4 }. L8 h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& d" W& f7 [' g; ~6 q4 F#endif // __SYS_PLAYER_DATA
2 w$ ]4 T v' D' z. B( Y4 G/ d SetHitPoint( GetMaxHitPoint() );: s0 g' h& @6 _& \9 c7 ?
SetManaPoint( GetMaxManaPoint() );: o! [0 ?" ^* g8 A& m% @ n
SetFatiguePoint( GetMaxFatiguePoint() );
2 E3 u' z# p9 p* X- z5 q: G6 ^ if( nJob >= 1 && nJob <= 4 )- Z# I( T& o+ n
{/ a# M# s0 y9 J4 x7 d
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* u- t7 D+ g8 P, K" i m_nRemainGP = 28;
3 j$ d5 T$ L% M4 Z8 [$ I }+ d' ~0 _+ W- {! y* A3 W; k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 i# p4 Y! L# n* S, D8 H
{
* ] D1 |$ v6 g- i m_nRemainGP = 118;
* p8 t3 I+ A k1 H0 T. u //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 M3 r. v, o' o3 a& M$ |5 R
m_nStr = m_nSta = m_nDex = m_nInt = 15;# ? r9 L: ^0 w8 T. J
}
1 k; ^, C) `" l% h) _! M2 [8 T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 y$ a. `4 L5 ~7 N# c2 u5 D {; @4 J, ^* j8 T8 s9 p
CItemElem itemelem;6 E/ q0 [2 s1 y4 v
itemelem.m_nItemNum = 1;- b: ?( c; p6 I% i G- f
itemelem.m_bCharged = TRUE;
% {# L6 x% }$ M3 f/ h% w& @ BYTE nID;
& m g6 l4 n, f/ I/ [5 Q( o! O! P) P2 [8 [
if( nJob == JOB_MENTALIST_HERO )
7 \5 @9 V; C3 ]; ^6 p* c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" ?6 j3 A- P) `/ e6 R8 C
if( nJob == JOB_FORCEMASTER_HERO )
- f, d/ K. V; T, O& ?+ p$ | itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
U0 {4 ?$ T7 \: s2 a
+ l, \ q9 @4 T+ p. F# v ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% {+ J2 r% x1 p4 h! \1 L! _ }/ F: h/ O+ G' Y7 V3 D/ `+ r1 X; Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" B3 ]' o- A) i/ n X
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
^2 `- D2 }6 S4 |. X. y' Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 E6 Q" I; h E6 n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( ~/ a o. E8 i) ?5 v% y* I
( (CUser*)this )->AddTaskBar();*/
9 {; M6 S* T7 Y" K# \/ _5 k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 _! N8 Q4 V8 \6 t0 X( C; q* M#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% l' e3 w2 i& | ((CUser*)this)->CheckHonorStat();- e6 i: ?3 \" }$ h7 B- V5 _! P
((CUser*)this)->AddHonorListAck();
$ h- J0 c9 @& T% l$ C+ x1 C g_UserMng.AddHonorTitleChange( this, m_nHonor);* I; F1 t5 }+ e2 |* \# {2 s
#endif // __HONORABLE_TITLE // ′Tà?
$ [4 P8 h. m( p }8 n% |5 w- _7 _- x
#endif // __WORLDSERVER
* _+ f% I0 D+ w; Q1 z} ! f5 ~2 ?# M, D% J3 e, s
F; ?7 p3 W" c+ N然后你进入functextcmd.cpp并添加以下. f( E7 }, g% ~) \- c4 i
* H6 q2 p( T: ^" ]& G; [代码:% L2 O: `* j! b' V* w# ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- }2 ]2 q. e7 u8 C! n# c9 w4 |
下面插入- }+ U; I8 b) r: O7 X! X, |$ z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ c$ ?: E. Y e4 i% U( ?) v: z7 X) g( m
然后你去4 x' k' E4 a: \$ o( b6 V: O# N
( l7 \3 }2 U3 p
代码:
+ c' `# w. ^. k; c代码+ s9 f# K; X: w; {& [
BOOL TextCmd_ClearPropose( CScanner & s ): C. g/ {( z: o2 }% d" F+ \$ v& z) N
{7 N8 Z' r0 l. V! T1 w4 n
#ifdef __WORLDSERVER4 g" R6 @" x0 R. y3 a
CUser* pUser = (CUser*)s.dwValue;3 F: r7 [/ U& ^
g_dpDBClient.SendClearPropose();
0 V7 i% p. y/ N& `2 O1 }8 p#endif // __WORLDSERVER
) S) u7 ?5 D2 u; f2 `+ y$ M return TRUE;
* \3 x0 i c; z# F$ S}
4 B7 m; X3 i8 g4 y7 c$ X下面插入. w8 X9 P) X7 u/ U5 p; W
BOOL TextCmd_rebirth( CScanner& scanner )
0 v8 \8 u! x! L o9 |{4 C- A& ~3 c0 d0 d& T$ D' X
#ifdef __WORLDSERVER0 W. m3 ~4 P- N) V0 m" E$ r
CUser *pUser;% ^! q+ }* B+ B: K
pUser = (CUser*)scanner.dwValue;( T2 a9 j" s2 q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" N# e2 t& n1 lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 S, u& [0 e* f' |; Z. z4 k: k5 v6 ]else* K( W- O* S/ h) T
pUser->AddText("你还未达到重生条件!");
5 \) Z6 q/ P, m" ]8 ^#endif4 I$ ^8 {$ y" @6 m8 r- ~/ t
return TRUE;
/ M7 F7 ~' G4 C" S% b, B1 {}
6 b, R+ e! X3 A5 ?$ T* h+ d+ a( x. ^8 W7 ?
/ w* A/ w0 b2 A7 x- F: M a
, z* y/ H) [+ O" I8 i' S" n! q& b' E3 W# d0 Z
|
|