|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, G, l) l ]: p5 f/ Q g
) s2 S& _/ B3 y6 W) p; \: IMover.h- Q4 e' U( Z, ]. A" ?9 w3 g6 h6 [
代码:
7 j. h2 A; d/ z/ n6 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# D( Q- \/ Z. L: H( C
4 ]! d8 ?# T1 n7 \- \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 u2 I& C2 b( [- p
5 U" |) z3 T( m然后你去mover.cpp添加; L1 s0 z, L6 T( ^- n
# \* X2 B; A3 D* A代码:0 K4 v7 C1 l a, M3 Y, L- R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: p% a, n% W8 s& B; u+ j8 C{5 o1 [4 Q$ N( _% M2 \+ e9 I
#ifdef __WORLDSERVER; Y$ ?: L4 y2 E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 K, U7 V0 H* V' C7 i% k7 h MoverProp* pProp = GetProp();+ y% I* v! [5 u5 _2 z0 z& ?
if( pProp )* m# _6 T. D5 O; z& f0 F
{
& x- E) D6 l1 d' H* O+ R6 V- k if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 p& m6 I( X8 o* K {
5 }9 f8 P0 e, j- n" L2 j5 I AddChangeJob( nJob );! E; ]( O: Q! r" q
}else{7 X F2 r4 E! R! ?
return;
: d' P: k5 f6 i# A/ E: o }( x5 | R; r+ m0 ~' s( G* }' L! [! n
int nPoint = 0;% ~; M( `, g* K& S( E9 B
if( m_nJob == JOB_MERCENARY )
3 E8 x2 J2 d: g nPoint += 40;) N: B& [$ a! }2 H+ V$ L
else if( m_nJob == JOB_ACROBAT ): ?, Z+ r3 K8 `/ ]) M5 y9 K
nPoint += 50;
, ~8 M6 b( W% X. \ else if( m_nJob == JOB_ASSIST )
2 c& D; y9 y2 z& ^6 y% a nPoint += 60;
* I# r6 V Q1 ]* A else if( m_nJob == JOB_MAGICIAN )8 X* W8 Q1 D* q, t; u5 I
nPoint += 90;7 q0 I3 d! P1 p7 X1 N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' v& Y4 F$ Z( F+ f; ^, c nPoint += 120;( G# @2 t7 M. p, F
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* A7 h2 E9 t2 b9 y; F( \
nPoint += 150;0 ~3 p" _( @6 U! u9 F8 x, X" u
else if( m_nJob == JOB_RINGMASTER )
% @4 w2 s6 l* F nPoint += 160;
! l/ Y3 m# m% k5 }4 B; m% }( L3 D% U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! G2 l x4 ?; l/ {
nPoint += 180;
: `; S! G" A, ]/ L" O else if( m_nJob == JOB_ELEMENTOR )
, {$ U! W* g+ i- K- u+ Y3 U nPoint += 390;
- U( u) j1 U5 B else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ [9 E: y" {+ M. F, ~ nPoint += 120;
% A3 R% K7 Q- D2 O& ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); G' o0 y% r$ ^+ M' p f7 p
nPoint += 150;% Z U1 [% [7 k. B/ W3 |
else if( nJob == JOB_FLORIST_HERO )# Z) o2 i* N" H5 _: w+ A
nPoint += 160;
1 l) u, e1 M; a: c! t else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 ]2 q+ H( g7 [" I+ Y
nPoint += 180;
3 y; c! X) b- l, }# o8 A else if( nJob == JOB_ELEMENTORLORD_HERO )0 R) ^1 r" c1 u# A' ~% Q, g* Q
nPoint += 390;* ~- i4 T7 H& W4 H
$ ]( X0 s* b* z5 h" f
AddSkillPoint( nPoint );1 v a4 c5 e) B7 G* T5 F, T$ \, Y
m_nLevel = nLevel;
+ q* f1 g! G7 Y: P! R* d. m, P$ e* w: ?2 q
SetJobLevel( nLevel, nJob );
5 ?5 g8 L d+ h% ` m_nDeathLevel = nLevel;2 \; \4 V! ~$ J% Z' S) Y2 U
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# n- m/ @& d4 I. p" b1 l5 g; U$ T1 q if(IsMaster())
9 B, h7 \8 K, `4 \9 j/ B! Y {
W7 n1 s* `/ g& s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; ~* P' N( _9 w+ p% y& Y
if( nLevel > 59 && nLevel < 72 ); ^) R; U+ {6 U- ?" }5 Y1 Q+ u
dwTmpSkLevel = 1;
0 c2 D s( j! R. P else if( nLevel > 71 && nLevel < 84 )
# W; `* `! y, m% ?! {+ C6 q dwTmpSkLevel = 2;6 S+ X9 p; T& t5 i
else if( nLevel > 83 && nLevel < 96 )
( c( |2 N7 W: z0 ^% h dwTmpSkLevel = 3;
9 c9 [6 I) ~7 P- A* i, N else if( nLevel > 95 && nLevel < 108 )
2 F9 u" q2 U3 K0 o; m dwTmpSkLevel = 4;
G" L8 K# | ?2 ?; G& x) U else if( nLevel > 107 && nLevel < 120 ); b0 x+ ^* F: L8 G: X
dwTmpSkLevel = 5;
- }9 R% L) W6 d9 Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 [/ d5 \; E# t6 U; J
{ / J9 D; G: g. }& D% I# ~7 \" R
LPSKILL lpSkill = &(m_aJobSkill);
, Q) \* D, I- Y# x' c. G if( lpSkill && lpSkill->dwSkill != NULL_ID )
( E4 O j+ C) A* y8 ^' p {8 {/ E* S; x6 Z( y% m( A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& @+ c+ z* z/ k6 s6 N if( pSkillProp == NULL )" @$ B8 H5 h$ z8 M0 p
continue;
# Y2 ~7 V% K$ F: {4 Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! ~" \% ?* U/ L0 t6 H+ S continue;% O! t+ L% s$ o w$ x( t/ u
lpSkill->dwLevel = dwTmpSkLevel;
" x, \+ W: r- ^3 N+ U }
) G) L$ I( @6 }! G7 ^* z } L- V& i; w+ Q5 y
}
( L$ n. H. N4 e else if(IsHero())
. A) ~" m7 s7 h3 n {8 B/ y& }) k( ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 z8 Z5 H J5 {, X: g: z
{
4 B4 ~1 N, c8 t LPSKILL lpSkill = &(m_aJobSkill);
( ?4 V0 u7 F1 M; I. j5 X if( lpSkill && lpSkill->dwSkill != NULL_ID )
% E% n# z/ O; T# f4 t% L7 S {
# T; ^& Q% E) n6 k$ c6 @8 Y+ g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( H! o" A7 U. G5 G) N
if( pSkillProp == NULL )
, T m$ I) r, y1 U: c4 C continue;- z$ T G" l) c+ M- E& j) K0 o _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# Q9 I0 N7 s9 q( [2 c- W
continue;9 f3 z/ J& i6 v, h" |3 r/ \
lpSkill->dwLevel = 5;; b. G7 ^+ v: `. w* }8 f* _! v {
}6 `/ r/ ~5 m a$ s* M3 b# T% I
}9 m5 A9 p1 E. [# g
}
- \9 j: q4 u+ f- f Y- f else if(IsLegendHero())
5 c7 T. q K) q7 N0 m2 h; s) ]2 r {
! }: }& `3 \& h( E& z for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 g& Q$ |9 _8 ]1 i {
4 D( Y( H" w# H! X% j LPSKILL lpSkill = &(m_aJobSkill);
/ `! Y* x3 n% j. X+ R& z/ }6 w if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ R, N3 X' {& R2 J {
! V! k8 `" O2 O) @+ g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 }- }, B; C0 B/ ^. j/ [ m if( pSkillProp == NULL )
; L) J4 f/ V4 z: J continue;
6 W* n9 @# k7 E0 I9 u3 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! G/ L6 U. Q7 t8 i& @/ Y$ I
continue;8 S; Y) z2 U* G( V8 U2 H; [9 l/ p; y% ^
lpSkill->dwLevel = 5;
, P# e% b7 F7 C' e }
2 K* Y6 N: C w3 j0 m* Z% k }
7 Q5 ]# L" V3 H4 T. m% p }
3 |3 ]8 j& F4 B# b1 @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 ^: N9 h$ Q# M* ~
if( bGamma )
5 K3 Q6 y4 }6 ]1 U6 H {/ S n$ m, f2 n% }6 k0 Y4 c
m_nExp1 = 0;
& t* m# D1 v* x: F" a9 { }+ T5 \- M6 ^) _* T
0 @0 l& o9 E1 e1 V
( (CUser*)this )->AddSetChangeJob( nJob );# t y: b" K1 c6 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# ~/ s1 m$ w5 B; U4 J
$ c, [7 L4 A8 g/ b1 [* x6 ^! H
2 C/ v4 T4 ~4 \. M+ w#if __VER >= 11 // __SYS_PLAYER_DATA
' I; s5 a# j# a) I5 n1 ]. k1 v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
H+ @, O6 w" j#else // __SYS_PLAYER_DATA% t+ g6 o8 C$ ^8 P0 ]: t1 w. G& Z$ T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 w+ S4 y w6 |7 \& @# N g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- ?* g0 Z+ _: q/ x$ }0 K
if( m_idGuild != 0 )" C+ {4 B/ ]# T' Y( {# z1 s
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; i% `7 C% T0 q5 o z
#endif // __SYS_PLAYER_DATA
. w3 F+ W( T. m2 P8 e( I4 [ SetHitPoint( GetMaxHitPoint() );
$ h& G2 `1 W4 D. | SetManaPoint( GetMaxManaPoint() );
" w2 Y0 A% J6 [3 p, A- M SetFatiguePoint( GetMaxFatiguePoint() );
: ]1 |9 {$ @6 n. p; R, E+ Q# k; A if( nJob >= 1 && nJob <= 4 )
& ^9 S" q7 e- @: O, V$ l% @ {/ S5 U3 @. H, N! o, C: F, \
m_nStr = m_nSta = m_nDex = m_nInt = 15;! X; }" _, Z q$ d9 B
m_nRemainGP = 28;
, Y3 y$ R+ Y$ U# A5 b, W& h; V& [ }" h7 P( f; ~2 p% m% D. e; w4 y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" U1 ~+ O' |" Z8 t
{" x. l# Z0 f) q2 k4 c* E
m_nRemainGP = 118;# C9 v/ u/ T( I6 ~7 [
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;4 n3 ]% U- t& {. p( j
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 [4 l$ }9 i k! R3 |! U }* C$ v0 g& Z y* \6 q5 b% w" q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) S' I8 k2 Q7 I2 q6 L4 l
{
* Y' H4 `" E% i! { F5 p; U: ]) T% G CItemElem itemelem;) W) B, t- C( j5 K- C9 z2 S$ W7 x5 w
itemelem.m_nItemNum = 1;: Q2 |2 i/ p" O% q
itemelem.m_bCharged = TRUE;1 R) D6 x& A# e9 ^) t
BYTE nID;
( w1 d4 l6 k# A# H( _$ R; Q- \, _; @4 m1 @) H# D- ?
if( nJob == JOB_MENTALIST_HERO )1 A, _5 S- @& {
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 V& _) h+ D: u& l; P0 g% U
if( nJob == JOB_FORCEMASTER_HERO )
& [" G' v4 [% q4 f5 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% u ^: |0 F$ z% Q5 U# s$ r9 S
1 u8 u% ^3 a& j p$ D
( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ A/ ^7 ~7 b7 }3 M# L }+ V. z3 G* |) D4 @8 M. ?
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ S* K7 P2 }; ^$ }$ Q% c# d7 i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 a3 r0 P3 g, ?5 \/ ]' D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );% v3 j @0 {6 \5 R2 {' p) n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 b6 D! U$ s) \8 v! K1 ]
( (CUser*)this )->AddTaskBar();*/, ~0 Z. F' |; W0 j: m( O; f4 _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' @; O, H. |# Y7 ?4 c U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) b3 e# w# c! D5 H9 h ((CUser*)this)->CheckHonorStat();% U! j! [3 s' A1 s
((CUser*)this)->AddHonorListAck();
( X4 h+ B7 D' L/ ?2 z1 x# r: f( o8 \0 O7 C g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ C G* X: [1 [% D1 f6 G i; j#endif // __HONORABLE_TITLE // ′Tà?
& _( i. ^1 N& J' y+ U3 m/ g. R }, {( e1 A1 b" W0 u6 X+ H
#endif // __WORLDSERVER* |% A: C2 ^ A' j
}
, G2 z7 U+ M! Z; X- v9 B
& ~+ l# _1 ?" K2 Z然后你进入functextcmd.cpp并添加以下; z |. S% s8 N! b D3 N
' ?9 l5 E' M, ` R
代码:4 b4 R" |' F2 G( w8 u6 C! y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& b3 f2 q7 H' K+ i下面插入
+ K H6 j$ L; O& N( r$ ]% G1 `7 nON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 b# ^+ ^$ s6 x/ ~# P' a$ f4 d
* x9 y, W8 F- o
然后你去
+ W: S& v) c Q! ~
- p3 P1 ^% J7 [代码:
7 ]( f$ }/ f/ ~9 W代码6 Q& S1 G% m! M
BOOL TextCmd_ClearPropose( CScanner & s )
6 f9 s4 v, P! i. w{
. Y, P2 U% w# D) x3 G" g#ifdef __WORLDSERVER h u6 o) ~* o3 k# i
CUser* pUser = (CUser*)s.dwValue;
1 G" x; O" p2 ^ g_dpDBClient.SendClearPropose();8 U9 N6 x0 k! U# L' M
#endif // __WORLDSERVER L/ R5 T* o( j
return TRUE;; I: \3 C2 A" N' C6 o+ `
}* e: t7 B% y: G# R
下面插入
: j I+ B5 w9 b7 ~BOOL TextCmd_rebirth( CScanner& scanner )' c7 \) S1 W$ x h
{# ^ u+ J0 t g1 D9 @
#ifdef __WORLDSERVER+ \" `0 y! N6 e$ k( |; i
CUser *pUser;1 G3 P7 X& ^- h; B" Z1 Z
pUser = (CUser*)scanner.dwValue;" U& i# K6 T6 v; t* p4 L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
; _' }* `: g) ~pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 ^4 b3 F1 ]* O- ?
else2 T9 ~; x+ @7 O
pUser->AddText("你还未达到重生条件!");
2 M/ b ~" {! x9 p; [! l1 B# R- M#endif, P4 {! A1 L! f, Q, s
return TRUE;
0 I7 X) l0 C c& \} 1 i7 p- t& r+ U
9 A) L L* v5 s* m- [/ R; H6 ^. Q- n7 K% D
$ F4 g/ `$ S9 t" N- A" Q
4 D9 k4 c5 m ?2 I* h% i' s |
|