|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" z( v h2 ~2 P9 l- _' ?
1 n8 R) U3 |* u9 QMover.h
) b" `4 h. o" g# S" W7 t" A! l代码:* {1 ^( N0 M) n8 t7 R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& [2 A' c; k* d( m$ k
- W" i7 y/ L) p0 j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) ]% d4 l2 `, \2 K/ a" d; o& r
+ e6 e/ q1 p6 ]- T7 j然后你去mover.cpp添加
9 A2 O9 {% S R- h5 {5 w
* e$ k% X7 x3 `9 O; R5 X代码:. {0 q9 L, {, b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. a7 \+ Z Z! f, K$ i* s0 Z" v+ [2 E{
- C$ S& C; Y9 e#ifdef __WORLDSERVER. k' n. Q6 Y+ i+ k/ D0 K4 i9 _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ u" N8 h3 U3 U: z
MoverProp* pProp = GetProp();
; l5 \# V! v0 G9 x/ a% H, c if( pProp )
; X1 E% ]- K( f/ q+ e7 i {( F0 W" a9 Z9 S4 _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 }4 c6 n2 X: w7 F {7 [$ ]9 w0 u' B$ W- l- H# g8 r3 y
AddChangeJob( nJob );
" W/ }0 H" N4 A }else{
1 G# `! C# ]( C' C* m return;) l. x% G" e7 {& w4 {
}' T3 p6 o8 G# z) Q c- F
int nPoint = 0;7 L9 D, e8 z5 l8 J3 D3 Z+ W: F
if( m_nJob == JOB_MERCENARY )4 @% P4 p* i7 P1 _# P6 d g
nPoint += 40;! d9 y( Y$ O3 E# u- T1 g
else if( m_nJob == JOB_ACROBAT )
0 I$ I; H8 t/ i) b1 d1 X nPoint += 50;& J* a6 O; ?; g- }9 _" h
else if( m_nJob == JOB_ASSIST )
2 A* c |! N" S d# H7 y nPoint += 60;
2 e0 |; q. ~8 A8 H1 p else if( m_nJob == JOB_MAGICIAN )
8 b" ]7 E; R N- l; B; v) T nPoint += 90;3 S1 \- I0 |% v' L' |5 C$ \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ o8 r+ v' w a6 [# _0 P! o3 ^( f
nPoint += 120;
6 m1 J+ m* O' r, `5 x$ U else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ D! S: [: g8 M# Y nPoint += 150;
0 o2 _! ]( [4 A, H else if( m_nJob == JOB_RINGMASTER )
/ f$ l( |; H! l$ _ nPoint += 160;
* @- u4 w9 s& R4 L1 ]3 x( X) @ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
. v! d, D7 e! @9 M" ~+ B- N& C, I nPoint += 180;
! {7 `" L* r+ y9 P else if( m_nJob == JOB_ELEMENTOR )
4 ^' }6 b, F* r' C \8 u p ~ nPoint += 390;
% R: d" n/ y0 Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 G; m# ~5 Q0 h& [ nPoint += 120;7 ~' V- O7 n' n; x* L
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 `& e% E v! W& X5 |; N nPoint += 150;" d j m4 Z5 j3 _
else if( nJob == JOB_FLORIST_HERO ): t) X' X0 M0 s+ e; g- u5 c3 W
nPoint += 160;
% s. U2 y2 V1 J' v3 Q" e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 {: J. i' X% U nPoint += 180;
% a1 y& B3 i& T7 r5 A; f" r) H else if( nJob == JOB_ELEMENTORLORD_HERO )
4 t. i* M$ i9 a6 D nPoint += 390;
( T. k) X4 s: b6 q, n# M( B
; ]9 t9 Y; r/ a; ?2 Y AddSkillPoint( nPoint );: K( x" A% x# x2 u
m_nLevel = nLevel;& Z; b+ x; H# ?# S
5 t' \$ w1 U) l% R; k4 ^9 a* { SetJobLevel( nLevel, nJob );
4 t3 g# q8 j7 j! n! p4 @6 s m_nDeathLevel = nLevel;* R1 b$ E# M/ j- B4 Z5 k e p& { g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 y3 T$ {6 |& W! V$ c& C
if(IsMaster())/ Q- {3 B- A- J" {- o. G9 [ L
{, k0 {* w- s o# n4 ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: l: R: e2 \+ Y6 V+ ?
if( nLevel > 59 && nLevel < 72 )
9 u. d5 H0 D3 X2 \1 T# A6 i dwTmpSkLevel = 1;& |. U" X1 U) o" u; ]% J
else if( nLevel > 71 && nLevel < 84 )
) R* P) ^- }6 ` G: n" R dwTmpSkLevel = 2;# z# S* n1 [2 X2 b& ?8 z
else if( nLevel > 83 && nLevel < 96 )$ ^2 z9 n" Z4 d, c5 J7 V
dwTmpSkLevel = 3;
/ x8 E2 |, X( Y: P4 Z& _1 y else if( nLevel > 95 && nLevel < 108 )
0 @% L. t. W0 b dwTmpSkLevel = 4;
0 k7 E% W" c/ [: P else if( nLevel > 107 && nLevel < 120 )
! \& f* q/ K5 Q% K) r- `; Q+ v dwTmpSkLevel = 5;' `7 s5 k1 I5 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 x' G" ?% d1 D& C
{
) r- A+ Z$ m( G F+ i; ?# a1 b2 f LPSKILL lpSkill = &(m_aJobSkill);, U. q9 f9 I+ R% F3 G; I
if( lpSkill && lpSkill->dwSkill != NULL_ID ): ~0 O: U# C& G! r1 d
{
, T- C9 t- j7 t2 P @$ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 D& \/ Q. F7 T( ]! ~% L# c: H1 z
if( pSkillProp == NULL )# z. p$ l; q# H4 o
continue;4 @8 l6 g+ H: J6 @' }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 [5 ?+ y! }5 Z2 J
continue;
$ [! c8 a8 N1 ^7 a lpSkill->dwLevel = dwTmpSkLevel;2 W' Z, x7 P0 c6 U' T8 u/ X
}
- |1 L0 v& Q5 i* x }
5 U* `4 \- v8 U/ t# J1 H* ]- O }
8 C+ N' R N5 h4 f/ P else if(IsHero())
' X2 a+ D- o) c {' \- H- Q; J9 G$ G+ I/ H4 _1 t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 T; ~! j; X& g4 E9 @, J { 1 T. h9 D' M' U' Y6 f2 S
LPSKILL lpSkill = &(m_aJobSkill);
4 O: b1 k o- X- G. T% z2 M" ] if( lpSkill && lpSkill->dwSkill != NULL_ID )7 Z) U3 f7 t7 \4 @) \
{( W1 Y. o' x! X! l* |9 M9 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 w$ _) M! v% i! T! i if( pSkillProp == NULL )
u' P, l4 i1 W6 m continue;* o/ z4 V" ^" c+ H4 H! u( f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! d o) q/ b4 e
continue;
+ s& Q6 ?1 p* ]& b5 Y lpSkill->dwLevel = 5;& p& U$ j! J2 e' R/ ~
}9 @4 x7 L8 _3 G
}& ]3 C) X5 f$ p
}4 ]" r# |* @" N
else if(IsLegendHero())
5 D0 J( g! A8 Z: [% e* k% a) T {
- t) b! W$ f+ o* O- t8 e+ K for( int i = 0; i < MAX_SKILL_JOB; i++ )
% x' _& ]; u& v/ Q3 j! {3 M" F {
8 k3 ^( \* M+ {/ l LPSKILL lpSkill = &(m_aJobSkill);' V6 i" N% [2 F, ` ^$ C% G
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 a8 l2 ?8 E( q W! H0 I
{
& w5 E& [$ i9 J: J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& b F3 h) G7 O# b: h9 s4 M* r if( pSkillProp == NULL ) ~. @* k5 x" d$ {7 @: a
continue;
' T+ h$ K! F8 S l if( pSkillProp->dwItemKind1 != JTYPE_MASTER), Y0 c3 y$ X7 h& g" ?; n% `4 o
continue;
9 y& D) H; ~ Z' v lpSkill->dwLevel = 5;) _2 b) N) E5 G- e; v, w
}: l; K5 o/ z2 W: t, ~$ H
}
& z. g; e. i% L3 z }, m* d3 A; w% e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 ^" t8 R2 Z5 h" u if( bGamma )# y% X! w# \! \2 ]$ g0 f9 m. N
{
6 e! B( t' I+ J4 j: T m_nExp1 = 0;0 X. g/ W( K0 G {+ y) _, J: u+ h
}
1 w' n9 S* b4 [' S# f% j4 X2 B( H" K, n! m+ H, ]) D8 s( a4 s
( (CUser*)this )->AddSetChangeJob( nJob );+ {$ K1 K( ?5 j* L E4 M4 b X! Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); I$ Q: n+ I) D9 L
0 ?0 P \8 a: ~( T/ r/ L, H) l: w @- U* y$ Z% T( m3 y) q. C
#if __VER >= 11 // __SYS_PLAYER_DATA- v- k! a& c% b! p
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 Y. M( k1 F, G! @" G#else // __SYS_PLAYER_DATA
% |0 ~: J$ {) h5 a' m2 Q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) Q2 ^, P6 D/ R7 q" r1 @6 R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );9 R, }" E+ f. e2 W! H# Z
if( m_idGuild != 0 )
1 y2 X" D; `# ]6 W% R& U g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
T7 v) ]% e+ M0 }7 D* l#endif // __SYS_PLAYER_DATA
/ s7 S7 E7 c' O' x# }: I SetHitPoint( GetMaxHitPoint() );- N2 d+ |( W4 q6 w8 z/ ]8 N
SetManaPoint( GetMaxManaPoint() );
' E; p# q! v3 x2 I SetFatiguePoint( GetMaxFatiguePoint() );7 r8 p# q" N- a4 b
if( nJob >= 1 && nJob <= 4 )
+ j4 r" u3 v$ p+ e/ s+ J+ U {- h7 z3 U% N! }6 p8 j7 d# ~
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 w. |" i5 G5 C) | m_nRemainGP = 28;4 E2 o7 r' C' r: S5 w
}& _4 W3 G! }1 H; X, V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 ]# p1 U) M5 G1 w7 W# S$ S2 r
{- Q# s2 y# `6 n: Q$ k
m_nRemainGP = 118;* a2 O. r$ J* Z; q/ A& g
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; I: z8 v+ y' m+ Q: U- R# K: Z* Z: F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 k1 Z/ T) `- ?; a }
$ w0 w( I. W- Z! n6 ^6 Y if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" \$ |( J7 [! f, m {
8 g) [6 }2 h4 V. d CItemElem itemelem;
# q% n; N5 |4 q( n# c0 Z8 m( x! } j itemelem.m_nItemNum = 1;
8 ]/ v) Z' {1 `( @ itemelem.m_bCharged = TRUE;
R3 M* N# g4 g# Y+ l2 K4 J BYTE nID;) ~$ J. h' J. U' e
/ Y. y! Q; J4 i' V8 t
if( nJob == JOB_MENTALIST_HERO )7 w' X4 l: b0 x5 q. D5 P5 o% U% [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 p6 g2 f7 @6 q8 k4 t if( nJob == JOB_FORCEMASTER_HERO )
6 T9 Y! M/ @+ { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ i+ r* k7 C0 P% X0 R8 r" s2 z
3 f1 t! T2 B: m( p2 N7 ?1 e. D ( ( CUser*)this)->CreateItem( &itemelem, &nID );% S1 t' ]( P6 c* l& Y) I
}
* A; {( s# H4 q o. k" t g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' n/ u" @ ?; W# L% b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( L" L6 ?8 L" v' q0 ?9 h+ V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 b7 h! U6 O' @1 [6 E& u1 d
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 z# t2 l, w' j8 O& V ( (CUser*)this )->AddTaskBar();*/
! r( b6 `8 `7 A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* P4 b$ `1 }( Y* v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; g% P V% Q" d) m3 Y1 t& p3 m ((CUser*)this)->CheckHonorStat();4 ]. c5 ]% K4 E
((CUser*)this)->AddHonorListAck();' e% b2 G$ u% J/ ]6 ?) ^% [
g_UserMng.AddHonorTitleChange( this, m_nHonor);, d$ A* N$ h2 `' V! F
#endif // __HONORABLE_TITLE // ′Tà?
% D" a' O5 W/ T# j }
9 F( w* v1 b4 d3 |% P9 q# s#endif // __WORLDSERVER
@: f# p- N- K6 v} 9 e X9 ^' U1 |
3 |; X2 i5 n1 C2 A; Y2 Z3 b2 S然后你进入functextcmd.cpp并添加以下% `2 s0 `1 T+ g
* D: m3 r6 A/ G9 @
代码:1 \9 d3 n; g% X& u* W! v8 Q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: ? s2 H/ \- \7 u# E ~0 u下面插入
3 Z- D( O: s% |* }0 mON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. Q8 a% M5 F5 [8 S3 u
, D7 O# A* _1 S: o- Q然后你去" b' N% G2 \5 y
3 X+ ]. i: ]% p; ^: N
代码:1 U1 p8 U$ L7 i, g7 Z
代码% u4 {. Z2 t. z# e( h
BOOL TextCmd_ClearPropose( CScanner & s )! h v# b; J; ^) m, a
{
9 X- g: _+ x2 f1 R+ _#ifdef __WORLDSERVER# h9 A1 M, c6 W$ Q, m0 }- a
CUser* pUser = (CUser*)s.dwValue;
9 J6 S S; ]7 B$ Z5 a g_dpDBClient.SendClearPropose();7 @: ~1 T, N( @4 u" j" [. R# E) T
#endif // __WORLDSERVER* I- \$ s3 ?! N8 \
return TRUE;& P( H( p: T- k, b- k1 ~ }
}
$ Q! ^7 Z, B' Z) E, M下面插入
( _. U) j8 u, @% A+ \+ mBOOL TextCmd_rebirth( CScanner& scanner )0 r2 z. t! }% x- O o' V) J: e" J6 ?
{
0 u6 p5 u) J; }$ A#ifdef __WORLDSERVER
. `. w) t! z2 fCUser *pUser;0 q, y( o0 m8 ~ Z0 R+ h$ w
pUser = (CUser*)scanner.dwValue;
5 s6 K8 J; e! G+ d D% Y. uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ ~; ^- M4 ^8 |2 C9 p4 Y( B
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 c7 y s9 |' I$ a- d+ g( }: [else4 J W& b; B0 Q4 d& E' Y; O
pUser->AddText("你还未达到重生条件!");
# _; I$ ~3 U6 j* n#endif
3 b& m8 h7 i: D' xreturn TRUE;
+ ^. d0 m& T# R5 O' I% _ E; z} 8 l9 p N5 [7 i" W
& n: B' Z5 w8 l7 H
% q' X3 `' k* K; N
& w% A& s! [, P8 s2 i- {7 s. A" m; Q3 G! ?
|
|