|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 l$ k$ D5 ?$ r& O0 L4 l! Q# Y. }, h. F% a) L. c3 k
Mover.h
0 k" e! l9 b# x代码:9 {- N3 \) l8 {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) P& r6 Q$ p8 ^$ ]. `" J, `
S5 v' X, ^1 K' n+ r1 @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# X+ X! S* W" d! h+ v( k( F. c" r
1 `/ W& e9 |5 B# M然后你去mover.cpp添加! H5 T( N, R" n& W+ Z7 `' ^
0 G( g4 X/ E4 G! f代码:$ s/ G9 a# }- G# T2 E; b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! \. Z8 k- N" Z7 T" A \{
4 F2 I9 z# v, v#ifdef __WORLDSERVER/ I; S* ]3 K2 Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ q' ^8 A0 y" Q MoverProp* pProp = GetProp();
C" A0 q/ W. ~5 {% n if( pProp )
% |. N1 \7 L8 j7 }6 f9 E z {
( _) `2 c u, @ if( nJob > 0 && nJob < MAX_LEGEND_HERO )" A1 P- e0 |4 g) \3 o3 c% |
{/ v0 G. {5 Q0 I5 L, }
AddChangeJob( nJob );
+ k* V( p/ v2 d0 a! F }else{$ N( r/ D9 I/ n Y
return;3 {& z' V8 y% r" N1 f9 ^
}3 d2 \8 q0 s; K( t7 c9 A3 W4 X+ y
int nPoint = 0;
9 `$ X$ O/ u0 a; F9 y* S# T& P b* ` if( m_nJob == JOB_MERCENARY )
7 u- m9 U3 p& w5 m0 Z nPoint += 40;
7 D; o' h7 Q) H8 j1 [( f# g else if( m_nJob == JOB_ACROBAT )
5 b$ t2 W, F4 o nPoint += 50;
v$ u7 o9 E W else if( m_nJob == JOB_ASSIST ), ~: a( M' X D4 e5 g
nPoint += 60;
# w# Z7 N0 f) N% H8 K; ], H! |( k else if( m_nJob == JOB_MAGICIAN )$ ~6 J6 H) i3 ]0 ^8 i* Y' y
nPoint += 90;* f: u$ v; ]) N7 U* X
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* i5 R( ~1 ?) A4 n+ V& z nPoint += 120;6 N: ~+ p! n+ I1 Y C
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ G7 O( i' @5 B6 B' ^+ `& F
nPoint += 150;
' z5 D0 A2 e; k4 H7 k else if( m_nJob == JOB_RINGMASTER )/ ?5 z5 C+ P' y2 @" y/ B4 o( s
nPoint += 160;
+ a1 k& F* k) L+ J- @ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 w& D0 Y- U u
nPoint += 180;: e7 e$ F' f' s2 Q" L
else if( m_nJob == JOB_ELEMENTOR )
. H* _8 P; U/ h5 _8 S& @+ ] nPoint += 390;
: m! Z' i, l& y( ^8 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ x4 }+ s f+ u% P/ \ nPoint += 120;
9 S3 C0 p; e( W$ K5 q4 a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 n8 }" z; ?, B5 ^: m
nPoint += 150;, Z8 `$ N8 m8 \" p1 E6 G
else if( nJob == JOB_FLORIST_HERO )
0 ^0 d+ ~: x$ ]3 m- l, g4 d0 a nPoint += 160;7 [* Y, \- ~4 Z& e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 F7 j0 h) Z. o) Q6 w0 E# S
nPoint += 180; ?& S! B$ e/ j$ { t% `( I/ s
else if( nJob == JOB_ELEMENTORLORD_HERO )
( V& m( x3 ^2 ~0 y1 Q+ M: V9 e, Z nPoint += 390;0 m& T/ _( u" M# ?* `
4 b6 e& M+ m @. h AddSkillPoint( nPoint );! S) t2 T4 x' O1 Y1 t& I% p- a
m_nLevel = nLevel;
* ?" s9 y' Q8 c/ n U k E+ d3 s4 u" Z! _0 P$ d, A8 ~( }
SetJobLevel( nLevel, nJob );
" {" B& z$ d) {/ D+ Y m_nDeathLevel = nLevel;6 Q2 {& a9 W/ `2 X6 f8 l
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; n' y ^0 Y& H1 [+ j
if(IsMaster())/ P; Q( q4 W6 ^2 r+ J
{
" M& V" f/ e' V' K, {! y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% J8 o: }! F- A1 p
if( nLevel > 59 && nLevel < 72 )
9 h3 @ e) ?* Y/ i7 R dwTmpSkLevel = 1;8 w2 o+ w( {$ d( `/ U$ W
else if( nLevel > 71 && nLevel < 84 )
7 j) S/ v7 K1 Y2 [' c dwTmpSkLevel = 2;& r" }2 `- V* i, F
else if( nLevel > 83 && nLevel < 96 )% W: T) l6 V3 e+ q' u. l3 }
dwTmpSkLevel = 3;2 S2 g& u* b% `
else if( nLevel > 95 && nLevel < 108 )) v [- H4 e7 r5 W
dwTmpSkLevel = 4;2 n$ a: j& X: ?% M
else if( nLevel > 107 && nLevel < 120 )
8 `( [' M4 e8 G5 S dwTmpSkLevel = 5;
/ r6 k, C { k! F* i0 L* M for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 Y1 V( k/ ~* W; O { * _5 q$ R# t, K$ Z
LPSKILL lpSkill = &(m_aJobSkill);
0 p" Z( {( o2 B5 ]9 p' n if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 e+ H4 m! ]6 W {
$ ~- Z! r: M, _9 |. B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 ^" [/ m" B {) z! b
if( pSkillProp == NULL )
7 r& ^1 N& g! K continue;
) R) y' R1 u# Z, `5 i0 e$ j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* Y+ I# |, p& W continue;
" e; _5 d8 K) X4 f; E lpSkill->dwLevel = dwTmpSkLevel;
) b, [- q2 q# X( T% \& o }
- _6 t' x E9 m. w" _% F* V( b } j0 o+ Z, Z6 C9 Y n% U
}$ N) q5 R# _8 u! w+ t
else if(IsHero())
7 a' L0 ~2 I. k* H# F$ ^ e {
+ K- y3 {. B+ N; y) C for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 O" C3 s, R. z f# k* z W
{ 4 r' ^% | T# m+ _* X
LPSKILL lpSkill = &(m_aJobSkill);2 h7 } X! [" H0 G$ A& V8 i2 L% X
if( lpSkill && lpSkill->dwSkill != NULL_ID )! C/ w, K# B6 d4 e' x1 O7 Y
{
( u6 L1 @; ~4 | c( E1 l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : d% o- U# ~. ^2 H% D9 X8 H
if( pSkillProp == NULL )+ y( Z5 m! t7 L9 M6 S' P
continue;
0 {" u* }! I# D6 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 J+ t) a6 a. z8 [/ H" L, @& e8 e3 C continue;5 U* a q& J" u1 n
lpSkill->dwLevel = 5;
8 f3 L/ y" w3 n: i) D ^ }
% q: P/ z: X/ Q% t }
' o2 a+ {$ b1 q; ? }
/ i* Z0 ^: Z" z# _% [ else if(IsLegendHero())
$ V7 X. a1 l. ] {
: X6 N9 {$ Z6 c for( int i = 0; i < MAX_SKILL_JOB; i++ ) , G( [, }/ A2 e/ [- }
{ 2 Q7 ^* T$ ^1 U0 ^4 |# v
LPSKILL lpSkill = &(m_aJobSkill);
8 t, R) x# Z3 J) d/ l9 L, Q7 q if( lpSkill && lpSkill->dwSkill != NULL_ID )% l% O: r; ~! h j' d* ]0 D
{: \1 e9 G3 r9 ^: ?, Y; M" ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' d9 o% k6 K4 ~, d3 b7 b; f
if( pSkillProp == NULL )# w6 [9 i! v6 ]2 h
continue;5 o+ D3 Q5 j6 n: o) X' |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! C$ Q$ Y9 I" ~* m% e continue;
% ]; @1 [. t0 ^4 W: t0 A0 y% f* Z lpSkill->dwLevel = 5;3 D: c) I4 o2 ^ s! Y3 ~6 E+ A7 U* o
}
8 n( U3 |% J; E' t+ r& `; C }* C% P% X* n# p4 o
}
9 l4 H' T2 L O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 A; A9 t7 s) v+ G" Z4 l; C if( bGamma )8 {3 r% p; ^: r3 Y8 r' |0 o
{
" z# C1 |9 ?$ v- L2 z m_nExp1 = 0;
c, s* n; q2 I. z4 L" [- e }* Z3 e1 X, J: q9 P$ e" n
% G; o2 ]0 e$ f ( (CUser*)this )->AddSetChangeJob( nJob );8 E `% `2 ^9 c' {7 O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 b0 Y: J) E5 J2 p# V [1 Q! {7 F. H. ^. f H% c% @" v5 K
; o1 T1 j! E; H7 i8 Y#if __VER >= 11 // __SYS_PLAYER_DATA4 s! V' B4 B O6 m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 w* W7 Z H* |4 P#else // __SYS_PLAYER_DATA% h1 i2 p8 a1 H4 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" U2 P3 _7 l/ T" H3 {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' v1 f0 m' O1 ]: S- x
if( m_idGuild != 0 )
0 Q% O/ t% b p! l" P4 k* U& z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* |/ G5 T: F6 q4 h% W#endif // __SYS_PLAYER_DATA
. b$ ?% f/ x( C% Z SetHitPoint( GetMaxHitPoint() );3 v% }' w( l4 A5 Q, y3 A
SetManaPoint( GetMaxManaPoint() );- ^0 `" b2 G) `
SetFatiguePoint( GetMaxFatiguePoint() );& ]$ y, {8 b- j3 C1 j
if( nJob >= 1 && nJob <= 4 )
- I, q& u, } v. Z- H4 g3 d {
# s1 c" j( }- d$ m8 B Y m_nStr = m_nSta = m_nDex = m_nInt = 15;
! _/ [+ C7 C j; D m_nRemainGP = 28;
7 G* H9 |) @! W. o7 }. ]$ y4 k( |: w0 m" N }' z# V+ r2 D" f7 w! ~; f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 a! T. c; l5 m" i8 X
{
3 J: Q. e; k! f" ^ m_nRemainGP = 118;/ S2 H: F) [' m/ F& n
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; R# a$ _* i8 @/ Z m_nStr = m_nSta = m_nDex = m_nInt = 15;( R# V4 o; o% s* {3 t
}/ x9 m" p) j7 t8 ]5 L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; `; C. z1 a, l1 b: j {
+ c g; I* v X) Y7 | CItemElem itemelem;
* A I& K. r* v( X! Z+ t7 X itemelem.m_nItemNum = 1;: S) |' F" M( S* O d
itemelem.m_bCharged = TRUE;0 t- |8 n- P9 d; E" W3 D. O2 s
BYTE nID;1 L+ u$ w0 v1 H
: H1 p$ j' z% q! ^4 E* ^0 u9 B
if( nJob == JOB_MENTALIST_HERO ): I: A" ^: A& ^+ i# \
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ \" r4 X. ~) C+ V
if( nJob == JOB_FORCEMASTER_HERO )' W6 L+ J# r& D6 n) M% h" ^( X
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# f& {3 ?# e s! Y
! [- o. E* A7 v ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 P% n# f0 k5 x
}
" w2 l X6 C3 U- b g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% U; r; ` w& f$ G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* R* U6 W3 z" a9 W% {0 l/ E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) o+ _% k( U( F: s4 M /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; A* |' b4 o2 u3 i+ r
( (CUser*)this )->AddTaskBar();*/
- F& Z8 k- G0 t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- A" q1 g) s: }( Q) v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 I: p% {0 y P0 r8 s7 H ((CUser*)this)->CheckHonorStat();
7 n4 \+ B1 O9 d ((CUser*)this)->AddHonorListAck();+ O( ~& v( Y4 q! c
g_UserMng.AddHonorTitleChange( this, m_nHonor);
% c9 h' q& u/ @+ I9 g#endif // __HONORABLE_TITLE // ′Tà?' O1 ~$ B8 a. E0 Z* ~
}7 q- V$ q7 ~3 [8 T
#endif // __WORLDSERVER
; a6 ?$ \( u" m6 V& v1 u+ q, O} / {. _/ ?) s; J7 P: T
/ {' t# I( Q$ j: D, T然后你进入functextcmd.cpp并添加以下
& O7 {7 _- l6 ~5 `8 C. h
* H6 d7 U6 t \, E2 r' F代码:
: y- K' e& ^( V. O) Z7 s9 CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 E. d! r4 k l: G
下面插入1 V" q' `: [7 u) v8 {# A2 h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : {2 B% y7 u, g: t9 ?- X( {
0 P \: b8 i0 f0 T R* u然后你去2 K- [* P( _- Z( k8 T' t `
0 E2 `8 W" d" n& P) M
代码:7 x6 b3 x9 x v* c
代码
, m, E* S% @& S b3 C+ LBOOL TextCmd_ClearPropose( CScanner & s )* w3 B- m6 L7 t) \* K6 G, O
{
; ]. E4 ^8 `1 E- u" A8 @7 b#ifdef __WORLDSERVER
, r: k8 c8 O. U# t2 | CUser* pUser = (CUser*)s.dwValue;
9 @2 I/ r; ?* I+ j5 {2 i- O4 Z g_dpDBClient.SendClearPropose();2 {* R, d0 G, ~$ a" t1 D$ r
#endif // __WORLDSERVER/ \: O- P" P/ y, z7 _
return TRUE;
/ G4 b* f! G g( c+ e}
1 J/ h6 \3 F, r; V! g. j6 f& K下面插入" R% X9 h( }* D; \
BOOL TextCmd_rebirth( CScanner& scanner )& g2 X$ C5 |4 u! i) u. v
{! s6 Q5 p% u0 ]" {% O3 _
#ifdef __WORLDSERVER
' d) q' m/ `8 V) r kCUser *pUser;) ]2 R6 e) e0 |6 [7 s; G1 P
pUser = (CUser*)scanner.dwValue;
$ @* d4 l; _& D- Y0 tif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 p8 X" G1 Y$ `% R+ d6 Q0 e" Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ `# J! Y3 w$ d3 E, |# g
else" V& r6 I- Y) I1 d1 y
pUser->AddText("你还未达到重生条件!");
& n1 I. Q: s3 y; E: q#endif
6 p% j! n& H* _" c& J# h/ |% yreturn TRUE;6 w/ Z* @& }1 O! E5 b
}
$ q# ] U9 v7 V6 L, s1 M. R2 V( L! I; M% T e9 Y7 N" Y3 Y
6 r0 _, a+ d- _ t; y% ^/ R D/ G+ Y
3 {* H( m- J& W$ \5 ~, w# e, k' e( O: a
|
|