|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- d# u& [2 S, a: K0 H/ O
3 G6 B+ O5 _$ S+ V0 e% LMover.h8 l( p, J8 r( c3 @' m
代码:
- g' d0 N) o/ a# |% ~$ d0 w找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 c; w" j4 {6 n& ?3 W/ G# s( F$ ~2 N' I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + v3 G, |" l( x6 e' `/ w+ K6 O/ z+ R
5 ^9 u5 C Y! G! T+ _: G
然后你去mover.cpp添加* }: Y: j$ h$ d/ e8 _! t8 \' W( @
0 W# L. n& E. \: |) G: L( y代码:
& @% S' F- Q1 Q1 h9 ]% Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )& N" }$ F1 W* Q" {& D" X7 y8 j
{
; ?! ~ m9 K/ V: D7 D4 ^#ifdef __WORLDSERVER1 v8 U: e2 _; P9 G/ S2 G' e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; s) @. U! [% b MoverProp* pProp = GetProp();
7 P# C# d; T# G) @" H) m if( pProp )
$ j( r# j) t2 K8 B: P {" b+ e' r0 O, I1 f! l2 M/ E. l& r5 n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' z+ a0 b1 n: ]) C4 K {
e0 g+ {6 U6 A. d AddChangeJob( nJob );3 E- c3 d, F2 @; k: p1 r8 d: e
}else{; W$ S" i, u! V: t
return;
* [% K: C) [: ]- t& Y }) t* N7 x# n$ `- F
int nPoint = 0;
& R% U% J* o) q+ |2 P/ h if( m_nJob == JOB_MERCENARY )
G1 {' {6 ~0 ~ D- _) h- Q9 y nPoint += 40;
~# l; r. G+ X; E* t4 _# Z else if( m_nJob == JOB_ACROBAT )7 e8 M H9 Q* D) q& n
nPoint += 50;2 K( A5 F5 `% ^4 v- C
else if( m_nJob == JOB_ASSIST )6 j2 y; ?( r( f
nPoint += 60;
5 X$ k# v0 h* @" |; m else if( m_nJob == JOB_MAGICIAN )3 {, _( A9 z8 k, U* B+ C7 n' E
nPoint += 90;0 k, j5 Z' s' O4 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( X- ^3 r" K- r, [3 s nPoint += 120;
9 Z, e0 Z! b1 w+ s2 @" _) ?7 Z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 g( b. ^$ R/ @, P
nPoint += 150;
9 c, C3 v! [! c! g* h else if( m_nJob == JOB_RINGMASTER )5 i3 Z! @9 V s3 @/ z- ?- K
nPoint += 160;
. R5 @& O) n: n% X1 g* N else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 F. b* C) b! U" B6 t nPoint += 180;/ F3 A, b6 f& c& k2 E. M
else if( m_nJob == JOB_ELEMENTOR )
6 z0 V; j3 c/ w! f; M7 O nPoint += 390;
3 [- U/ I5 \. X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ i% a A; p, _; `$ S" Y6 j% V7 j/ N0 s
nPoint += 120;* D: o+ J3 v/ d3 j' D; c+ l( L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ ~- e, K w) W) Q
nPoint += 150;2 \% W: g S7 M. h" H
else if( nJob == JOB_FLORIST_HERO )
8 [# f$ L5 }: K( [ nPoint += 160;
" F `. _/ }2 H; Z% G+ e5 m+ S else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# `& B' I4 |; G nPoint += 180;5 ~4 |3 i# d% B& Q/ E- H; G
else if( nJob == JOB_ELEMENTORLORD_HERO )
! j- q) H1 b, W9 T nPoint += 390;2 G8 v2 ?9 w- A8 P% x
+ u4 Q1 i7 R8 i$ G$ [% C AddSkillPoint( nPoint );" H) r& l8 ` W# u; n$ l
m_nLevel = nLevel;6 X( {) o! t+ J- Y8 `
& b% E1 i% l7 h* f5 y$ ~
SetJobLevel( nLevel, nJob );
+ N' K# s: h" S( s7 } m_nDeathLevel = nLevel;1 w! F6 R) M& e* Q2 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, z8 l: l& U. N. j if(IsMaster())
- t5 N" y4 b+ r {! `7 a. }/ q8 S/ b. M. Q0 ]7 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, {; E5 e: H' _7 [0 `) g+ I t
if( nLevel > 59 && nLevel < 72 )
8 Z" i1 t# U8 w. q dwTmpSkLevel = 1;
5 g8 D: J" Y a2 N else if( nLevel > 71 && nLevel < 84 )/ N8 b: V3 I r/ R) n. ^; d
dwTmpSkLevel = 2;8 i6 ?9 |: @4 V" t+ s; _
else if( nLevel > 83 && nLevel < 96 )
8 T: C/ q3 P& X& C dwTmpSkLevel = 3;5 Q+ z) J1 x0 D+ _4 r4 D5 L
else if( nLevel > 95 && nLevel < 108 )& t9 W( C1 V0 {$ s! s- r v7 V
dwTmpSkLevel = 4;
2 U4 y$ L v+ b+ {! {& `' r2 m. j: T else if( nLevel > 107 && nLevel < 120 )
& V, m- `& t7 Y- ` dwTmpSkLevel = 5;7 c( q6 f- S1 j) j* I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' ?( }5 O% ^9 c; M% [
{
# F+ X, i! u9 L# x LPSKILL lpSkill = &(m_aJobSkill);3 G5 G8 ]0 n R) h6 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ?; Z) P4 q3 |/ J6 Y8 w- U- ? {
- r' w9 R$ B- v% }4 z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 `1 {7 E: g" Y- O! m2 |* }7 I! k
if( pSkillProp == NULL ) p; R4 b8 U4 d- r/ u9 k& Q0 U2 l/ Q
continue;5 n% T2 \* \) F4 H/ f( Y O3 T+ z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 ?' O0 y4 l, Q5 _* c, E
continue;
" ~7 e- g, |' ^" c+ N lpSkill->dwLevel = dwTmpSkLevel;
. j3 v9 O; f5 Q% A) V }( P3 m% v: Z1 T, p' X3 `: @) U
}7 l* }6 _, f# P8 T: ~
} I; {3 h2 L* N* g: r
else if(IsHero()) |5 `9 ~& p$ |/ f; l
{
' {" O- a4 S* ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( G5 A% V Z a( H9 R, _' E
{
# e g/ C+ }9 Z: R( Y& @ LPSKILL lpSkill = &(m_aJobSkill);
; m" M- K3 _) [9 A9 j if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 o0 k) Z" t* O+ y+ t {
3 S5 u5 W S9 Z7 U, J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: V/ X2 Y) C- d7 ?1 k8 w) h+ e if( pSkillProp == NULL )
$ f' r6 u& D" C continue;$ o* p( E( W; M) s) b: V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: @ H/ t, z( b+ ~) i continue;. r$ e# J" [" {8 _! Y; i% v7 t
lpSkill->dwLevel = 5;7 s8 d, ]/ k( m* P1 ~- |$ }
}
6 k" E! U5 s. p$ m! a }! q+ t; |2 Z) b4 ^1 |' q7 [
}
$ s9 a" ?% Y- G( J; |. p! ^ ^ else if(IsLegendHero())
0 ]4 s9 M7 X8 @6 J& T+ m {+ n j. x0 T% C) t& [5 ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! R( k2 w* i* E" X- X- F+ f4 f0 I
{ ( ~3 J1 j$ g/ G' A( E( Z
LPSKILL lpSkill = &(m_aJobSkill);
9 M/ K, C/ U% O$ Z: I: ?' ] if( lpSkill && lpSkill->dwSkill != NULL_ID )3 T# N3 j5 ~6 I, Q$ o6 _9 q
{# u/ L! b U& P7 | V1 B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 Q9 k$ l# m( j- w" a if( pSkillProp == NULL )
& Y* O8 m* e. y, F3 U( m continue;
6 L2 x3 F8 _" l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* [& s H( u7 i$ o" E continue;0 u$ X% @) Q0 c1 q e2 K) p
lpSkill->dwLevel = 5;
/ G" u. b; n- _% c }1 Z K+ U- G6 o* w& Y* p6 [# Q
}
; l- ?5 f! q' g5 M; m, l4 u }6 q) ?; G. a4 ~2 i0 w& e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ K. Y! e, W3 _) @ if( bGamma )
- w' `) y; u3 w# a3 \ @; l {
# S7 M$ D0 Y9 h m_nExp1 = 0;
Q5 P% _8 [3 @( o2 f }
" ]$ r9 b* S: Y& v! f8 r% M
4 A* x" L p! |* R, E! ] ( (CUser*)this )->AddSetChangeJob( nJob );
( l) p3 N. @! N0 P1 G+ _ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 F8 Z r( e4 m9 x) N+ I. A
' r& A, r$ Q: y$ F% K z+ Y2 y& v1 S0 |( f7 ?/ s, g, X" k
#if __VER >= 11 // __SYS_PLAYER_DATA
' l p. [8 Z: _5 P8 p8 L/ K1 Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 N5 O8 H f, @
#else // __SYS_PLAYER_DATA7 ^3 X/ W' e' b& ~$ I7 B9 C3 ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% b: Q/ m0 V P7 E$ k: J: F* \, j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 U7 G" Z5 R. ^& ]& Z0 P5 E
if( m_idGuild != 0 )' R' _5 T% z9 |6 k ?2 X! i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ \" e" d* r# N! Q/ \& I4 t
#endif // __SYS_PLAYER_DATA% E8 h! h, g3 R/ i$ D) U7 m! n: A
SetHitPoint( GetMaxHitPoint() );0 f T& U" n8 C. ~
SetManaPoint( GetMaxManaPoint() );
* J2 i& l1 ~& Q/ \/ `5 t8 c( h SetFatiguePoint( GetMaxFatiguePoint() );
' m7 Q6 E" m/ Q7 R1 g5 ~% M if( nJob >= 1 && nJob <= 4 )
8 v3 I; ^; U7 t/ G% j" P {6 Y& B7 M1 b& b" J, ~8 _! T
m_nStr = m_nSta = m_nDex = m_nInt = 15;6 V6 H# R4 ?8 F7 p, ?6 L0 T1 E
m_nRemainGP = 28;
. p. k% G7 C4 h }
8 m5 `% w& R5 l; W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 }" I, t, j5 k" ` {
2 e. ?0 N7 ?3 G* ~& |6 C5 O m_nRemainGP = 118;4 ?. S j6 p6 i6 y% Z) o: v8 K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: H* e1 C. B* K4 k; _
m_nStr = m_nSta = m_nDex = m_nInt = 15;% q/ j0 v" R/ D- \7 f
}
0 y8 d: X6 r7 l% ~/ ?7 l# R if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), k; |5 T, Z% ]9 j. X) d
{
( k( y; c4 X8 F3 O6 I CItemElem itemelem;
) U( N" g' `' S- `, n9 D itemelem.m_nItemNum = 1;
. H; J. b9 B; L$ G" ^# w itemelem.m_bCharged = TRUE;
1 m, X7 N! m4 f V+ e1 X BYTE nID;5 Q" l6 w' r# j+ H6 s
0 T3 h4 ^2 R' C5 Z5 M% N% s/ ~8 S- D
if( nJob == JOB_MENTALIST_HERO )+ ?1 N9 R; c4 z! _6 c" y; ^. c
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 |9 M% ?3 K5 G# E* x1 D$ p
if( nJob == JOB_FORCEMASTER_HERO )! \ J& f x" X2 G$ R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 i4 P4 I; f: T$ D* ]+ x4 V, @$ _ V2 V: q5 a4 @. N% y
( ( CUser*)this)->CreateItem( &itemelem, &nID );" X% C- B3 f2 g
}7 ^0 y& g, }: F1 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 C8 @( z! v9 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 Z8 o1 l2 t2 Q! [9 _$ r; |& p ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 C" T, q( x& q- ~: p( o /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 o' c7 X/ m4 N) i, m ( (CUser*)this )->AddTaskBar();*/) |1 f8 A: n# l2 n
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); ]. `! r$ g& {7 z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 B- U' h* [, t' U: o
((CUser*)this)->CheckHonorStat();
( w2 L! Q6 g5 p0 Z+ F ((CUser*)this)->AddHonorListAck();5 I5 O$ C, e2 \8 a
g_UserMng.AddHonorTitleChange( this, m_nHonor);; G; O( T9 m( b1 d& @" [4 j
#endif // __HONORABLE_TITLE // ′Tà?* F( M! `# s# p
}% j2 c( |- Y4 h: L
#endif // __WORLDSERVER/ L( o7 p) r: Q$ U, l1 a
}
3 H' V( _6 D6 y: _+ B2 S1 x: A6 F& U+ x" S% l: }6 J2 @$ g0 K
然后你进入functextcmd.cpp并添加以下
`( k) v" s( ]3 N# Z. S$ m9 F r$ u7 f# B
代码:
v0 L* f/ @) K' r7 m7 o! ]5 L2 RON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! L6 \9 v5 Q% d下面插入
! j/ g9 g+ J" i0 NON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' ?8 [0 T, j2 ~" F5 R
' L1 C9 k' _5 ~) {, k4 N5 c! A然后你去
$ M' G, R+ {2 O6 ^ W: r0 ?- \( d; n4 @$ W
代码:
) N: X- |8 W, B [% i' B代码
" {# ^5 t W- C/ `: ?6 d& U& _BOOL TextCmd_ClearPropose( CScanner & s )+ c# V1 A% O6 ^4 R
{
( t5 J6 b2 K3 c! O6 _#ifdef __WORLDSERVER
! Z, K5 i9 a& x! H2 d6 H" O CUser* pUser = (CUser*)s.dwValue;$ ^- c* u6 }# g) ~2 ?2 W
g_dpDBClient.SendClearPropose();8 P- \! M2 P" ?4 M+ b' T* @. y
#endif // __WORLDSERVER8 K# ~% J1 F, T
return TRUE;) K0 ]. C# t2 p* m8 L
}
( {1 P4 g1 [* ]6 U1 { v下面插入4 L; Y2 H! E5 n. e, b
BOOL TextCmd_rebirth( CScanner& scanner )
. t4 b& `) Y1 g8 m{& e/ N5 y+ s |4 }2 }& W
#ifdef __WORLDSERVER
- t6 f) h5 w2 b& mCUser *pUser;4 e; ~% _2 [! @! ]1 B+ s) J1 ]- G- V
pUser = (CUser*)scanner.dwValue;& t/ J6 K8 J7 \" w1 b' y8 g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ ?5 g/ ^- Y4 W+ q( f" lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# d. g" l2 A/ ^: R* l6 V, relse
2 |4 f' U8 t U$ e/ p6 M: npUser->AddText("你还未达到重生条件!");
: m1 o$ m9 F9 j5 X#endif
1 u2 B: C' p0 o( `- ^return TRUE;
( G/ S: |: u/ f9 }: M} + f0 z- F0 s- Q. h; r7 P
2 i7 {: x1 I2 t( R' b+ M
" }8 g: R/ \0 {6 ~
( }2 p+ j/ j. t5 Y4 w: U% C& S0 n/ c8 T4 i# c! E; O
|
|