|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 h% ]& @* }7 i' C5 ^8 r( t' ?
* F! k) A" B8 Z8 XMover.h2 c8 f2 H- R3 p5 t& f
代码:
" Q2 L& D6 P1 [) x( j" z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( y; A7 G( ^( ^/ \9 L: }+ I
: e7 s g9 V) Q1 Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; * N' q% D$ W0 ~
' u( ?& `: ^2 v$ h7 R" Y4 \8 |' E L% \
然后你去mover.cpp添加" |3 `3 M8 {/ E2 c
5 O2 V7 \9 S! z% B代码:
" ~8 j+ h/ y4 x |$ P/ L6 Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 _4 i. k2 K; W7 G1 H! n7 ]& R9 v
{( {+ t g' p. r1 k6 L6 V
#ifdef __WORLDSERVER
) i7 V! n# N$ z" K8 C7 ^4 Q. b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 C2 K3 v: E; {. }
MoverProp* pProp = GetProp();6 A2 N5 z# @7 t! i, k8 ]6 r# Y3 C
if( pProp ); w2 z6 W. i. P8 M {- y
{& @1 b0 u4 H% B+ x- B4 D1 b
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: M- S9 [7 f3 Y3 }2 y {
. |/ \: a" C7 d8 T, v" `, w) V8 a AddChangeJob( nJob );" w5 q* i s& _4 q; `# D
}else{+ z- p7 H$ b: n$ K
return;
- O, ]2 h' {, B3 u# R }0 X0 f8 f: Q: a* b" r) b% X9 c7 o
int nPoint = 0;
5 y# }* d; V# ^! X0 c if( m_nJob == JOB_MERCENARY )- R; j0 W9 X, `* [- C
nPoint += 40;1 u/ f0 |7 d1 q' V5 _$ n
else if( m_nJob == JOB_ACROBAT )$ R8 h# V4 K) P4 q
nPoint += 50;; ?# w2 D* a1 M
else if( m_nJob == JOB_ASSIST ); V6 a/ [9 G3 r5 x1 u% N
nPoint += 60;
* b' L* [5 j. c2 @4 N: L: J else if( m_nJob == JOB_MAGICIAN )/ F5 X+ r2 j' t7 J1 ~
nPoint += 90;
6 ] R3 Z7 w" p ?* D- P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 Z6 O2 H2 _9 h# b nPoint += 120;3 _% v+ m# G/ }7 D! X9 q7 a
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 E: h8 x: u" C: Z4 G1 T6 J& M4 ? nPoint += 150;
/ @& N: }& N% @) Z/ a# n else if( m_nJob == JOB_RINGMASTER )
3 w$ a: m3 J( W+ M1 o* F- o$ T nPoint += 160;) [; f0 I# {- U/ M2 k# Z8 Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 h( O2 B' ~ `, V1 d' {2 \ nPoint += 180;5 ~: n7 y) j$ Q
else if( m_nJob == JOB_ELEMENTOR )6 e$ o$ C0 E1 U& x5 a, r
nPoint += 390;# i! u# M) O5 C" x0 x
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( E$ ?! v; V& v; i
nPoint += 120;4 [; n; B+ y+ I% L8 n
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 W; {/ j6 h# s9 e1 @
nPoint += 150;
G0 y" C2 _1 m$ F5 o1 m, b else if( nJob == JOB_FLORIST_HERO )) g3 ]; {6 M+ z( o
nPoint += 160;8 v# f6 F1 D2 G) h
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" u- L- d1 Q6 B1 O9 Z* _ nPoint += 180;
2 Y6 `: X+ U- x5 }+ g$ w& r1 s else if( nJob == JOB_ELEMENTORLORD_HERO )
' u* \: H/ C+ O! P! k nPoint += 390;7 f" o5 G. O) \
8 d' a |- t) |
AddSkillPoint( nPoint );
- C$ ^+ W# A( h: V; ^8 H( e m_nLevel = nLevel;/ O- N/ }# |5 ~: Y
4 B$ ^* {- E! \" B4 z
SetJobLevel( nLevel, nJob );
& l& B' T) c; {6 c2 e9 \ m_nDeathLevel = nLevel;
* g5 x1 k- O: y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 w* C/ ^( E9 _3 U" }4 k* A! ~( n
if(IsMaster())% {" y* i" e- b6 a
{4 e, q+ n5 Y _& C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: L: {" ~4 I0 V# f if( nLevel > 59 && nLevel < 72 )
. H) ~' D i$ U& w dwTmpSkLevel = 1;( a9 {- }6 V( T8 ^/ u5 j
else if( nLevel > 71 && nLevel < 84 )1 j" a. M( @& F. H9 B7 b9 d" U
dwTmpSkLevel = 2;/ d# ?6 ]3 T! `- w5 v
else if( nLevel > 83 && nLevel < 96 )
- x! ~# X L% r; e- O( T dwTmpSkLevel = 3; k. R5 j. x$ y! j* z
else if( nLevel > 95 && nLevel < 108 )
/ \/ m3 @2 N, n+ X dwTmpSkLevel = 4;5 a* }5 R& ?1 [3 H$ p2 J( L$ Y
else if( nLevel > 107 && nLevel < 120 )4 l: z( e% i& E$ I9 G: `. L# w. J
dwTmpSkLevel = 5;
. h( ?) a; S' Z7 q s for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 z3 U6 E- ~0 S { ' O. K7 T7 a! @& H6 J$ Z
LPSKILL lpSkill = &(m_aJobSkill);
1 f9 n, G3 [+ z1 V! v if( lpSkill && lpSkill->dwSkill != NULL_ID ): z* b! R- G: s$ B
{
f; w6 _/ S& O' w% O& c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / `8 D: Z9 R; ]; n; W' d
if( pSkillProp == NULL )
6 g. Z6 U" i0 g2 ~: [+ k; c continue;6 ]5 x" c5 j! Y4 r; L: @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* r4 I$ ^% D& h# p& h continue;
e% {( r" b0 f" k8 k lpSkill->dwLevel = dwTmpSkLevel;
) u1 D+ x3 o8 i c4 H8 C9 r }
/ N. }. ^# p7 Y$ |3 h) j }
6 K4 A. R; _& h9 P4 x }
+ C2 S* }6 {2 J5 N+ @ else if(IsHero())2 @# N Q! a# a9 U9 J0 x! {
{2 k: Z2 J3 [- c7 c* t6 w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - W$ A6 b+ ~9 }/ n
{
" T( l0 R' k' S* p LPSKILL lpSkill = &(m_aJobSkill);
$ Z3 p, {0 N q/ C if( lpSkill && lpSkill->dwSkill != NULL_ID )7 O3 C9 _, X/ @/ f" o% `: z
{/ F! U- }1 C. L* y/ ?: d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 v+ B8 d/ T) b
if( pSkillProp == NULL )4 F' t& z9 C/ H% t4 q {
continue;
" `0 D$ e: g) Q; ?" P if( pSkillProp->dwItemKind1 != JTYPE_MASTER); p3 [3 W$ ^8 r( D& k
continue;* l7 T, o+ Y0 i
lpSkill->dwLevel = 5;
/ K$ M7 S9 ?# G! C% o: V }' l8 e9 w6 A# V- b, C/ G2 u4 T
}
& ]& o# R r ~ }/ p4 x! k- f' P8 r! t2 b5 S# p0 |
else if(IsLegendHero())
8 [$ T% K1 P% z/ Z- O+ e3 @7 o f {% l" F! r8 q/ }+ U0 f
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( _! l$ o& c- j0 x+ U/ k {
8 G7 V u+ }6 F LPSKILL lpSkill = &(m_aJobSkill);0 B" G% }5 E1 ]. h; I0 p+ J
if( lpSkill && lpSkill->dwSkill != NULL_ID )) _ l4 \! R8 T7 W' a
{( M# [+ p# E) H+ ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # [: B0 p' k, g5 T& }) Q+ T% z0 h
if( pSkillProp == NULL ); J6 t% ?% c; h+ \
continue;/ y* M" s% K; I6 R* _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ y6 I% f* @1 n: R7 [/ P
continue;
# n2 {. G( a( G5 |; _, Q3 b lpSkill->dwLevel = 5;
- l r& o% P D }: V2 V0 L0 ?6 F" M
}
% ^0 `+ H M2 q$ \+ C: }3 {* j0 y }5 O9 {4 L1 ^8 n! j& q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' O8 _" Z+ p! ]- {
if( bGamma )! v& | a* q E- m8 N* x0 b
{5 x. g9 X2 w) z* K" @/ r3 l
m_nExp1 = 0;. ^8 ?' I8 _3 k5 {( x( X9 H
}" Q! |0 u3 v# M( m) T$ z
7 u+ `) G+ F) J2 R; P v ( (CUser*)this )->AddSetChangeJob( nJob );5 K( A2 C8 j# `( G, {; m
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 S5 [& U8 J; P% @
0 s0 ?- U7 w9 A! b, r0 c% N8 ]2 s
7 w r0 N% s5 B. h" [2 H* c) U }
#if __VER >= 11 // __SYS_PLAYER_DATA7 \/ B0 A: V1 `: v5 Z; `+ p6 k$ Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, k( a& |( q5 `# ^; ^
#else // __SYS_PLAYER_DATA
) g. f5 v) p$ o- V# z" Y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* r, K/ u) _, ]) F( W2 u4 { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. p7 ?" k7 P- u* G; L$ z0 \: y6 | if( m_idGuild != 0 ) b/ d( f3 I6 i( y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
# x5 c- u& x5 b6 f#endif // __SYS_PLAYER_DATA! Y. s4 Q) L9 b% H# ^/ B
SetHitPoint( GetMaxHitPoint() );/ t8 |9 X; {/ a
SetManaPoint( GetMaxManaPoint() );
. W( f) r/ o: M' m8 C9 u9 O: Q SetFatiguePoint( GetMaxFatiguePoint() );
; h$ `8 M5 A' r- L( t | if( nJob >= 1 && nJob <= 4 )
T$ B+ t q. t$ ?* e. U {: @ v# S) [" g: p
m_nStr = m_nSta = m_nDex = m_nInt = 15;. G+ O6 X. X; x6 f3 S9 r( ~+ v' G
m_nRemainGP = 28;, e8 @- H# r" @& L9 L' S
}
# x0 { m9 ]/ b. Q$ N3 _ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); a# U( C& s6 f4 s7 M
{
: c: ]7 Q% l s" Y4 r m_nRemainGP = 118;3 s8 }; K" p) R0 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 o0 _7 E+ s1 _2 ?# i
m_nStr = m_nSta = m_nDex = m_nInt = 15;' y* [. l9 z# f- ]# V/ w
}
' r8 u1 p0 V" |( m% q* o9 d! \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% b/ F+ k, v& d8 H) X* H# q. h9 y
{- e. j" A! t9 E; U2 L9 j/ T
CItemElem itemelem;- W, A. Y5 Y$ D5 Y
itemelem.m_nItemNum = 1;( S2 q% |; x" j" V; E
itemelem.m_bCharged = TRUE;8 m. I+ V5 k F3 _: ]5 K
BYTE nID;
- M% S$ h* d( s. _+ s/ {
1 ~4 P4 M& P/ A3 L; u. A" Q4 K% _ if( nJob == JOB_MENTALIST_HERO )3 \4 u V6 |5 x2 j# H5 E6 f8 }
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& d' a/ j5 ^3 e
if( nJob == JOB_FORCEMASTER_HERO )) P3 i" o; Q% b" k9 s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 h% _/ R7 b3 s5 g8 Q: v5 I5 D+ ~
& I" E' N( n$ {! h* b5 h" L2 M, R ( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 @& P% ?6 ]. |2 C4 o' j }
" ?1 Q$ F4 @/ }5 A g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 U5 D2 l5 A+ R, \0 W! T: V# l
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' V1 |* C) R& k3 y. u2 g4 o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: v$ R, N- I1 [! B7 l9 A% T /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# }" p- t* x: Y- e% {8 z# ^% ]
( (CUser*)this )->AddTaskBar();*/& S/ B- Y4 }1 p2 ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; [. ?+ p9 T2 ?+ R
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 N" I4 Z- L+ Z5 Q6 h+ F7 R
((CUser*)this)->CheckHonorStat();
% @! Y8 R9 K& D3 W5 d ((CUser*)this)->AddHonorListAck();
* A; c. v5 W4 @9 X; C/ c, Q' V g_UserMng.AddHonorTitleChange( this, m_nHonor);+ ? k" O3 z* l5 |' e$ R0 D5 E2 l
#endif // __HONORABLE_TITLE // ′Tà?
4 D- i: f& W' U }
4 q# B) p, T& Q) J#endif // __WORLDSERVER
; R% i* d/ W. W2 w) Y. _}
' \4 R o1 @! O9 g4 T; f, W0 B! N2 m5 Q
然后你进入functextcmd.cpp并添加以下
2 H7 t4 |7 B; x5 _: B. S) B3 X0 t( S( Q' d8 E$ u8 v T
代码:7 `7 b D4 R6 {5 r0 d4 L7 ^
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 E" `3 O0 V6 U/ f) Q6 T
下面插入! H% j+ v- m7 b+ x& I- ?5 a
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " t9 r; f" ^, G0 T j% U6 z1 T
/ h, H! j8 i4 a, t# y D9 W' L* f& X
然后你去( q5 {" E% X$ t$ y7 V9 Y1 B+ ?
$ a) a+ ~$ D$ k. u+ U/ R5 Y, H代码:
% Z6 |- f7 N( w% M: F# e1 t代码* S+ c u, J/ ]5 n5 z/ J) S
BOOL TextCmd_ClearPropose( CScanner & s )& `3 y, g" k7 l( c, C
{
- l7 I" Y; n; H2 s#ifdef __WORLDSERVER
; d4 ]* [8 }, E& B CUser* pUser = (CUser*)s.dwValue;
7 c7 ], C7 p1 {+ v; C I3 e g_dpDBClient.SendClearPropose();* ~5 V: q* a) N% U2 V r3 K
#endif // __WORLDSERVER" g6 H+ K) ?" S2 `
return TRUE;
7 y4 H, O' S4 m( ^/ ]}7 t t/ v( e+ l
下面插入
! b; D$ R" V( c% O$ V' g6 TBOOL TextCmd_rebirth( CScanner& scanner )
9 }$ ~/ J7 v3 M) b+ W0 {+ F" {{4 `. S. t+ ^" K
#ifdef __WORLDSERVER3 k- k, A/ z F
CUser *pUser;% [ A2 ~% F, ?
pUser = (CUser*)scanner.dwValue;8 p, z1 Y2 v% w" v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
- P' [# E( b% y1 V. apUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 h: u) T* i. ~! g; d
else, C( F5 s$ h4 y& Z! c* q
pUser->AddText("你还未达到重生条件!");
: s" @. K" ` q l; R2 a#endif8 f$ O& \, J x5 E4 {+ x
return TRUE;
# ~, g5 g5 ^# a. \0 P$ H}
+ n. N- x6 ~1 [' r9 E3 B
+ q3 a8 ]" ]) E2 y* t( L
5 `6 _0 e* G% {2 Q6 g& p' [2 g `
, k& h. ]6 w# O. j/ O- w0 p. w/ ?
# ?2 V& g0 l* C5 w |
|