|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: e1 I8 C, L7 v3 M- t' O) x4 _7 [
# X% z3 {. z! k: {2 o ?5 w
Mover.h s# C J2 O( X H
代码:% A' d! L, d# U5 i% N/ f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 o4 }8 T/ m# ~8 u
7 `) n* u! @1 [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 R1 z0 c0 F3 C) k- f8 @
8 R( l$ @; k k! s9 U& p然后你去mover.cpp添加
, E- ~2 e% o* f
8 j8 p" q) q* Q; y2 l ^代码:# h& s- Y y3 [( d4 R2 n: P5 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 p/ n) m0 [5 H
{
/ o. s5 E8 Q3 o% p1 y( k+ r#ifdef __WORLDSERVER
. S4 E0 F% |' O3 O6 _+ m3 \ D' Y+ c // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 y2 |7 ]3 X: `& C! {$ s MoverProp* pProp = GetProp();
; c2 E' B' }# t! E if( pProp )
- C1 Y) a$ y2 {4 l: Y4 e, V {. s$ @5 r% F+ f9 V$ [ [3 I5 M
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 L( d. [3 V) z. p; Y. ^ s: D
{
# o! y/ d3 N: i2 i( O AddChangeJob( nJob ); _: b# [# i& g1 F
}else{
! X% w$ K. M. i- h" n$ W- y8 b3 X2 m return;- h" L+ f% p ~; m" r3 G; ]+ ]
}6 H) T% {$ m" A G3 |$ U6 J
int nPoint = 0;; e/ [& s3 Z' o7 M, T/ U* t
if( m_nJob == JOB_MERCENARY )
. i/ R/ B% Z: H nPoint += 40;( Q8 L3 [8 `& i) Z
else if( m_nJob == JOB_ACROBAT )/ }& Z" S3 q+ n `
nPoint += 50;
7 E& F) m# m4 m9 W. B, w9 I else if( m_nJob == JOB_ASSIST )" `( R- h9 k* m7 O3 B
nPoint += 60;
! e& f9 o2 f+ t/ Q8 U: U else if( m_nJob == JOB_MAGICIAN )
; ], s$ [" r& V; }7 A2 ~ nPoint += 90;
) Z& ~$ m$ j4 q7 x) }0 _9 B else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 E* W" ? Z# _; w1 q4 r
nPoint += 120;
& E `( [: k* g# I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 H6 {8 S7 S! K8 c) ?
nPoint += 150;5 d- ^/ F! \) X
else if( m_nJob == JOB_RINGMASTER ): \0 T1 ]7 c: w" P& J6 M8 l" u9 `
nPoint += 160;
7 b8 S# {/ L9 _& U, ?8 q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) R6 i" @! G+ d) n nPoint += 180;
( ?3 N- b+ L. u3 R4 K* M else if( m_nJob == JOB_ELEMENTOR )
- @% {1 I. N1 A: A7 k; d/ E nPoint += 390;
) U0 A- j" q: T$ v' ]/ ~) n else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ), A9 E' A3 [; U! R8 {
nPoint += 120;
6 {2 K9 s0 |) K7 h; I, i4 q else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% b$ s% e$ g/ O& @+ c- D. F
nPoint += 150;* |. A, W' b, l
else if( nJob == JOB_FLORIST_HERO )/ z! B' {3 n$ ^& i" H+ b5 ?. e3 {
nPoint += 160;9 [! T0 D" }$ w* }4 {9 l1 j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 M6 D7 I( U+ N nPoint += 180;% Z- J3 S, U/ C; O
else if( nJob == JOB_ELEMENTORLORD_HERO )
) y3 ?0 ?1 ~" G9 r7 S- l nPoint += 390;3 I) i8 Y/ ^# I! z0 ` G9 k
- {/ q$ u+ O! d- D T0 D
AddSkillPoint( nPoint );
" H) v" D+ u$ c! }. B m_nLevel = nLevel;
, F2 C; @! D9 j8 y! z6 z) B% B) t a% `8 C* R _4 M# _0 w9 s
SetJobLevel( nLevel, nJob );
6 _4 {2 K3 b6 z5 Y- E m_nDeathLevel = nLevel; p, g( J8 O `& \, H+ w" X: E
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( o" g2 r! {1 d if(IsMaster())9 E# Q, z2 I9 F9 ^# j! g. d. }
{( ^9 r; W& }/ D3 t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
( i; @3 r2 S8 s& D6 X if( nLevel > 59 && nLevel < 72 )
+ _8 G/ o7 u+ i( a2 } dwTmpSkLevel = 1;
) B& @1 s( ~) P8 U) Y else if( nLevel > 71 && nLevel < 84 )$ |) _$ T) B! ^6 R( M% D: ~
dwTmpSkLevel = 2;& ?0 Q4 ]- l1 h; I- f6 n9 p
else if( nLevel > 83 && nLevel < 96 )* F1 E) e* j: {, |" m z
dwTmpSkLevel = 3;
/ o% }; {( x" {9 ^/ _ else if( nLevel > 95 && nLevel < 108 )
. w$ H7 C9 }/ h; p dwTmpSkLevel = 4;9 b6 {' b. m2 s b( i# {7 J4 V
else if( nLevel > 107 && nLevel < 120 )( I2 _' l" S6 J) S% o& f; B; L9 T
dwTmpSkLevel = 5;6 a. o5 @: n# y+ j* h
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 w+ {" `$ ]. F: R" i { . X4 Q" ]/ S! V$ [' z
LPSKILL lpSkill = &(m_aJobSkill);
0 \ H' E( X+ J9 @$ u: x! m% O! M" n if( lpSkill && lpSkill->dwSkill != NULL_ID )- v1 m! X# z9 |% S$ E9 H, B
{
, e6 T8 S, S+ g4 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" Z* m% d j# n J+ z if( pSkillProp == NULL )2 V. L2 |9 M. t5 q. e) ` Z
continue;3 p8 {6 e- W6 ]7 b' y+ o; V2 j) g( f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 B" T. @( K$ C P
continue;8 n8 @6 e- E8 j( n/ p9 G
lpSkill->dwLevel = dwTmpSkLevel;
$ H8 H3 w$ \1 ^! l- H2 |6 z }, D+ }& E% X) \) X: I
}
( F4 M. }) l9 c' p }
. D; y- k- E+ Y! _' {; b else if(IsHero()). L; Y4 c+ K3 l
{
7 Y" E, v- E& i! S$ d for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( J8 y* K' E( q" Y" U
{ 2 T% ]' |" i$ }. j' u
LPSKILL lpSkill = &(m_aJobSkill);0 A5 s, m# ~, a7 V6 N+ @; u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 L% |; |. L7 z6 e e1 v) f {
8 d. ~* C- X' ^- I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); c4 H# r- [) z) V" X) c* d6 r
if( pSkillProp == NULL )
+ o0 |7 N7 Y1 V! D% I# [# E4 I continue;( d" d. G( w/ v Y$ ]+ y% D9 l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" M3 t$ ~; Y7 w+ H! _ continue;9 |, E& S1 u0 A4 t& w8 a( m! \
lpSkill->dwLevel = 5;
6 s1 i c* G, [7 | }
0 [" P3 f. {9 ~, D }
: M) A# U- r3 p$ ? }
6 ^, Q0 Y4 c3 P6 O else if(IsLegendHero())7 T& A% ^# d8 l% \
{ ^! d# r" i- R; \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 m; G0 R) G# I4 w, M
{
' L7 W2 T, L" D9 [# d- k p* X& j2 Q LPSKILL lpSkill = &(m_aJobSkill);
& s+ n, }0 [ Y7 d9 k% d if( lpSkill && lpSkill->dwSkill != NULL_ID )% F, V) q: ] l) f
{
2 \! o( @6 _+ {3 U- J. X' k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 T1 J8 H1 W: H! m6 w if( pSkillProp == NULL )
$ s( s" v6 v2 Y- A) @ continue;
2 b8 q, u- K1 Z* S0 }0 n* A if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 L; r5 u% ]8 i
continue;
/ ~) u7 u) Y+ @$ x2 i. n lpSkill->dwLevel = 5;
) F+ R. D5 s& |0 t# x1 Q! u- ? }0 H- C4 L5 S- D9 r" @ d* i
}1 _1 x6 q! D" S2 x& j* ]7 F
}
: F; o9 l1 Q) I2 v7 m- N ~+ z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ W3 r; M2 R2 N. W: U if( bGamma )
& R8 P: Z& d% c+ \ {4 g; S8 \* X& |) B3 K
m_nExp1 = 0;! w# ^7 e* o L9 ]0 q
}
) a6 G+ L. A: k8 u/ a, w" F/ _; o0 [+ q& y! K; l5 K
( (CUser*)this )->AddSetChangeJob( nJob );
- m- h% Q5 o# H& p V g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 r" V, x; _& C, G( R
f, J+ v6 P" z; ^8 v5 e Y. s8 @7 X! n# }1 t
#if __VER >= 11 // __SYS_PLAYER_DATA
! q. m* c* p8 F! Q. g6 Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
, Y5 A7 \* h" c7 F9 E( N3 G$ a! s#else // __SYS_PLAYER_DATA
1 O* }: d0 ^9 m/ L2 N/ \) V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 S/ b, v* d9 b! t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* O1 O( {9 r/ z& `! J if( m_idGuild != 0 )
5 e* k2 d! |- m% P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% I7 v5 h" l/ U0 f- }3 T#endif // __SYS_PLAYER_DATA( Z: z0 g- s: W+ t
SetHitPoint( GetMaxHitPoint() );/ |: [0 H8 s- A* T5 C* B4 k( x/ Y
SetManaPoint( GetMaxManaPoint() );8 h" h. x+ N2 j7 L2 h/ t5 h' F" b
SetFatiguePoint( GetMaxFatiguePoint() );
: e. t# O7 S( | if( nJob >= 1 && nJob <= 4 )( h s- s5 r3 H
{
v) {$ \. Q$ F7 ?% B6 B! T0 ] m_nStr = m_nSta = m_nDex = m_nInt = 15;% j4 b8 l! O- v0 |! ^$ p8 E
m_nRemainGP = 28;9 o2 w; l+ A6 R: h- t* {# [6 f
}: C0 {) {; F; r% ~7 W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 ~+ R* c2 ]' \9 x6 l, M. |
{
* [5 p4 }# c! N. S$ K x m_nRemainGP = 118;
/ T8 O5 H9 A& W- C3 z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
+ t5 z4 r, r. u, B m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 [) k2 m! g1 i y9 f! V }
, E& N! V. [, m+ \; a% t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# x$ ~& O3 {( I$ |
{
0 }8 S" ~/ ?. l' j0 C CItemElem itemelem;# u* B$ n: U; ^$ o1 B5 g
itemelem.m_nItemNum = 1;
0 W; Z. N, O6 D! s6 G8 o itemelem.m_bCharged = TRUE;
0 \: H) x; @' x0 k- K BYTE nID;
3 E A* W" w" }
# ]6 }6 c- ^3 @8 Y if( nJob == JOB_MENTALIST_HERO )
; C% H$ P. n5 q6 N# @ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
h+ N: M" M6 P' z if( nJob == JOB_FORCEMASTER_HERO )
" j) L) E0 W- m6 q' U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 }( o- m. L4 E1 K# y6 C/ d$ _( S
6 y9 H6 f% `9 H, r ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 S& ]6 h) m: q- p+ b2 S }6 R/ ~/ \& i. R0 E6 z2 s! A" P& R: {
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( w- X: {9 P9 r- C- X0 o) ~# W) G. J ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 M' U0 t8 z9 d: `6 @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
* T6 v9 G3 ? t$ N1 B* `* g /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, D2 M- o) Z& [4 h% L
( (CUser*)this )->AddTaskBar();*/& U9 i& l# x" J4 L
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* p) h$ }5 ^6 K( I( S0 A$ l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# J0 D" Q% @0 |) P5 ~; u1 {1 O ((CUser*)this)->CheckHonorStat();+ ~' j1 ]0 n4 _& Y3 u
((CUser*)this)->AddHonorListAck();; b7 p8 U* Q8 `( S# |" U8 }
g_UserMng.AddHonorTitleChange( this, m_nHonor);! G+ g- z3 G" ]- a* d% d- H
#endif // __HONORABLE_TITLE // ′Tà?
8 J+ P/ ^. i7 C! ` }
x4 w; R4 j) W" L1 L; D#endif // __WORLDSERVER7 A) T5 }3 `9 `* m* H: O. S
}
! f/ q O- [9 K) [* M6 Z& z) s; d4 t0 ^ S# ]
然后你进入functextcmd.cpp并添加以下& ~, n' e/ P: i0 J1 d
( @/ ~0 c$ J+ a; L
代码:
+ }/ e5 S, \, e; k6 m: ~8 TON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 L5 M" n; S4 |! ^
下面插入$ N( k3 U' G0 M" r1 d6 d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% r4 W) f! x5 ?5 Q! F" h
4 `- _% v7 D, ^* e7 ]. \然后你去
# A- g' Q' b' Z4 }
: a% V" D8 ]4 ?代码:' K* H2 Z( D/ h( R+ V0 Q6 q# N
代码
8 v9 S2 T1 i* l2 h$ SBOOL TextCmd_ClearPropose( CScanner & s )' I8 z4 l0 G5 I2 v7 A, m3 l
{( V: A) F* Y0 |4 m: B# q
#ifdef __WORLDSERVER; k7 l( p# q+ D1 w4 s: y! y4 _- t( p
CUser* pUser = (CUser*)s.dwValue; P9 _. }6 H1 v
g_dpDBClient.SendClearPropose();
0 `2 b) v, |- x/ ^4 F& K9 _#endif // __WORLDSERVER
$ w/ W1 {+ H) W4 v- t+ f l+ t return TRUE;9 ]9 Z0 X2 m& I/ e
} H! w+ J, K- d
下面插入
`3 [; Z& [( H% lBOOL TextCmd_rebirth( CScanner& scanner )1 V, B5 m. Z- {0 N6 v) M0 P; k
{& H& k% y+ b0 u) x8 F
#ifdef __WORLDSERVER' o% H+ {% K4 r( k0 q4 ~- h ^. d. n
CUser *pUser;5 H! G$ k" e3 ?6 t$ Y$ Z7 |$ z. ~
pUser = (CUser*)scanner.dwValue;& V* r- @5 c @) R. j6 o- F5 {0 H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( Q& j5 {6 f4 r! tpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& p: T3 T% A. m+ q+ I
else5 d' g1 d' l2 r4 t6 `
pUser->AddText("你还未达到重生条件!");
; [+ J2 ^+ B; I. L o. f#endif
+ `/ R6 ]/ @) W [4 z6 I0 e) Preturn TRUE;
: x2 |$ I8 o; x! I! C( j, s}
7 b l- \. t2 D& q% O3 H* k1 }3 d0 S4 b5 S5 Y/ j
6 _: o5 x0 u( p/ x) e1 a) X. A: L
9 L( ~ P1 d8 o8 {; K4 x$ }
; [1 y* S8 H; ]* h6 [" { |
|