|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 a, h: Y/ l: `. A4 Q8 T7 x7 w L6 R2 _( j! K2 \* D2 ]# n
Mover.h" \$ p& k/ ^ G8 n
代码:
$ W1 b2 @. U V1 }6 h5 G8 ^0 u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 ^& ~8 S6 G0 w' [, M
! ~$ z, o4 {) a3 Z; H" g下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / n9 |) s( T4 b4 d2 W0 \
P6 B: q7 h+ W% W; k& z5 i然后你去mover.cpp添加* P/ z8 Z- A( W- [2 M
9 J( n2 L) A4 x# i5 W) u& a) W
代码:' |* O5 C% D+ J3 S& h
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ l+ s5 }4 n+ i1 z' B% `* Q) M* q{
# |3 w H) d! S, ~. D#ifdef __WORLDSERVER
. {7 H9 z i. O% [1 c8 d6 F) r: {3 N // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( ]/ ]8 K3 ^, q* }$ R. q& \ MoverProp* pProp = GetProp();4 U% D2 Q4 C( [$ {# ?& x
if( pProp )
4 x0 p' D4 I: I5 Z: Z {6 K2 v! I* j7 M
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), p9 H# B1 h& a2 k; C
{
, A6 o3 E, H3 ?. K5 `- n. m; ?0 h AddChangeJob( nJob );
' h6 i3 D9 o+ g0 ?: W ^ }else{ L( |9 P+ x* e U& A; I9 P
return;
/ O0 V5 i$ L! T% e }4 G( { t( g$ M2 z% @7 ?
int nPoint = 0;2 e6 w- t( T) p
if( m_nJob == JOB_MERCENARY )6 w- h0 ^! c, l2 g" Y
nPoint += 40;
0 M, Y" E: C q- | else if( m_nJob == JOB_ACROBAT )
; F1 t- u s. A* S nPoint += 50;3 C1 |1 p# Y5 @# L1 r# O9 ^
else if( m_nJob == JOB_ASSIST )4 J' n: E0 {3 F" B3 f! W
nPoint += 60;# d" k8 [/ T$ D, h R
else if( m_nJob == JOB_MAGICIAN )- D+ J a$ x2 Z
nPoint += 90;
$ y! V: C& \- h) e6 k else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 L' l/ s) Q" y' A# B, f nPoint += 120;
% w7 F7 E4 `# a3 f9 ?0 m else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& n0 @3 B0 z0 Y$ d8 t2 k
nPoint += 150;8 [+ C* C& W* r) H. w, W
else if( m_nJob == JOB_RINGMASTER )6 L- A9 Y6 W( ~$ g
nPoint += 160;. D! ?4 b% p; \& {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( t0 s/ p' e* d* U6 U nPoint += 180;
$ T0 B" @$ \* ~. O7 G/ O6 Z9 |6 O else if( m_nJob == JOB_ELEMENTOR )
! y6 Y: u7 C: j" q; O nPoint += 390;
9 W% f6 H' q7 u& ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
+ F# s. ?5 N2 p, p1 w( k/ |2 K nPoint += 120;
* S# r* ^4 n$ y+ R- c3 M7 A" F' v else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: t. H. u- V0 R) ]0 N2 S0 v nPoint += 150;( W( \6 Z& E0 p c9 n
else if( nJob == JOB_FLORIST_HERO )
) ?* E$ O7 i9 @* B nPoint += 160;" S$ B6 C7 ~& ~4 Z" o
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. j1 T$ D4 G& ^0 T7 n8 \ nPoint += 180;( o$ ]- v/ G" F+ j0 d
else if( nJob == JOB_ELEMENTORLORD_HERO )
% s4 {) U) }9 x nPoint += 390;% ^: c5 j: r2 V7 v! a$ X' m0 U
; @5 y6 Y" D% Q' T) i1 W
AddSkillPoint( nPoint );
% E% `( q( d5 d! U0 E m_nLevel = nLevel;
7 Q. |8 `' z" k2 h6 y: c2 H% {& E+ ^4 ]. M
SetJobLevel( nLevel, nJob );
2 y7 V; h$ o/ a' {; I, t m_nDeathLevel = nLevel;" a ?' p5 e5 h$ }# H' b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ L* A2 N. e( z: K5 C
if(IsMaster())
+ b& N o* f( i1 n& k* E! V' v! @ {' Y% }) Q3 S0 v3 N
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' x2 A U& @7 y2 s1 g
if( nLevel > 59 && nLevel < 72 )/ M9 V C3 A' @5 l- v
dwTmpSkLevel = 1;
) p/ n& |9 o. l& C else if( nLevel > 71 && nLevel < 84 )
+ G+ {8 p2 y% S. C2 k dwTmpSkLevel = 2;
4 J. P' o* g) w1 y5 c4 T else if( nLevel > 83 && nLevel < 96 )
9 M1 R+ n" z! S: `- H) R" k0 R7 ` dwTmpSkLevel = 3;
' e3 [# R `# v: D1 V else if( nLevel > 95 && nLevel < 108 )7 j! w1 E2 n7 W: D0 }
dwTmpSkLevel = 4;
9 y( S! k$ @, p' n1 f else if( nLevel > 107 && nLevel < 120 )2 F' t% Y5 a% u8 n( L) ?- G
dwTmpSkLevel = 5;* W. X, y; s4 J$ }* ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 X) S8 m0 Q1 G" ?8 c; o4 W) a
{ 7 n% V4 I; C0 C( J5 X! g
LPSKILL lpSkill = &(m_aJobSkill);
0 P; `6 S( }0 ^7 E2 d4 R/ _ if( lpSkill && lpSkill->dwSkill != NULL_ID ): b3 f/ @5 M9 Q; v1 N* H
{
; C# N: m8 H+ _& _- d/ W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + Q4 C! P5 j4 ?/ O7 A& d& d4 G
if( pSkillProp == NULL )
- x9 ~) M% {% j! A continue;
+ ~# [; q/ W) G' |" N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# ?; o1 H) d. y7 `9 V
continue;
5 `. E2 f. }6 k' y4 a lpSkill->dwLevel = dwTmpSkLevel;: N+ q& F5 B$ ^& Z
}$ }' D" `' G% V! ^# v; y
}8 e6 I3 F; t; w0 G
}# o6 o; x$ M+ U1 G
else if(IsHero())2 _+ i0 O$ [$ t3 g5 p4 i8 R
{
% v t$ r" g0 k3 I) J; k1 h% \; u for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 m# s! x. [6 L! \8 R7 c { " {& u8 A& q1 _- ?
LPSKILL lpSkill = &(m_aJobSkill);" P$ E$ \3 m, ?; ?3 i1 a! t+ {
if( lpSkill && lpSkill->dwSkill != NULL_ID ), x+ r# z4 d0 C$ B6 h; |9 l
{
! H) j& y, t: t+ O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! n# r2 D3 ^5 c+ X7 P
if( pSkillProp == NULL )
: l2 W- K3 m6 w5 \6 t- E) s continue;. }% z+ s1 Z' D0 | `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 s# e' q1 @- z continue;6 o h. J& ?( X' X+ @& J
lpSkill->dwLevel = 5;( A" z7 G/ N0 e
} c% ^7 k1 g. E$ j, X/ I
}
7 x4 W. n# ?1 J1 `- A% R: i) G }( S: S$ k9 R7 W3 t c
else if(IsLegendHero())
5 f6 ] F0 b0 {/ |3 L3 Q9 b% b {% p0 z) j5 |1 E7 [9 Q. M" q; B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& d8 Z4 A: s# q" C. R6 b { 7 b$ @7 K, k: `6 W
LPSKILL lpSkill = &(m_aJobSkill);2 a3 q" \: o6 P/ p, D
if( lpSkill && lpSkill->dwSkill != NULL_ID )" M) L* ^5 r; l t V% g, L+ i" s1 |
{
U2 ]! w) y1 V% e4 C/ }# h: z; } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 d" F1 a+ _6 s( G if( pSkillProp == NULL )
& D+ f( f# c6 O6 M continue;
; X% ~; ?# n8 Z1 N8 u6 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* `2 |' k$ u: z: u$ b1 y1 d- N
continue;
/ B3 x/ k3 Z+ P4 @4 P1 n9 u' B y( T lpSkill->dwLevel = 5;# a) K" [ Q% X) y/ m# j' d
}
) _" m# c$ \) _' @4 x }! N& s* G8 [& }5 R0 ]/ r
}
- H3 D" o0 T5 s#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 f. F/ c3 f8 B5 B+ [ if( bGamma )
2 H- X9 }6 H/ \2 r8 n e; [1 r {
( Q! h/ ?% @* _% w9 H2 z2 C" } m_nExp1 = 0;
! X# p" z4 ?. r }0 ^8 B" v# u$ ?3 F' A( r
6 c L3 b( F; \- Y" V' h7 C/ A
( (CUser*)this )->AddSetChangeJob( nJob );. ~, ?9 w- e( J' j8 F2 S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 Y, F6 {4 [* Q4 I% |1 b f
4 t$ ]! |) m1 ]* W( M" E* I$ j, M" f) U J/ X8 T# {3 h
#if __VER >= 11 // __SYS_PLAYER_DATA/ d& Y$ m( x8 h& M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
]! m7 p0 L, | _5 c7 F& I B#else // __SYS_PLAYER_DATA
- K; ?0 f$ u5 Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 a5 K5 k: I7 A2 S+ C g_DPCoreClient.SendFriendChangeJob( (CUser*)this );& f7 d# y4 O$ v0 ~# ]* J. C) b
if( m_idGuild != 0 )
/ y# {0 j& [3 C. |+ a: f1 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 N+ K1 _ z; @; Q& o2 B' f- J# ?#endif // __SYS_PLAYER_DATA
% Z+ A; w9 W* y" c, T3 G SetHitPoint( GetMaxHitPoint() );' \: ^% `6 o: i$ Y1 O
SetManaPoint( GetMaxManaPoint() );6 \) Q) ^8 M# y( n6 z
SetFatiguePoint( GetMaxFatiguePoint() );1 H Q" D5 c# `- ^& ~
if( nJob >= 1 && nJob <= 4 )8 q+ _9 J* i) X9 W# Z/ W
{
. L: l/ h/ F( j9 m m_nStr = m_nSta = m_nDex = m_nInt = 15; d; @6 y& W1 D9 \0 h' q' I
m_nRemainGP = 28;$ @3 f- n+ P7 b; V ?
}, c! K# L3 A, a9 W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 y5 J! x6 K) R% u
{
: j2 Z8 m" t0 E1 h6 g7 [* x m_nRemainGP = 118;' m. M9 G z- R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% P4 }1 S$ e. I m_nStr = m_nSta = m_nDex = m_nInt = 15;9 w) d5 F5 e4 c0 i
}
/ f) d' t' T0 I- ^! S, m if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 {, M, R/ n* v9 L" A5 J- O& A
{; C3 A5 m* X M# Z1 A+ N
CItemElem itemelem;" Q' @( M5 Q7 Z! w( G0 U+ ]6 _" d
itemelem.m_nItemNum = 1;1 l+ i5 b) d% h# x/ N7 M! U3 ^
itemelem.m_bCharged = TRUE;# N) L) A2 n7 o/ [0 m2 `8 b$ d
BYTE nID;
3 ~$ A8 ?3 c2 e3 h9 O v' D D# b& R/ Z
if( nJob == JOB_MENTALIST_HERO ), ?( B9 M- Y& k- ~9 |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. [8 c0 G& S2 R$ p5 V& A' B) y% q, Y# [
if( nJob == JOB_FORCEMASTER_HERO )
9 I6 e! ]' y! j9 G$ @0 c ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 u2 [! s; s0 H' z2 p
4 A ]; y: c% Q c' T ( ( CUser*)this)->CreateItem( &itemelem, &nID );. J9 i9 ?, A, o/ P
}( j5 a! ~# P: V5 g% m2 |, I* w/ I
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- q0 q2 k, C) X6 ~) {- v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- E0 C e8 c- { ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ }% e2 Z/ N9 \, E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( c. P" K' L3 n" {9 ~4 T7 S4 O
( (CUser*)this )->AddTaskBar();*/
2 U" H2 _. K! r9 K9 m, ^$ T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( U: y3 \9 A1 m0 N' `#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
: K7 M+ t5 ~& @; z1 y4 O! H ((CUser*)this)->CheckHonorStat();1 g- B- r9 ]5 \
((CUser*)this)->AddHonorListAck();
# }6 c) w$ w5 E' o9 } g_UserMng.AddHonorTitleChange( this, m_nHonor);+ r$ n7 m) V4 Q% o$ q0 s6 d/ M
#endif // __HONORABLE_TITLE // ′Tà?
& m- l; E1 ?# P* t: u }) j) }4 c, [1 f- R! _! D
#endif // __WORLDSERVER
+ y9 R# D o# P! o& V} 8 b" o! w Q$ J& |5 R) j
) d* K, W- j2 k% K1 V8 i* `
然后你进入functextcmd.cpp并添加以下: ~: C" ^/ Q/ ]+ F6 }& y, _
- ?" |. {7 [6 J
代码:
5 E2 T+ x. h, m0 B6 a% MON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 e C- l- W* |$ [: r0 ?9 g下面插入
% C0 r9 X7 i/ b) c g1 AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 w; V& C4 A/ P
0 m* E$ L+ \9 O6 A然后你去 ?# X/ M. X0 q: A" Z
+ u- r O& i! C' l- c k( c( a) b
代码:
T! z8 D; k* A& w5 \- w( ^" P代码
" V+ R8 |1 Y. OBOOL TextCmd_ClearPropose( CScanner & s )
3 K0 Q8 S$ Y+ o! _1 u4 m+ T{# j% T# h y$ A; [- Z
#ifdef __WORLDSERVER
7 O! X1 M( {0 L" T; i/ f4 o/ \ CUser* pUser = (CUser*)s.dwValue;
2 T6 R9 J8 W4 g- I g_dpDBClient.SendClearPropose();; H' ` y1 h" N( p t" ?6 G" G3 A1 E
#endif // __WORLDSERVER) M) ?2 I% r- f3 X G0 X
return TRUE;
, Q; a& }8 j8 D; C# l5 M}
2 M) e' `' d3 m F2 {) u下面插入
1 H V V4 \" i& ^BOOL TextCmd_rebirth( CScanner& scanner )
- g- o T" [3 B7 @{7 [ ]7 c( l. a/ m
#ifdef __WORLDSERVER/ Z$ }! z8 z+ R" P5 P8 C0 u
CUser *pUser;
7 w0 u7 t* Q3 J2 CpUser = (CUser*)scanner.dwValue;9 H; @9 v3 Q0 y0 d7 s1 g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& k# H, N; Q$ h& L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 g4 Q1 I, {3 `) w7 s- delse/ |% \. Y. t/ y8 o& L
pUser->AddText("你还未达到重生条件!");
! }- S0 k3 _2 i, e. s; R' X* ~/ ~#endif6 D& J4 F; g" |
return TRUE;
* a: ^( s% O# X2 ]8 e} 3 e/ i+ U. G' M3 c5 l8 r9 j
, h' [# L, b, i% e" s- @( O+ N" ]$ ]9 M3 P! [
; I1 H+ C9 p4 y. R, Q+ u
" A# r+ ^7 u1 k. N6 m ^$ W; z4 m
|
|