|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 r% ^. [) l) g p7 T
+ Z* r* @- _% NMover.h
& f9 |1 n5 Z' n' ^, J; P% F- ^代码:
3 S8 v1 i( v6 ]# R1 |8 t" U3 C; S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 L3 P/ B8 V: [7 U! n
/ {. U2 ?$ G" B. _, C( T下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # F6 {& F+ N+ L
1 ^, B, e1 y$ o8 j0 x
然后你去mover.cpp添加* b* d* W* a7 p" w' _
" q6 W" w b' U- E# |
代码:$ h( E/ b0 {! p/ L1 q. f8 b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 C8 x' V/ k. X; ~* v& X8 V9 @
{# i" { ]* e `! X# m
#ifdef __WORLDSERVER0 j$ t* L0 I9 f1 W- Z# p. J& W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 u% x5 w; ^3 y% J7 H& Y2 |4 m
MoverProp* pProp = GetProp();
. y! j/ g6 u5 T0 p/ f I( N if( pProp ): `1 U- ?9 D/ I# }
{8 l) P% q; P5 x$ K2 S1 Q4 k: ?, ^. A% D
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), M" T$ W! m. V
{5 J5 n& S: x' f( Z
AddChangeJob( nJob );
+ c2 y; c7 o- D/ l& x$ ~$ a! K }else{9 J. ^' s, B& Q6 I
return;3 W6 b1 W0 p* o; W6 O/ [/ I
}
* z1 p/ G+ D1 m% i) W: l+ s' j+ a( ` int nPoint = 0;) y" a. a Y% U# h8 D: c
if( m_nJob == JOB_MERCENARY )
1 f3 t6 F$ \' M0 c; E5 l c nPoint += 40;0 G8 o& b) G C% r: I# c+ |
else if( m_nJob == JOB_ACROBAT )0 p3 `8 @. a; W
nPoint += 50;
, i0 D: h9 }2 A* q' W8 M else if( m_nJob == JOB_ASSIST )
d6 V. \0 t% Q( J3 u- N nPoint += 60;
7 x4 O: {. P9 B7 @* \. c else if( m_nJob == JOB_MAGICIAN )
% n3 K1 l( C+ r3 j. h) N$ o4 ]0 V nPoint += 90;. L7 v9 B4 h- | i; T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! a8 |6 M* X5 ~" E. N/ A |0 X nPoint += 120;" ?1 Y) }8 I8 N2 m; q
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" T. b/ n9 _5 k
nPoint += 150;
- V* w% w: W9 s( Z" Z6 k+ ]5 l else if( m_nJob == JOB_RINGMASTER )
* _. {7 l& Y% k! u8 B nPoint += 160;6 L6 W- R" A) ` K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- C& _# N" m+ s9 @ nPoint += 180;
, ^ M0 g1 l# u* S5 Z else if( m_nJob == JOB_ELEMENTOR )8 F7 x! o S( t: g0 T! U( [
nPoint += 390;( u w7 M: k1 p; K% h% D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
% `$ m/ j' ?/ U$ o! H, m nPoint += 120;6 k* T% s( x) c1 [9 j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 m8 |8 Z, A% A+ i' j3 s4 c' ~ nPoint += 150;' b, T8 ]8 M4 m$ ]' y; m H
else if( nJob == JOB_FLORIST_HERO )
& D/ o7 j' ]- ]7 t. n% r nPoint += 160;
( P! t3 J* f9 ?; C6 {$ e! k$ w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" c4 L, [( q. z3 T8 |% J
nPoint += 180;# _4 g) m- a7 F3 ?0 c1 c
else if( nJob == JOB_ELEMENTORLORD_HERO )& O4 m+ X* B/ F
nPoint += 390;6 L! g0 a" ]" d
$ ]2 \8 H5 B0 O1 i AddSkillPoint( nPoint );
+ i& H6 Y ^# B& g& }4 ], ~* X m_nLevel = nLevel;
( Q" w" F3 G6 T! G. [3 q
# h% K4 ]0 c7 M W SetJobLevel( nLevel, nJob ); v2 ]- o# Q, y9 ~6 `; q. l: j: Q
m_nDeathLevel = nLevel;1 j! B! E7 D9 X4 Z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% |! b$ i9 G9 w# {0 H4 x( \
if(IsMaster())+ K3 k3 r; z; Z+ T. Q) K0 i- g
{$ H5 I" \7 I0 p: M; t& E
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' ]) _8 e& a- R8 n
if( nLevel > 59 && nLevel < 72 )
4 Q) B: v' a. X dwTmpSkLevel = 1;% }" o5 H/ L3 \
else if( nLevel > 71 && nLevel < 84 )% Y8 R! \& v0 @" s
dwTmpSkLevel = 2;5 [) x0 K% j4 z4 r0 a, B8 u
else if( nLevel > 83 && nLevel < 96 ), _( W3 t- K, E& m) F( C( P8 w
dwTmpSkLevel = 3;! w8 k- j3 y" Q9 E9 D* j* X
else if( nLevel > 95 && nLevel < 108 )0 c+ Z% Y) s6 `1 j( E' k3 E
dwTmpSkLevel = 4;
; P! x1 X8 I% _, j+ f0 C( |7 x else if( nLevel > 107 && nLevel < 120 )4 A* s% z! Y8 W0 B
dwTmpSkLevel = 5;- N3 o, I3 s4 W1 y. h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! E5 z9 s% T# A/ C
{ 0 c2 B' a* ]( \
LPSKILL lpSkill = &(m_aJobSkill);
' m" h8 _. P) R: r6 o4 }+ ? if( lpSkill && lpSkill->dwSkill != NULL_ID )! P6 Y7 C+ _4 p9 n, X
{
, `, }5 K: j5 U7 @% n# k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , _8 |& r: R, G* p" L
if( pSkillProp == NULL )
7 \( A- n6 C0 R continue;
" n0 K4 z t. X* X) c$ R- l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 a, l* s/ Y4 P y0 l6 L! G
continue;3 P+ E' z5 e. W7 ]! w
lpSkill->dwLevel = dwTmpSkLevel;
% D* T7 ~" C' b L }2 Q+ M; H; j9 z( p
}
, g, H& ]# W) F0 z$ G/ O }) n" I: K& v2 n% @- {" G
else if(IsHero())
7 V, X' O( N9 m* t) g1 y0 n; {) L, }- Q {0 ^0 `. P5 U& ~4 M/ [8 ~& f* j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 i. a$ C! o9 L6 U" N7 `" Z' J
{ ; ], K {; B/ e1 v6 s* f
LPSKILL lpSkill = &(m_aJobSkill);2 B2 P; j. N1 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 x; y6 u- ?, @; g' I0 u( ` {0 Q9 [8 `0 g; g$ ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 Q8 a/ @. [ |$ U2 Q8 f
if( pSkillProp == NULL )% [! e4 S4 z! C% X1 W
continue;3 \4 { q: U3 O8 L# S8 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). O1 G+ A. w' L! h( j. R4 U
continue;8 I/ T' G" T( ]
lpSkill->dwLevel = 5;
' d% K# [+ u4 x+ i }, j8 U3 p3 n) ?* p8 E5 O2 q
}; t& n6 e8 U8 Z# t( Q4 q
}
- y/ u& [" [3 ~, j) D: O else if(IsLegendHero())7 R, Z+ _9 t! y i
{+ y+ B J( g( D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' h. s: @3 ^ c. y% b& G& { { % N. C, R+ x! a- X& s8 x3 D$ ~
LPSKILL lpSkill = &(m_aJobSkill);
v/ |! Y1 E4 s& {( c5 N) W if( lpSkill && lpSkill->dwSkill != NULL_ID )% h# c5 u! U: @: s4 ?9 w0 g% n- }& k
{+ d+ m; A' f5 a. z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) S) d" E% I4 Z, @/ ?5 @# V
if( pSkillProp == NULL )3 ?4 N+ ^: D+ Y9 }4 j
continue;
: F) j( M% W" J7 I+ h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 h9 t0 v8 }; f B' E- w+ k
continue;
# ]% k& I' V' t, ^1 T$ D lpSkill->dwLevel = 5;
; q& E+ ]( y' ], i" l }
% w: a' B& G2 m x* F/ O* A p4 \ }( u7 N4 }4 H, B3 B% s! u9 C
}
8 V+ m3 f: R8 J0 |9 u#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# O" T/ _+ T4 G0 [ if( bGamma )
2 ~, D V* N& f8 r9 [ {
7 I, R+ [1 K5 p+ K% Y; O4 W m_nExp1 = 0;$ h1 h& Q. d1 V5 F, k5 Y& q
}
: `" P- e2 R! Q d* i* Q9 K' Y( j
/ I: ?, K1 U! W. y+ I0 T ( (CUser*)this )->AddSetChangeJob( nJob );
7 \/ F: N9 L5 b$ _! F: y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ x$ ?% c3 K" Y6 ?7 A5 s
8 i! R% P B4 ^
; {$ H1 t8 U, C! }" H#if __VER >= 11 // __SYS_PLAYER_DATA8 h) W" N* a+ O* c4 u A
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 G9 Z4 E0 e7 ?' R* @#else // __SYS_PLAYER_DATA/ ^! X' } A1 L& V
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, \( y# w/ P% V: i* H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, M0 e* Z# y1 I( q6 e* S
if( m_idGuild != 0 )" Z9 ?6 o" K# Z3 z/ k$ a, Z% u2 I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, m( L( H. U. h9 E, d+ _#endif // __SYS_PLAYER_DATA
1 D/ `9 a: J4 o) M7 l SetHitPoint( GetMaxHitPoint() );
6 v4 V$ ?4 x& B8 p# i SetManaPoint( GetMaxManaPoint() );" M& M4 F; }+ l! o) C7 e' b# _
SetFatiguePoint( GetMaxFatiguePoint() );
+ B5 }' Q% W5 s% y if( nJob >= 1 && nJob <= 4 )! V8 r2 o! U; q- \7 J
{
* k( K; P# P, \$ s m_nStr = m_nSta = m_nDex = m_nInt = 15;( L0 a( ]& H* q5 V* o' J
m_nRemainGP = 28;
`* M( g* q0 e C }8 a3 |+ m$ V$ j: |! |& L
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 j0 B' G/ r' b) g& R4 r# X {
) U F0 V' T: w2 b m_nRemainGP = 118;8 x7 v3 z7 m9 b' |; b, L# z4 h5 c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' }8 _9 s* _! l/ O( M m_nStr = m_nSta = m_nDex = m_nInt = 15;
* [, o, F0 e. Q2 B: ^2 d l }
8 d8 {! l4 M4 `( B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) Z) D2 F" i% {/ |. W, r# r/ k {
* F m- \$ h# s! ~ CItemElem itemelem;
% n5 `# ^2 h: x/ y! `2 z itemelem.m_nItemNum = 1;2 e4 A8 q& A6 ]( b3 w
itemelem.m_bCharged = TRUE;! V$ t1 M1 {- M$ c! e' Y" W
BYTE nID;1 B) p& b$ Y i4 I6 K8 C
" R6 W+ ]8 u4 a+ {# ^. a- ?! B
if( nJob == JOB_MENTALIST_HERO )6 `) @% k4 v" V: N" R& r
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;5 x5 n- a3 `6 e* ?. l) C
if( nJob == JOB_FORCEMASTER_HERO )
: V8 _- y9 g( r! }/ i5 O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' Z( q H, t# u' S7 A6 H9 L/ m
5 l& Y2 F, Z$ I+ g# _2 Q( N
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, {) Z( S4 d' C1 b4 H4 S, i }8 D3 W- _" @* W( b& V& h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* c9 {) {$ j! m2 p4 S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: N' C; n6 L b9 o4 m8 z) o5 C- R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 M0 O; ?; M) y+ t
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% h% u( T* m/ C, B
( (CUser*)this )->AddTaskBar();*/
P+ L4 ^9 j$ Y* o6 p ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# }/ L; z+ c% ~) [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* ~: O9 Z. K8 L* i1 e8 ^! w6 J, [
((CUser*)this)->CheckHonorStat();$ r3 m% Y5 @. g. N1 x9 v5 Y8 }5 N
((CUser*)this)->AddHonorListAck();$ O c/ J7 W. P
g_UserMng.AddHonorTitleChange( this, m_nHonor);4 K" D+ v$ {; v$ ~9 W; I1 P1 w
#endif // __HONORABLE_TITLE // ′Tà?* M' ^( q y; ?1 _
}
" |7 T, J n- Q+ V$ O+ q8 K$ p#endif // __WORLDSERVER
" P k& [6 n# k} 7 {. E% Z# W- d( q4 V1 i+ ^2 @
% e% ~, J5 N) D9 Z然后你进入functextcmd.cpp并添加以下% A, D4 x; m7 x, l( ` m
, g' L7 T5 Z# M/ z9 a8 \代码:" S1 G/ y7 p) U7 s3 ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 k+ l) `! h0 G# R% c下面插入
* a' M* S6 @7 `& |! h" PON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * |4 ~( A# J6 I, A* i" }
* d4 _$ N( v3 l* ^9 X
然后你去
( d) A' p% c- u& a0 n o/ K0 g3 Q8 C5 D/ C5 I
代码: a( Q, ?. X0 B+ U1 N3 _7 t5 } \
代码% q" j( U: |. _! ~" E, q
BOOL TextCmd_ClearPropose( CScanner & s )& C# d: K: r0 I: q
{
* |3 G. E( x+ L' A% H#ifdef __WORLDSERVER/ e. a/ l+ j. D) l" f( ~
CUser* pUser = (CUser*)s.dwValue;
1 M2 N! y3 m2 S+ b3 ?+ t g_dpDBClient.SendClearPropose();0 n6 L! g7 h0 i' k; `
#endif // __WORLDSERVER& n4 f. Y+ M; o1 u" ?" G& o
return TRUE;
* g& w' f& w; E9 {. {0 O% v r}
7 B/ B9 s- x) n |/ s下面插入" C0 q' _& b; D# T
BOOL TextCmd_rebirth( CScanner& scanner )
: S/ t3 d1 b5 F( m{ V1 ~' {/ p5 _% x' L' X
#ifdef __WORLDSERVER
; R! h9 D1 n" B' _0 @7 P# ECUser *pUser;
" m) Y, m# ~+ V; X! xpUser = (CUser*)scanner.dwValue; u# s6 o7 E; b, {% l' S% f& d' z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ Q6 E! i7 V! M# e; E
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 i8 r; K; R) Y" j
else1 X) D$ _7 x) z( ~) ?( Y
pUser->AddText("你还未达到重生条件!");
# L0 U. v3 Q' } W: R6 I& l#endif
& d# z; N( e$ j- c/ x. M1 freturn TRUE;! ]& c, O& |* N6 h- E
} 0 v% H/ V$ U5 H7 ^; T; D, e
) ~7 Q3 s+ ^1 p% ^. P4 M' o; r- \( W& N3 x
4 X9 t7 e' `: @; l, \
o/ g$ T. f' Y
|
|