|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 b8 g* Q T$ G; W% `2 o8 t
$ w- d/ V% g* L: R) h7 S
Mover.h6 G/ P% F* q7 ~8 e& t+ z, O. A; u
代码:
?$ A9 c) l. C* B5 L) p1 g$ B& C找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( i5 [0 G: `% o2 P- c
$ P3 ]" U$ k$ S+ \5 w2 s7 H下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" e/ X# `. w/ J. r8 ^( Z* @$ C" S2 X7 ~
然后你去mover.cpp添加
! q4 G; @5 s1 s: Q" B3 y" k# z
. k0 h9 B4 I% r6 y$ f1 t代码:! ^7 x8 G" m! P3 I- e
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' c4 U& H2 z5 z0 x- b* _; ^- `: C{7 w6 ~* V% p. f8 v5 U: b' ]
#ifdef __WORLDSERVER S' T/ U- w' w( ^$ h% }" c- H; v
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; ^+ u+ m/ P$ \; [$ u+ h. y MoverProp* pProp = GetProp();* H' g/ K; f: M, I( c
if( pProp )
2 A; _) R6 x8 l/ d" I {
. V8 R: {- w3 P& ]' q4 F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
0 {; {8 l8 ]( d- C7 v {1 h$ ?& L+ {: k8 l; R T) F3 e
AddChangeJob( nJob );: C) U) p4 O' T- G' d) F
}else{# F7 @: h. v" N/ ^9 U6 x2 ?
return;
9 }5 x- l2 ^6 l k7 m4 O }
* x" @, y: x0 D0 Z int nPoint = 0;! x @* O& q) ]: H
if( m_nJob == JOB_MERCENARY )
* {* ~, v/ {+ Q9 ?) \* R nPoint += 40;
5 ?; f& f( P f! J) @) ] else if( m_nJob == JOB_ACROBAT )
7 g5 r8 b, ? X; g$ t) [ nPoint += 50;
# b' X% t; V, A u else if( m_nJob == JOB_ASSIST )
, @7 V) M( b" s& C0 P nPoint += 60;
; y( x! D1 ?2 j5 f1 e7 W1 u else if( m_nJob == JOB_MAGICIAN )0 z- [% w* b' x6 E, Q
nPoint += 90;" Y1 w1 T, w; ?) d
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 q5 `) K5 s3 i3 w& w nPoint += 120;9 O) ~& M3 f; i
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 x2 Y1 I4 \7 x nPoint += 150;
9 A, I2 |& e6 c9 K else if( m_nJob == JOB_RINGMASTER )
7 a9 ?% v6 q1 w* S2 f nPoint += 160;" M* E- j4 @/ z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )7 V, {9 {# R6 Y3 b+ T$ R; N8 g/ ^7 v
nPoint += 180;
" m/ o% |8 R: {) l, y! g else if( m_nJob == JOB_ELEMENTOR )1 [$ N% N3 b. ?8 S+ Y" c/ w4 A p7 N
nPoint += 390;
9 v/ i* F& y5 }/ m else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). [# ~: r' L' o$ _2 B
nPoint += 120;# _) Y: T- | j4 w: g7 e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& B9 H5 e/ b3 B9 d, q nPoint += 150;, s/ N+ T# G. V$ }4 j5 P
else if( nJob == JOB_FLORIST_HERO )
. v) `5 J+ J! H7 ]2 r* F" Q5 q8 `1 U, l nPoint += 160;
, s0 X$ R( J. E1 V4 p else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ e0 I* u5 c# N1 \! H7 a
nPoint += 180;1 ]0 l3 c3 K9 _! o; B
else if( nJob == JOB_ELEMENTORLORD_HERO ): b. Z3 O6 E6 e! Z, P+ z
nPoint += 390;
1 S' `0 \/ x; B! @. O# Y" w
2 g Z7 I' _" r3 X. g" v: K4 k AddSkillPoint( nPoint );
. k/ J/ {, S9 `0 ~( a) w% q m_nLevel = nLevel;7 K: q* f1 a5 O2 \$ v7 \5 A
' C' T3 g3 N4 |% l4 y: R$ g SetJobLevel( nLevel, nJob );
, E8 {1 ~1 Y: C2 z; @; ]5 v" n2 _ m_nDeathLevel = nLevel;5 q: L0 r5 ~7 _9 i) W
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ \- w0 y$ [+ k, K: p" R
if(IsMaster())
5 [2 I( ?: C1 L {& y9 i) l* P* [6 G; z1 i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; h; P* B! {8 ?8 E' T% x0 P if( nLevel > 59 && nLevel < 72 )
4 a0 X: `( n$ M# t; k8 m/ \. e4 a dwTmpSkLevel = 1;! R+ g. A% j$ A, W, J# s& U- S. ^
else if( nLevel > 71 && nLevel < 84 )4 i5 f( p0 \% |8 z( I
dwTmpSkLevel = 2;
& {' d# u3 P. V y: j else if( nLevel > 83 && nLevel < 96 ); {5 x9 D% F6 F) ~5 i; h
dwTmpSkLevel = 3;
' B% v+ F) S+ B J else if( nLevel > 95 && nLevel < 108 )
# Y9 C- A/ O' g dwTmpSkLevel = 4;$ u, ]( u0 Q0 b$ Z1 F: U
else if( nLevel > 107 && nLevel < 120 )
1 T, h" R) C2 u& P. D$ I9 \2 ^4 y ^ dwTmpSkLevel = 5;6 I& B: Y d" D& U' [$ S
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 z/ ? ^1 Q8 Z {
, J# m5 D+ m& d3 }( w/ ~- c LPSKILL lpSkill = &(m_aJobSkill);
" Z! Y7 @8 c, L9 q* R5 {% _1 Z/ g if( lpSkill && lpSkill->dwSkill != NULL_ID )
& a3 s$ l& J# A$ y- v5 ` {
& ~# @& ^8 K1 K! v Z( p9 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 i4 i! O8 O1 z+ A- Z- W
if( pSkillProp == NULL )
# g: e# A! W6 w# r continue;3 @' J) S4 X7 d$ u' T: x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' D/ F U# v1 k
continue;
. I9 c; s0 P! f5 ]3 U' t- D; u* W lpSkill->dwLevel = dwTmpSkLevel;% G% g+ Q) z4 C# Q! o) L, |
}
0 h8 O& j0 Q& \' z4 X, Y }4 W& {8 u) w6 r6 n
}
1 n# l$ H6 V5 w. L: F else if(IsHero())+ m5 G- R) R. `, C G. D# _1 \
{+ ^0 Z1 b0 N2 Q0 ?% s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 \% a* a" c/ a! \) k% z {
. u D& I; x% O LPSKILL lpSkill = &(m_aJobSkill);
7 E) P+ L9 A% P D if( lpSkill && lpSkill->dwSkill != NULL_ID )3 K1 A3 K, R9 l J, A# |& q
{
* n& O- \5 a7 ^) K3 B0 T+ Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ u' _* [1 S' v" K" G if( pSkillProp == NULL )
! V0 K) T8 l, ~: g; } continue;" o6 J; f$ b3 l& T$ o( b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ i8 R+ ^" ]1 m7 O2 | continue;
1 l0 c! G% }8 {2 x# S lpSkill->dwLevel = 5;
2 e q+ \* T$ Y5 N }
6 [4 J" k+ h# L$ i& @ l }
% n) F( T, d- H/ L! n }
/ a; z! c; Q3 m! D else if(IsLegendHero())
% q3 Q) q T" ?/ N( ~ {
) d7 o* A' v7 v for( int i = 0; i < MAX_SKILL_JOB; i++ ) + F- }( v; e/ H8 C9 G p/ T( {9 n
{ 9 L; K+ Y9 V. E' [- e8 i9 B
LPSKILL lpSkill = &(m_aJobSkill);
- I' \; z9 t! u- t1 ?& e if( lpSkill && lpSkill->dwSkill != NULL_ID )8 O4 D5 Z- ^5 w; t, [* e
{' _' C/ [1 i! u) z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 H7 D6 Z# e3 L5 K7 K% x1 d
if( pSkillProp == NULL )
3 b. t; h. T$ H; e( p6 h; u: O continue;
3 R- l' q, _$ u. u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, ?# d5 z' J/ ]5 I+ V8 p continue;; Z% O3 d, e$ G3 i) \0 m
lpSkill->dwLevel = 5;
; r4 Z2 C/ ] A/ v* y }! h; R$ ^ K {$ Q3 g
}5 w- U+ O) b7 f" m6 s9 z, }3 A
}0 M) m2 H: Y( ]( q# N- ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) } V) @) `# w/ m+ c' t if( bGamma )
* ^+ I3 I! Z6 h# K% W# e/ }+ r {' P& P, I# l$ Z1 B4 y: E. c0 A/ Q
m_nExp1 = 0;
1 x) \% b: N7 I' m5 w2 c6 E7 ` }. u% H2 N C1 m5 v5 O
% g# F ~# J' ^8 [% d ( (CUser*)this )->AddSetChangeJob( nJob );& {7 E* t7 G Q9 W# E( E- M4 L
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- u5 f6 _; k% F3 D
2 |1 @( k J) s F! v( @& {9 j D, r3 d# F$ G; ?# v
#if __VER >= 11 // __SYS_PLAYER_DATA
; P" g ]* E& z A g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( f s' i# K) _* y9 |8 @5 ?8 ?' _#else // __SYS_PLAYER_DATA, |, L& X; o. o. w6 w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( o0 n- u# B7 s, e# o
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# R ~* l. i: s if( m_idGuild != 0 )2 Q$ t* z7 h+ }. @% q- D9 h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* W) P/ `9 y( e$ A( e
#endif // __SYS_PLAYER_DATA
$ p: \9 K9 u8 r$ r7 D) o# t SetHitPoint( GetMaxHitPoint() );7 y3 x) L' K9 \7 ^; H8 Z, }/ P
SetManaPoint( GetMaxManaPoint() );
6 N6 f7 W/ y q SetFatiguePoint( GetMaxFatiguePoint() );
& |- L7 S, h# m% c' D( l if( nJob >= 1 && nJob <= 4 )$ g, g2 f" S7 S- G3 K5 H& O
{
* s- E( G/ T1 f* B' X" G m_nStr = m_nSta = m_nDex = m_nInt = 15;
. n% @7 P: \ |" o m_nRemainGP = 28;; c# @8 g: p; R& m
}
3 m+ X/ W3 m: H A' u5 E, l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* u3 m$ u0 f2 U- z5 ?/ W) q {2 L g: x. u) Y: x9 |$ A
m_nRemainGP = 118;/ E$ W% G) o0 \2 L! k9 Z' T" }6 m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 x! |% w0 Q4 G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) ~5 D6 X7 _6 J7 g; E+ Q% H: b( h }' V; ^# N/ _) \9 e, l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ B% ]6 p. @# _) G
{
, b, r0 t/ k& b* `; K1 w) f2 k2 w CItemElem itemelem;
, v9 w2 U# ?6 Z9 v itemelem.m_nItemNum = 1;9 @" k& |5 H" N: W9 E+ d
itemelem.m_bCharged = TRUE;
6 X& `* m7 S) F$ ~ BYTE nID;9 s+ n0 T2 |2 K; ^9 ~- Q9 g4 ]4 c; ~
# Q3 Y y9 g* H8 ~& c. b- ^
if( nJob == JOB_MENTALIST_HERO )
l+ n4 ] A) H itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! H0 K) {* N' k- i
if( nJob == JOB_FORCEMASTER_HERO )9 U; }, T5 ]/ A3 \ S: {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ y3 `$ q+ _+ C: `: t
. J6 U. {% L3 F1 j# z9 `6 ? ( ( CUser*)this)->CreateItem( &itemelem, &nID ); e0 e& o) a( T1 u( P6 ?
}! g# q3 T8 Q) y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, q- q: \' y" x ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( }* R, A; p' I) O* V ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 _6 k2 L* v; ]# M* U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- P W! a( c% v( c3 d. c ( (CUser*)this )->AddTaskBar();*/0 b& E! V0 i2 A- C
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 c6 x6 Q& r% Q2 h1 `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 B8 y5 @( e3 o: ]1 G ((CUser*)this)->CheckHonorStat();7 y6 t$ e# @8 b7 t- a/ F
((CUser*)this)->AddHonorListAck();
) i T8 |2 l( ~5 T9 h g_UserMng.AddHonorTitleChange( this, m_nHonor);0 H, Z+ s3 M' o
#endif // __HONORABLE_TITLE // ′Tà?
) C5 E- Y0 e! ~, r7 Y1 H& M }
3 i: l8 G0 w0 g ~$ q#endif // __WORLDSERVER
# a- t5 ?, A+ j0 A& D5 x0 G# g}
; f% d# `3 ~0 P% W9 A" @
5 `! G ]2 O' d3 ?# q然后你进入functextcmd.cpp并添加以下" J4 r/ @+ P! w3 {! C7 n. H _7 a6 q
8 M5 s3 ]$ k ^; D代码:" b7 L+ E4 @5 S0 N i5 m3 n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 O' K+ Q! s* K8 } }8 A6 V% y
下面插入8 V+ i+ Y& v6 |2 |" U$ h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 O3 c7 h$ b7 H# P! ?& @8 c' O: k+ r, x/ B6 k
然后你去
0 O; q" d2 }& l
) [9 ]# S! ~% R代码:
2 v3 t& v9 e/ ?( u代码
* S4 l' V+ V, a9 A6 LBOOL TextCmd_ClearPropose( CScanner & s )3 `1 D# Q; p/ v4 D; d
{
8 \( L0 _3 O \: u7 X2 u9 c#ifdef __WORLDSERVER$ [3 D; l0 ]5 r8 X1 t
CUser* pUser = (CUser*)s.dwValue;* X8 f8 r+ u+ Y( w
g_dpDBClient.SendClearPropose();
8 r' A' O( I( |& L- K' w#endif // __WORLDSERVER
, J5 `7 ?8 f3 h6 @1 _) W return TRUE;
3 I7 a& i) g4 ^1 B9 O}
( }9 @7 [# Y L4 U6 z下面插入
/ j7 Z" H) P% {) V, {" Y, I0 nBOOL TextCmd_rebirth( CScanner& scanner )
1 w) k+ s( D9 W- j: m) y2 X: q/ ]{- j. h1 G& q. d6 j0 ~
#ifdef __WORLDSERVER
4 u$ Y: E4 c4 K: z( M) M* l8 oCUser *pUser;/ `" @+ c% k9 W9 O4 L
pUser = (CUser*)scanner.dwValue;- i1 G+ l' ~/ G4 G+ E* ]- G& S
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, Q% C6 h3 o- w! F6 [& PpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 t* z" n: ]) F
else- t% i" X! {5 r3 s3 E6 i
pUser->AddText("你还未达到重生条件!");
, z- N+ M5 M+ z5 r0 _% I. R0 @: M' _#endif
2 u0 H4 l! Z* Vreturn TRUE;& K* f B- r) A
} & @! C% _* D# \2 m. W
0 S; y. f, R( u1 m- z1 o' P4 f7 `, P1 l% k
! y& ?" @- s+ P) K
4 V2 K) z- m( u) B
|
|