|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
j: U/ K) V% \8 G1 ]4 D
( R. |; Q! [% u- M( U1 ?Mover.h( A0 o" M& J7 T! X% N W
代码:: w( V4 d! e# Y, I, {* ?1 Q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- ^+ p9 j# r9 t4 V% R4 N; s
8 c, A9 q& E. U下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * ?4 n% a, i- I8 Z: d% M
& B3 O3 O- l3 \( n5 }% r, V i% J然后你去mover.cpp添加
. _! h* T) r& @" z+ S2 `7 Q. w6 y) F" I' K7 C# V$ O0 F- r
代码:; h/ ?9 }% z$ e1 m* e
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" N- v: h( d$ D7 W( M; b2 w{( v2 w8 C+ _2 Z5 R1 r5 T6 k' v. K
#ifdef __WORLDSERVER2 L. o" T5 i3 M5 j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: v6 O9 S. [- q9 _
MoverProp* pProp = GetProp();( u4 Z7 `- @1 j" j6 G
if( pProp )& l* G/ r0 G3 p+ U4 z9 |) o+ I. N
{0 l8 X" d0 G8 ]3 S# |. k8 p) A9 z, @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 H- E' z0 e9 Q! ?+ d
{ S6 l: {' f6 ]. m2 {& ?8 F1 J
AddChangeJob( nJob );
. n7 L: _# }9 S, y& y }else{
5 Z* T. f( I. @, a return;
9 `3 g W7 f+ c/ ]6 h }
& J1 f, Y. L) b$ Q4 n int nPoint = 0;6 @2 Q9 \ ]5 |2 ?: d
if( m_nJob == JOB_MERCENARY )
( Y2 H/ _6 C6 K0 f! v4 L nPoint += 40;
$ _! y: s A% j4 F, j( c" L, E else if( m_nJob == JOB_ACROBAT )
G/ m) B; E$ ` nPoint += 50;3 p! @7 h0 O7 k- q [
else if( m_nJob == JOB_ASSIST )+ O* A6 g7 h7 A2 F5 W
nPoint += 60;
7 V( e9 K3 L2 }( y+ E4 U# u else if( m_nJob == JOB_MAGICIAN )& e e7 @3 A" ]. o/ Z( a
nPoint += 90;
2 C9 [# @2 n- C/ i else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& V! b; o1 E, o+ V& [
nPoint += 120;
; E% {+ j; c: o+ L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), T) |" R U! B# C
nPoint += 150;' s$ a1 @; z7 G; D0 Y1 N3 r; w
else if( m_nJob == JOB_RINGMASTER )4 U0 B: Q( P6 t- t# Y8 \+ N: r
nPoint += 160;
% p& c8 d; \4 E5 n else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 [4 y% r; ^ L$ w8 y nPoint += 180;
, Q9 a& n. m7 L$ ?+ X6 r else if( m_nJob == JOB_ELEMENTOR ). ~, ? \) a/ R' i1 b. p
nPoint += 390;
, z6 |: f( _1 V/ L2 y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# R% I5 _7 i3 G- S! J nPoint += 120;/ E1 G/ q9 P7 a: S2 ~8 M+ \2 X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! z# S8 ~% X) m2 S0 w' t' b nPoint += 150;1 i N% _+ I' l" q+ f) Q- v
else if( nJob == JOB_FLORIST_HERO )
2 e% a$ Y7 M2 M+ u. M nPoint += 160;3 V" m' \: D' `( N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 ]9 \! j! _; s$ S/ C& {: F nPoint += 180;
$ w H6 e0 k% a else if( nJob == JOB_ELEMENTORLORD_HERO )& E! }; y" g8 {5 u; g) X0 X7 [6 l
nPoint += 390;, @* }% k/ C6 r, W: ]2 K
2 L" f& C9 Z5 D
AddSkillPoint( nPoint );
5 D7 F3 u M/ g @8 w- V% Q m_nLevel = nLevel;, P* H! V- ~" h8 I$ o
( S* L+ q/ A# t2 Q" G1 T8 E" y SetJobLevel( nLevel, nJob );
0 Y9 k9 Y1 }/ t2 M& M+ L9 U; | m_nDeathLevel = nLevel;
6 }7 t1 N! f% |) n# z3 h9 H7 L; x& u#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& J% x/ U: C; P9 P+ U3 G: a
if(IsMaster()) S1 P1 X3 {, X; L b) t
{: A7 V9 Z3 I/ C3 n/ b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% [, W% P4 m3 i% c. C( {3 w
if( nLevel > 59 && nLevel < 72 )+ k5 C, Y3 B7 o4 m
dwTmpSkLevel = 1;6 ^0 H! m6 x* e
else if( nLevel > 71 && nLevel < 84 )
2 H2 v6 @5 d( M2 |& p! [ dwTmpSkLevel = 2;
/ l) Z) _& P; d: ` R$ w else if( nLevel > 83 && nLevel < 96 )7 J9 P2 L8 n& g" B1 w
dwTmpSkLevel = 3;
0 u4 G! G9 V, H: o else if( nLevel > 95 && nLevel < 108 )
0 A6 u( U+ \: a dwTmpSkLevel = 4;8 {6 W, e- V8 y2 z3 s8 M% R% [+ X
else if( nLevel > 107 && nLevel < 120 )/ h6 Q( v5 `: Z# g
dwTmpSkLevel = 5;
% O3 O* ?6 e8 ?, ~, z for( int i = 0; i < MAX_SKILL_JOB; i++ )
. ]: {, n( P! \) K: O { . |! f& `" U' [7 |# Q
LPSKILL lpSkill = &(m_aJobSkill);) ~ |4 G2 G0 b1 {
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 E0 K* f" a' F( s9 q
{
' e- y1 v1 z {! ?' H5 f! a: M5 W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; i( e$ C0 P& u" c0 t* l if( pSkillProp == NULL ), U, [1 H( u: S$ [( a9 v3 e& \
continue;
$ }4 U- C5 D, M7 W/ P) k5 A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 i: `* A! L( y* z; a& X
continue;. b" U4 o9 f: M V) ^& E
lpSkill->dwLevel = dwTmpSkLevel;" q, t9 O3 X8 Y# p+ D6 ]
}
' X: `1 T; X! V+ o1 o% ^ }
# J# M* u: I1 V2 a1 i }
: ]* {5 h' r3 P7 ~- z ^* R else if(IsHero())" H0 D+ L* J4 O2 c
{8 m+ B) |* r: @7 l* U' }9 \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 N8 {, ?+ k; I- @/ j
{
3 h: f( }: p4 F8 D; l LPSKILL lpSkill = &(m_aJobSkill);. c1 Y* I& W0 ^7 g, H" y% L) W' U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 A2 E* F; C$ o9 H% x* g! N1 Y: d0 [9 i {
4 {( P) i7 x( m4 i5 i# i/ W3 p, { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 ]8 W" E# u" t
if( pSkillProp == NULL )0 f- \/ C8 M7 i5 e6 \& w
continue;2 }' Z" K6 z0 B( p/ v. W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" J4 M# f1 `9 d1 s' L" ]8 X
continue;
5 o6 ^/ K3 f. w7 _$ T# i) o8 M a lpSkill->dwLevel = 5;
: r- ^+ c# ^. ]/ }) o4 i, G P }4 y( h7 _( E) U. k
}& `8 Y: n/ W5 o% ^# E' U% K
}
2 R& }6 ~6 \0 x5 E& O+ I5 q7 x2 Q else if(IsLegendHero())( ~3 u- }" E" q( Z
{& }' n) `' N- L- U+ d3 e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ Q7 s' @, x3 u: F) \4 t2 S {
: t# E9 \! S3 _) G LPSKILL lpSkill = &(m_aJobSkill);+ {7 K' c4 i4 N+ H$ D5 V; F" s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: ]! v- P, z9 y( W {
0 t+ s( g% ]# | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 M! Q4 E1 d! D if( pSkillProp == NULL )
7 z k' @- ]9 P+ ]' I6 { continue;
6 J0 V8 S7 i; i4 c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! T* O9 q: A$ ]3 d4 C5 V9 u continue;
* e1 r# V0 \4 m/ Y0 D$ _( x8 J lpSkill->dwLevel = 5;
, f" w& ~; v, r, q }- u8 ^/ P# z+ h/ \. u) K$ u1 J+ }
}- T8 H2 g4 H0 l+ }5 X
}
% N8 T0 r f' j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* p+ L( D* h4 u+ m
if( bGamma )
& ^& n- ]+ o" u$ k% j {$ c+ m: i3 ^; O" W' |! w! x; n- y, s
m_nExp1 = 0;
, t+ g: w) B& O* \1 \0 S }
* Z- g) h- u' |1 F, Q5 k" k% S6 s- k0 G1 v
( (CUser*)this )->AddSetChangeJob( nJob );3 q4 u3 C2 a" D8 O: E+ c
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
H6 q; `1 k6 l. F+ X& [: n" g
- `. T7 Y" w! |# r
/ T/ x! A; T3 O$ ]% \2 U- b. j#if __VER >= 11 // __SYS_PLAYER_DATA
3 {- w& {; q8 n9 ]- ^3 o% Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* c' e0 W; y$ F, r* t#else // __SYS_PLAYER_DATA
& |! V/ _1 V" I: p; B; T g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 ?- ^- W8 z7 V/ R' c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, B. e# k# q6 n1 F/ z F if( m_idGuild != 0 )2 _. z2 m+ v" t: t( ^" P1 R* g8 N* u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' u9 C) P0 Q% h0 e8 z& l
#endif // __SYS_PLAYER_DATA4 G. \+ K% V& H
SetHitPoint( GetMaxHitPoint() );
0 V+ l0 i6 e1 d+ Q% y# E: B SetManaPoint( GetMaxManaPoint() );/ ^: e, d; x5 \
SetFatiguePoint( GetMaxFatiguePoint() );
1 |$ w' \ ^3 R6 M: w9 i. R if( nJob >= 1 && nJob <= 4 )* M! {) @4 O5 o0 A( G# o
{
) L1 q: j: A! P4 t( S m_nStr = m_nSta = m_nDex = m_nInt = 15;$ w1 C3 C4 O! g- w$ ]) t7 L
m_nRemainGP = 28;: z% {4 I( U6 A4 S; k( P
}- ]9 ?+ P6 p. L* f5 Y% E6 v' H
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 J. O8 h- j3 ^: w7 `) `/ i
{/ G+ Z! @. F6 [: L
m_nRemainGP = 118;
* j* I% `7 }8 D //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 Q! x( V' t$ s, @ r) v m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 D8 z0 Y5 J% a; f" t7 U8 k5 g" [ }
! f& ~5 |+ o8 s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! T7 D+ V! Y% H, J4 r w4 Y/ c {7 k6 ]7 q* i' h0 m) _, t# k
CItemElem itemelem;
( N! y; W1 a7 X ? g itemelem.m_nItemNum = 1;
U; o, O6 Y3 s6 _9 `) h itemelem.m_bCharged = TRUE;
" |) t, ?0 P& _1 H$ v BYTE nID;7 ?2 [& W4 b" E
9 @" L+ H, \! X
if( nJob == JOB_MENTALIST_HERO )
, a# h' t3 G' e$ B5 j0 y& B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- n m4 b0 X; Q- Q' c' t2 F if( nJob == JOB_FORCEMASTER_HERO )2 a& h$ @% `: v" p' `/ J. s e
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 I! f# O0 N8 D* d6 h
* k' h# H+ O0 c4 p7 y# b- e ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 A' j8 f6 Z+ ^8 p
}$ a: L* U# _* p7 C$ I, H3 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( X) r$ l" Y: I3 w
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 l$ u4 F4 a1 _. @7 i. L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 \# H" i) l( J: b8 C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 r& o/ `8 P+ J* u- h9 L$ r+ q) | ( (CUser*)this )->AddTaskBar();*/4 {# `+ m9 k% B( e3 Z. l g" e2 X+ a( [
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 Z" U+ f) m9 v! J/ t; {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà? `0 x: a+ {& Q2 M( w
((CUser*)this)->CheckHonorStat();
3 s+ E9 D# S! P0 u* O! w ((CUser*)this)->AddHonorListAck();5 R) P1 U. E$ f9 N( M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" A" ~0 `/ M$ j% `; `5 M#endif // __HONORABLE_TITLE // ′Tà?
* e) v- b7 G$ N# r2 l2 E& k }
& }1 }& _4 ^# ]#endif // __WORLDSERVER% M; C4 c- N- G" Z/ V {, a3 t
} % z( \3 S7 W7 A$ T( V% k! v5 S
' A9 k$ z; U" @3 | r4 d+ w* C
然后你进入functextcmd.cpp并添加以下4 Q5 L( x! a3 N$ O- Q
2 ~1 q: t. g" o- p! m3 C0 E* _
代码:
( v! U' @, s. w6 N, vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% z6 }; z1 q7 Z' ~
下面插入
& ^0 \) y3 \+ h4 o. D/ YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 B/ L; L! ^5 ]6 b
6 h1 y& k* A0 m然后你去
! x8 K8 y, b/ c" N3 ^4 Z" `, H( r- a, B1 P% B) ~% U
代码:. {" w: E: x: ~
代码
2 x G' l U* I6 e) N5 dBOOL TextCmd_ClearPropose( CScanner & s )7 l$ }6 G5 \: ?
{
- E" N. N7 ?* R7 U" b& H#ifdef __WORLDSERVER
5 l( s. A/ F8 \9 } CUser* pUser = (CUser*)s.dwValue;& |1 o" p, t. S5 Z0 e; l0 e
g_dpDBClient.SendClearPropose();
/ z8 q3 K- H' h+ ~) D( u1 U5 o2 p#endif // __WORLDSERVER
' j6 R0 B& o* J return TRUE;
# F2 q7 V# F& R' x1 }}
, p8 F) U8 A) a( F8 {, I下面插入' X( F3 g2 e5 u9 g
BOOL TextCmd_rebirth( CScanner& scanner )
7 [9 m' m2 |! w" h9 l4 j( P{. A3 E+ ~4 {/ n9 T; \
#ifdef __WORLDSERVER |! B' }+ T/ m/ m% i3 N/ d
CUser *pUser;% i O9 f5 N* v$ e1 x p% G
pUser = (CUser*)scanner.dwValue;$ J7 t n. U" t/ ]8 h' m' i7 ~
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! T$ N9 P" y2 }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ E! E- i$ E2 Q1 v* \- \% ~# `else8 `& p' D' c7 i
pUser->AddText("你还未达到重生条件!");
; X4 A1 s2 t- K* O#endif
2 n$ \7 F1 |# ?# J& C4 ureturn TRUE;( ~- E5 S- E- r" k2 z# F7 k) X
} ; p. X, b/ N/ v1 M
% Z- b3 x" E( o
$ E8 ?* j' z! _" k1 d0 n" m ]
' w" t. I& q* Q: n$ I% I, c
2 g" ^# l: ~1 |: f. \" _& E' t9 t
|
|