|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. m, H! A+ W* ^$ Z9 X
w4 e* b- C2 u, J7 O
Mover.h
; w+ n# F" D1 V6 {+ _代码:1 t! Q, n: A! ?5 L
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- Z+ F! E& r: m5 F( ~0 h! B" U
5 _/ J9 w* |+ i: @+ `& G2 \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
- S4 ^2 P, g- ]1 R0 G, @. c
/ r# p$ ?5 G# }. n; A然后你去mover.cpp添加
5 C6 }2 [( B2 r5 {! k/ @1 a5 i) T# g( K5 S$ w( T
代码:# i8 Y0 d2 ~4 W
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )+ N, C" m9 u( g' h# f8 E9 L
{
: c1 ^7 S( ?% @, i* Q, \# Y+ r#ifdef __WORLDSERVER
% _, s- ~7 p, x) k2 {( x* Z. ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 d. y1 D) m: m1 `$ h MoverProp* pProp = GetProp(); Q( i# V, \5 C5 \
if( pProp )
) i5 c# b" h7 r! l( S4 P0 A7 K {
2 N# R: I+ Y5 K2 J% O8 E if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 W7 y$ a4 y1 r( i! v+ g; h! t {
0 n& Z* k) u( [& {+ ? AddChangeJob( nJob );
! g1 C/ c# m" N0 x2 r4 H: q1 {( M8 w }else{
# w; d0 `* \0 }* G4 O) B" X* |5 M/ V return;8 ] n2 s% [- |: M* ]% R1 C3 {
}
. u* s) Q, C3 e int nPoint = 0;9 J7 q; p+ a* \: r" m" |
if( m_nJob == JOB_MERCENARY ): U: }( j2 r2 W6 S. X! s5 O9 m: P
nPoint += 40;2 L- g% G2 g' h: y4 ~$ N y
else if( m_nJob == JOB_ACROBAT )
7 j7 P( W+ A2 L% k5 b. G A; H+ [* ~ nPoint += 50;+ H, d8 H% ^, n) q+ v. {
else if( m_nJob == JOB_ASSIST )
8 A0 g4 b1 {+ l5 R# y nPoint += 60;/ D4 }% K/ E% H# G/ o' I/ @
else if( m_nJob == JOB_MAGICIAN )% u4 N: _" d. {9 n0 D
nPoint += 90;
: R& Y" A8 R+ l6 o' @: u else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). w' @' O& W! i& f! p* k' \
nPoint += 120;
( O( n0 v: l% V2 _6 Y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( \% B( `: w; |/ X; L* A- o
nPoint += 150;( s& }$ M2 j4 `, G3 E. k
else if( m_nJob == JOB_RINGMASTER )
! @8 T& {* W- k nPoint += 160;/ P* s# ? l- x) [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* f8 r# w& A; Z$ Z; t4 q) V/ U
nPoint += 180;! r( |6 @. q) i& k A+ q
else if( m_nJob == JOB_ELEMENTOR )
% S2 C- H/ F- r/ O! E9 D" p nPoint += 390;) h% b7 f. A8 u9 u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: c* ^* `6 R$ I, i( N nPoint += 120;7 f% Q3 E! g/ n0 c1 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )0 u' B& I6 ~* |: q* |
nPoint += 150;
4 W3 C' t6 A& [8 F& O* J else if( nJob == JOB_FLORIST_HERO )$ ?7 V4 R$ V. Z
nPoint += 160;
/ B. U# c9 O Y. ^) }* ~4 A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 v0 \& R# z) p7 u nPoint += 180;8 _6 t0 d- N- ]9 w4 e' V
else if( nJob == JOB_ELEMENTORLORD_HERO )
5 E; x! c9 v! Q3 M/ G nPoint += 390;4 f; m# N8 R2 Q, ?/ ~3 h }0 _
' o" A* d3 q& _# N
AddSkillPoint( nPoint );9 ^( M# v- w4 |. _
m_nLevel = nLevel;* y" q7 U9 x# ]: Z( Y
/ n' l5 U! F+ a- k1 J. r! a! d5 A SetJobLevel( nLevel, nJob );
, K* g v8 s `% L( ~ m_nDeathLevel = nLevel;6 q0 P ^& V- l! I8 K2 o5 x
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# d! s' O) _% w$ B
if(IsMaster())
( M( @8 e* X4 p! c G+ ? {# p1 W/ h+ D- }' g9 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& H' ~6 ]. y: i/ w% B2 G6 T1 Q if( nLevel > 59 && nLevel < 72 ), \* J- E3 ]$ ?, K
dwTmpSkLevel = 1;" J6 c B8 }: O4 o2 v7 Q
else if( nLevel > 71 && nLevel < 84 )* h6 Z( H8 N$ L( B* i
dwTmpSkLevel = 2;0 b+ h8 Q2 t' ]6 I* u6 h# r
else if( nLevel > 83 && nLevel < 96 )
% v' K, \( [/ S4 m l1 ~, E3 q dwTmpSkLevel = 3;2 K' T4 D2 o7 y- D" d4 Y
else if( nLevel > 95 && nLevel < 108 )
4 k% _% \$ \2 T8 _( H dwTmpSkLevel = 4;
9 F2 v; i* o* h( [/ x% d5 I else if( nLevel > 107 && nLevel < 120 )
8 T9 J5 ^2 r. l9 _# @9 t dwTmpSkLevel = 5;
7 i/ h, ^) Z' b; x. \8 _1 ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
& \' @8 f! o7 N { # J3 q, o" e2 l
LPSKILL lpSkill = &(m_aJobSkill);9 r4 n& T2 [( f6 v' X* N' g/ {8 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )# x1 m: s" _. L7 F
{! u! l, g* U: x* v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 i0 Q Y$ n* p- r$ Y( E
if( pSkillProp == NULL )0 Y1 Y+ I! H7 ~, X6 N4 |2 _
continue;5 F' W4 o) G$ x, e5 \. Z8 ]- L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" P) T" S' c& t& L; O- q2 Z* S
continue;
/ `7 h9 j6 @* @- \" G2 l& v lpSkill->dwLevel = dwTmpSkLevel;4 x4 H5 D3 r# z1 v" c4 e7 v
}) J; R6 u0 W$ J2 m# C! u; @
} a& M/ W; V! V9 C; R! |% @& @
}9 i" t$ R4 J( L+ J7 P1 m2 \% c6 ~1 Z
else if(IsHero())
7 N' x' G0 g5 s0 B" B {
# L$ a) V9 d- V for( int i = 0; i < MAX_SKILL_JOB; i++ ) / B5 W1 C3 E; g/ ?# p2 k$ _
{
. U' p: D/ ?% b6 W7 B2 E1 i LPSKILL lpSkill = &(m_aJobSkill);
5 ^# S3 M" i- c7 S! f if( lpSkill && lpSkill->dwSkill != NULL_ID )
) L, H1 r- P( ~% d5 M {
2 Z2 i& \- ` ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . @2 N: x, W+ }- W3 N7 V
if( pSkillProp == NULL )7 E$ m$ D& O6 N3 J3 R# Q
continue;
2 E L& Q5 k e q: f* ]6 \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 s/ b# X8 a* q: k7 T d
continue;
( H5 m4 O7 {$ g' H* `; ^# d lpSkill->dwLevel = 5; [ W/ f5 K1 z! n _0 j: j
}2 V: p( ? u5 |( X' f. @4 O
}+ S6 l1 C8 V$ M. m0 D
}# ?1 f. G ~/ E' e# G( n+ _# E- T
else if(IsLegendHero())1 L7 d( z# q* b
{
' j0 Q* @& O, P% Z3 u for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ]" r8 n0 |+ U3 t p- Q
{ ; I* }9 n( `! x& a) n! a" @
LPSKILL lpSkill = &(m_aJobSkill);/ k& p8 }, O7 Y/ e8 }* ~ V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
# w( B9 O& ]) }/ \" J {* s9 R; I k( N, A& \, F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! [( P( z3 ]4 j+ Y6 M) P2 k if( pSkillProp == NULL )
" K6 F' G5 m U& Y continue;
& {& E; ^7 {! V4 ?" @0 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 X- |4 B9 v. @: r5 x4 K- G( A
continue;
I: `; o) K$ |6 n/ J+ P4 R lpSkill->dwLevel = 5;
6 A# Y* E* [! N3 L# [7 A8 n6 S- A }& u8 h) ^, q( B1 x6 u4 P& }
}
1 a2 [: S% J! r }# e5 z E% `* m/ q' @5 O0 ]; f8 M/ J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 H* w. I4 ^6 G: s- y
if( bGamma )
. g! |6 \9 k* x3 x, g( u {6 C; S {$ f- q+ Z: ?4 h
m_nExp1 = 0;
. }: C7 h+ L& g. {/ N2 J }
& ] T6 Y4 d4 ]3 f! Q6 x, Y7 d3 l( \) x5 S. Z& a& c
( (CUser*)this )->AddSetChangeJob( nJob );
6 U: s- o, z3 @( D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ }4 r0 E2 x! i! i
1 [7 ~0 M; b3 Z% l( S7 y: f+ E5 f
7 a; z8 i. D# S4 Y& }+ B#if __VER >= 11 // __SYS_PLAYER_DATA
3 D7 Q9 Y% _, ~ t8 ~: c/ o- F g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ c \3 v! R3 x# O
#else // __SYS_PLAYER_DATA2 J( N8 i0 A0 m p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 E2 H5 w) S( d6 u* h4 D( Y& H3 [7 i" P
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 b! p3 _8 F7 E5 h if( m_idGuild != 0 )) U' K9 o# Q" x; s0 c
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 u& ~2 K1 G9 A. v
#endif // __SYS_PLAYER_DATA% _) K/ l0 T/ @" s3 ~# |
SetHitPoint( GetMaxHitPoint() ); O0 D: Z5 w6 S% n0 w0 Q% N
SetManaPoint( GetMaxManaPoint() );
% V. D3 i% F: c& R6 y0 s$ o SetFatiguePoint( GetMaxFatiguePoint() );8 C0 M! y+ v8 g, X, ^* f9 N& e* |
if( nJob >= 1 && nJob <= 4 )& S$ e p$ U* ^* m5 E8 N5 M2 h
{/ X- ~; Q1 Y1 o6 |" v+ x) k
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ W* d/ q, V- S, u- }
m_nRemainGP = 28;# }& t2 {: w/ _2 S" o' F8 g7 C
}
7 N1 a! P6 }) }! I) j m L2 H if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
J) G) D0 y" S- c: G" D {
! j# I: v7 r* ?' c m_nRemainGP = 118;
! i& k- l1 T) M+ s. c' N //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 L" X$ r a5 T }* J9 S
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 f$ C ~" x/ H9 Q0 I4 l3 l }8 u3 V: C& b/ t# U; X0 d7 s5 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# s: f2 @( e: t9 S/ U
{
0 J; k; G" |% _# o0 F CItemElem itemelem;
# }# y ]+ |# s' L itemelem.m_nItemNum = 1;, F* R8 e& A. S
itemelem.m_bCharged = TRUE;
) p: Q5 r* v6 K! o& x/ L8 @: O BYTE nID;
$ V) ?2 e0 W) ]1 z0 n& [% G9 p/ e7 U; s7 e1 U% [: K5 r
if( nJob == JOB_MENTALIST_HERO )+ U% q& V$ N4 U& s% A& v1 v& r; s* E
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( S$ o8 v" x# U& [" F8 ?) q if( nJob == JOB_FORCEMASTER_HERO )" ]; k8 N1 ^5 o& S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. r' f1 q' D0 x# D! o: z. F# K3 v) P4 Y0 |9 @% H7 V/ m" s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 a6 F% H4 h0 N7 L }
5 v! k5 W# m0 |: L0 g- T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ c) |* H0 h6 ?
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ y: E+ A$ z9 I1 b: o+ C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
' \8 d7 F9 ?/ D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( ^3 }7 @- B! A* l/ H% y% e1 t
( (CUser*)this )->AddTaskBar();*/ F$ v) l" |: e2 F
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ J4 _; J4 f: y6 r8 c, [- ]
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" f2 z0 d# k" A' [* t ((CUser*)this)->CheckHonorStat(); N0 \- \$ E; o$ t
((CUser*)this)->AddHonorListAck();2 q ^( Y. r. ?) t
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 {& Q6 h7 z- p4 O1 m/ {* Y
#endif // __HONORABLE_TITLE // ′Tà?
3 ` I, S) p& t- f2 ~9 t" ^" r }
$ ?% J6 `7 ]1 }; _#endif // __WORLDSERVER
" Q k) R% ?2 i7 r) _}
f) y% r1 [4 a# o X# f- S7 ^: U. x* P3 ]" m
然后你进入functextcmd.cpp并添加以下
6 ~$ Q( N/ n" s
+ [+ D9 t2 g \代码:
* G4 n, T4 V' Z6 @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) |( P2 h: L5 g# O+ I$ ^
下面插入7 m2 Z* H1 q/ j5 \" U% }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; u; d- u& a# f w+ s1 a
% T7 q% k" r( I1 x) Q然后你去
( W @( @0 Z3 C7 I$ b/ z9 y
+ F* r: g$ x4 o/ j9 P代码:
! ], F3 D, I" N+ F, b代码0 t. Y/ b4 v2 |" c
BOOL TextCmd_ClearPropose( CScanner & s )
3 X* q. ^1 q" v- Z# V% Q1 p- m{! e0 S7 }% _' p% B8 N
#ifdef __WORLDSERVER
- H0 L( o0 O/ U5 r) {2 P CUser* pUser = (CUser*)s.dwValue;8 G+ m+ W- i- b* ~) r- t0 e
g_dpDBClient.SendClearPropose();) ] q& d, |4 `9 U; h
#endif // __WORLDSERVER& T* T7 K9 t7 G9 a
return TRUE;
: l5 v4 l* a2 A0 g# d}
! s% o& F6 M/ a下面插入* w( e' R; `1 A
BOOL TextCmd_rebirth( CScanner& scanner )& e$ h O: ^4 F% ?! z
{
; Q$ L( ? Y, x( ~3 f# T* w#ifdef __WORLDSERVER0 y; \4 e) W5 S( n
CUser *pUser;
9 u9 G! D- ]$ Y h- h& MpUser = (CUser*)scanner.dwValue;; U+ d: Q; ^7 S/ C/ Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): B+ ^- v. _# a7 z9 V1 s" k
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, ]+ h& [3 l* f m2 I
else
3 f* [- o: K3 [! T. B6 [pUser->AddText("你还未达到重生条件!");, d+ v2 U$ n4 @: j# m9 ]9 H
#endif0 x8 n Q( \# Z; f+ L
return TRUE;5 H& k* k% A4 O0 h
}
o0 r1 R6 A( T/ o2 h, B/ l5 [
- b- ?4 u/ E- Y1 [8 m% B% [ @2 I# N* b1 `2 w7 o+ I4 x1 f
% J' c2 D) w" C- K) O, }6 K' Y
. }6 V( v4 J. v8 D1 J5 m/ J |
|