|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, _. V0 G; ]) h3 T! V! ~2 s
8 v* O- M2 Z* k1 V( j% y' T$ a
Mover.h( B/ T5 o) G, ^ @3 w
代码:! L n6 e. |. J; d7 E/ q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ E2 g4 j/ u! ]9 X' {& u8 I
5 R1 @* i8 v N' W) }( X( \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 |9 j: c6 ^' @4 P1 d' D! D& J% k* x* p# E$ t
然后你去mover.cpp添加
. A O6 y" y8 G D# ~3 {( S
/ I" l9 u9 D. ~# M' j代码:
t8 P8 l E' d& G; e! `' h& Tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 c( L! H7 S( R% n) @' m& S
{
9 G8 j6 K# @$ X; | Z m2 A#ifdef __WORLDSERVER% u6 J a+ l4 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ a5 n2 ~" U1 b1 W
MoverProp* pProp = GetProp();# |* c" h3 h1 l0 s" h, {! h1 `
if( pProp ) Y1 }5 T4 B2 V) F' i. z/ ]7 R
{8 i B3 ?- B8 k) p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 K* B8 ~6 Y" u
{" o* q' S6 N, D, X) s/ F: Q
AddChangeJob( nJob );( d% l6 Q6 j2 G
}else{* @' b9 m# w7 }! G
return;
: N1 q! c. A) }. ?. C% G- Z9 V }' T7 H! i/ t' y' ~ C. m" y6 n) c$ D
int nPoint = 0;
; h3 h! {% {3 a9 g1 Y9 Q if( m_nJob == JOB_MERCENARY )6 p* a, [, `7 P; l# z0 u9 M3 m8 H
nPoint += 40;: Q5 B' X* r- P
else if( m_nJob == JOB_ACROBAT )
( g$ w- J- n& G4 E5 ? N* _ nPoint += 50;1 Z, k' b, `+ b- v' I6 {
else if( m_nJob == JOB_ASSIST )
4 b) V2 ^$ Z- v8 w8 R nPoint += 60; g% x$ \0 P" x
else if( m_nJob == JOB_MAGICIAN )
: f" y: o4 K' r, G nPoint += 90;9 b' c3 X+ S) C2 H' p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* V) y2 P% {4 f# N6 M
nPoint += 120;
! E% f9 w* r( | S3 M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ u: ^4 F5 n: {$ K
nPoint += 150;4 Q3 A; X- W. |2 @5 l9 g$ I& X
else if( m_nJob == JOB_RINGMASTER )
1 t% O+ K4 r) Z0 d9 \4 | nPoint += 160;) @' H! J9 {* ~* d2 V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 V- z+ A, G" y) r+ ?4 D nPoint += 180;
3 i( X. k+ e) Q0 m, @% ]0 [ else if( m_nJob == JOB_ELEMENTOR )' t6 ^! Q/ |0 V1 Z0 h* T, \
nPoint += 390;
4 d4 r2 L- b2 E; E) [# o else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% M' p& e8 q( f2 x0 n1 k nPoint += 120;5 L1 T! M8 y3 R6 C4 T
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 a; L: e2 s# z nPoint += 150;- e+ V R; b. y8 P* V
else if( nJob == JOB_FLORIST_HERO )6 y7 V% g: D* M6 X& Z5 S- G
nPoint += 160;# |' q) ~, Q( ^ L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 U" F, |0 a7 h O nPoint += 180;
5 h* W+ v f' T, t# c ]+ V else if( nJob == JOB_ELEMENTORLORD_HERO )
( l2 O$ V2 q% X( J: {0 ^8 ~2 y nPoint += 390;0 f) C6 j6 O$ {1 [1 q4 ?# A/ x/ V
* l8 u$ K+ ^8 u" p$ J; C; `; A- d8 c
AddSkillPoint( nPoint ); I# m1 N# h1 j6 z! {* y
m_nLevel = nLevel;
9 ]( |8 p: p) E: I e3 m2 _3 K$ D: m9 {
SetJobLevel( nLevel, nJob );/ ?' n% B0 u- P& y, [2 W% T
m_nDeathLevel = nLevel;
8 b& w! p1 g" G; n$ H) L#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 @! j3 S" l' O2 m: e
if(IsMaster())* j" I( F1 Y9 A9 o* m, h
{+ C* e5 e8 ^) _! W7 T0 B# q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' H( U2 x0 `; `( L
if( nLevel > 59 && nLevel < 72 )9 }' N) A& ?! t2 e
dwTmpSkLevel = 1;
6 R' ?2 Q9 w" K# d5 n: f4 I6 J( o# O else if( nLevel > 71 && nLevel < 84 )
, e2 l/ \' P7 d$ Q+ H dwTmpSkLevel = 2;+ u; A) Q/ |9 v2 x) C( v, u% }! h
else if( nLevel > 83 && nLevel < 96 )5 J- [6 ?9 m+ Q- H$ D
dwTmpSkLevel = 3;
- Y4 p. a) h: U- E( |4 P' ? else if( nLevel > 95 && nLevel < 108 )
" g8 O4 V! J5 E) Q6 @9 A) V dwTmpSkLevel = 4;% _/ i, c4 v$ v
else if( nLevel > 107 && nLevel < 120 )
# Y3 X) A+ N" ~! W& n dwTmpSkLevel = 5;
4 g; G8 R- o. K/ ] for( int i = 0; i < MAX_SKILL_JOB; i++ ) / p5 c/ U6 X% u; i* A0 M
{
0 `7 b1 ]" o' S0 W) o( U LPSKILL lpSkill = &(m_aJobSkill);% ]1 h% A3 Y4 l* Z2 w% n
if( lpSkill && lpSkill->dwSkill != NULL_ID )" L! t4 ^* Y5 b( D+ P5 g- n9 j9 _
{
' m' h: i* k* E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. k# @) W [4 n$ V" M if( pSkillProp == NULL )
x @' |$ H7 @* U$ n$ z continue;
) ]: W! \2 P r; w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ T9 A5 j5 h% g3 a
continue;
" U/ O( R3 C1 X# K1 ~3 O lpSkill->dwLevel = dwTmpSkLevel;
, u$ y3 w# M- A) v O0 o% j. t } i8 l4 B* z+ u* v* T, {
}4 x8 [9 T5 Y# d1 A+ _0 V
}$ _% d" M7 U2 l, P( L
else if(IsHero())) m! c; ~- x+ q
{
9 O8 g0 |7 G- l. f' l' u for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ [; v0 i* P/ K { ) D% }: k$ ~! Y5 ?6 v; c ?
LPSKILL lpSkill = &(m_aJobSkill);* l2 H" v/ P3 F$ \$ `( M
if( lpSkill && lpSkill->dwSkill != NULL_ID )( a! O( u# {# O; u# M& W. X
{
7 g8 `+ ~2 b4 k+ P( Z; T7 R, F: }% V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 b9 O' k E6 ^2 N
if( pSkillProp == NULL )0 K. B! x/ q+ W5 ]+ \
continue;
0 \9 R F' G$ H ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 m @) C3 P7 N& _- d+ _5 ~, w4 n
continue;
! E) U1 _& J# e4 z9 {' M lpSkill->dwLevel = 5;
6 t3 ]8 z# K ~" }5 k5 @6 K7 [ }
( H. J$ ^- n7 l2 l- K$ j2 V% ] }
1 J3 ]% q5 M6 L2 m }
, Z9 `# D3 y. m0 ~ else if(IsLegendHero()); o. p6 l p, z: e% K1 Z" k/ {
{/ `+ V' y9 a0 ~$ U) w6 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& `# y' e+ d/ f6 o0 Y {
+ P/ o' R* i: Y% ? LPSKILL lpSkill = &(m_aJobSkill);
- d" l6 I1 n ]& z1 Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
- d c) t* B1 d" m {
3 K' C* P/ g+ `* U% N" L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( r0 u1 K6 l- J, h `. B if( pSkillProp == NULL )& J0 g& E) `9 h; r# H
continue;
5 q' h$ _0 y6 \1 q3 f6 H7 `% y2 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 u( I: D1 j1 Q" ? continue;
( t9 A; ^7 _! j" z lpSkill->dwLevel = 5;4 T6 N+ B) X$ R1 v' @7 C
}
0 H& q3 P3 |! \" I# k3 B }
: G$ Z x9 a+ M9 {+ g }
' I! y1 Q0 I# j+ S3 V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# C( t0 h& i l: p) a6 e" ^ if( bGamma )! ]3 x' @. {7 n2 V3 D
{
1 e& i$ ]" k/ | m_nExp1 = 0;: b% O8 j2 ~, k+ b; `
}
% k, Q. C% t" o3 l2 A- X6 P
\$ a3 W3 f+ V0 `7 |$ S ( (CUser*)this )->AddSetChangeJob( nJob );
' G: \* M3 I; S1 H3 | Z. F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. X* u) _6 z2 ?; C7 [
9 D. \2 L$ _8 b6 i1 n+ T8 i ?& q( j( P
#if __VER >= 11 // __SYS_PLAYER_DATA5 }5 N+ B) O! s. C. l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" u8 v1 e% _# {2 F, F, V2 q# j7 Y% a#else // __SYS_PLAYER_DATA6 L t: K" E% m$ }
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; l$ g" Y5 i% I+ k2 z5 E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 x$ e" n7 o7 r" P7 _( X if( m_idGuild != 0 )! {' m: B* Z0 B2 v0 G+ M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; A) O7 l5 h# G- ~" s. z#endif // __SYS_PLAYER_DATA
: }$ q$ y8 c) v5 x/ I5 q" v SetHitPoint( GetMaxHitPoint() );
' K2 I) @# M9 r0 B8 h. o' f SetManaPoint( GetMaxManaPoint() );
' |5 ]: m4 |. c D SetFatiguePoint( GetMaxFatiguePoint() );
/ z9 _& b7 a+ w5 ~9 W8 p9 ]5 k/ @ if( nJob >= 1 && nJob <= 4 )! @8 D) J( ` u0 j% L3 G
{5 X) O* ]+ e6 w* E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 \( a! R" s9 J m_nRemainGP = 28;
, B$ W; t: v3 S! A+ w6 K1 ] }
: N6 o5 t! r( m# G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
0 ~: L9 U) I* f- y1 T$ l {
7 c1 d, C2 `# U( c m_nRemainGP = 118;- D5 @) |( X1 C( I* \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 U* [$ L6 d( s7 f ~- B m_nStr = m_nSta = m_nDex = m_nInt = 15;" J9 d/ R. \2 M# Q. _ T
}
* r* _1 i. z6 G% z, s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* O$ h+ @+ L# B5 _ {4 l8 B. G( ^5 Z h
CItemElem itemelem;
+ }/ _. q8 E" e& k, e# C itemelem.m_nItemNum = 1;
& x. A/ r- ^" e: G9 A) c itemelem.m_bCharged = TRUE;
8 v: M/ \, p& i- T. n BYTE nID;) t+ x6 M+ g) U# W7 S; ?
4 Q# G2 w1 a. s; s% h8 q# b! B if( nJob == JOB_MENTALIST_HERO )
4 \) o4 m; m1 g9 D% [$ m itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 [4 Q9 x9 M3 g if( nJob == JOB_FORCEMASTER_HERO )* W5 u! a' u" ?' I' N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 X% O0 @& F$ G9 O& L
n; ^. [, ?7 C |7 B- y7 a
( ( CUser*)this)->CreateItem( &itemelem, &nID );. m$ v: i0 x y
}
" T! @9 N6 |( k1 g g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 _/ V- V0 Y a. V. `7 Q3 ^7 c ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# m2 k- W" i0 G% A: C8 q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 i3 p; i1 i. }! G( ]0 l9 C3 p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ r8 h7 _" O9 X: k* p B. ~8 C
( (CUser*)this )->AddTaskBar();*/. O% T$ V" n+ z1 Q: v- ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 N) ^' |0 p. K1 X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 {" K; d! Z! S" }8 b1 |( t* A
((CUser*)this)->CheckHonorStat();; H' o, G& K$ c
((CUser*)this)->AddHonorListAck();+ \9 q" I/ \, ]" _& V6 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! L' ^$ D8 B2 Z5 y- e' E#endif // __HONORABLE_TITLE // ′Tà?
$ y, a0 X3 X3 Y! i# u }
' W1 V, J% B! b# p( g#endif // __WORLDSERVER. b/ n% p6 o4 { B4 ^ H
}
- \' ^4 z8 ?- m9 o$ c1 M. R; _9 d( K; G, ~3 e$ E5 ^
然后你进入functextcmd.cpp并添加以下
- P+ V3 S& ?) e8 j8 s
* S* O5 y+ x, t代码:
5 ~/ c* ^( v% P8 i! u/ ]ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ A1 k, s4 f) m; C5 G5 A( J" c下面插入
8 G- }+ K8 j+ M9 m) cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 t2 S6 Q! k4 X$ w4 W1 C
) F5 F# t& Z$ o3 H4 n然后你去
( m H- Y( Y; a& }0 f7 k' F/ ?' D4 d7 r. y4 A5 S
代码:' P- C1 e8 t- v- o
代码
9 N- d) m% U1 P; K# uBOOL TextCmd_ClearPropose( CScanner & s )
9 L) ]# |+ }- U) X, E* T{- J# Q6 N! d/ G& S8 z" P @3 L- F! Y
#ifdef __WORLDSERVER
( l9 t" a x* a* ]$ X8 x0 l CUser* pUser = (CUser*)s.dwValue;
' @: x1 D5 ?4 p0 Z+ Z( K g_dpDBClient.SendClearPropose();1 E# F, e* _3 F Z
#endif // __WORLDSERVER/ y! z. y9 q1 f% i0 Y
return TRUE;
( a* @0 v* P( W) s}* F2 `2 U* S* _& b5 f1 W
下面插入% j/ s. Y. [: W( {; q- h) t
BOOL TextCmd_rebirth( CScanner& scanner )- u( s& p' m V" c
{
8 `0 z3 F3 U9 G$ ~% t9 S8 _2 n#ifdef __WORLDSERVER
$ z1 w/ B6 E/ d8 \$ c1 {8 BCUser *pUser;& p2 F, o% _5 q: `; d J
pUser = (CUser*)scanner.dwValue;9 V- d" m- S) ]' h
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ e5 }* P+ h$ C. C! z: U3 L3 U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ D- a4 i8 H/ y, X- R& {
else* f2 a% |1 k& J$ _- v+ |- k
pUser->AddText("你还未达到重生条件!");- G! f3 w; W+ O$ B
#endif
% S" D0 }. p' o2 ^8 mreturn TRUE;
! U Q2 d9 t: W} 7 G8 @) R, _; g j4 D
1 s! F8 F' i) W3 R5 J E/ Q, ~# I8 ?# B/ S* ^3 o# L
% {& B2 t. h, I8 ]# F1 f# E
- Z! a( L9 B Y( X# v3 T# [# j* V, q |
|