|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' H6 D2 v) {5 J" g( {( D; Z% r! e# v4 t" }3 S) y' V: p2 w
Mover.h. ]2 ~; J+ X) _0 R4 C
代码:
$ v5 @) b+ D" e; O& T+ M5 n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; N5 V S+ x% F: q
9 C0 Z* E6 Z: B; Z2 ?9 P1 ]8 ?6 |& x下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 l& }" O- ^1 q0 P' t( i
8 ?6 d4 V/ U6 b' r5 [然后你去mover.cpp添加( Y( o, b) T8 w. z1 Q* U7 y$ ?
: K" N* ?$ _) x5 k代码:
) G' t" T0 @- g4 tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 g N7 N! b# `) q{; a5 c& D+ d. J% T: _* U9 j; J7 V$ _
#ifdef __WORLDSERVER
. A n7 Q. z4 A; h! a6 T // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ p3 x4 J( W' g# E Y5 N
MoverProp* pProp = GetProp();
) a: \4 t* Q/ I8 W* A if( pProp )
7 Z2 ~' p# K1 h; F {- ?6 a" L! r4 b' K m8 g+ k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; r0 a+ E3 ?( e0 ]4 T: ] {
& I/ Q7 h; d& c3 x AddChangeJob( nJob );. B0 t* a7 R" Q% Z8 h4 D
}else{5 G5 ~; H" [: i- |/ Z8 ^
return;
7 J, u, \$ V7 Z/ [ }
- f/ F6 w Q3 q ^& z; | int nPoint = 0;
6 }7 k" I8 R2 Y$ ^' E) |- T! r if( m_nJob == JOB_MERCENARY )/ z6 }) i9 E9 p3 B* W! u
nPoint += 40;
( ]4 \% ~* K4 w. U6 k, A else if( m_nJob == JOB_ACROBAT )
$ m1 K& l2 z) h; p8 n nPoint += 50;! j2 [$ N1 _* [& z) N
else if( m_nJob == JOB_ASSIST )
2 `$ g2 f+ L' a7 {' [$ D% s+ | nPoint += 60;+ g; H; Y0 g) P* N @0 Y
else if( m_nJob == JOB_MAGICIAN )1 B# B0 `! e( g
nPoint += 90; X+ _- h. |. `3 `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- R6 @) U& F& p5 v4 q- o8 a nPoint += 120;
, B: W: u* v$ n% F( g3 x1 h else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); c4 q5 q' @0 ~
nPoint += 150;
! }: D& X1 X* F; h else if( m_nJob == JOB_RINGMASTER )
8 j3 |( t; v) A+ k8 B% a nPoint += 160;
3 [5 j1 q. ?7 t1 d4 r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 ^* d9 k' ]2 l4 k# Z2 a
nPoint += 180;
# h* f( `2 ^, ]+ @% D! Q$ O else if( m_nJob == JOB_ELEMENTOR )
( H* Q) T7 ^; ^ c- f: M/ n+ Q) } nPoint += 390;* ]( c4 b! n2 N' R/ W1 p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! u6 k3 a& \# M) A6 a2 {
nPoint += 120;
. y9 I3 S G& `* C) O5 J. Z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
I6 m( z# {' q2 x; F4 @ nPoint += 150;6 d. [$ P+ u! J5 c
else if( nJob == JOB_FLORIST_HERO )3 a. ?" w% q Q% x# H' Z% g) k4 ?% O
nPoint += 160;
, X4 d' `2 X3 R9 ^- J% ^) k4 z( Q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ ]8 G* [+ t5 ^ nPoint += 180;
" P* k) `+ }& p% y' v$ q! Q else if( nJob == JOB_ELEMENTORLORD_HERO )
- k$ p8 }. p% R" w' k2 D' l nPoint += 390;
& w$ ~# J: t G: t3 D! @: B, A, W2 F# {& L
AddSkillPoint( nPoint );1 J9 Q4 w5 T7 w3 o8 _* d/ s
m_nLevel = nLevel;
$ N) o* X: A- D; N# ?6 \9 N! v
9 A8 _# t* U- i! z* ~# O SetJobLevel( nLevel, nJob );3 ?& j! b/ q2 n Y6 F
m_nDeathLevel = nLevel; M* O! L0 w/ S1 Q8 ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ ?% }) U& \7 l6 d
if(IsMaster())
( Q4 o# l5 \9 x Q9 x" c/ ` {2 z+ k: R1 n5 T7 s) @
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' v5 @( P' V9 L+ z# n7 \
if( nLevel > 59 && nLevel < 72 )2 j4 S' l* d! e8 k2 I6 q' d
dwTmpSkLevel = 1;
& W% J/ B7 i3 L' V else if( nLevel > 71 && nLevel < 84 )0 ]! H; O2 o- L/ V8 r
dwTmpSkLevel = 2;
d- R b W; x: T+ h* W3 c7 O else if( nLevel > 83 && nLevel < 96 )
. R2 g% U8 e* o; _8 k# A) |* _ dwTmpSkLevel = 3;5 s9 O, Y1 s) }+ d
else if( nLevel > 95 && nLevel < 108 )+ J7 u) W% B, M8 c h
dwTmpSkLevel = 4;
1 V( G: u/ _" ^* U else if( nLevel > 107 && nLevel < 120 )1 F: b* Q; M: O2 o; y
dwTmpSkLevel = 5;% C7 L- b+ G: T8 e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' {. l8 d- R$ z& M7 T: \ {
2 d+ M4 |$ d" c' V1 [0 H LPSKILL lpSkill = &(m_aJobSkill);$ p% M5 f4 J/ \% Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ U: Z+ X8 @ `6 C3 o9 n' E; h
{) Y( }, Y9 Q! [* q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + h( M# F, V! H0 |2 {3 W) y5 B9 V& a
if( pSkillProp == NULL )
6 B4 x& ?6 E ]7 u5 o' w continue;6 z. @) h4 i& k5 P& b6 r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 J+ v% n K" C1 b% q) X2 x/ b continue;
2 o5 r. q) v2 {. g$ q; r) `. Z lpSkill->dwLevel = dwTmpSkLevel;
" d1 k% h( @: w0 G3 L. x }
0 b( W1 ~& p4 o9 S; P }
* f) G/ r, K1 @+ X& P5 R }
4 e) X) ^' M J- j else if(IsHero())
5 v# W- \: k6 H. l. [6 V1 s {+ P4 ?3 q+ v1 v: C9 f0 @
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, g: i; n, x8 ~ [ { : v# w0 `: h% I8 x- D; [
LPSKILL lpSkill = &(m_aJobSkill);' W1 D2 z4 n" P# G3 o
if( lpSkill && lpSkill->dwSkill != NULL_ID ). x9 q. S# u* e% i- H" D$ i
{2 Z/ j$ |6 Z3 j5 y$ M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 L* `/ C# f2 U if( pSkillProp == NULL )
5 ~2 J$ F5 k5 R2 R) u continue;) S2 {5 s) N R. e8 j/ e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* ~4 j6 L/ m/ f4 Y2 ? continue;0 {2 O+ q3 B w$ k( \. @# K) \
lpSkill->dwLevel = 5;* P. I* ~* ?& L8 g0 s9 S- J8 M
}
+ O/ Y! w, `+ H9 F2 u0 e }
& z! C% ?, w2 Q. _2 ^ }
9 ~! d9 i' M% K3 M+ E else if(IsLegendHero())1 a7 [( R1 x' [% }0 d
{
* n. x) a% H0 } for( int i = 0; i < MAX_SKILL_JOB; i++ )
' s- m2 j& t7 A1 k) A' A0 X1 r7 u { 7 v! D6 I- C O- I
LPSKILL lpSkill = &(m_aJobSkill);
% D( K5 K+ B% `. j if( lpSkill && lpSkill->dwSkill != NULL_ID )0 T* z" a- ]0 f" D# S
{
$ W% O4 }, N; O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ P" p1 r. Y, _6 X$ N! P if( pSkillProp == NULL )
h; p) W* [" e/ Q0 Y continue;; ^4 I) Y# q& S1 i; [$ ^: Q/ V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. t8 g% R9 E { continue;
' H+ o& A1 ?1 l7 D- I) r lpSkill->dwLevel = 5;4 E" [; z+ q$ S L: y/ C
}6 S& c" f1 w0 f7 c- Y$ b0 E }) r2 i
}
. \' e0 W- k3 x/ \ }
- a9 @8 x6 {' Y: X- y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( Z/ a# Y b. L if( bGamma )
" _. C$ y g8 u3 E. e! M {
+ | f( l' D/ y; b m_nExp1 = 0;
# {1 }# ]$ F3 q9 S }
+ E+ v' @" W: V8 G4 Y! ?4 m8 j
t8 H2 S- v% T ( (CUser*)this )->AddSetChangeJob( nJob );
5 d H5 C! }2 R% G2 i g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. e! j; W$ o. c* G& e( g, o
5 |9 N5 h# }: |2 e+ Y
E4 |( R3 \! `: L. R* g#if __VER >= 11 // __SYS_PLAYER_DATA
/ i; X! o) k, y, O& u6 H g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 F1 F7 @6 R4 l6 b
#else // __SYS_PLAYER_DATA% r* R1 M1 d/ r6 ~* g9 Z$ }9 U8 N
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ \0 R, W! O2 c/ l2 _
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, i( z3 l8 V, b' d5 q. ^" k
if( m_idGuild != 0 )! Z! q( Z# O m: c2 k+ y% d( N
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& r O# V7 _. d- J; ?3 Q4 H#endif // __SYS_PLAYER_DATA& b3 G1 q; w# j
SetHitPoint( GetMaxHitPoint() ); P9 L9 b8 _$ D1 N/ U
SetManaPoint( GetMaxManaPoint() );# b6 q% l! T: }; b: s! _
SetFatiguePoint( GetMaxFatiguePoint() );# n0 q" t6 n. L8 ]
if( nJob >= 1 && nJob <= 4 )
3 g7 X3 u7 Z# } {
5 W+ b: E8 {" H: q; @: k m_nStr = m_nSta = m_nDex = m_nInt = 15;1 T# A, J# C: \/ b
m_nRemainGP = 28;) S* i W @3 D& ?' W9 b2 w# A; n
}
) P- K/ a: e; S0 ~3 a8 e5 o& N- ]& f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' N: U6 A5 {) x1 R {
9 |; J0 X4 |6 d+ A m_nRemainGP = 118;
: M0 Q6 V l n w; } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 |' n! {/ z, I; a4 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 S; U0 D) o: v1 @/ F/ q+ \& V8 N }
& r/ o7 e4 U' F3 w if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 D, c- D' P$ _2 k) B {
& H `% E9 E4 [4 F' U CItemElem itemelem;. q. x; w$ {6 z
itemelem.m_nItemNum = 1;
n; K7 N$ Z! ? itemelem.m_bCharged = TRUE;
# @) M# I0 M0 e T! [0 |. b BYTE nID;# `5 s3 t# v: E( o
$ V2 Z) b( H2 | if( nJob == JOB_MENTALIST_HERO )5 O; r& q/ }7 P4 f* s
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 j! [( ?! M/ |. {* E/ f( f if( nJob == JOB_FORCEMASTER_HERO )
/ e ~* R# K/ C6 [ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& B. L6 K' P& G* \# L" `7 p0 ~- }
! t" H# H; r+ ~/ t0 Q1 y, d ( ( CUser*)this)->CreateItem( &itemelem, &nID );3 F% H( M0 N# J( {) `, v6 G, X- d
}
$ Q( A$ T5 o. y) L, {% P7 | g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- g" |& q2 u' ^7 J& X9 b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" U) L8 L! b" i- [7 k4 s1 y1 |/ Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" D) e8 v" `' ~2 Q) C: i; `5 s /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );# |. _4 |, x; L. |! |
( (CUser*)this )->AddTaskBar();*/
' R1 n1 l: T s( p+ G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ [) z @( }$ q! H% N3 x; ^) b
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 @( V* ^! v1 c( W6 f/ {- |8 C ((CUser*)this)->CheckHonorStat();
: N6 A# N) V8 R' ^( o ((CUser*)this)->AddHonorListAck();
' T# s9 j4 o) @4 E7 \0 P g_UserMng.AddHonorTitleChange( this, m_nHonor);% i( K9 W- |+ G, B* T
#endif // __HONORABLE_TITLE // ′Tà?
7 S9 `1 {) e0 g$ L9 F. S } w$ U) K& L: u( P% @
#endif // __WORLDSERVER
: l% @# j) a r}
& V3 V* T2 I U$ S( ~- e5 a0 D. ?
8 ~4 `* E2 Q" X: F2 Z7 \然后你进入functextcmd.cpp并添加以下
* e4 L; W. k9 c$ L
& j* V- p, d( K! R代码:: Y* U( U* Z( s! g7 D j. A. a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 S) ~& j% Y, t
下面插入
; }" f* _4 N' H$ C3 pON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; b; j/ A Q+ f( Q) K' E; a4 h7 V) H! f
然后你去
! b/ x4 i" Q$ b" T
! A! j1 w% J4 i5 g1 z代码:
2 Y7 f, o% d. j! i# o3 I代码8 a5 V) \7 o s7 u/ U2 W3 k+ \
BOOL TextCmd_ClearPropose( CScanner & s )) v! S6 n& X& \: T
{
4 ]. u5 B6 B% B2 ]4 x#ifdef __WORLDSERVER: ~, M5 ~, ~6 J0 x F
CUser* pUser = (CUser*)s.dwValue;8 [; F+ e2 F; u+ X6 Y; g
g_dpDBClient.SendClearPropose();5 }/ [) s3 L8 U# T: b
#endif // __WORLDSERVER
8 T# O/ ]0 w2 ]) }+ `4 p return TRUE;( y2 @! H6 e; K. s$ }1 b
}" n+ X+ L S/ F3 ~" U: w/ I
下面插入
7 D) \% s$ l6 G8 |1 f' YBOOL TextCmd_rebirth( CScanner& scanner )
/ y1 u, O) H4 E8 l: m6 g/ V: D{4 ]: Z0 U* P4 E1 t8 {, x% p% [ w
#ifdef __WORLDSERVER! `+ v4 v$ S$ L. \) u
CUser *pUser;
/ m3 \' A- m6 {pUser = (CUser*)scanner.dwValue;0 M) U2 c8 h3 v* s8 {7 x+ z5 l( N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 Z$ N. ~4 R8 x% b/ W" A/ J9 `: s
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ H, E: u1 V& ^ }# |& zelse
5 \6 o% M! N: L# WpUser->AddText("你还未达到重生条件!");7 P- f2 x7 @' q* x/ V" F
#endif% Z0 A1 q5 G F6 Q' k; b4 M5 C7 i
return TRUE;; u3 K, `9 Y- m& d
} , Q8 S1 E: O/ u' \6 r$ A
3 {) K. J% V' y
+ Y7 L# [8 v, w- l7 u' n
* O) y: W/ E, h7 u7 J
6 z8 T$ ^2 V, Q' K4 [. T |
|