|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ k) p3 ^! X7 \' G/ m, S
! h: e" \& a& V s9 v: `4 d7 S# dMover.h
: w" P2 @4 Z" l7 w代码:% R# ]0 P/ z. t' P
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* B) ^9 @9 W% T9 H
6 Y9 i3 D- \, ~% H2 W: {% E* Y9 X" p
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # M7 V' t6 E! @4 v0 d% {, w2 k8 Y
6 Z3 h' O |- W4 z+ f, x然后你去mover.cpp添加, C/ \9 ]% n6 X- U8 |2 S3 ^8 b
' S' D, M0 Y' j; C; u7 `5 {
代码:
' z, S0 k4 a/ E& S% lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )* x$ F6 h/ J9 c. C
{; R7 w0 D0 K4 H
#ifdef __WORLDSERVER
& ^9 R( _7 m; ` // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ | d) l: i( }
MoverProp* pProp = GetProp();
' T8 D5 j! _2 \8 i4 F0 k' z if( pProp )# K$ F7 H& m+ n) u
{
- s7 Q; q3 B7 b( N5 J" F6 l1 g7 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
P/ j! m3 j8 t2 h {
: a7 p5 j8 t0 p b AddChangeJob( nJob );1 m! h" [$ A q0 \3 c+ W1 _; m
}else{
7 O1 ~( v* g& W, `8 T- N- j! @& `% P5 P return;
0 e0 ~, x. S0 I$ B) B. w( F/ h. Q, b }
4 l+ v8 N+ ]8 _) u3 u int nPoint = 0;
% r$ O: |6 \3 k8 \% q2 m if( m_nJob == JOB_MERCENARY )
$ ]6 }2 E' C* R* C1 A' G nPoint += 40;3 E7 |+ d& U$ w1 H- R
else if( m_nJob == JOB_ACROBAT )
: T l; C- R9 s5 _+ N nPoint += 50;' m6 D' m- j( H5 V2 ]- L, ~& @* D
else if( m_nJob == JOB_ASSIST )
! s2 x3 f1 l$ Z nPoint += 60;; L; x4 N! r H, c. v
else if( m_nJob == JOB_MAGICIAN )3 v1 I: ]% ~ t4 _, M: P
nPoint += 90;- Z# R9 k; ^: @& e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )) s; i4 k& ~/ V' l: [6 V' H+ p
nPoint += 120;' y9 a7 n* N# P( a" j- p: g' Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: q. W( s! M9 a: f# g2 c4 Q, y6 J0 q nPoint += 150;
/ O, Y; z* g% Q i( T' G2 |, M else if( m_nJob == JOB_RINGMASTER )
$ g9 C- ^, j7 y8 Y nPoint += 160;# ?8 j# |/ d+ c
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 V B7 Y, G5 [2 [& t& }8 j+ w nPoint += 180;
2 O( b7 j" J+ T1 S else if( m_nJob == JOB_ELEMENTOR )% [$ Q5 R/ A' ^# `+ ~6 a) s# g
nPoint += 390;
9 ^ r9 U. d/ P" p else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) `! ]) E' t7 P5 l) @" d nPoint += 120;. c0 P- B7 `# E; {% [* H5 j5 O
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 {( f' S3 C; L1 @& I" Q
nPoint += 150;# N/ ]. T p2 s1 V/ d: Y% G
else if( nJob == JOB_FLORIST_HERO )4 L/ m" y" }. n" G
nPoint += 160;
4 y5 W9 k( q# V* n% Q. C5 a else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 c, n/ ~' U& n u* S- P nPoint += 180;/ x0 H8 R4 \8 J/ F" R
else if( nJob == JOB_ELEMENTORLORD_HERO )
( f% g1 G5 ` Q5 A nPoint += 390;* i8 i4 P/ I$ J i9 l( M* N
. B! N: h9 ~! S
AddSkillPoint( nPoint );5 y% M P% O2 S/ ~# q
m_nLevel = nLevel;) N- B. g2 s w* k
* W8 F D9 u0 N" R. y5 X
SetJobLevel( nLevel, nJob );/ r# i: ?* S6 f. e
m_nDeathLevel = nLevel;! k( W F' u& d; ~0 |9 v7 n* Q; Y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 o/ x! {8 y1 e- k. o# P if(IsMaster())
8 f* k- @6 I0 d& R h {! E5 U0 {8 I% H8 F5 I# O+ H
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ \1 [! I; G e3 {, G. {! F1 S
if( nLevel > 59 && nLevel < 72 )
1 T6 ?+ b0 y; \, w2 J j8 r$ H dwTmpSkLevel = 1;
! K! ^& ~0 h6 o0 E, r else if( nLevel > 71 && nLevel < 84 )4 K: L4 h9 M+ M- m; L$ M
dwTmpSkLevel = 2;$ l; m& X" M6 O# U, D7 |
else if( nLevel > 83 && nLevel < 96 )
5 t5 o. A# q2 b! r) i( \# U dwTmpSkLevel = 3;
+ ?% [$ P5 S0 p6 D2 x5 s2 h( v$ J else if( nLevel > 95 && nLevel < 108 )
" F! z" h* X+ w4 e* C: Q dwTmpSkLevel = 4;9 ` C# d8 P5 ~6 U
else if( nLevel > 107 && nLevel < 120 )
+ |9 e. r2 ^; c8 `9 ^7 `) i dwTmpSkLevel = 5;/ K* k1 x4 q4 p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: X. m ?) y* h6 e; C { 4 x) i. H' I4 Q! A. T+ G. y9 S1 j
LPSKILL lpSkill = &(m_aJobSkill);* O8 Q6 [: O. s# s3 T* c" Z
if( lpSkill && lpSkill->dwSkill != NULL_ID ), \! j) k6 Q) ^2 v8 P* B/ u* f9 x
{$ s& `* o( g9 i3 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, A2 @- M2 N" O if( pSkillProp == NULL )
( M- ?: m5 f- m; _9 r continue;
0 q7 |6 n3 x& g S" Q7 C! u4 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER), _+ O; H4 a# P0 M4 G
continue;# g. O$ f& f3 l1 z/ I
lpSkill->dwLevel = dwTmpSkLevel;
1 b. ^8 R# x# m$ O# o/ u }
1 X Z5 a0 c. G* z3 m: K4 N }
; o4 Q+ \7 x# r, E1 {8 |4 N4 ] }
7 x) e1 s, v3 U' g/ A; y) d% ? else if(IsHero()); d5 e. J& r% y; U9 @; c% p
{
! ?( h; g$ d( A" N) ~3 }2 @8 | for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' V) J7 G) X" r
{
0 I! M+ y4 J9 I, h' e% {# R4 E7 X- O LPSKILL lpSkill = &(m_aJobSkill);
! O+ B% s* g1 _+ A: d+ W if( lpSkill && lpSkill->dwSkill != NULL_ID )$ o9 K6 M. @1 R
{, m' {: ~5 o# `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 `+ d! E% }- @* ]5 c
if( pSkillProp == NULL )
) t3 l& e- _, I/ e/ G" W continue;
; \* ~! y9 [, f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 L( ?- P: u u. b
continue;
; T6 w q( s" P7 i) C lpSkill->dwLevel = 5;
3 M, x0 W/ q3 Z( S5 T6 n }3 x* s3 {/ s- q9 l$ Z
}' a; E! e6 N( ^# f5 x( x ~8 S& O
}
! G9 R# B6 {; v$ J; } else if(IsLegendHero())" o) o' X5 C" B% q# E
{3 i S @1 g) J3 V! `- k o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' X- T; C" c8 \! i& m( n
{ 9 S/ X* ]. ~4 B+ Q7 j/ v
LPSKILL lpSkill = &(m_aJobSkill);
; W3 Y3 E) g4 f/ s& p y* Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
; t7 B/ l( J7 S3 x0 ^ {
0 C' @; V6 {1 G* L1 `* m% K# y- d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 _4 ]7 ]' z$ y' U% T4 e
if( pSkillProp == NULL )
' k r* [0 h% |0 p- A$ k continue;' Z, @+ p: T" m2 f# \9 b1 o' R
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* X, N' h) l" m3 S
continue;
0 N7 f0 b: P1 F0 o0 N# l lpSkill->dwLevel = 5;
3 n1 G+ r* ]5 [. M& y8 n }
; O+ y6 _) e8 u) a2 G( n, w |8 v }
8 h; w9 y2 K7 `8 r- [% f }
7 Q& M6 Y& _+ D, i3 z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 ^! e' ^6 n1 M/ m
if( bGamma )
2 z8 Z3 S7 j% a8 O1 p {
, ]$ y: z( Q5 l7 ~7 ~+ m+ b m_nExp1 = 0;
2 y: f% q+ h, x2 N. U0 H; I }5 q7 ]! a5 C8 ]! q5 u" o) `0 s
" @* Y3 S# {2 T6 c7 p ( (CUser*)this )->AddSetChangeJob( nJob );
6 A2 D. Z8 v* Z8 S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& }( N) Z, J+ P. ~" |( M5 M
" p, _/ ?0 q9 K! B" @' h' Z
0 j2 a+ o$ J$ u9 q' W#if __VER >= 11 // __SYS_PLAYER_DATA, Q" P- s" Z4 c! t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ n( @0 D2 u8 Q+ g9 p9 D! t#else // __SYS_PLAYER_DATA; g5 U6 I$ \7 y& W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- _+ Q0 o1 ~! h! }8 i4 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 E* _5 {/ @: O$ K: i, C- \# E" K
if( m_idGuild != 0 )
3 L8 }5 E8 [+ o, P1 ~2 v7 H; w g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
+ C( i9 y4 L8 i, ?; x0 Y#endif // __SYS_PLAYER_DATA: N) z* U4 {. O2 Y/ Q; c% m
SetHitPoint( GetMaxHitPoint() );
9 h( _' e! B. I$ C* C9 b SetManaPoint( GetMaxManaPoint() );
) v8 Q- n6 [! ~ SetFatiguePoint( GetMaxFatiguePoint() );
4 M5 S% B4 x. [8 e3 r if( nJob >= 1 && nJob <= 4 )8 A8 w8 I+ }3 r
{
! q& c* T& t% `* [$ }7 }) ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 A& H+ X6 u7 C% k m_nRemainGP = 28;7 ~8 m# G* F+ `% D X/ R. b
}
& V/ L7 h6 _6 H9 D if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( {' S) M! c% i8 c8 h. N {
% v3 t. B/ Z! s3 [) a, f m_nRemainGP = 118;
\, k, [3 ?9 E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 _3 p% J, Q. q! q# Q, z1 p m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 q+ B6 U! x Z. G }
* w5 L* H$ q; G$ w5 w, l/ j& M; Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 M3 F9 S8 g4 c {
% X3 s$ Y# y4 B/ e CItemElem itemelem;/ R- I3 j* S) ?0 @( `
itemelem.m_nItemNum = 1;1 y7 C, e3 f3 U7 R' s! n
itemelem.m_bCharged = TRUE;1 G- S2 C; ~( q0 b
BYTE nID;/ ^/ r- l; H5 d9 N; Q: W0 T
1 s$ ~, b! ^- [: x
if( nJob == JOB_MENTALIST_HERO )
5 n( J8 j* @8 x: _& n' E! } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ C' x6 B+ \. z; C$ y0 o if( nJob == JOB_FORCEMASTER_HERO )
X# v# J1 _. R8 I5 ^ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 B) H& A8 B! U6 R
* H% m- m9 Q+ E ( ( CUser*)this)->CreateItem( &itemelem, &nID );
U$ v' w( H/ N3 f8 n }6 G7 E/ ?, h4 j S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' t% b& g0 \$ @8 X" y* P7 p8 M7 e" ] ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' ~. G5 B1 f' j* G' f. ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) h6 ]; j% B1 i% L$ d /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); N/ Q. o1 t1 C: h) L
( (CUser*)this )->AddTaskBar();*/* q8 ^2 |: b; }, f* P4 ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" |, ?+ h- b5 j" x1 g3 a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- r& U ^2 |9 C) U9 J1 v/ W5 n# [ ((CUser*)this)->CheckHonorStat();
0 |2 x; }6 f3 ~% h+ M# q0 Z; J ((CUser*)this)->AddHonorListAck();, k2 p9 j$ E" N# o$ I* P
g_UserMng.AddHonorTitleChange( this, m_nHonor);! Q' j( c8 m" x1 W) R2 M0 e
#endif // __HONORABLE_TITLE // ′Tà?& `! J, D3 v: k, J: @
}7 t" V- n( p( {
#endif // __WORLDSERVER
3 w6 L, u; M8 a$ f7 W. J}
: t- f# l3 q! a" x+ S* p& k
+ L) [4 h7 @5 j. o9 ?然后你进入functextcmd.cpp并添加以下
T9 D6 s4 A# o, f" ^: i+ {$ n! b3 \: ^
代码:; r* f; T3 h0 d9 s0 ^( _0 Y" y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); z/ o+ e( c/ ?7 B0 P3 G# a
下面插入. T: P7 z2 a7 ~% V& m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. ?; L$ ^, L( M$ B0 D
; t" E" T$ |$ ?! [- Y然后你去
9 K9 o! S$ X+ T5 k9 k0 N# I6 V/ y$ p q$ g
代码:, l1 D2 J. Z6 s" m$ o( M* v* U
代码) g9 F& U. ^9 h) E0 d) ?% E: i! V+ z9 y3 f2 U
BOOL TextCmd_ClearPropose( CScanner & s )* q- M6 O$ _( _3 x8 D
{
7 ~4 n. O% p- [. G7 t, ~/ y#ifdef __WORLDSERVER
$ ^: B0 W/ G4 @' h! M CUser* pUser = (CUser*)s.dwValue;
7 o( w1 ?7 e! U5 V( v4 K g_dpDBClient.SendClearPropose();
# h2 t3 I' t& Q: X, F#endif // __WORLDSERVER- T" r* D. n% z* r0 h' J3 V
return TRUE;
$ ?6 V' ]( L* D; y}
; w& ]5 U$ I& M下面插入" A9 ^2 g& N# y- k
BOOL TextCmd_rebirth( CScanner& scanner )6 U! g: O0 [2 g! A Q9 p" i0 f
{/ v% V/ D3 t1 o5 \2 Z4 [9 a9 X: A
#ifdef __WORLDSERVER/ N. P( Q! ]( M: v' {; Y1 b
CUser *pUser;- t9 c/ u) i b" S* e$ C. g9 b! g& z
pUser = (CUser*)scanner.dwValue;8 Y0 E! R' F4 n8 c- H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 E: F i- P' w* @( D( TpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" D" O1 F" }5 }& [3 ielse
) B" _9 Q, o% |: ]& epUser->AddText("你还未达到重生条件!");
( U- Z$ C3 q( I! t: {1 P, }/ s#endif
( Y! s. H7 E7 ^7 t8 kreturn TRUE;6 s9 l: J1 e3 E' |) e% r6 [
}
) N( w0 d& S& ?2 a# O: N, ^7 r0 c1 M+ b2 B: k* M
1 w) d/ H4 L' j8 ^' T9 X6 N
4 w/ m8 X5 g5 ]
) K: V5 Y C, e- n/ s2 r T |
|