|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel+ Z+ _6 w5 Z8 R( I0 B" s; G( d
W4 |5 o1 P8 Z9 a0 v# J
Mover.h- }1 f' Z9 S$ J' D3 A
代码:
3 p0 i0 ]) Y" A& v: W& \找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' f/ \% p, \1 T1 B
! |9 R8 w( P; V4 N% p3 j. z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 o( {- q/ u& |! d2 ~; `# J
' D$ y$ d' c, k- [然后你去mover.cpp添加
# P( s; T- L2 Q# s5 B k- Y7 E2 v
代码:
2 O% X0 G) [, K9 j. Wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 M+ k5 g' Y2 D/ t1 V
{
) R! e8 j7 o4 J) L; J- L$ t#ifdef __WORLDSERVER
) ]6 R9 ~: { x3 t: k: ~9 C // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 A. Q4 r, ~2 ` MoverProp* pProp = GetProp();9 N3 g" ~/ f- q6 ^
if( pProp )% H& ]. @: X/ x1 c; R6 d
{
/ q7 u; F5 [* H7 { if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 z v0 z N1 L6 t3 q3 E0 X) ] {0 \5 o, N$ _8 I$ x
AddChangeJob( nJob );
' z# D& o- g9 Q3 p9 G( u }else{
* M3 u. D w$ _; _0 }4 c return;. m- D6 o r% Y' s! a. C
}
& i9 l" c% K! a s9 s. Y int nPoint = 0;" [! _6 D5 C: d5 _9 S( b
if( m_nJob == JOB_MERCENARY )
# y& k1 q6 I3 c nPoint += 40;
7 U0 Y/ D7 a6 o! i+ N. {7 v0 { else if( m_nJob == JOB_ACROBAT )
, w& E+ ^' a" g, f; ~- G nPoint += 50;
. o" C, L9 _8 t; ?/ |2 R+ M else if( m_nJob == JOB_ASSIST )
, C$ x# l; a9 w8 C# S/ r nPoint += 60;
6 B$ R2 a( T5 Y0 t else if( m_nJob == JOB_MAGICIAN )% W! I4 z) _7 t0 j" E3 M# _" j8 f
nPoint += 90;
9 X! Q( L! d" G7 Q$ [4 r @( j8 x else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 y7 {# F& H4 U8 x* ^3 } nPoint += 120;( [6 ^( E0 [, f& s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# J% A" h, k" p nPoint += 150;- o' z8 R& C# A
else if( m_nJob == JOB_RINGMASTER )3 A+ R& v ?1 p" Q, H2 z! ?, d
nPoint += 160;) O1 U# A3 ` ]& F8 z/ D/ L
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 p; A5 {! m4 x4 F: B" ]
nPoint += 180;$ ?; P( ~: M9 ^! t% `- v$ Y# O) `
else if( m_nJob == JOB_ELEMENTOR )
/ z+ ?/ m( s' `% e+ ?" I nPoint += 390;
4 k% N u. q" p3 h- F/ I, C. k else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( r, K) ]" k' c2 ^ nPoint += 120;2 Q! ^6 b/ `8 m, P/ ~5 _0 n
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
}* J5 `* g5 d. V8 k nPoint += 150;! v1 ~3 M4 g7 w* X
else if( nJob == JOB_FLORIST_HERO )
' C" o& A2 g4 D1 h' f nPoint += 160;/ U* y3 F" |# t9 I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 g* h: b& V* j/ l& y, T
nPoint += 180;* H% Y- T H) e7 X( y" c4 _3 }5 @
else if( nJob == JOB_ELEMENTORLORD_HERO ), O) Y) G% y! i/ m# A& S
nPoint += 390;
: ~' x! r: w& I' U8 d0 x- j) a# }( |3 T N2 ^, B% b
AddSkillPoint( nPoint );
. S5 j6 L; M. V m_nLevel = nLevel;
7 O. a0 U' Z' i! ^0 ~
* G, J; c$ T$ J1 I2 ?: i0 y SetJobLevel( nLevel, nJob );+ r8 V+ z! A! M! }$ n; I
m_nDeathLevel = nLevel;2 T* y' b' r1 ^4 }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: ]8 P5 B- A" L if(IsMaster())
2 A; u8 f7 p. F4 e6 r" O* F/ v {
X) h7 i$ m1 k int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
* f9 O- n( _, G- H6 R2 o6 | if( nLevel > 59 && nLevel < 72 )
- m8 _1 [; C3 G" b$ i5 y dwTmpSkLevel = 1;
, I; z4 K+ J. c& h A else if( nLevel > 71 && nLevel < 84 )
* i c5 Z9 M* M( s+ W& u dwTmpSkLevel = 2;
. L6 g3 Y" k- `. x9 g else if( nLevel > 83 && nLevel < 96 )( | t) L- [! Z1 ^/ Z! n
dwTmpSkLevel = 3;
, c* A b5 C: l+ g else if( nLevel > 95 && nLevel < 108 )- r4 N( x2 s7 ^% E
dwTmpSkLevel = 4;1 A, b" i. X" @+ ?& L$ C+ }7 ?
else if( nLevel > 107 && nLevel < 120 )
; \+ `7 B+ v+ K. w+ u* P: E dwTmpSkLevel = 5;8 V+ K- t( t/ ?! b% c" R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% a3 V* S! L7 J {
" v$ T! \- A5 s+ G1 r5 ` LPSKILL lpSkill = &(m_aJobSkill);
2 ^' M( Z) r: k$ ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 E! o8 }2 ]( D! O$ j9 G {
9 O/ }. p4 {( n6 O/ A2 G2 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # T5 R! d% R! e) M/ Q) I+ c! X5 I
if( pSkillProp == NULL )3 z/ M4 V/ N6 W2 L& V7 ?
continue;9 M# `% A- D1 U4 P. x3 {: `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 K9 ^/ y: ^& I! s1 V; k( e
continue;) v2 o8 H7 N ^$ ~% X( s
lpSkill->dwLevel = dwTmpSkLevel;
$ n; g; G3 t; j& _ }
( o+ v0 s( I" g3 r$ a: ^ }
( ^; ]7 J( Z9 | }5 e9 C' V( A- ^. i- U% q2 ^
else if(IsHero())
K z/ r) m9 C1 n& y, I2 y* { {# _5 |& @7 s0 Y$ t& o3 p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 ~$ S& B" w8 X \
{ ! o. w5 K! Y% \. S0 }3 `9 a' @3 Z+ t
LPSKILL lpSkill = &(m_aJobSkill);
& s. N! k7 z0 g2 G3 q, B5 E. m if( lpSkill && lpSkill->dwSkill != NULL_ID )/ V: K9 ]0 @) U7 `4 x# ?
{
4 t+ ^1 @8 k( Y. C- D0 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 M# k, j. f/ h; o- B if( pSkillProp == NULL )
- w3 {, s. F( s0 Z- U. O continue;, O! b) P+ A- {2 T* y3 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 a5 } H7 h Y ~) n continue;+ |% X1 Q3 S- C8 o: P1 c9 d
lpSkill->dwLevel = 5;
8 t/ O# g% u/ z3 i" V1 s7 }* C }& G+ o! `& `4 k2 J" a+ d+ V
}
1 x. I! |0 b# [4 {' \ }7 `" ~) b5 `1 h! A. U' |
else if(IsLegendHero())
2 t! ^! Z& h6 O7 h4 k/ T) j {
2 ~# D' a# N. r6 V2 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) # _1 n$ }$ a! b5 M3 _
{ 7 x+ v& y, ]" g" _, l* v
LPSKILL lpSkill = &(m_aJobSkill);
2 a" Q9 f. I& c: u; b2 h2 C. H/ i2 w0 ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
, l& U! K$ I9 G1 D; O( { {. K" {6 j* W o3 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" |" N, G7 b& b if( pSkillProp == NULL )2 I7 R2 S; d0 T4 x* F$ y z
continue;) p5 t+ V6 ~( S! w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 u% \/ L# H, |* Q1 T9 n
continue;
1 X1 T' z: v/ {; L* w2 Q% U lpSkill->dwLevel = 5;! x7 X% K) w. d4 M0 C
}
, i$ E9 w- `8 h' u O, B }
; ~1 @3 p5 U7 u3 q! ?4 j/ R$ V }
& y( `0 f" U. ^6 \6 [/ y. e#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 v* r( Q& z# [ {1 i' ] f- F
if( bGamma )
H' A0 p/ y/ s5 y {
2 y# m0 |; \5 ^# r2 b: y. p/ ^0 E: V m_nExp1 = 0;6 D* j2 h! k$ J+ C# v" E' l
}8 W: e: @1 ?8 A
2 ~) k# Y3 ^ ]9 X" P; {1 C. z ( (CUser*)this )->AddSetChangeJob( nJob );
4 E) T0 i& g8 Q: m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 W% z9 N3 x4 {4 n) N& I% o
( h4 m( B5 w" {5 z
/ B# {, D* e" c3 ^$ F#if __VER >= 11 // __SYS_PLAYER_DATA
! J" G" K3 s( h% ~4 S g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 p( ^* Z9 x; O+ M#else // __SYS_PLAYER_DATA0 J9 f- I/ k A" [
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 O% A- K2 O* L |4 T; t( H& L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 ~7 A6 A2 R, l$ n1 t0 n* w: a% [ ?$ H
if( m_idGuild != 0 )7 Z: K& \) C. V* [0 A
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
1 P' y/ x. z) u% F' R- O d! Y#endif // __SYS_PLAYER_DATA
, M+ S5 ?& R: w, h SetHitPoint( GetMaxHitPoint() );
+ C! f8 N+ U& Z' F5 p: b SetManaPoint( GetMaxManaPoint() );) h6 i8 t# i/ k# i, d {% B
SetFatiguePoint( GetMaxFatiguePoint() );
3 I% t6 t5 i2 l) i0 F if( nJob >= 1 && nJob <= 4 )
$ ]5 L% [" o2 E. z" E {
- [ k5 `& U) ]2 S3 N4 u m_nStr = m_nSta = m_nDex = m_nInt = 15;' w; u- f5 C0 y- y' e
m_nRemainGP = 28;
' G \( G6 V0 }2 O }0 b( f. V: U4 W+ J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 q/ D; G! E/ w7 t2 R' V+ U {
0 V" W) s1 x& ~1 Y/ }3 V% l m_nRemainGP = 118;2 r, e4 Y, E1 [5 t
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 d) J0 e% G6 t( m3 V: A# i8 C- { m_nStr = m_nSta = m_nDex = m_nInt = 15;
! @2 A; @( Q8 }' h! Z* a Z }
% N8 H3 g4 N9 d: ?% P7 ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ ]6 Q7 Z3 |" y3 B4 O {
/ |3 e4 W% W/ x, P! E- ]! U CItemElem itemelem;
0 T! P$ L$ I7 B- J2 o itemelem.m_nItemNum = 1;
0 J) n( z& W' @8 C8 s( o) M8 n itemelem.m_bCharged = TRUE;
# Q: r6 k' O- C$ c0 \ BYTE nID;
. F. n0 o: S4 l/ L+ ^8 g/ |! _+ }4 o3 T* I. u- o% M& `5 {& K
if( nJob == JOB_MENTALIST_HERO )
3 B% q" x, \* \3 _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ w3 n# x; i6 w
if( nJob == JOB_FORCEMASTER_HERO )( q6 m9 E. l2 H( \
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: \8 {4 |+ ~8 h4 C- S* U5 \. i( l8 K; L
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 m0 x9 @$ j3 k2 ~2 g: `% Y
}
, @2 [4 Q1 d/ Q( ? g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# g. X! a# X4 y8 K$ |2 K/ i0 ^ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* [8 K# U/ y8 S) K( s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) N% G: y# q' W! s5 B* l3 R) z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* F* G8 ~7 A1 c3 o ( (CUser*)this )->AddTaskBar();*/
7 v! Q- I" O3 w: t1 O( \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! r$ Q$ T5 W; d' X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, V6 I- L. [+ P# J6 k6 |
((CUser*)this)->CheckHonorStat();
* J, L0 o, s. |! d, O9 W ((CUser*)this)->AddHonorListAck();
0 {! t9 \4 }6 K8 g: { g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 h- l7 O, n0 ^& D1 c#endif // __HONORABLE_TITLE // ′Tà?; L. o) c- U5 @. O# v# D+ U
}) ]. O9 T% z; ]# k: Q
#endif // __WORLDSERVER
0 P6 v3 W0 ~' O6 T& X} : U/ s4 Q9 h' \; L
1 s4 R) [1 `# K2 y% Y8 L0 k
然后你进入functextcmd.cpp并添加以下6 o' v9 d& K. o; r: s
7 o2 [; |/ k, r8 R0 V9 z代码:
, x$ Q* T d& u4 FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# P; @, Q8 n0 g& V8 h下面插入
8 y9 J- X+ K+ M$ b OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 D4 J' m i4 R( V" B1 h$ x# I6 W# w" Z' h; s: l; g
然后你去$ x2 L! c4 h; t* I# A p& V( n
8 ]; n9 m& [3 U' g* x3 j: b代码:( _7 ^' x4 \; P- S0 t- e
代码5 e$ _+ R: F" o
BOOL TextCmd_ClearPropose( CScanner & s )
; f# i S% G/ E. |{4 |& a: R8 O2 |
#ifdef __WORLDSERVER9 N7 p5 R! d2 o3 F! S. y! X
CUser* pUser = (CUser*)s.dwValue;( T+ [& o$ X0 F& ^4 K
g_dpDBClient.SendClearPropose();
. i1 ]# k) C2 h6 P) o#endif // __WORLDSERVER; @+ d. l' b3 Y/ h" r9 j7 e5 ]1 q
return TRUE;
% i6 g0 o; I6 I: \8 S7 N* o}+ u! k6 ]& h, ]# h
下面插入" E+ ~7 ?3 @0 s9 J
BOOL TextCmd_rebirth( CScanner& scanner ); j( i( Q) f0 V5 U. ]
{# F0 T* B% ?! z, ?# U
#ifdef __WORLDSERVER
. `, D6 f- G, I/ G1 ZCUser *pUser;
: e/ i7 R* Q opUser = (CUser*)scanner.dwValue;
( R* u; U2 p0 j, {" j9 \# Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 \) e: n0 U/ F+ v/ MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ }% l0 l2 c0 X0 z$ u& c, a
else& y6 b7 p! A! G* Z; V/ C: }- m
pUser->AddText("你还未达到重生条件!");
4 d. j% s3 K, {! e1 D. e#endif
. t2 e! g% P3 ?" w! _4 c' n5 zreturn TRUE; ]- W1 }% j% _
}
9 o, G. z( F) @* y- E/ P
$ G3 N0 Q! w. ]5 w8 |6 P. Y& q- }: M: |, m, z& ~
: @: t& t o/ `9 d, D! S/ |% N/ _! [5 ]
|
|