|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 j8 L8 _: z2 `: L$ w
5 R7 w, A Y' O, qMover.h; p4 k4 m( G3 c. c) P' s5 G7 j3 }2 H
代码:0 D' K Y: w+ t
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; i# {! `, d! P! C+ s) m$ Y: \" u4 y' |" z7 X& g5 O6 `
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 E) j# j/ `4 V' v6 g A+ M9 {+ _+ R
. n0 J: i; `0 r! C1 B6 j0 J
然后你去mover.cpp添加/ J& B9 g. k+ s. S6 O8 K, Z/ K
$ A( w. F3 t# V! H代码:+ |( n; P# {( J& s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! R; W2 G# N: c* \# T3 S{" m8 g3 A+ {) T: k/ [) T8 [ J
#ifdef __WORLDSERVER
( G$ v+ V7 U3 B, r* d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 P" M+ R2 j- G b' J MoverProp* pProp = GetProp();: z$ T7 A; S# v) }
if( pProp )
3 i) E1 T8 ~! l! b$ R: V1 l. N {& A. Q0 m4 s9 J3 R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# K7 L8 H( L' _' \ {. z z* r2 c9 ~5 u. u6 a M% P
AddChangeJob( nJob );- b5 v7 x' c1 o `3 f' g
}else{( X1 b% l0 c P" P/ g( v4 g
return;& Y0 p" k2 z2 Y+ H. W" @# [
}% P- p5 ]8 M9 l: s8 n
int nPoint = 0;3 u7 a2 } e& G/ J' E. C8 {2 x7 |% l6 u+ @
if( m_nJob == JOB_MERCENARY )$ D1 Q1 v: B9 J/ v; x. V# ~# K+ k
nPoint += 40;7 k* k+ F( K; E d
else if( m_nJob == JOB_ACROBAT )
4 i# K" n$ g3 H; |& X- q7 w nPoint += 50;; ]! ]9 q! z) k- k9 f0 S. k3 \
else if( m_nJob == JOB_ASSIST )
s( }: g3 q7 r nPoint += 60;: w/ e# X* m! Z+ n% R
else if( m_nJob == JOB_MAGICIAN )
2 B1 A i; J" q5 h" b nPoint += 90;8 g* c- `0 u' Y S
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ [5 N1 X0 w1 V9 T# _$ D nPoint += 120;
! A0 ^' B- I( e* _& n7 z0 P9 `0 ~' g7 V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
. k+ }3 s- E5 z3 {9 q% s1 d' Q nPoint += 150;
5 l' A, ?! T- E2 d$ ]) ~ else if( m_nJob == JOB_RINGMASTER )( W, u0 ~2 o+ Q' T7 F- {
nPoint += 160;& T4 V/ ?8 ^% \; e+ W. Q- P( u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 Q% j, N: z3 F& e0 v2 P0 }
nPoint += 180;
, O. t' v! e9 P9 G$ }2 K else if( m_nJob == JOB_ELEMENTOR )' V# L; d* m( m
nPoint += 390; I7 k) Q0 ~6 A9 d/ r% V
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, a& c o# A# g$ {: V nPoint += 120;
6 W. J6 q c# P% a& t T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 \- r5 C S- _- b0 ]6 ~$ i nPoint += 150;
" Y4 [7 N( f) K h6 `3 C/ `* s, y else if( nJob == JOB_FLORIST_HERO )
3 y. H3 I0 Y I2 F. n, f nPoint += 160;
1 z( q; m& V1 b% b0 C6 s else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' p7 g2 H; k, C8 c% g9 c" x# b nPoint += 180;
" w( f* a0 L" O else if( nJob == JOB_ELEMENTORLORD_HERO )
8 j/ [8 ?' f6 x- w' u6 R6 ] nPoint += 390;+ k: E" T" o; A0 Y% {
) X: O+ v! ~$ S/ F( a4 A6 W
AddSkillPoint( nPoint );
; ?5 u1 L: L" s m_nLevel = nLevel;
0 V" v/ L$ E' @6 ?- k
& z( x4 r3 u( d2 b+ Q SetJobLevel( nLevel, nJob );
0 l1 h" C% C3 P, l m_nDeathLevel = nLevel;
3 M3 J7 H. G2 ]# m: C#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& v, Q- e3 N$ s( Q/ ^
if(IsMaster())7 u+ l7 p4 }9 b% K
{
8 \4 m7 Y& S% K; w& }& E7 E int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 e8 B: }& l. l8 @8 n& N/ v if( nLevel > 59 && nLevel < 72 )
* V" ?+ K6 H5 p5 r dwTmpSkLevel = 1;. f" D# x5 S5 g: _& F k- i) P3 x
else if( nLevel > 71 && nLevel < 84 )
}- b6 d; j* E! x" F: T dwTmpSkLevel = 2;1 i; C% ]9 r! W- Z5 V
else if( nLevel > 83 && nLevel < 96 )( V3 _& u7 @ {5 m+ ?7 L9 w7 |
dwTmpSkLevel = 3;
5 I0 t/ l9 n9 q- m6 W- Q else if( nLevel > 95 && nLevel < 108 )" `5 ^3 a/ Z, n5 P
dwTmpSkLevel = 4;1 O8 P9 l# H4 }3 y
else if( nLevel > 107 && nLevel < 120 )& y" `$ h! v: H4 ?5 a7 P9 ?4 V
dwTmpSkLevel = 5;3 _3 G) n; j' U A1 U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & Q# `( j& T9 C$ [2 L- U
{
& U, C0 o& X1 g5 m& d LPSKILL lpSkill = &(m_aJobSkill);
- y3 H2 `' K" T if( lpSkill && lpSkill->dwSkill != NULL_ID )8 |* P( q. R0 F O+ I- ?$ e
{
6 f0 P6 [+ l3 _) o ?5 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 ]* Y& y: q8 n' k" P
if( pSkillProp == NULL )
# S5 P7 Q1 ^/ h1 H7 m continue;
( S7 g& I0 \8 p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' ?" `* i# ?- r9 p
continue;
7 |; }; D3 }2 b& k lpSkill->dwLevel = dwTmpSkLevel;8 H9 P1 L" |$ |5 c* m
}0 u9 R# K( Z! r P. ?+ ]4 j' }
}
9 G7 f |5 @& }; B }
9 h6 H }7 }1 x6 J" o6 P" d; y else if(IsHero())% ~. u+ d5 H- s7 W( G
{8 k% L+ {, X' `9 J1 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! Y& v: U1 j' u. M# I* `
{ % f9 h+ w( L# \( |( K2 W2 I$ c Z
LPSKILL lpSkill = &(m_aJobSkill);: X+ j& ?) q. Y/ \* v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 e' U3 |4 z! J- T3 G9 X y {
5 Q, j4 k* h$ b9 t# T3 D# E) f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ r& [# w% Y+ }5 W8 `' ~ if( pSkillProp == NULL )
5 M7 P3 u" e L7 C0 z' z# `0 E f6 \5 A0 M continue;
3 D. i4 n& a! m4 F5 M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 H8 r! w& I& M; A8 p$ _
continue;7 E$ Z. t# u' p# p( p; S
lpSkill->dwLevel = 5;8 Y; d. [9 X) C, G, t
}
; l: Z; v. [. H& }+ [3 V. \1 V9 ] }2 H$ y G( d2 n
}1 @6 ]! ?5 G7 n E+ E8 _
else if(IsLegendHero())
' u; j4 y( D3 n) l& M5 g5 ]9 d f {) o7 v9 J+ H( I. h# C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 o4 w* _% P9 s1 Z3 p
{ . t X9 N# M/ X
LPSKILL lpSkill = &(m_aJobSkill);
( U! m/ _, i0 i2 [+ ?, r; c3 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )- l1 q. Y8 |1 d3 L1 i. [, U0 y
{
R) t) k) Y N4 L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 i, W! r2 x6 c6 F
if( pSkillProp == NULL )& l7 e/ c+ O- ?. p2 d! D: R" L
continue;6 i9 J7 `; n/ w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& j$ A* c! P6 o2 h3 B continue;6 W7 t* S$ _) o. |$ b4 y
lpSkill->dwLevel = 5;1 u* D: [8 R' g5 T. M- {8 m
}
( a: v) ?4 A6 T) A" N }
: v, y% d# _& r. k( @; O+ q: J }
7 j R9 n/ }# M5 n. P8 G: Q/ r! P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% D6 f% d4 c$ u' [6 X
if( bGamma )
4 l9 t* Z: ?9 t {, t n: y" ]$ b" }: L$ r: k
m_nExp1 = 0;5 ]( {8 y: l8 D9 t$ N! [8 F
}0 {2 U; Y: @ }2 ]
1 _! Q. q5 D, o& z. P% b2 J" P% x
( (CUser*)this )->AddSetChangeJob( nJob );
3 M g7 U; f* g. `; m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: i! M+ x9 n* k/ F: s, q' [2 J
$ X! q" g7 c* y6 q0 T. q0 \7 n ` p. H6 Q& i- ]
#if __VER >= 11 // __SYS_PLAYER_DATA1 g( S8 s; D" [0 I( i' ~, k+ ]% s
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 h b" G+ ~: o, w+ }0 I1 E#else // __SYS_PLAYER_DATA
* W x( K- g5 j, M; c g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ A% V4 C, e" E; n g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% T% C8 j2 T* \) P
if( m_idGuild != 0 )6 e/ G" H6 t* o' k {! j: e( Q. j$ J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 _ U V8 Y1 W* O" P' O8 v# ~
#endif // __SYS_PLAYER_DATA
8 ^! ^* o( I, U# Q SetHitPoint( GetMaxHitPoint() );8 k6 q) m/ E- {( B! k
SetManaPoint( GetMaxManaPoint() );3 }& z& r* G& k# d
SetFatiguePoint( GetMaxFatiguePoint() );
* |& D5 l3 C( U' F+ p if( nJob >= 1 && nJob <= 4 )+ W3 U& H" E6 N& N
{$ R7 L+ @7 M8 S7 U) B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
, g+ |( }# ~, j3 l( W1 z+ _& K) ?. R m_nRemainGP = 28;
; X& }! f& E A }
6 O" K2 ^" P) O, |1 ^$ G' z if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 \9 f' ^- i. }2 b1 m8 _ {1 a5 {2 K8 i$ A; s1 J7 @
m_nRemainGP = 118;' Q; v" {2 ^4 n! I, M7 e9 P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% d/ `7 h8 u+ w- p2 ^( y" Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 ?3 [& G0 E/ N5 G5 Y @! ?, }
}
( k# i; B5 @9 `8 n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# X1 D) V/ ^- I
{$ s9 g& |, P* X5 V: n
CItemElem itemelem;* W9 Z; C/ m; f8 `1 B, `3 |9 L
itemelem.m_nItemNum = 1;% T: c# t @3 [
itemelem.m_bCharged = TRUE;( O: f, s6 \) z1 h/ p# ~
BYTE nID;& I( v2 V7 y0 B, i- Y' P
7 F/ ]' d0 @% q; _$ T; R) O if( nJob == JOB_MENTALIST_HERO )6 {. { U9 w& o2 [3 d; \& ?, K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 D, h+ n3 \6 ], m if( nJob == JOB_FORCEMASTER_HERO )
" v9 v8 c8 Q. d& b: ~6 a6 [: q" @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 `" ^! B/ S4 W6 J+ W
0 t% F- K+ W8 F8 S" V2 |& [7 y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ W7 e2 M# C- L( T }6 Y0 r1 b' f) y( q5 `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 ] |" W+ X' T# s# E6 M- W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ i" ^- {1 E, |& k. j' x
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
3 L7 e' g# D* T) ] {9 [1 U9 o7 D /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ M3 m+ X w9 N j$ u ( (CUser*)this )->AddTaskBar();*/" M' \3 w4 a6 ~, S! T3 e& K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 @; L) d& ]9 }- U/ x. [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" Q- b' w" Z9 b' e# D) b6 X ((CUser*)this)->CheckHonorStat();
2 ~9 }% t3 f. h- r' X ((CUser*)this)->AddHonorListAck();/ v# G* v! v/ i4 y( ^
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- S V! b5 y; Y$ l# ]- R#endif // __HONORABLE_TITLE // ′Tà?
v& v5 S, U* g! l% I }% D" i- G9 E2 B& S
#endif // __WORLDSERVER- m1 E; E' i. K+ b7 b
}
7 t& P r" H3 @. ]/ L( y8 H9 |
5 c$ ^7 ~7 j1 w$ p然后你进入functextcmd.cpp并添加以下% V# N9 u7 W$ K: q. N3 {4 i+ H6 e
2 S5 I; ], X3 u! D代码:
; I2 I% @) V3 W( [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): T! M% i: ?' i* T! @4 S8 J
下面插入
, z& C- T- x3 K6 T6 EON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ U% G; C( z* o N8 U
, W. W, a7 Q1 t5 K
然后你去+ B6 u& d' ]3 o) s: g' H7 B+ t& Z
# V6 _! U5 q+ q4 ^5 w8 p% _6 D! q
代码:
3 d3 U+ Q+ ], Y$ ?9 E) |代码
: [: r! Z( K- G' U. o" uBOOL TextCmd_ClearPropose( CScanner & s )
' d+ R X$ }+ G9 @% [ Z{1 a& S8 X' ]- m, }5 I* M* G' J
#ifdef __WORLDSERVER
; a' z ?2 L; y CUser* pUser = (CUser*)s.dwValue;) h; J' r2 l% Q" J1 E
g_dpDBClient.SendClearPropose();
! r) [3 |5 N( V3 N- E0 S#endif // __WORLDSERVER
2 N+ R# a; H; h return TRUE;. V" t4 m' ]. m
}
# R% I* i, d) R6 k* n# l* S& h2 @0 l下面插入
. J2 B) R `! L, N6 oBOOL TextCmd_rebirth( CScanner& scanner )2 J- p0 h! S- ]% V2 t$ v
{
V) X" u/ z* `# n1 F- \' [#ifdef __WORLDSERVER9 h5 Q: t+ o R) w9 }
CUser *pUser;
2 K3 e4 F6 `9 A# s; gpUser = (CUser*)scanner.dwValue;- g% F$ o* z* }" z. z9 Z; g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 j" [! t& o3 h" Y6 |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ K) l/ p+ U0 k/ @1 y" W! u! Z
else
- ], U+ Y/ A, A4 x5 ?pUser->AddText("你还未达到重生条件!");
; W: F) Q7 q) l4 n8 ]2 d#endif
7 h9 @# P; Z1 b( qreturn TRUE;2 d6 P0 a: J5 X- H+ C7 L0 v
} 7 G( a7 a! h# I W
+ a- Z7 d3 C3 I3 A
% \3 f* x) @' b3 F7 u) E. B
6 f6 T, W+ T6 @$ n# i
1 t; Q7 T- x* N; R
|
|