|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. r# U5 r* F: q% F6 j! f" G: h
G- ], M8 j) ?* r1 _9 \3 D/ _" oMover.h D; u, ^' u8 T/ v% ?
代码:$ v9 |; y4 A( a0 d' s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) `! C; c# m! W a. ^ M, \2 P' J6 P& t# g4 v$ k+ g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , d9 y8 _2 F6 g# M( @2 U* z
* o! `! v, \1 e0 K+ e& [& H然后你去mover.cpp添加
: h9 w6 I2 B* [; k* {4 X' R: O ^! ~
/ _; d: X% o% V7 x代码:
3 s3 D; m( t0 r; s9 E4 u" l( rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ U$ D& h; ~# H) \' t8 Q3 m
{- r4 E+ B# L7 u/ f5 v# Y
#ifdef __WORLDSERVER
7 M# W% T; W K/ B; c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% M& @3 H3 ]1 A3 `7 M
MoverProp* pProp = GetProp();
/ a8 s' W9 X% S" X% s if( pProp )6 I" v% }& A. z9 X+ ?- ?, Y
{! ?3 M. a1 H( k3 }5 M
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! G9 L) N* `8 n4 [ K
{
% V; m2 K. T! j' H2 x( K5 K7 z AddChangeJob( nJob );
, W, T6 u1 A5 {9 S- g! E }else{
" p) P5 o- y# y# ]% C return; H% y$ M$ e6 w# x* h, A
}
$ Q: S8 z# ]( X int nPoint = 0;
/ n+ Q$ ^8 ?6 Q& }# e if( m_nJob == JOB_MERCENARY )
* t* Z0 s! N% Z ~; \: q nPoint += 40;% x3 Z$ G' R E+ p
else if( m_nJob == JOB_ACROBAT )4 w( w( N7 ?. o( N8 `
nPoint += 50;" j \$ T. l, [1 w/ L7 j. h
else if( m_nJob == JOB_ASSIST )
7 e9 P M. H- k" y; @1 y nPoint += 60;
( x$ D0 H+ x, }4 o. X) [% G6 y3 _) j else if( m_nJob == JOB_MAGICIAN )' _* H( ~. e3 D' R
nPoint += 90;% u$ S7 Y7 G0 s+ Y! H- v1 F; B1 t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ u; Y0 A; u L8 e* M! o
nPoint += 120;$ z' f6 V6 @1 @- }& j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! x, W: k4 U, w' s6 A7 L+ C7 i nPoint += 150;7 m- q. I# L3 f0 l$ Y
else if( m_nJob == JOB_RINGMASTER )
" P. w! r# c t8 P nPoint += 160;3 M& `2 J% g- r# ^& @1 F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 M2 B/ u+ O. i4 ~) V6 i4 g nPoint += 180;
+ j& r& ]3 [, u5 i# e M/ L0 l else if( m_nJob == JOB_ELEMENTOR )' Z6 _: p0 v \2 y
nPoint += 390;
& C9 }3 U: W4 W3 K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): U+ Y D5 ]+ [. r, s2 p4 ]. x
nPoint += 120;
8 \: a' {1 j) A2 c6 z$ _* v3 j else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 B& \1 T+ p# ~ nPoint += 150;
( E v8 _; B$ q- r7 }0 Z' D else if( nJob == JOB_FLORIST_HERO )
' V# J$ i# J2 W) F* K* N- L nPoint += 160;
7 V4 j8 D3 j: S* C$ ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) K: h& k [# Q c9 ~/ I) Z. ^ nPoint += 180;+ O! ]' ?. Z1 \* g
else if( nJob == JOB_ELEMENTORLORD_HERO )1 q9 e: s5 J G8 d3 h
nPoint += 390;% Y# H+ \' y3 B" X
% S n& f X1 ?) k* k8 m1 V
AddSkillPoint( nPoint );
+ f( L* u0 C4 |; t- ` m_nLevel = nLevel;
) a! M3 n' q' U# f. p5 c2 D0 {& [( q; h
SetJobLevel( nLevel, nJob );
* Y" Y' l# q4 J7 H m_nDeathLevel = nLevel;
" ^7 S- |. K1 H# {& j$ Z#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( `" A( B9 e* i7 Z/ h5 V
if(IsMaster())
& [) C+ x# n0 X8 d6 ], D3 g {) f* r M( t$ Z% e, T2 J6 `& T9 m
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% B: S4 I: l7 X8 Z if( nLevel > 59 && nLevel < 72 )! N7 ]" f% T: I! q% n. f
dwTmpSkLevel = 1;. ~7 t n5 y6 S$ j0 Q
else if( nLevel > 71 && nLevel < 84 ). Q* p% D& a& ~4 d& _" p
dwTmpSkLevel = 2;
: p# ~, D! p& R2 P7 e else if( nLevel > 83 && nLevel < 96 )
+ p3 N/ e7 q7 l' G( \ dwTmpSkLevel = 3;% S Z! o0 l! x* ]
else if( nLevel > 95 && nLevel < 108 )
f* o M8 S1 o9 @: u- h& } dwTmpSkLevel = 4;7 K8 g/ z" M- w. R3 y6 F8 N4 c
else if( nLevel > 107 && nLevel < 120 )2 V( O( Q. b {0 d- m9 N
dwTmpSkLevel = 5;( `) ~1 W0 q. U: L% b9 o0 M7 T+ N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 B+ U+ K0 D+ c9 c
{
% r0 C" b, N1 | LPSKILL lpSkill = &(m_aJobSkill);+ W1 X) S% A$ j
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 \; x4 U/ H: C Q
{4 Y% P- M) P3 J( m9 S$ E* r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 x" }$ v$ Y) p) D
if( pSkillProp == NULL )3 }9 C/ h- C* X
continue;
3 ?+ }% Q; B+ b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 a* Q Q1 P- p continue;
6 a0 Z4 a" t6 j! v' o lpSkill->dwLevel = dwTmpSkLevel;/ D$ _$ Y& \* [8 ?
}
7 w7 D9 D' w- j7 R* z `: I7 t$ _$ X }. n( a$ ?. a" y/ x7 j% m4 |: z6 H
}
7 F% c5 @* c/ b. C1 f else if(IsHero())
+ C: f5 o: c2 u, K {
- F3 [' [3 W5 }6 S. c for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' G4 m" C4 t; Z' ~' i+ H8 _
{
' Q3 F7 m/ R# \! d' Z0 ^5 K LPSKILL lpSkill = &(m_aJobSkill);9 m; D. y; R4 n5 L; G+ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% z' ?* c/ V# `: u {) X3 k$ w7 m6 Q" Y3 o# `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 n: G; e9 j5 A% {6 Z( z if( pSkillProp == NULL )
2 J1 r4 F7 ^0 V2 |, R, n continue;8 K) \' N& m' \! e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 {/ N! B! u9 A5 [* C0 w continue;
& ^+ U3 U; h3 }+ f/ Y lpSkill->dwLevel = 5;
: b1 }% Z7 K) z& k) f7 \* X }
4 h y- D! f; z' ?" } }
/ {9 v% V$ @8 r, R+ I' I$ A }
" i! H3 e3 ?. d- _8 W$ i else if(IsLegendHero())5 E+ D$ j: T+ h f8 H
{1 n. [, A! u6 |, J" v7 D; W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 r" _1 c$ M: k1 m' {3 u
{ 0 [; n, \" U" ^* E* E
LPSKILL lpSkill = &(m_aJobSkill);
2 t- j# P* c9 D. j if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z/ M8 _9 \) h) B$ j- F! l {
: m+ u6 J' D4 s4 s3 y7 M- n. R3 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 k! q" |' O# k6 \0 ?, n
if( pSkillProp == NULL )
% h, C2 P7 l, j) z6 n continue;6 w5 f4 H% O9 o' N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 u$ Q0 A+ {0 q% e" P5 x continue;
4 o- s6 O- C$ Z% Y lpSkill->dwLevel = 5;+ \2 T; C1 S* K& B. M' a9 O- G" x
}
* c8 Q# ?( e F" S# T }
6 z1 E! y, f$ g: R }( i9 O- G/ D4 l5 ^+ ], |6 e
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 k1 F8 k3 G- s+ Y/ c" L
if( bGamma )
9 z# e; n0 R2 Q3 A& ?3 }1 u5 O( X% C {8 X0 |# _& Q/ d
m_nExp1 = 0;
3 ~% m$ I& T9 m0 H }
9 S$ {3 d9 v& q2 [1 u: q8 T" |7 p9 }; p; I8 S; p% L
( (CUser*)this )->AddSetChangeJob( nJob );% A# a# ?' L% o9 ?$ x, O: }0 ~9 k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );9 O( L, p; d- O) J, n
3 }. e- @$ L& D- }; u
. B& t4 {- K' ^! P% |$ {, D# x M#if __VER >= 11 // __SYS_PLAYER_DATA
( t: l- S- R- l' s p- e g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 A) O: a3 Q2 B: y
#else // __SYS_PLAYER_DATA7 E* ]8 X9 e D% K1 X- a
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% @5 t4 F( |: L- @0 L: `+ k' b g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
4 @6 k7 m$ I. k if( m_idGuild != 0 )
/ H1 p8 J( a! }4 s' R g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 D1 j. V9 c* i1 R' T! L
#endif // __SYS_PLAYER_DATA7 P. n" k5 {& ]5 E
SetHitPoint( GetMaxHitPoint() );: e' Y4 H4 \' \" K3 V5 g a
SetManaPoint( GetMaxManaPoint() );
& G" j6 u3 m+ D; v SetFatiguePoint( GetMaxFatiguePoint() );
G7 }+ V' a5 S- {. i; n& b$ A if( nJob >= 1 && nJob <= 4 ). ?& y: Z; ^) ]
{" S6 P- F" t: |# a% Y
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- j" R9 G7 x0 J1 k4 j; [ m_nRemainGP = 28;
! o1 r* Y$ \. b6 L9 b }# @7 a h, H2 I! X9 Z1 k4 f. i! r
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): M( A, G4 p4 ~* |) U
{
; h( q( H9 @* O m_nRemainGP = 118;
* @7 t, c5 D$ N6 s0 r. m; E+ N- ] //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 N9 e2 l3 y& }9 A0 D- u
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ V- L. n: ?- z
}- ?3 ~. F$ h3 H8 H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ t7 V2 x$ _5 H: G2 f
{
" |, @0 R% S2 X- W0 ?7 n" U; A9 t CItemElem itemelem;
* \; T. T$ r4 J( H1 G itemelem.m_nItemNum = 1;
[. k# J3 N# O0 ]4 B itemelem.m_bCharged = TRUE;) p! N, o7 o% j/ r/ r& A
BYTE nID;5 c/ o* c, B. Y7 g. c0 j
: @% R r1 b5 L- D" y3 J if( nJob == JOB_MENTALIST_HERO )3 m4 M- h9 v J0 A1 |" H5 B G% U# @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& ]1 X) I9 y5 e7 _# i if( nJob == JOB_FORCEMASTER_HERO ). B9 A6 c+ k% Q8 k% u, e. y+ a) ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 H# v9 y0 e! k- Y) Y( p& B
0 Q/ L7 M* Y* |, I& t ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* N% S# D% |7 v/ z% P8 _% @ }1 N' U1 k* U. E$ L0 Y! R
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );4 h! R+ R( G% s r0 s' _9 l9 Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: p: D3 a/ D5 [4 f* Y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
5 M# R+ D$ s( I9 R5 G) C /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' t( |3 q/ k h( P) r' ~, u2 ^
( (CUser*)this )->AddTaskBar();*/2 k5 f$ ?: T9 L. }2 \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ R) j8 e+ t' k, S9 T3 P7 \# X
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; f' S" S2 J. R
((CUser*)this)->CheckHonorStat();- t- {( [9 q( ^3 G: Z4 M
((CUser*)this)->AddHonorListAck();+ b- f6 b& k/ ~2 c! u6 X. ]* k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
. d7 {; T6 c+ E! g& H) k, ]( {#endif // __HONORABLE_TITLE // ′Tà?
5 O' f$ c! ^8 \9 U7 \: u- i }
V+ {- l9 J; }: T; x; W( B! N9 F#endif // __WORLDSERVER
$ x7 P7 {5 M. T/ T* Q f% \}
6 ^! U* W* {& E' o) q6 N/ l: s
& q- _$ V- e. \& Q5 e5 s然后你进入functextcmd.cpp并添加以下
9 |. Y! f7 F) t( m, w
. ]: H B: P! y/ J( [3 u, ~) G代码:% Z2 w4 x1 ^. c e+ r. z
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! g& z8 P( I7 v& S
下面插入2 s* ]( V- q0 q! e* g# |2 E
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' n4 S; k: H1 j4 w8 I. X4 i& j
! k" v3 i# I5 W" q6 j. {7 m& u然后你去' v( o. k# U8 W" ^- `( U% d# D
3 _3 I- o4 _+ L' Q5 w9 L0 q) f代码:4 s/ z) i* m' V% Z: P
代码
4 G9 J) a8 Q+ R$ v' XBOOL TextCmd_ClearPropose( CScanner & s )
8 y- S* p L/ M) @) C{
) y# L9 a" h4 z) J, J#ifdef __WORLDSERVER
( m' b5 U" Y# h I2 G" v CUser* pUser = (CUser*)s.dwValue;
# i U; m- p6 u2 Q( b g_dpDBClient.SendClearPropose();
0 s F$ }: l% D+ { f( l* p#endif // __WORLDSERVER
u) s2 n9 ?2 D) X6 n8 o6 w! Z return TRUE;6 y* H9 ~; t6 e5 }' x6 u
}
+ C" [" B: X% g5 O, k: m( n下面插入0 u: `3 V# u$ u% E6 d8 [
BOOL TextCmd_rebirth( CScanner& scanner )
2 p+ b. l. B1 J* ^6 Z: K; T{
G9 ~) N# [7 p9 ?#ifdef __WORLDSERVER
5 Q# m3 M+ q2 ~# P7 lCUser *pUser;$ J5 g6 S. x; ^
pUser = (CUser*)scanner.dwValue;
& R4 G3 I5 |7 {+ k( ?# m" ?' m" A6 lif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); p7 ^5 C$ i: h: Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 k! r& x. C1 F" N
else
8 D! ?, T& E& t# Q) hpUser->AddText("你还未达到重生条件!");
- c/ h2 ^) w: L7 i% b7 W2 I9 W9 l#endif4 Q" w' I$ B& F1 I& @$ C8 B
return TRUE;8 |; H9 {+ M1 f9 A& l
} 1 F/ }/ K' Z+ k# Q, c0 P b: y7 r1 [
1 v! B, H% Z3 \2 [# f1 l ~
) H, ^: J) B" C) H M" h; d
+ @% C/ W) r7 n8 @1 b$ o& P. U# o
& n/ M9 J6 E: ~/ M/ b8 o" j0 Y |
|