|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: _1 ^, }7 d: S5 F2 w5 w6 {# o3 S( N; U
Mover.h
: H9 }5 W" {0 I代码:, Q$ M" ]6 s2 N' B K! R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 T( L4 X3 p" n" ]- ^. k
- `+ a9 k% Y$ s) z下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
M+ V2 Q" T% P( s* H! M; f& n3 p3 Y K
然后你去mover.cpp添加
: b4 I) e. B$ r, _. V x% S# Z" i* w" [! _: w! w* M
代码:, d4 i3 I7 p _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 t$ d+ z$ s8 C/ @$ M9 M2 f{; O( s6 j+ j9 t% p
#ifdef __WORLDSERVER1 y6 L0 ^& W+ Y; G* M) C1 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 {# l/ R2 a B L) n' U MoverProp* pProp = GetProp();
3 I/ {1 }9 K( M h/ n; H$ J if( pProp )7 Y1 j& F' B" \3 ]! z
{5 e5 A% f6 f( T7 s2 Q9 a# x8 u0 p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 t& t) Z$ u. Y$ c9 ]# c& D% G# K; Y* M
{4 p9 A" F/ J4 D; `3 S
AddChangeJob( nJob );
. p5 f" x2 E8 u# p- f, J ? }else{' a3 |4 @ N; `9 _! D
return;
* x7 B8 s9 V5 g" _6 p. [$ P- P9 a" e }; V9 Z4 T$ O9 b
int nPoint = 0;1 ]' t0 o- e: c m6 V. V& n& I- _
if( m_nJob == JOB_MERCENARY )
, {% r9 d" f/ ^: `) L4 E nPoint += 40;, k k& \" E: _3 j3 R' x. I
else if( m_nJob == JOB_ACROBAT )
- z" |" n" d. q nPoint += 50;6 m c. V. e) K/ A5 n* [2 j m/ u
else if( m_nJob == JOB_ASSIST )2 U& h9 B" V8 N. d9 C
nPoint += 60;
/ F* h- y1 A A6 S else if( m_nJob == JOB_MAGICIAN )" J+ k! e5 m0 V9 \: _# a( \
nPoint += 90;' d/ ?3 j8 D, I/ Z! @# \2 V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 I1 z6 d' A8 |3 v$ u! d nPoint += 120;
6 K( w/ Y4 X3 L d. j# f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' k# [3 ?. Y2 d; a8 M% r, V nPoint += 150;2 c: m) Z. k' g% C; Y) R. `
else if( m_nJob == JOB_RINGMASTER )* Q# j% h( ^4 Z& x
nPoint += 160;) \, Z. _' o' }( x. z' [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
F# p! M$ M4 P9 F nPoint += 180;' C- |2 x) t& O
else if( m_nJob == JOB_ELEMENTOR )
5 v; w# K' E6 z' L4 i5 H ?8 V nPoint += 390;
7 c' m$ m) Q0 ?6 A9 H c& h8 ]+ L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ `# T& [5 u, o/ V- K nPoint += 120;
o5 w9 w/ x- [3 O3 y0 P% d5 ~ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, q. g* I7 `% b; ]7 L nPoint += 150;
! F; y7 U! I/ e else if( nJob == JOB_FLORIST_HERO )+ X& ?- U* F% T7 @0 _
nPoint += 160;
- W$ i3 H/ u* j( T/ ?9 ~0 o else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ P q& |; g4 Z' h, ~5 Q$ y
nPoint += 180;# o$ X& S% ?4 j3 A$ S$ n5 e
else if( nJob == JOB_ELEMENTORLORD_HERO )
# L# a7 h( N6 u' U: w5 v nPoint += 390;' O4 L" \ D, E2 B& Y: J
4 B, f& ^; q) Z" C3 l; I
AddSkillPoint( nPoint );% N% @1 y1 ]; Y1 M! H7 \* g
m_nLevel = nLevel;8 _4 h, d* G, f2 f$ G f
; G$ Z' p; |3 s# Y
SetJobLevel( nLevel, nJob );
, N4 l" Z' g. K+ ^! ~5 g m_nDeathLevel = nLevel;
3 |$ Q% I; }9 B8 B: b1 Y# {' E% H* N#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* N7 ]" z( a( `, x6 v if(IsMaster())+ J5 }1 n- ^0 H5 y" A& X+ u
{
: q0 x" n! E3 m5 g) N- \4 s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. j* n, i6 c3 X1 |
if( nLevel > 59 && nLevel < 72 )
9 G7 Y3 j& T$ O. X- W dwTmpSkLevel = 1;
2 }8 \5 ~6 D+ F& x! j1 [+ d else if( nLevel > 71 && nLevel < 84 )
/ o( W; i6 I/ _ dwTmpSkLevel = 2;
+ _$ d) M# a* X5 c( V7 B0 y else if( nLevel > 83 && nLevel < 96 )1 m6 Y; o& v* i6 Z) W: O4 U
dwTmpSkLevel = 3;' J! G5 a! s2 [* Y& a
else if( nLevel > 95 && nLevel < 108 )* q) P4 P. V/ S2 ]9 E! a
dwTmpSkLevel = 4;
' n- y- z4 E/ A else if( nLevel > 107 && nLevel < 120 )
" S0 @& `! b# Y! v" P( c/ @) I dwTmpSkLevel = 5;) R2 t& K8 o0 [% U+ \/ L0 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # B3 b: W, J( S6 q+ z$ b& l
{
% [1 v+ f: m1 G- [) Z$ B LPSKILL lpSkill = &(m_aJobSkill);
) k" ?- M9 O3 b6 r2 j& u6 F. d3 j if( lpSkill && lpSkill->dwSkill != NULL_ID )3 |3 K0 ]' P. ?8 C& c4 y. ^3 Y I, z
{: U8 G2 i$ Y& E1 X! p5 i" `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 O, W9 \/ J ~
if( pSkillProp == NULL )
( h3 Y9 J. f1 i7 j9 C9 E/ ?" ? continue;
$ F/ }; o! y6 ?2 Y. C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& X: j# D" E& ]& @. F0 }7 ^! M2 k
continue;! i1 }7 g1 p/ w* C6 \' p+ X
lpSkill->dwLevel = dwTmpSkLevel;! g2 K9 O R2 k7 q. m( F" O3 [) ~
}
5 l- R0 ~$ y. w& a1 | }
`" r! _1 p j+ }" m) w0 c }1 x9 `4 T2 A5 l: \5 E0 j9 _
else if(IsHero())2 _7 A; Y6 {7 Z3 _3 i+ ]
{6 W$ ?( m6 ~" O2 r0 |$ y4 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( Y9 x" q r3 K {
+ I i" a, ^3 V6 `! _4 U LPSKILL lpSkill = &(m_aJobSkill);
C [6 X# ~7 D0 a% ^8 Z& D if( lpSkill && lpSkill->dwSkill != NULL_ID )/ |/ m" x% i4 Z
{( u) n3 m' h5 s2 D
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 t9 t' X( V: A7 o! p! T' K if( pSkillProp == NULL )0 q0 t* h9 w* w
continue;
. ?0 U# c9 A5 j8 d* o; I5 p4 ^5 H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 E$ K/ U4 Y- [% x) _$ X' {& y continue;: m. H1 p# r- d
lpSkill->dwLevel = 5;
# S( L' R( y* w- ^) t }
* A* s+ z; [/ l4 s }) O% {1 J% f3 a3 Z
}
& Z+ g8 l, T+ S& D7 \ else if(IsLegendHero())) L9 y/ a1 T$ Z- U& K# y
{. g, U* D1 l3 y$ c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! n `0 D0 C: S: P
{ : A7 m: H2 q& A/ Z/ Y" H
LPSKILL lpSkill = &(m_aJobSkill);( \: J4 \6 i! @6 M9 L9 j: p
if( lpSkill && lpSkill->dwSkill != NULL_ID ) h6 @3 @6 W, Q& i2 j
{
S' b; N9 v& C% i ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 M+ h1 I" X4 S/ P
if( pSkillProp == NULL )
4 U: q+ d/ D9 e3 X) j% v D9 Q continue;
( L% c6 C K0 y+ i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 f; G' d6 R0 ], p) V continue;
: q2 s7 p8 p$ X+ c3 }# u* P lpSkill->dwLevel = 5;
. k: _5 T3 L2 S }2 W$ X( m- g+ {; b- b1 u% t8 K
}
7 V/ E3 {8 K! [) g }
+ \% D- c- J9 E5 U! k% q( ?4 E#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 b& e* d8 l# A" i
if( bGamma )4 I/ H5 t% l8 a+ |3 c* z( t, V W+ J1 ~
{
0 M. @) c+ I% e# D m_nExp1 = 0;
; z( J1 c+ }5 |: M }6 f0 G3 z) b, v, X& `
/ Q: c0 B9 I. I& Y+ H4 d
( (CUser*)this )->AddSetChangeJob( nJob );) B! Y& D- @& C" t g5 P0 w' q
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! j9 @ U: Y- ]8 U% V
7 b( W2 s7 a* l% d) z$ J% q' W1 Q9 V1 h+ e- z
#if __VER >= 11 // __SYS_PLAYER_DATA! K0 q' |( K! T
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: T1 \" i, {9 G. Y4 F, l
#else // __SYS_PLAYER_DATA
9 ~9 T% \ }9 M5 B5 k! S g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 T2 q8 i- `! r+ r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# F, z/ O/ y, J0 g- h5 w
if( m_idGuild != 0 )
( m- l1 q |! i8 H# O: \6 X: f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, }) o7 _5 t3 C* a% C0 @
#endif // __SYS_PLAYER_DATA
; ]# p, q* S) T E SetHitPoint( GetMaxHitPoint() );
, U6 |, c1 V q' t- |. B SetManaPoint( GetMaxManaPoint() );
! i1 {4 [6 ]2 R SetFatiguePoint( GetMaxFatiguePoint() );
7 n" H' B3 E: T" }7 F5 \$ r' Z8 ~ if( nJob >= 1 && nJob <= 4 )# n& L* a7 Y. u- a* I% s- l' U* Z' h
{
! A+ d! p' q, c- u8 }# c t m_nStr = m_nSta = m_nDex = m_nInt = 15;- M! L6 ~, g( o0 n0 |: j/ \
m_nRemainGP = 28;
* k E0 [1 p8 _! f& l. Y' q$ l }
. b7 b G# u8 o. t2 d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) P8 y* z0 B _$ n, T6 X
{+ v+ ]3 H6 V6 d- T$ U2 H
m_nRemainGP = 118;
) c3 y6 G: K* d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 M7 V9 h$ i3 X m_nStr = m_nSta = m_nDex = m_nInt = 15;5 ^* R4 N! \; Y9 J Q" e
}
, U' U! F- G8 o% C: H( K7 U8 w+ V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" [" o# P. C: z {8 C( `; Y# Q( L0 o% @% M( v' X
CItemElem itemelem;
! @. c- \" {+ f itemelem.m_nItemNum = 1;. \0 b" m+ r3 {0 }
itemelem.m_bCharged = TRUE;
% ^- F0 x6 M9 D5 o3 x BYTE nID;
: }* c/ w6 r9 C3 R
& ]) W. ]; g7 B$ x% P if( nJob == JOB_MENTALIST_HERO )
: t: w% q% c% E& p' Y+ g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ f6 Y' t* W& Q, K if( nJob == JOB_FORCEMASTER_HERO )/ c8 u/ I* d7 Z% v: e. r- v
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, f" H# i6 n6 n( f* H
# {( J) w5 L2 s( e
( ( CUser*)this)->CreateItem( &itemelem, &nID );
4 u6 ?4 [! [% Y5 n. B }
# K5 c" {5 I' Z6 `4 [: U g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 A8 N9 q8 B2 x4 q9 N0 p ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: i- r% P6 m/ |# L" p# {
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 J3 Z9 }9 Z' `/ n0 t& @/ N- s: R' g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; e, |2 |/ n9 C0 R+ h- c ( (CUser*)this )->AddTaskBar();*/9 i2 N" a! U: D- G! }
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 y0 }; j* S. n q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! ~$ Q& s; u5 U9 X h
((CUser*)this)->CheckHonorStat();
& \. r5 p, Z+ C7 m6 J ((CUser*)this)->AddHonorListAck();
; p; p2 b; G# f ~+ w& q5 s% _ g_UserMng.AddHonorTitleChange( this, m_nHonor);9 d5 Z+ F. p. h2 h) c8 L# `( E
#endif // __HONORABLE_TITLE // ′Tà?
; P3 _& R/ m3 c/ o: {# y$ B, ^* J }/ O5 p" c o7 j3 F& o
#endif // __WORLDSERVER. i. f! [+ b! A; D" q2 ] X
}
$ X7 u& s! B5 X }# p& n
/ F) b$ C' e2 f5 c7 ]然后你进入functextcmd.cpp并添加以下
" \" g0 `8 O t1 X
1 e' m; |/ r, A$ @. R代码:- K2 U- _2 u( R% A: ]" n; e# p8 Q( }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 s! t* K- A' @ a下面插入
% M( o% g0 n1 s6 _, `9 K' E# OON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 _; O8 b2 S) i
) {4 J: `* B4 H然后你去
& e& N1 n ~" [% L5 |
F1 U% K1 A# d7 Z1 b" C代码:; u! ?7 q5 k/ ^4 ?
代码
& K% m6 n# L9 a0 R5 Y% qBOOL TextCmd_ClearPropose( CScanner & s ) Y) a1 c# A6 X" p( ~# V
{+ H6 l) Z' w" S- B0 }
#ifdef __WORLDSERVER, `( R( M0 I' ]7 g5 i( B9 E; q
CUser* pUser = (CUser*)s.dwValue;
" k! }5 ]- D w g_dpDBClient.SendClearPropose();
, W6 S/ X* f; [/ T3 q#endif // __WORLDSERVER: P: t8 Q, W1 _' _
return TRUE;
& Y( T1 w7 i5 z8 Q C}; q4 e" k1 @$ w) L1 ?
下面插入4 t& Z5 ^9 b _/ }. z5 w# f: Q
BOOL TextCmd_rebirth( CScanner& scanner )8 F# u6 K1 L" Z; ~4 Z
{6 a8 a) h- A! G. t9 A
#ifdef __WORLDSERVER5 H/ f5 z/ D9 D( D( T
CUser *pUser;
! r7 x( J" L5 {5 C! ^7 Z; VpUser = (CUser*)scanner.dwValue;
7 {4 l! c; `' s! F, `7 Q9 Aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( u# m$ _; e- U4 i- {: ~ g4 N; t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; g" y! X# ~ d0 `+ G
else
. F+ Q: H6 r5 z% e* l% E5 opUser->AddText("你还未达到重生条件!");
3 L: \" a% d( ?, ?( \6 x7 I3 e3 x#endif
) f! m; C8 Y3 g, w, c9 nreturn TRUE;* ^$ Y& `, H1 a% d9 h
}
- [* e4 l3 {9 G/ x7 d8 p* u
5 o; M# U% s+ S, `% S4 Y) I/ n7 O0 X" A0 }* B
, |3 }' \* I; O. l3 e# H& e" P+ p+ F8 O) ?6 T% t$ f9 M
|
|