|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ B% f7 V5 n9 F/ } V$ e! H, \
9 Y7 V5 t9 F" ?0 ^5 E" \2 {Mover.h
3 Q4 t8 V5 U% j' r9 d% Z7 x7 N代码:
2 `; r3 W1 c* G) U z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 _( a# h E0 M# ~+ {
: ?7 C) N8 Z: G) d下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, B! \ H' D5 E3 M0 P& R) M# b7 D# ~2 V1 c+ E
然后你去mover.cpp添加: p6 o6 ~: q4 U
) B' B; s# {9 T0 f
代码:! Z4 n' T" {3 B
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& Y, m; a0 |- z3 [4 @0 {1 d
{" x" i6 Y" O/ U4 H
#ifdef __WORLDSERVER
) w( B% ^. v" M+ B( \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; ?/ f* E! f4 u9 u+ e( y0 f3 t
MoverProp* pProp = GetProp();
7 Z1 h- c; w) g- J1 V; _ if( pProp )
* u$ S5 ?: v0 ^8 ^ {
# W. I; {- J& v& { if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ s I7 O% p. g# j$ f
{
4 k; j! C5 v0 v! { AddChangeJob( nJob );
+ a1 C! P4 C3 C8 K- x }else{4 v0 V) i4 t' t h6 L
return;0 c/ @' r. z2 I6 E& F/ j q" R
}
% g0 u* p6 @6 R& [% S$ R8 q* r; n int nPoint = 0;
. T; L$ i# [" Z) y if( m_nJob == JOB_MERCENARY )
% N7 k: J$ Q u nPoint += 40;
4 {! S/ A5 o0 j+ j: Z; ]2 O, m% w/ v else if( m_nJob == JOB_ACROBAT )
/ q: G; J! t! C" m/ x9 [ nPoint += 50;
" J, C5 U! V3 c6 j8 o4 X) u else if( m_nJob == JOB_ASSIST )
/ Y# s1 `* ~* ]2 ?( S; r nPoint += 60;
- H% b/ M y! ?1 O$ W else if( m_nJob == JOB_MAGICIAN )2 S# J; R( Q. w2 ?. E8 U9 M
nPoint += 90;
: w& p* M. A8 X7 Y" J: ] a0 D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( \- ^1 l; {: m! y4 d nPoint += 120;$ a, S& q. `! E4 e- Z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) s4 p, i2 d$ { nPoint += 150;
5 v7 U0 ^# p( h, W else if( m_nJob == JOB_RINGMASTER )& P0 s/ b' w( T: S5 J5 x% S
nPoint += 160;+ l+ S0 F$ F, Z' R$ ~( b) i3 y, a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) n, _6 c" H" `: {
nPoint += 180;# k5 L" y* s/ O
else if( m_nJob == JOB_ELEMENTOR )2 _: e$ r! b1 \8 @! n
nPoint += 390;) R, D/ t3 k e3 V( l3 i1 I# J. g
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" ^& Z' w$ D I2 n$ L: B& Y+ N' s
nPoint += 120;5 K8 e* t5 e( U/ S% d
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* M+ y/ m2 ~4 M& [* i% n3 z/ U9 A nPoint += 150;
; T4 m2 V" p9 h/ f% N2 D3 [ else if( nJob == JOB_FLORIST_HERO ), o% z( P- \; N4 [" O. o; Y7 e
nPoint += 160;. B5 h4 f. B4 A+ ^! S) I% m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) [6 v: q3 ^9 x ^) {" m
nPoint += 180;3 m ^* J( j1 F8 S. ]0 r, Q
else if( nJob == JOB_ELEMENTORLORD_HERO )
& E: w7 U9 L3 [6 r' m nPoint += 390;) I' ]6 \/ q$ e t2 _+ L# }
# h7 q+ _$ ]7 m& Y6 S( |" X6 w AddSkillPoint( nPoint );
+ U% y; h; c" N2 m6 e) R1 ^( C/ O- v m_nLevel = nLevel;* z( ?3 N0 Y3 |8 u4 @
; Z1 j$ c& d6 }; W+ r3 p5 x# t/ Q k SetJobLevel( nLevel, nJob );6 y: e" j# B2 b7 ^1 o/ ]$ H
m_nDeathLevel = nLevel;- [* B3 m# i y. b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 V$ C" N7 }. w2 y, J; ]7 V if(IsMaster())
0 o! F2 T) U' I8 T6 I$ r {
# h" p5 Q+ X5 o0 `0 v1 B int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; S1 d: i9 ^( S- o if( nLevel > 59 && nLevel < 72 )9 K) F" @5 u4 ~! E$ \
dwTmpSkLevel = 1;
1 }: u- j) R! K2 x' `3 } else if( nLevel > 71 && nLevel < 84 )
+ I; R0 [, o; s- H0 O3 V dwTmpSkLevel = 2;% A+ L2 {2 t; Q. v
else if( nLevel > 83 && nLevel < 96 ), [+ m; u2 \ w$ R* o; {
dwTmpSkLevel = 3;3 i5 V6 b2 @0 j3 k; B9 ~# Y& c
else if( nLevel > 95 && nLevel < 108 )
9 Q* P, B& }8 v7 `7 n& f* T dwTmpSkLevel = 4;
/ N& I) S" L1 g" V7 R6 V else if( nLevel > 107 && nLevel < 120 )% V) O5 u4 R# ^+ b! f/ R
dwTmpSkLevel = 5;
6 z8 x3 i; ^! q+ T/ h for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 ], l" G+ j0 s2 L8 T# \ { ; a0 Y" g2 y' C7 e* u l& V
LPSKILL lpSkill = &(m_aJobSkill);. f% s3 B4 {1 W6 d7 p% Z2 H7 ~: z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
x& X- ^0 V! T& Z {
6 X& @$ l8 G/ {9 K2 b0 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 b7 a' H8 O- e9 A
if( pSkillProp == NULL )
! _- g0 Y( j( b. n7 W7 N# |3 R continue;. _3 @. C7 J) p: h [( h/ m+ c1 w U7 B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ P1 X& w& Y5 R! V& `) L7 b continue;6 B9 d' a" N' V. a* @
lpSkill->dwLevel = dwTmpSkLevel;, q9 a3 h; w: c( [' v2 V+ P
}0 A, i! x. V0 u9 q& G6 E' `% Y
}
" @; w$ ?9 l# X# _4 U, H; Q' L }: X* @5 N$ d- ^
else if(IsHero())
9 _# V! _' i8 h) |0 G6 P {
- p, v3 v) Y0 s) m& _ for( int i = 0; i < MAX_SKILL_JOB; i++ )
# o+ e) t! z; J; K0 Z4 X9 X {
1 z, ?6 ^7 k, {: ^: Y! z LPSKILL lpSkill = &(m_aJobSkill);/ ]3 R6 G2 S4 `. ?/ L
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ s5 W0 Q2 p/ M1 c% r
{6 Z4 w- y! Z3 |, M* z! B/ C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ E8 u) D0 w+ a* b
if( pSkillProp == NULL )9 J' J8 x( f- f2 E/ Z
continue;9 M; H- _" r4 a& S( O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! F" V5 x- s# u" q continue;
/ q+ c4 C b2 z4 z6 I3 | lpSkill->dwLevel = 5;
; G- }: L& Q: `" z }
! a. k/ t: R, F& b; i: | }; S% u5 B3 a% K0 R$ F
}
- x$ ^+ G/ q9 s9 d$ y else if(IsLegendHero())$ U/ a" R6 D" Y
{
6 R& ^5 X* I$ Q; n4 d2 |/ n' E/ Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ |2 P: a( u# h { - W' _' e* f( `/ O* v
LPSKILL lpSkill = &(m_aJobSkill);
4 K5 ^9 ?- ]/ t8 R if( lpSkill && lpSkill->dwSkill != NULL_ID )# e8 }4 Q7 [% y, I
{; t0 D; R% r: G* b% d0 f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " O1 F4 E. [; X% N I
if( pSkillProp == NULL )
* r7 j3 ^9 N! r continue;2 H0 a$ w) j0 h( r% t; C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 L: @# X/ [. s0 E$ l u0 s
continue;
. [4 t% z; N' Z1 O- e lpSkill->dwLevel = 5;
, h# Z4 n( C" u' l* z' x }
) k; w$ I0 R7 D" \! B6 [4 m }; ]% g; N# N. P5 D
}
, U7 z7 r' K( N2 |4 d2 U, W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( R) ]- I, H- h1 H ^# H, t7 P
if( bGamma )+ P( H$ T/ K6 D4 J, u! B
{2 T5 Y4 I) i# R* S
m_nExp1 = 0;1 @ _1 D5 G" A' q3 @1 x6 F
}+ K. d9 m; S5 M6 ^# I" F/ W2 r
. P5 b7 p" A# Q0 Y. {
( (CUser*)this )->AddSetChangeJob( nJob );- {- G; M8 E0 c$ | z2 ^% F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, @/ f' b$ h; `% Y. H2 S2 r D; u2 S+ z4 p
Z9 |: c4 q' `1 S#if __VER >= 11 // __SYS_PLAYER_DATA
t$ G5 \+ x% T! G5 n; R g_dpDBClient.SendUpdatePlayerData( (CUser*)this );% P. u8 j- s; N q& A3 `
#else // __SYS_PLAYER_DATA
$ d: _8 z" X( M+ r g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& J( c2 o$ t6 B# \& J2 W, M2 _1 i# m+ r g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# W7 y' P+ o) R1 u' A- [
if( m_idGuild != 0 )
9 [! l9 ^1 Z) i6 |7 D8 w. ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* _9 ~# \9 X- \2 }
#endif // __SYS_PLAYER_DATA8 W4 }5 ]5 ?7 e1 r
SetHitPoint( GetMaxHitPoint() );
- g0 ^: d( U1 W1 H7 t SetManaPoint( GetMaxManaPoint() ); I7 v9 I* K+ \0 \% a7 j
SetFatiguePoint( GetMaxFatiguePoint() );0 p0 k1 n# l7 _7 V7 K
if( nJob >= 1 && nJob <= 4 ) t' H% I& F$ t
{9 w8 c1 P2 a; _( L" D
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 e9 ~$ }% g. J {0 T
m_nRemainGP = 28; C! m4 E; R( S8 }
} e( O% y& X& ~
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) K8 b" n/ s9 B( v: \- n2 y
{
# ^' |9 \" B9 ~ m_nRemainGP = 118;& K! M0 ^6 j& i) T& M, K8 ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: r0 ]. Q& _! N y m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 \' ~( v! {) ? }, x, g+ V( i$ [2 ^( h3 y! p2 P6 M
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 A8 k1 B1 ?; A! z% U
{
, v! a. ~9 I! Y5 k! E! ] CItemElem itemelem;0 H* O& U/ P! @2 ~9 U& t$ @ Z
itemelem.m_nItemNum = 1;
# C5 G: ?3 V( K8 k' Z4 r. v itemelem.m_bCharged = TRUE;0 T7 E, X+ F/ [2 T; c' J+ c6 s
BYTE nID;
, T. J+ l, j$ {" k; \+ t9 A7 @1 d8 \7 z+ \, B
if( nJob == JOB_MENTALIST_HERO ). n/ p }0 W7 F& i8 P1 R# y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& l, h5 M) z/ L7 E if( nJob == JOB_FORCEMASTER_HERO )8 l) ~6 t' W% q# ]( Q9 }) { j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, l* N: z( A1 B. o
& B5 W% [- c6 O+ U {- ]/ W! u ( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ D! s9 @5 E/ {3 A0 ^) p, \; b }5 D. |( ?7 N% S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! {. N( R$ A8 [0 f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 @5 A8 Z d3 S! r* A/ ^0 b ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ y2 j O& q; C! f3 y$ p- H /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" k. q+ g9 E! s
( (CUser*)this )->AddTaskBar();*/
4 ]- F* [% \& C8 D7 r ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: s( g7 {" D1 n6 X/ c/ @/ m7 v# _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ Z, ^: X( h' F# y8 i ((CUser*)this)->CheckHonorStat();: L! \6 A: W% X& N' X) a
((CUser*)this)->AddHonorListAck();
7 ^3 B- N" w: t4 n. E8 Q, h" d! s g_UserMng.AddHonorTitleChange( this, m_nHonor);
v2 q$ T6 e. [, w3 v4 N#endif // __HONORABLE_TITLE // ′Tà?
: m, q4 s" l. l& ? }
, n. \7 T0 q% P2 T#endif // __WORLDSERVER& \9 @1 k' W- I9 h
}
$ Y/ e% W0 @( \$ l
+ \7 ]* y" I: \0 s然后你进入functextcmd.cpp并添加以下& D: V/ [ l$ W$ E+ s2 P
: u% g8 l/ S" \* P代码:
, a* \/ N1 H6 Z- t( ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )3 v% N' _' R+ E2 X Q
下面插入
0 _$ L& t1 c5 {/ W2 G, {, s6 `6 bON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 h- [- e* w( S: L
6 ?7 j) y4 d- J" u* [( d) w$ [" @
然后你去: Y! Q3 |& B( Q& z5 V
0 {% K9 C* b$ [$ E7 _. V2 t/ S' C
代码:
9 {: R$ J- m; C T5 T代码
4 h6 z4 T! f* }/ `+ pBOOL TextCmd_ClearPropose( CScanner & s )
. C- ?* L! X$ f{
7 \* k4 W) ~2 s' y#ifdef __WORLDSERVER( F, Z; T' q- i- G3 d* s1 v
CUser* pUser = (CUser*)s.dwValue;$ O9 c4 n; C% O! I4 R P3 P* ]* v
g_dpDBClient.SendClearPropose();
% b S- r5 t: U0 m% j9 o% k$ w1 G#endif // __WORLDSERVER2 [8 q& l8 d6 x3 O4 E, o4 j
return TRUE;( }# ^4 S! ?) N
}
% b" d& e3 \3 Z# l( f+ _, A3 v2 p下面插入4 @7 v( B+ X( f4 h7 I5 N: \
BOOL TextCmd_rebirth( CScanner& scanner )2 @( K% x+ ?( a8 C" Q
{! U+ N- @ N! w0 v3 h6 _) `) j$ `
#ifdef __WORLDSERVER( Z6 c& X$ J% m" ]3 Z0 q
CUser *pUser;& Z" }) V6 L' m& y c$ ^
pUser = (CUser*)scanner.dwValue;+ A& n$ f1 @( X# ]! R b7 w/ o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! D5 H" ^' N5 r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. f+ Y8 \( W- z6 {( n
else) Z3 H) o; u) {# P
pUser->AddText("你还未达到重生条件!");" ^# q6 W2 P! O! r1 j/ D& _
#endif
5 _' V) k ^8 x0 ~2 |) Oreturn TRUE;
2 Z) E4 M5 T. {* Y} $ S* x- e& X4 t0 Q0 Z
, E: D$ s" w" n2 z/ }2 g& @/ u
' R/ j6 {5 `- \! e
' Y, k9 F& ]) H# Q; x7 I
& ~. Z' c! D+ Z* O' ~0 K |
|