|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' m7 J* c! [/ }1 ^
- c0 [2 w8 |6 v* v1 }1 F8 VMover.h
4 d8 J3 \* z; z7 o! ?' t代码:) A" _2 c9 `1 b- E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ u5 A$ ^2 P% B& P8 d; [
( L& T- K: E: U2 K; F. w, @
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) O4 D) V' O7 W6 T4 T9 N
, p( {0 m+ v/ U" D$ W然后你去mover.cpp添加+ d! `, ? Q( L; E6 Y1 n
1 Q! L! y P2 T. U( o( }, c代码:. t2 s2 M2 T6 f6 T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 r, u1 h5 F' e
{
; A4 ~0 E7 q0 U8 J#ifdef __WORLDSERVER ]# |* O# k: W' O0 `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* c1 b( t/ e7 ~
MoverProp* pProp = GetProp();" h, w t! O. u
if( pProp )
& t% s) F3 }- h( T5 u {
2 u0 X; R8 p. q- x* T2 h0 \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )! B% B4 S7 _/ r) s
{; W1 b! C! Y# R& o0 h9 h
AddChangeJob( nJob );
7 _3 T, c# \ |: S }else{ h6 i# [! ] n& h0 w
return;
/ \' [6 L7 ]% {$ x# ^ }0 c1 I5 V+ b3 X
int nPoint = 0;2 e9 P# [, D: G
if( m_nJob == JOB_MERCENARY )
) R' y: j! V' l/ ^' p, a, k8 P nPoint += 40;9 d7 X5 A, n5 Y& ?& t* u3 `
else if( m_nJob == JOB_ACROBAT )
4 D3 [$ ?; X* E# X+ F' @0 R/ |! ] nPoint += 50;! A" b# t9 y& N% e) c" q. `6 g
else if( m_nJob == JOB_ASSIST )0 O6 s, @- i t
nPoint += 60;
8 c$ X& [+ W5 j4 M2 W- v else if( m_nJob == JOB_MAGICIAN )1 r! @& G: }6 X# V* r2 |! S7 ]
nPoint += 90;
, v2 ?" T1 E; c- S! C2 W else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! n" i. \( ~) }
nPoint += 120;
2 n4 n$ J0 z' A# G* h! C else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) z+ i+ ?8 }3 I% E3 R
nPoint += 150;
# s) W8 V0 k( E+ E- @ else if( m_nJob == JOB_RINGMASTER )
; N6 r' _, u8 A nPoint += 160;; I# ]. W/ q7 z0 E" q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 A/ i" d, h9 j6 B
nPoint += 180;
5 C/ |5 U* H* |$ }- X else if( m_nJob == JOB_ELEMENTOR )
1 s* I8 ?$ ^2 j! ~. W/ J j nPoint += 390;% T$ _3 T5 c C: |% o* E
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 T% U9 ?0 |% ]% S! E5 c
nPoint += 120;$ W" \1 ^- n2 [6 M0 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ d' S# D" Y" G" Q" ?( T nPoint += 150;' y. J+ k/ X; ^& P4 c
else if( nJob == JOB_FLORIST_HERO )
1 j* f; m8 A1 D- k6 \; A5 ~ nPoint += 160;
& x8 J# z# F) [% U+ }3 x else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ X& C% B* h1 n7 d: \5 [% W
nPoint += 180;& ~5 w6 s% S1 R9 m& ^9 G
else if( nJob == JOB_ELEMENTORLORD_HERO )5 w1 ~9 z1 r( _* A- J3 h
nPoint += 390;
. g( I) T0 w0 ?5 f/ K( R( {- `
AddSkillPoint( nPoint );
4 R0 v$ J- K' r7 D m_nLevel = nLevel;8 ]& A" A4 d* R0 D8 U) O1 W
4 I& M6 H8 B7 L5 k SetJobLevel( nLevel, nJob );
2 I2 Y- p+ d _" |3 f m_nDeathLevel = nLevel;4 R. I- ]! c/ A2 Q5 {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 \% Z3 e* M5 @* `* q8 r if(IsMaster())
5 n; ?* D) `: i$ a: K( N {5 c$ I( X) I" o8 B4 M) g
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" o5 O0 y3 E- d% `2 A' U5 O if( nLevel > 59 && nLevel < 72 )
- \+ @4 ?5 S5 @, U4 K7 j2 v1 E dwTmpSkLevel = 1;
4 x6 `; M- F3 ]) }% `6 l else if( nLevel > 71 && nLevel < 84 )
/ J, u9 j0 h. ~4 C6 B+ t. l6 n9 K: r* Z5 U dwTmpSkLevel = 2;
# r {* y: R% l. y0 p else if( nLevel > 83 && nLevel < 96 )
* R. ]9 i$ k* O( l dwTmpSkLevel = 3;
. h @6 G: d6 \3 V else if( nLevel > 95 && nLevel < 108 )
- K- B) {2 I; x* B" F5 |0 m9 f dwTmpSkLevel = 4;) f6 h# E8 |2 I0 ]8 c3 H! ]
else if( nLevel > 107 && nLevel < 120 )7 |9 c5 x5 A3 t8 p
dwTmpSkLevel = 5;
% ~0 j8 K8 B! b! Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 l( v: t9 Q; q" M! a( f9 d
{ ' E5 O0 ?# {/ N6 \( Y2 {: ~
LPSKILL lpSkill = &(m_aJobSkill); W6 H7 g: u! T: o, A3 c( ^" V
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 ]) ]" l5 o5 R8 }6 {% Q
{
7 f0 V1 j- T* J/ }( e4 ^0 @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 o+ g8 O# C8 w b/ a6 B( n/ Y
if( pSkillProp == NULL )6 ^! [ m# H9 h6 I; J3 S* n, E- D
continue;
1 d7 {; q- ]* C1 E, y if( pSkillProp->dwItemKind1 != JTYPE_MASTER) D, d. d) G: Y; {2 }5 F* I
continue;
3 G" _, R( W Y lpSkill->dwLevel = dwTmpSkLevel;
! o4 ^, f7 ^' h& l% j# \ }% a, w* N6 R+ g3 q9 G
}
1 Q% F/ x( k# w7 o/ { }
$ U% J: n5 P! N6 i/ s, S7 d' W B else if(IsHero())9 @) n8 f0 H# O* K
{
C; ^9 t9 N0 Q7 c4 ?- m7 [# u4 E8 ~ for( int i = 0; i < MAX_SKILL_JOB; i++ )
) J# p4 r+ d5 V4 O9 ^& w {
/ W7 l5 A+ V; E8 E/ d LPSKILL lpSkill = &(m_aJobSkill);
; C: b9 W. Z' n* T* P if( lpSkill && lpSkill->dwSkill != NULL_ID ), j( H9 a9 ~; z- b
{; J9 m7 Q# z4 k& {% Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); I/ F- z w/ m/ L$ U3 H) s3 b
if( pSkillProp == NULL )
% P8 w' [ N6 H continue;
! Z( f4 z5 t3 h2 d0 j if( pSkillProp->dwItemKind1 != JTYPE_MASTER) ]% d% r- S) L- c' {3 l
continue;$ ^% i r. f+ Z4 s& v
lpSkill->dwLevel = 5;& k, k0 o! n2 P* r* E) f- T
}
$ Q4 [- R$ H, k) N8 P6 S }" {" a) f; ]3 ~ E& W. R
} ?. x2 M# f! `& [# B6 P8 Q# K
else if(IsLegendHero())
3 J/ n: q. k9 C3 C: s {! X6 B7 D! i; k @5 [7 [
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 J% K& Q4 N* ?4 a) m {
% O6 l& S% V8 d! l LPSKILL lpSkill = &(m_aJobSkill);
6 U9 N5 I4 {! m$ d" q- h if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ G7 U: }. v6 t6 V `( D& f0 L1 B {
& ^ `" T/ O S( w* W% n( c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 |1 H- Q" a C if( pSkillProp == NULL )
/ L( _+ I% P4 K$ g continue;
6 d* l9 H) E! m1 `* ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* L. k8 Q+ a) l1 R continue;
' S. ~2 ^1 ~2 s9 `; l/ d9 @" D' E$ r lpSkill->dwLevel = 5;
" b7 o$ R# b5 j" H1 R) e }. q3 L& e( C5 o, i X# H
}
9 x+ p# y1 W6 |% m, e" x }
m( N/ B( ~/ z9 F3 y+ _7 B/ [#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 Q, U8 f4 x, v, b9 B; p if( bGamma )
; d) v( Z4 T! _6 V/ D {
8 W7 v; M; i6 X% u m_nExp1 = 0;. k Q" s" k+ e5 |# u% T& Z
}
1 L# ^. p3 H3 o
n: G: G1 I0 {, e+ W6 a5 o! Z' I! h ( (CUser*)this )->AddSetChangeJob( nJob );
- k V# Z, }) u% P, R+ A2 T2 h g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( ]. w4 e, u/ @9 K% n; w0 a ?' k/ Z, L
" o. Z X- V5 o* a#if __VER >= 11 // __SYS_PLAYER_DATA8 [9 x( f% {( L* R1 I- d( L' d
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 ?/ `6 b" T& O5 R) C#else // __SYS_PLAYER_DATA7 t: L8 u* a' ?' d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) H: _% b$ M: l) C% v+ A4 B g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 X; }" Q4 l# g' A" E) u if( m_idGuild != 0 )
, j: v' `) y4 _- O' u g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
$ g/ ~$ j) {7 @5 O5 _3 X#endif // __SYS_PLAYER_DATA
/ @& u R/ W n SetHitPoint( GetMaxHitPoint() );
6 I- b+ U* g" @ SetManaPoint( GetMaxManaPoint() );. @$ O" `$ ~ Z
SetFatiguePoint( GetMaxFatiguePoint() );
n# P0 S" w7 x0 e7 P if( nJob >= 1 && nJob <= 4 )
1 m# [: i, H \* ^. t. c2 }; H0 k {
0 L3 e2 q5 z: D m_nStr = m_nSta = m_nDex = m_nInt = 15; f$ s1 b( A. S6 X3 W
m_nRemainGP = 28;
) b3 Y. g& w/ _6 H* x }
8 K: w8 y8 S n( q; a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ ~5 d H5 B# ^+ ? G2 V {
, A( [0 ]! D& Z0 L' c! `* }7 I m_nRemainGP = 118;
( v5 |) d, C, I; j# { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. y1 z$ f+ m- Q) X, b8 w" D( \
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 M! T6 h5 O: V }
2 W9 g5 f& u T# E/ a) I if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 n. R9 o; a. n6 Q {: g3 k W) Y1 L9 l* j+ W
CItemElem itemelem;! E+ ]/ i7 U' ]% V$ D8 g: e* T6 d
itemelem.m_nItemNum = 1;
. h0 O a$ m) H6 i itemelem.m_bCharged = TRUE;
1 D E" f: W5 F% V7 W+ K% ~ BYTE nID;
, t; L8 d9 w8 f; l$ Q( J3 z( X8 Z+ _+ f2 S( `
if( nJob == JOB_MENTALIST_HERO )- r2 z. w0 ], z& V: Y5 Q9 I- O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 E+ y' w- b/ p. z
if( nJob == JOB_FORCEMASTER_HERO )+ s1 N" |, F+ e6 l' t: U$ c3 N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& \% D/ f" q6 d7 x+ U5 Z& Y% s& t! Y3 J2 O m/ _5 \1 [! R, h9 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ `0 l r" v. R* D4 V) \/ O' m: q }
* j x/ N5 _( h5 n/ ^ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 L1 R8 s M; p: t0 ? ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 g" S* K- \, X& i* S+ D, J x% o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 m/ s5 W$ f8 H: w% e) ~: T/ O /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ l9 O0 q% ^5 M" x
( (CUser*)this )->AddTaskBar();*/
% \1 x! O* N/ C4 R9 y3 F4 u ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ a$ Y; {: E" |6 e#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
! a' y( | Y N. R! E2 V/ p ((CUser*)this)->CheckHonorStat();
3 s& i( V0 C$ H ((CUser*)this)->AddHonorListAck();4 s L5 Y! Y( B, c% Q& C* U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: J5 G& d3 \: z# E* Y#endif // __HONORABLE_TITLE // ′Tà?
4 B7 _$ L8 @7 c7 [& g% S$ d+ B- K }
3 n. q" j1 ]7 _1 I; ]7 J% Y% y#endif // __WORLDSERVER
1 ?7 t2 Y6 V& d0 U9 P}
$ h. }' |, V3 T4 @. i* L: R2 K% L3 ?( I! J* W* r4 C8 @' D$ Y
然后你进入functextcmd.cpp并添加以下7 \% g3 b: j0 W
0 L6 V) y$ C5 ?- n4 `& ]; |0 \9 C4 J
代码:
' @: Q0 O! J# V% D2 gON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 a9 f! q/ y/ R2 |$ n* A2 K1 [! Q下面插入- h( ]5 j/ ^1 y' G2 y# b. T
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 b1 @; A* G& p/ Z' C; ?: o! H) q9 {2 i P, c
然后你去
2 l/ i* `' D9 p2 l1 Z B7 i# T3 c! |+ y8 ?
代码:
. i, M6 N- A$ P) j2 l5 L4 Y代码2 t9 Q' D# \/ Q/ u
BOOL TextCmd_ClearPropose( CScanner & s )
/ C( z% k- w+ m{
4 R& v) o4 _8 ?$ w$ N0 p" m#ifdef __WORLDSERVER
% m- V% s9 J2 h3 M3 }. M CUser* pUser = (CUser*)s.dwValue;
3 P( t5 f) `' U f+ w1 S g_dpDBClient.SendClearPropose();; a2 W N( p* M( M1 }' `
#endif // __WORLDSERVER" K; B0 E6 z! I; u7 \5 ?" h2 H
return TRUE;
, {7 y, u$ O0 l4 ~ X}
2 i6 S1 E5 B g( S% f" D下面插入4 ]& o+ ^3 ?6 {; U: g
BOOL TextCmd_rebirth( CScanner& scanner )
' ^& ]) \4 _5 ^ M{
1 E' u4 Z3 Y& m, l ^0 H' b [" i#ifdef __WORLDSERVER( g: N% n8 V# r5 y
CUser *pUser;9 R6 _7 P1 P2 }" ]- j) z8 ^* }- _
pUser = (CUser*)scanner.dwValue;
1 z9 X3 ~' z5 U( uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. J6 h9 `! `6 d% l5 V& XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( e# t; Y- F Z2 `
else t; Y# i' \/ `) s; x$ a( m$ n4 I
pUser->AddText("你还未达到重生条件!");
8 n! `% R* X/ G2 }& i4 j#endif
% O4 d& B, u4 O% i- f/ @/ {& r% \return TRUE;
7 g7 M% G( s1 R3 P: C7 [5 l; G} ; s4 M5 g; Q3 \7 ]. E& I7 \" \( D
% _- F7 o& s, P* V
. r+ ?: v! O: l: ]" Y
( }% A: @% y5 t% c5 y2 l/ o2 V) t$ {* y4 ~ e
|
|