|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 L( T, I' x! w4 @" I( ?+ D& P d4 Z* z$ W. H& J! ?9 {" o
Mover.h
3 Y1 S4 O4 p1 J2 j, R" n% y代码:. w2 P& n$ L8 K1 O+ w/ p6 c5 q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 f$ |7 I* I Y0 U! W! y6 w+ a) w" k. z0 U I$ X9 y7 B, ? H# T
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 0 q; c* | z2 x' ^) G
: c: b1 @" @9 H& F$ ?
然后你去mover.cpp添加4 q3 c! e) g% e0 q4 L7 M i- G0 x
0 f+ [9 @4 I' g ?) W2 _3 E1 y代码:7 i4 y3 e3 i2 p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
x" }% Z' K8 n1 }& [1 X- F{
. U) d" T# N7 }6 d2 l#ifdef __WORLDSERVER
- y. P5 ^" f. m3 e+ W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 M8 K! _9 L a$ j2 O MoverProp* pProp = GetProp();5 f& S3 s5 L, b ^# ^+ [
if( pProp )8 k6 P& s2 k9 A/ D4 ?- u
{/ U/ V4 h/ t {7 }8 l5 T, T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 K; T6 B( M5 G7 t$ S& t7 l8 J {2 a# m; |8 v7 ?- F# c* v
AddChangeJob( nJob ); F, u, O" y( b- ?9 [( W
}else{/ J6 ]7 ?, w+ l$ T7 G; [6 I! B. q
return;
* _; U; c, A+ L0 O0 Q0 G; | }: N. Z+ p. k& Y* i
int nPoint = 0;
, L$ {( i0 a! x if( m_nJob == JOB_MERCENARY )
: x( e5 q& n: Z% d nPoint += 40;
9 ]$ V0 d' T, W else if( m_nJob == JOB_ACROBAT )% Z% l% U! O0 X
nPoint += 50;/ o4 ^# R3 k6 z! C# x6 ^! W
else if( m_nJob == JOB_ASSIST ); x4 j' C3 r3 n- ^) U" c
nPoint += 60;
$ y; K% c! ^& h L else if( m_nJob == JOB_MAGICIAN )
$ I8 S' m, ~9 h/ R% h nPoint += 90;
9 t6 \( z M; X+ b else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
_5 u+ ~3 `; @( f nPoint += 120;
. z0 Z$ H% s) q* O8 O else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( H8 {) Z3 F9 E( b4 { nPoint += 150;' a* l+ m' B q: w2 C8 s/ ~( h
else if( m_nJob == JOB_RINGMASTER ). x8 K& q% w1 z+ _0 n, @
nPoint += 160;" Q ^5 o5 N' m$ R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 M) d* G' x8 k1 d* b nPoint += 180;
& g- \6 A5 |* p) l& ~% D- [" y else if( m_nJob == JOB_ELEMENTOR )
# \3 C7 i4 H" v9 {& z: j) [1 S( O. P3 ^ nPoint += 390;
4 c$ ]+ c3 u1 M9 O9 L+ L; F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. |" D F: m& {8 I! H. U7 L+ R nPoint += 120;- w- c+ F+ F6 o
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ X1 J+ e7 \4 l b( O nPoint += 150;
* `+ M9 ^6 P/ E) j else if( nJob == JOB_FLORIST_HERO )9 w( q9 e& l% w2 j- y! s# r- T! E
nPoint += 160;7 ^ |+ u3 W: [4 L- H" T$ i% R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 N3 s) r4 v6 S: {, W
nPoint += 180;
; R0 z+ C: P/ w4 M+ X else if( nJob == JOB_ELEMENTORLORD_HERO )1 n& H8 c5 C5 t# {4 K/ S8 v5 P0 x% R
nPoint += 390;
; y. Q9 D3 k; J5 l- y6 U5 q C
; e r$ l6 ?3 i3 O6 c; c& N6 x AddSkillPoint( nPoint );1 b& d0 @4 ^4 e. k+ d( [* T1 q6 O
m_nLevel = nLevel;
! ^1 [$ f5 X2 {) v& a0 j) \
' q, s, s9 d9 G: X. L# e SetJobLevel( nLevel, nJob );3 y6 W( W! s- y+ y7 ?( P9 C) }/ W
m_nDeathLevel = nLevel;
( a6 c8 j: a& u/ _: u1 V#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 b! H B4 x W! T4 R+ b. W
if(IsMaster())
# T' |& s$ D. _3 H# o( g9 ?* c {
& u4 h$ a6 T1 A int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ Y& K7 P* e" C L1 ^" T
if( nLevel > 59 && nLevel < 72 )
4 T2 o4 X3 M$ ` S, C3 b' y dwTmpSkLevel = 1;
/ |8 J8 k% U9 L, M0 g else if( nLevel > 71 && nLevel < 84 ). X7 P W/ H0 y3 ^# p
dwTmpSkLevel = 2; m0 O+ e! e% [, X; d0 R7 @
else if( nLevel > 83 && nLevel < 96 )# [7 {- v6 I s
dwTmpSkLevel = 3;/ Q, T, r! d+ n; n2 }
else if( nLevel > 95 && nLevel < 108 )
) }: X3 i1 X2 x' \. e8 p% W dwTmpSkLevel = 4;% y+ ^5 y' d* v7 v
else if( nLevel > 107 && nLevel < 120 )3 }# C% c' K1 I$ h) M2 [
dwTmpSkLevel = 5;" x( I6 E3 X1 T+ u) V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 c4 z) w* \4 w( d { $ Z( c5 ]8 P, } L; C% V0 B$ H- u
LPSKILL lpSkill = &(m_aJobSkill);3 h: h# |( C- h7 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )" k8 X2 n& N3 V7 k( b+ m- D
{
' M6 x$ ~8 E7 I. O6 h( K) A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' [" }& p" b: \ if( pSkillProp == NULL )' a; T9 y/ d( d# v. X6 G& D
continue;$ A/ s a. C" E' o" D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): K+ R4 U% b6 R1 j9 h
continue;
: D% Z2 ]9 l% d% T3 |* O lpSkill->dwLevel = dwTmpSkLevel;: S: z7 E) U8 d$ Z: Y8 Y
}0 O7 Q6 T) S2 u0 a/ D0 B4 y% G+ v
}
" h* X, B2 j& j1 s1 w }4 m6 v" @1 m& p+ f" n* e+ f
else if(IsHero())
. m1 V( |1 M( g( O8 s4 d* c {
0 i4 x1 |! O, [) z) N" R) h for( int i = 0; i < MAX_SKILL_JOB; i++ ) * k. K) t+ ^7 f; _# Y3 q1 X
{
5 x! N# t5 ]* _! q6 y0 V! i( X LPSKILL lpSkill = &(m_aJobSkill);
1 Y$ w; ]5 i" f% S if( lpSkill && lpSkill->dwSkill != NULL_ID )0 M3 b% a: Z- Y# ]
{
" ^- u- {. O# ^2 V3 w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 n- ^- Z: c( {9 \. O) n4 d if( pSkillProp == NULL )
% G" B }( D9 p1 ` continue;) Q A) h" `! r# o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 o/ o0 t% w; ` `. ?" f+ o continue;$ r! I0 V: q! R6 R6 D
lpSkill->dwLevel = 5;
3 b& b M1 j" F: ] }
1 Q& u" }* c( I, G E. w$ U) Q+ Y }
% n/ e) `9 \9 h" d }
) ?2 Q5 }. ~" K0 ^' G& J else if(IsLegendHero())3 p1 X6 ~% U5 G F
{* c& Q+ ^2 P; M2 w- x- E: I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . P h6 i+ M7 i
{
5 h; ^$ a2 n; P h8 X8 `( H0 a LPSKILL lpSkill = &(m_aJobSkill);" B2 U# i& N) Q U$ L/ f
if( lpSkill && lpSkill->dwSkill != NULL_ID )! y+ c$ Q, \5 T4 e
{, A( e; x* o$ a( T" e* X- x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 T. A* v& `# B3 g7 C# r$ y4 x if( pSkillProp == NULL )
- V1 o" h6 B% P/ b continue;+ \( F8 [3 s! M5 x, }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- c$ B, s2 j1 ]* y' l B continue;
& e& z& J: R; ^. `* V2 y0 Z; g lpSkill->dwLevel = 5;
* n3 s# b8 [% h3 O$ S j- | }
% m% ?/ s; B7 P6 c) Y: R5 ~ }
8 p1 d k2 q* ^. ^9 F% N. `( z }+ x4 e3 f) H3 t' n4 h- b4 D% ]" o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 C G7 X7 D9 }( J if( bGamma )
9 a9 S7 E3 a1 Y( T {
2 [4 l- D' `, G+ g+ x: H; D1 Z. g m_nExp1 = 0;
8 r6 u& s) v* q5 C5 ?. h. C; H- W }( J0 J- m5 ?4 E! b4 c( Q4 F6 Q
8 B6 e U/ D8 K, s+ f# u7 J8 l
( (CUser*)this )->AddSetChangeJob( nJob );. k! ~8 v: y* x R* o
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ x9 x( R: _* Z) T P7 t
/ ?5 m8 G* ^/ k. W
/ T& h' {$ ?: l8 j5 U, V. [#if __VER >= 11 // __SYS_PLAYER_DATA4 A2 F4 x- o1 u* Z3 k/ S e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );# {1 ]* N5 Y# ?1 _) a
#else // __SYS_PLAYER_DATA
7 c+ v2 y( p2 b g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 I+ ~# O( |5 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( A0 H0 ^# X* j* X/ G! j if( m_idGuild != 0 )
% G9 _1 ]. x( ]& N4 {+ H1 t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 f; v0 L& i$ y! `& H$ ^#endif // __SYS_PLAYER_DATA9 P& y- ^" B7 a9 K/ k
SetHitPoint( GetMaxHitPoint() );& N4 {" v3 I' v) O/ a9 A' Y
SetManaPoint( GetMaxManaPoint() ); A6 O. y7 g1 ]" C# S
SetFatiguePoint( GetMaxFatiguePoint() );
( t& p. d- D( O) j2 g) A/ J% v if( nJob >= 1 && nJob <= 4 )
! y! e, w/ C6 v+ h; l. d {9 l' T" J+ ]; R* W1 c
m_nStr = m_nSta = m_nDex = m_nInt = 15;# A, ~$ i6 a( q |8 Q
m_nRemainGP = 28;& q4 V) u' i9 {
}# i$ B$ K$ I0 F9 \8 k0 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 m1 H8 u" E( z: W- r
{
, b( r9 X; q! E7 m, `1 V m5 \ m_nRemainGP = 118;( r' a6 g0 @3 a4 l- k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- Q' n. v* _; `' [6 d6 q m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 k! U% F$ T* N7 D7 u }& D, _. |' w: w5 Y+ D6 |& |
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): m' f; B. G1 @
{4 ]/ F$ N9 J( Y. T, I
CItemElem itemelem;
$ E8 A" W0 l/ Y" T itemelem.m_nItemNum = 1;& p2 H+ E/ \1 O+ P- t6 _
itemelem.m_bCharged = TRUE;; Z$ t% E# g% @
BYTE nID;
- C. R# ~2 w8 Q3 a. K4 M8 T3 b2 t) F$ b
if( nJob == JOB_MENTALIST_HERO ), `+ c+ g# t* F- S8 D( y9 o
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: n( f+ I L6 b
if( nJob == JOB_FORCEMASTER_HERO )
( J+ }7 c- B. I1 i$ V% C+ D8 c itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 y5 i" Y9 [" B8 `1 O2 S/ X' Y0 k' P1 I( W1 u2 J( Q
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 G7 J: F0 Z" A& z& s }
& m' j! @: }0 q: X* D" ] V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 [+ A( I! E! y8 u* N7 N' @0 O$ Y- U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 B$ `( s8 a6 J, w# W ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, K8 H! i' t/ u. r9 J& D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
) y0 q+ a# P1 b ( (CUser*)this )->AddTaskBar();*/) m" D: {8 y7 n3 U/ M4 T2 o
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 U5 f0 _$ z ~5 V8 ~#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 ~8 X3 Z2 g3 U% [1 F& ^; h' ?
((CUser*)this)->CheckHonorStat();
2 C, T3 l, @8 E9 v; M1 [- }9 k ((CUser*)this)->AddHonorListAck();) _9 A" l D4 L; L o2 k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 |# Q3 L! t1 G1 [7 H#endif // __HONORABLE_TITLE // ′Tà?" H. c& n+ R- x" T
}
1 i$ e( u t0 u- N# K+ L+ U* n#endif // __WORLDSERVER
8 A. Z$ _% u9 n* `* Q5 |} + q) j8 c4 D5 J' E, @( B1 S6 a
: I9 Q) u6 B* Q0 _& s
然后你进入functextcmd.cpp并添加以下1 H7 Q4 m* C/ D
`6 N5 v) l* r' d2 p$ X0 U4 W
代码:* V4 N- S/ u' J" L
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 [: w a& a3 z下面插入
3 n- Q5 |8 m" U' [' aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " _* b# W6 v. J5 [7 G
( D }4 S* \2 B }5 U3 K3 z
然后你去
* S# m0 p; r; g0 P+ V! d( G7 P& ]+ d9 n, I$ F, `" I- k# d5 A: T
代码:
! W/ x/ ^& `; \: l9 S6 u代码
1 {! v' C4 d9 [1 y0 S' S( \& OBOOL TextCmd_ClearPropose( CScanner & s )
, d) H) V i/ h, T4 N0 }( u2 |7 s{
" a4 ~0 f( f& a. a#ifdef __WORLDSERVER/ A$ V/ [4 V; t# e
CUser* pUser = (CUser*)s.dwValue;
+ R9 }- J6 @. [$ L g_dpDBClient.SendClearPropose();
* ~: k% j; A) g2 O5 G#endif // __WORLDSERVER
7 E( [7 n0 ]5 G! A+ K+ `& d: r8 i return TRUE;
7 l* \+ W+ W/ D' F4 C# p& t7 @" V$ a}3 ~- V; j7 ~% ]; V O0 g
下面插入
+ {2 D7 R {# [/ E- G3 n8 PBOOL TextCmd_rebirth( CScanner& scanner )& ^0 V3 \8 ]5 o/ K5 a8 p
{
" c! f. Z2 y1 z#ifdef __WORLDSERVER
( f- \/ n7 _$ g% x9 E( zCUser *pUser;
o! |% L: ~& O2 \' RpUser = (CUser*)scanner.dwValue;) c; K- {& D3 q4 P6 m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- q) _9 ^& h8 t( H( @/ _* WpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 c5 i6 M; p4 w6 R( I% ?1 Velse
$ {: @. Y9 M$ L- E6 zpUser->AddText("你还未达到重生条件!");/ A* H7 T. A0 X6 w# Q/ l$ _7 N
#endif9 R* |, I8 P, H* B' z) }6 A; T; D
return TRUE;
6 a% n: Y" T' A8 y- U}
( w: @! f( J6 H+ m% S3 K, }$ c; _* E, I, T4 p
) {0 C6 ^& H: M4 J3 ~) ]
4 ~# m1 h0 w3 s
- [/ D6 f& x6 R, t8 a3 I1 i- b |
|