|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" K) ~% c$ i" |- f
3 `% B) w/ Z, l6 L- [Mover.h+ g0 T- ^" M6 l. I9 F! v
代码:
9 S1 s+ z$ g) T4 @* Q7 L4 f& i找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 Q. l7 V! }4 _& F2 g: G/ `
2 \+ ~8 o7 R! b" o下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% ]: U4 b' z6 h) B) m$ x; f' p1 S! s5 N! F
然后你去mover.cpp添加
1 j3 ]6 H& E0 z# ^$ @6 O3 f: m, r5 o, l: M) G# F
代码:8 l) ^' R. y5 C: J }+ g; U
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 K2 T* X; g& _* K* E
{
. o4 e M" c( W1 [% g' ^7 p#ifdef __WORLDSERVER
1 O, O# ]1 C' n/ c: H& _) C // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) p$ G: p1 F. D, z MoverProp* pProp = GetProp();
, C3 T7 c0 |" r4 H$ U2 D" G3 }* V if( pProp )$ s( g- j4 J7 U1 I* Q
{
0 x' R% U9 p5 h* [+ h4 W, L; b if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ ?" p1 O5 r# ~" S {! H) a7 e0 F3 C$ l7 M3 E
AddChangeJob( nJob );
! W% g; x; a1 T& u" G6 k6 I }else{5 `2 _) T) U/ Q4 L4 S' e( ]5 U
return;7 N9 r% A( A( }
}1 ~, W) a* @# c3 v6 j( L
int nPoint = 0;1 W) g7 d8 V( [+ r+ q
if( m_nJob == JOB_MERCENARY )( C. I" ?9 R2 F
nPoint += 40;+ w9 L F6 H% @0 z% K
else if( m_nJob == JOB_ACROBAT )2 r, x' g5 n- P5 I B3 P" y& w
nPoint += 50;
/ [( z! s0 o' p& H: q! S% L else if( m_nJob == JOB_ASSIST ); C) L4 D8 Q6 K, f( h
nPoint += 60;
: K# q' q, p- ~3 |5 b1 v else if( m_nJob == JOB_MAGICIAN )4 R# P0 @2 V' b+ `$ L
nPoint += 90;
* s- @, E7 x, `4 ~2 s2 I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! s6 i' K7 t' j# Z' ` nPoint += 120;
4 H4 j. j' n# ^ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 o$ ?+ ^1 V' L% { nPoint += 150;
5 g' F3 B* e3 P else if( m_nJob == JOB_RINGMASTER )
" ^- @3 r; ^) ~+ b! ~; z4 f nPoint += 160;+ I' w( y9 u9 w& V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 x6 q& X( W: p2 M* w1 G) Z nPoint += 180;
( l* `& E+ t+ X/ H8 N5 h else if( m_nJob == JOB_ELEMENTOR )( i6 x4 a# a1 }* F0 R* U
nPoint += 390;
3 d! P* }: m1 Q! i0 n( h2 J else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), ~. H" ^0 j" C; \! Y& q
nPoint += 120;
0 A5 O6 Z3 J$ V# B, s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# V5 K5 n' ~# Z; J+ T
nPoint += 150;
( _8 |8 Y0 U8 T# v, ? else if( nJob == JOB_FLORIST_HERO )% @" H. k8 F) Z. |/ J( l* `: h
nPoint += 160;8 Y1 Y6 E7 k. S- ~- a: r) j$ f! S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 t5 q; t( V) i
nPoint += 180;/ l( m" B8 V7 ]9 F0 {" U8 J6 H
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 F) |, h, K/ e/ e9 t& d f1 @ nPoint += 390;+ w0 H8 [4 Q' c; }3 q& p7 ?$ i
2 O3 i' R& g- o- v5 Z" m1 ]" q$ G AddSkillPoint( nPoint );0 I z4 {; W. h
m_nLevel = nLevel;+ }2 u$ v# _: ?2 Q4 U. O+ s
$ }4 D( p5 I8 n0 Q8 l
SetJobLevel( nLevel, nJob );
, O2 a1 X/ t4 `8 R& t9 K- p m_nDeathLevel = nLevel;" V% w$ n$ ]8 s [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 A& W+ d4 q- w/ d
if(IsMaster())
) X+ Y" c5 V/ Z; c8 E# ? {
P' @8 Z% Z( \# B- C6 f% p) ?7 f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108 y) v5 A* _% E
if( nLevel > 59 && nLevel < 72 )* \+ F7 U# H; t! x% D; G
dwTmpSkLevel = 1;8 R3 I" P+ O" n) B0 e" ?
else if( nLevel > 71 && nLevel < 84 )
' W# O+ N3 _* P& j) _! V5 g5 ^ dwTmpSkLevel = 2; G2 \! w. b3 m7 R
else if( nLevel > 83 && nLevel < 96 )
4 }/ J1 Y5 p2 }/ N g; W dwTmpSkLevel = 3; n$ M/ j( } {3 |. ?1 B
else if( nLevel > 95 && nLevel < 108 )
2 i: O) R9 `% E dwTmpSkLevel = 4; z; E0 {+ G/ ]9 E" X
else if( nLevel > 107 && nLevel < 120 )1 U0 t, `2 M- e: ^
dwTmpSkLevel = 5;- s* S9 h0 L+ X+ K1 T5 `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - x& u/ N2 N( ]- t* d
{ . w3 Q9 K' A5 a
LPSKILL lpSkill = &(m_aJobSkill);* O1 @, y8 Q |; t- D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% ^9 K* k9 e# i- r. N; I' m {2 p1 x' s8 H' ]% Q, B: W' w6 ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: H0 ]) [1 n- r8 h- T if( pSkillProp == NULL )
+ ]! y% l( q/ W" c continue;
* H/ @' l. [: g& C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- T6 K: T* C h/ J
continue;
: b* q6 q5 `4 S( y3 v2 u7 [ lpSkill->dwLevel = dwTmpSkLevel;( g. |) [- @% E+ H+ N2 f- Y
}" i! ~9 V0 s& j; ^
}
6 O/ u! Q+ E; F5 `& m5 f( U4 Q! h }
; d6 r" k+ f4 N' y2 ~# \ else if(IsHero())( i' D5 L- I6 R p2 p$ v& x
{, \: n5 l+ Z7 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 G& \. U! W/ [% J1 j" G {
% U' F1 z' ]7 B LPSKILL lpSkill = &(m_aJobSkill);
7 R" ^ X: g, _* M if( lpSkill && lpSkill->dwSkill != NULL_ID )6 x$ j: q6 E. r) Z$ z; a
{
$ d$ h) m4 J) m1 o! s! c/ ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# i L. d7 E8 T! O' _: ` u if( pSkillProp == NULL )
# l) |, {9 W' I continue;9 O) w9 d4 T& w; ? R' Y& G/ `" a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 i1 @) l& q) P; L. u: q5 u+ r# f continue;. L3 K2 x) X" @4 n
lpSkill->dwLevel = 5; v6 O$ m" [& A
}
6 y9 e% H0 ^' ~3 b1 { }1 s4 \0 \& I' B- H- W% `4 Y
}
9 i% {1 @) b1 M2 i else if(IsLegendHero())8 b9 l& g+ {7 r+ d, Y8 `6 I% |. |
{
6 U. y2 @6 w3 e for( int i = 0; i < MAX_SKILL_JOB; i++ ) , K0 M4 X7 [; w8 {( x0 m
{
" X3 t* C0 E4 P% R; q1 b% p% X LPSKILL lpSkill = &(m_aJobSkill);; L0 `8 E* v0 b+ Z' ~! i
if( lpSkill && lpSkill->dwSkill != NULL_ID )" Z# K6 {' M+ R
{
/ m! }5 d4 Q6 o# T) W# K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 F1 f: V! }8 K6 ^: Z* I/ O1 Y
if( pSkillProp == NULL )/ ^' _( }1 c+ j7 j) T( E
continue;0 T0 M; o$ [. C" D( K2 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 X# ?. v2 `# J6 [7 u
continue;
) E% A1 h' n! \1 _5 d4 L5 X- [ lpSkill->dwLevel = 5;
* ?/ E/ U' i/ e8 g* X }/ E+ ~) e$ f# K; f
}/ _; ?* I& a' T' ]' D, z8 B# c- U
}. [- k" d3 V1 h @. K: E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. H. S6 }/ J. R* t6 W if( bGamma )
. k7 h- L6 R2 V K7 R {
+ Y D8 e, ], d1 z$ j m_nExp1 = 0;
' m6 m/ ^! ?1 ?3 c5 U+ X }
) R% q1 N0 j( j
! [' k) Z0 X( q4 m0 e2 S+ [9 o ( (CUser*)this )->AddSetChangeJob( nJob );
# C3 d' O$ i6 k3 F9 \' h g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 M+ q/ U% T3 M+ [+ d) l
! _3 x) O8 k% K" O9 m4 C
/ i0 l! u/ Q8 W9 t#if __VER >= 11 // __SYS_PLAYER_DATA# d& Q1 J' v) i
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) F& ~6 k0 t" Q. ~
#else // __SYS_PLAYER_DATA
4 o( |' ?$ P* i6 X- e2 j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
1 p$ p' d' @1 h& J% ?- h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 k( X" ]. K: t, {1 i* l- X if( m_idGuild != 0 )
! C% i; O }: w1 F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ D# A9 R0 _6 q: N5 d) ~3 }#endif // __SYS_PLAYER_DATA: D. H5 I3 l1 A( e% \& `
SetHitPoint( GetMaxHitPoint() );5 I! y5 K! ~5 Q9 d
SetManaPoint( GetMaxManaPoint() );6 U1 H7 V8 `$ m: w4 ?
SetFatiguePoint( GetMaxFatiguePoint() );
0 s$ G% ] g1 W8 X; r" f if( nJob >= 1 && nJob <= 4 )
2 v3 A! d5 b) N* C3 \* v7 c {# P- i! X: j8 C7 A
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 F1 K; c1 W3 V% x# k c7 S2 p2 {1 n5 r) @ m_nRemainGP = 28;% a0 |: w$ ]( D+ K1 z9 R/ @& A
}: L( K5 c0 G! X* Q. Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' `- K- V8 e5 q/ \: o
{
# i" F5 S/ g# {( n- W% ~ m_nRemainGP = 118;
6 h- {: K) X& ^ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 ^# i% Z N. O. L( t) Q, U, | m_nStr = m_nSta = m_nDex = m_nInt = 15;
, K- P- k/ o# H7 j" o }
7 O% k! ?# m. c+ W$ f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 Q! ]* J3 x& D+ T {) a1 h# t! q9 [8 j1 P% Y m
CItemElem itemelem;
6 [# N6 f! L, E itemelem.m_nItemNum = 1;! n/ ^* \# ^% V% p* O
itemelem.m_bCharged = TRUE;& l! `& v3 w& q" W$ h0 x( l! l
BYTE nID;
" w" |. p! ]+ i8 Q1 g
4 I8 B! D2 C$ s. L0 }' \/ I" k if( nJob == JOB_MENTALIST_HERO )9 y Z: E+ t! Z( @/ x" M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 ^+ I/ d8 L" I: V
if( nJob == JOB_FORCEMASTER_HERO )
- \3 }1 ]& Z. J8 S itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ h; f* n, c' F8 c6 D7 k( b: m( N- b& l. O' h% E/ ]
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 t9 `; p, Y' b& [" z
}% t5 _" b1 w/ u$ W# } S5 ^& s' |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& u b; X" O1 L2 V; E" h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );* W9 j! Z! S6 u% K Y( `/ ~* ^ |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 l4 z9 A$ ?8 [' }* ~" Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 w9 I' i' P/ f! z+ c3 I' o: s; L ( (CUser*)this )->AddTaskBar();*/& {; R" i, A4 U6 ?' {
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 O& q: A$ Q7 h( _! i8 c: Z% l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
' L( y3 R, S+ @# @8 ^- n3 \: d) u ((CUser*)this)->CheckHonorStat();
! x. `4 W; z' A% w X% }8 o2 C ((CUser*)this)->AddHonorListAck();+ ^/ Q' H- }/ S. _2 R) L
g_UserMng.AddHonorTitleChange( this, m_nHonor); G! W3 y' N0 p. L6 M8 P. R
#endif // __HONORABLE_TITLE // ′Tà?" O+ S% n6 }2 ^. j, {: u: O& k
}
' S9 n" P8 H% V {" Y#endif // __WORLDSERVER9 A# ~' H7 c2 {8 S# T8 z* A; `
}
8 D ~3 d" i! ~+ H' B; X) s" m* W4 F
然后你进入functextcmd.cpp并添加以下- E! ^. W& C4 [$ k
, v% o2 N( a. ^) {3 ^代码:
& I! _2 V$ b. w N" AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 @( \5 w/ R8 q& `! X7 q) E
下面插入
/ z1 o6 m" K: B/ Y5 [6 Z) EON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 y8 b) H- L( I
% [' P2 w0 W7 V% i' b& s/ L6 `/ j
然后你去
. @. y( C" q s) i* r8 o5 {: J1 C% b
代码:
+ |6 G& `* v/ t3 }代码
+ [# J7 Y1 T$ x$ ]) ZBOOL TextCmd_ClearPropose( CScanner & s )
( @3 I$ j* ^$ [$ a3 C{" `. p7 F) D. H
#ifdef __WORLDSERVER
^5 L i" @% c/ u- e CUser* pUser = (CUser*)s.dwValue;
1 L0 W* A4 l1 b g_dpDBClient.SendClearPropose();; ]& @* U( k* E% [
#endif // __WORLDSERVER
* ?: ~" f1 f& X+ \7 Z; Q return TRUE;
( J/ }6 e0 h3 |. y}9 o- |+ j5 B) u" v0 k2 n
下面插入
' o6 ]6 k [: Z! a* n& eBOOL TextCmd_rebirth( CScanner& scanner )
$ K% e6 W0 ?: G6 D{# \* `" k2 x# n4 o) r# @
#ifdef __WORLDSERVER
8 Y% Q4 R3 Y( I! E; G- UCUser *pUser;
' K& T/ \( S2 g! ]3 |* LpUser = (CUser*)scanner.dwValue;
! A6 ^7 s, Y2 |4 S) Lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, L6 Z# c9 G& O, f- B% X8 J, LpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ \4 _5 l( d4 N- f% t+ L6 ]- ]
else+ V& F$ A A: B
pUser->AddText("你还未达到重生条件!");0 H* a2 H2 _: \ g
#endif
4 e+ {6 @9 j. I# ^/ O, Kreturn TRUE;# d' U, r O' }1 b$ g0 k2 Y
}
3 _' i4 l3 F+ w* y, t! Q& V
/ z3 P! f1 a$ ]7 P$ v* `" ^! y8 V/ H
$ I) u9 d; A$ H4 o3 \
6 {) p1 V# K0 V' G' g
|
|