|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 y3 J: K/ B1 D4 Y$ `# z t1 I
& \6 u! M) b2 l$ DMover.h
7 V3 l, W* q, a2 {$ y( U- R$ [代码:
, v2 o2 \. p1 g; E9 Y! ]5 q2 X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; J9 T& L+ N+ o" [' o: @( \. x1 a% g) ^5 o+ Z w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 I9 Q" P! v9 a/ C$ D
" k7 l* g7 s& c5 C) v然后你去mover.cpp添加$ O6 |8 }0 i b4 j
' T; K3 I. T( {; U, z" @
代码:8 c- L7 y. ]: i+ }) `' M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 B4 L+ u8 ~9 o0 z3 T: \{
: E: x* B- K3 L#ifdef __WORLDSERVER4 x. G- n& j. @$ @1 U% J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' P$ z& ^/ X0 N5 j6 V# y& m MoverProp* pProp = GetProp();
1 Y/ S: Y. q1 _2 |% l1 [! o. ? if( pProp )" V( F8 d% {5 Q( O
{3 c1 q# {0 x0 b7 x5 t! y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ E+ H* x8 \$ o, P* H% O7 a {4 m* T* W) N, a0 D
AddChangeJob( nJob );' N5 q- p* p1 a. G6 T# e7 G
}else{: A- M8 S; ?' ^7 o; R; y
return;
! [% ]) [/ r6 s q6 O9 Y* S+ l }
0 r! d0 U+ \3 n: `+ u int nPoint = 0;8 b& d7 p$ R. n. U a$ o# p
if( m_nJob == JOB_MERCENARY )
2 s& W4 d* M2 ~+ B! N' @ nPoint += 40;4 u1 j1 S9 _, Y4 U- @" t% b8 D
else if( m_nJob == JOB_ACROBAT )
3 u* s) Z7 @* P/ f4 x) U nPoint += 50;' Y0 C3 a1 d2 `4 E
else if( m_nJob == JOB_ASSIST )
% p. l& B1 r7 @% f nPoint += 60;
8 x; ?( s5 S0 f6 b; ~, K# ]0 r0 w else if( m_nJob == JOB_MAGICIAN )
% o4 U: z) t8 c! J nPoint += 90;3 A8 k4 G& A2 `' |% k/ \% b) t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 k [" n$ I e* Z) ?+ n2 p2 h nPoint += 120;2 @& @: e1 H1 b$ \' l8 M2 C$ z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
+ A- o4 V( \- ` nPoint += 150;4 X+ Z5 \0 B* ]- z7 z2 t) V
else if( m_nJob == JOB_RINGMASTER )
1 w+ q2 V' \7 X6 [ nPoint += 160;
) b; a0 t' r" j; r$ K else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 b. J) U) K q
nPoint += 180;
, x" s4 e# Q; l: J else if( m_nJob == JOB_ELEMENTOR )( V9 U/ \& q3 v
nPoint += 390;
# x+ n% e2 ]/ ?+ e else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- S$ B3 V! P+ y4 ?4 v# ~ nPoint += 120;5 e* k e* C7 O' [4 h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 X i, E* S' \+ I: M4 {# d nPoint += 150;
5 Q' ?- K U* b" k else if( nJob == JOB_FLORIST_HERO )1 \9 q0 _3 z5 Q5 Q( F+ H; u
nPoint += 160;5 i) A8 b6 M; a% r& ]8 i1 J- u! R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ). z! F$ U/ Q: s
nPoint += 180;
& G0 a* a8 X5 G' f else if( nJob == JOB_ELEMENTORLORD_HERO )
1 }- j9 P. L6 B9 I1 G i! h nPoint += 390;! F) ]+ Y- K5 ^( W$ t
+ L0 k f+ m {3 \' `( _, k+ d+ ~ AddSkillPoint( nPoint );0 P# [2 V7 t. R8 I+ L: X4 }
m_nLevel = nLevel;
6 S1 v! Y c; j% D" ^& |# u% q/ s0 W$ Z8 V6 f: }4 k; {- d: a
SetJobLevel( nLevel, nJob );; c1 S2 I1 H! @7 I3 N: C0 t
m_nDeathLevel = nLevel;& V5 j: V. i- ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; ^3 i. F- C$ k% N3 @
if(IsMaster())
% c2 V3 L- l4 n( O {
' `, C9 f. o" Z' q) d% I int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 t4 S: h! N2 o4 G% Y/ } if( nLevel > 59 && nLevel < 72 )/ z3 {1 n$ r. ^/ ~7 C
dwTmpSkLevel = 1;
2 C" X k3 {; F$ o else if( nLevel > 71 && nLevel < 84 )
: N1 x/ P5 s% o2 Y) M u! D8 a- ` dwTmpSkLevel = 2;" P& r7 A2 L- o4 \
else if( nLevel > 83 && nLevel < 96 )
( t, u& S P4 @& C$ p4 Q. e dwTmpSkLevel = 3;6 R, d$ B* i% M5 R6 P; c+ {
else if( nLevel > 95 && nLevel < 108 )
q0 S( A3 P2 X9 \% A dwTmpSkLevel = 4;
* \4 P; T7 j5 |5 m+ v% i# ~ else if( nLevel > 107 && nLevel < 120 )6 p# W: ?. T4 W$ F. @& J6 Z
dwTmpSkLevel = 5;- a! A. D; M. q: Q& ?8 [0 j% V8 L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 a0 q+ k$ U- m& [0 q
{
3 C& P1 W' _0 m2 J! y; Z LPSKILL lpSkill = &(m_aJobSkill);
' I9 h! m1 p& D5 i( P( n1 I if( lpSkill && lpSkill->dwSkill != NULL_ID )1 m7 }& }# J N5 Y: D
{* N: q* L+ ?. D+ F3 Q T; i+ k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! ^& t3 H1 v( D if( pSkillProp == NULL )
2 D: @. M P" e% Q continue;
$ n, X$ y$ M! P/ X2 X4 a9 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( J8 v4 i( {8 a+ j6 o5 t$ K
continue;0 p& a5 B8 L- G: a, k
lpSkill->dwLevel = dwTmpSkLevel;" J5 m& }; y. |( _& k6 j) Y
}- W& N* ` u# G3 U
}
W% {- _ n \! L7 a }
9 @5 g. G& Q2 l5 H8 a else if(IsHero())6 p# m; K+ N0 I5 n
{
. l; {) N7 l7 H+ c8 ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ p' K& w6 `+ g" j { : x+ k. @' u. B G8 @
LPSKILL lpSkill = &(m_aJobSkill);
2 X: d* u" r& ?# M* A if( lpSkill && lpSkill->dwSkill != NULL_ID )
! R- b" r% k2 J {
" x: N: x4 R7 c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 q3 }/ @; v6 t- f- Y _. v
if( pSkillProp == NULL )0 d4 Y$ \0 t: O1 O& v6 J; i& T6 V" {8 u8 a
continue;3 g0 c. l, x8 g0 ^- r: s# W, C( N: t& I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* n; J; Y9 m" G4 ` continue;
/ U3 `2 A! \ d" {5 P3 n' d& L2 ]0 @ lpSkill->dwLevel = 5;
* J: S8 x; U4 T, | u }, W5 @" [5 D. p' t0 W6 r
}" S [% B5 s$ `3 A' o
}
. {1 O4 {) H1 t else if(IsLegendHero()) ~( z, |3 B9 s8 @+ l; T
{
4 `9 S5 |5 V$ n$ Y. H8 G' O$ @ for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ ~2 r q& I9 b6 b7 s) }& @" Y { - @# m6 k" r( B& o9 n3 X
LPSKILL lpSkill = &(m_aJobSkill);/ s) n' H# S0 b$ \: F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* t4 o E; N+ I- u' {0 A3 j/ @ e {
! `" s$ C( k/ ^, P4 @# N/ L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ K5 c+ h& |' ?% y if( pSkillProp == NULL )
( U& X4 D" c$ ~& T) d continue;3 ]' `6 H' N( F* d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 R$ n; B* B) s( w/ E( ^: s( b* S
continue;
+ G! f( u1 p! y5 S, r lpSkill->dwLevel = 5;( }2 @: k% w4 ?8 i# C4 F. }
}3 [ J5 x4 O' k0 `8 z1 u2 t w
}
$ G) Y) o6 ~( P }
9 ~+ `* P1 a2 M) E#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* n' O; i M+ r) j/ J3 q% N0 k! D( E4 M if( bGamma )% Q X' \2 q* V+ Q0 c2 E
{
* |& G! i) j8 B: r m_nExp1 = 0;
0 Z7 K1 n; E' y6 z! a }; Y- `, S, S$ {/ A8 k* N
6 T1 }7 w: q( t3 g8 H
( (CUser*)this )->AddSetChangeJob( nJob );3 @* ^5 O( P3 z' Y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. A4 J1 ]9 p$ F ^$ W s6 Z r P: E7 O, }7 r
: d+ T9 b/ {% j7 c7 F
#if __VER >= 11 // __SYS_PLAYER_DATA- M8 }8 X) x, \2 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. F* X4 ~" t0 ]/ d3 C#else // __SYS_PLAYER_DATA7 _ C8 g% O4 Q9 ]" \7 i' ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 e2 j/ p9 o& K2 C, s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' k( S% T# ]! T2 O v) g" U8 X7 Y
if( m_idGuild != 0 )
! y- b3 m/ Q1 A( N8 O$ u K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% M; {0 G) M2 Z- _5 B3 x9 I4 ` _
#endif // __SYS_PLAYER_DATA0 ~: u4 ]/ P- ^" j$ Z6 M
SetHitPoint( GetMaxHitPoint() );
) `) z. V1 r& { SetManaPoint( GetMaxManaPoint() );
_+ j. W" z5 u7 i1 t6 N SetFatiguePoint( GetMaxFatiguePoint() );; m; D4 T4 r* e+ f4 y4 y
if( nJob >= 1 && nJob <= 4 ): H- E7 W0 s- b* ]' o- x
{
' o, Z/ b+ F/ M8 s" R) W m_nStr = m_nSta = m_nDex = m_nInt = 15;, d# n1 ?) D6 i
m_nRemainGP = 28;6 j4 |1 p+ Q3 \
}
3 }/ N% R# q, r( j. r+ n4 u! ` if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# h. H7 Y% Q9 S {
6 G7 u% Y) x5 n( Q/ w; E- J* z, t+ k m_nRemainGP = 118;
( l% N) ]9 Z3 x6 @4 { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* D9 k+ y" `/ h$ p" j
m_nStr = m_nSta = m_nDex = m_nInt = 15;% r0 ~4 L6 [. j7 `
}
0 D6 T% S5 ` r% e w5 x1 B if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% q8 j$ N( K, U, M
{
/ ?+ h7 E& v, `* I: w CItemElem itemelem;' c7 J" O" Z {% E
itemelem.m_nItemNum = 1;
2 ^6 ]) H) r1 j* ?- l9 T& T itemelem.m_bCharged = TRUE;
' N! m7 w: f. J( e0 f1 G$ A BYTE nID;
% J% [; n; U( y
6 M$ @$ K1 _2 T; Q5 F- p) k if( nJob == JOB_MENTALIST_HERO )7 A" E. g5 }4 q. K) A# |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
j4 T" l4 a, @1 \; v if( nJob == JOB_FORCEMASTER_HERO )1 x/ y( C1 a; B; y+ ]; V- }; X9 ?
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) e6 g8 k4 g3 e, e6 M7 M
7 C3 n9 T, w. g6 B& g* l9 r( n5 o ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 K( m/ y4 L0 b
}
# [) p& F9 \' \& v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% W6 c; }1 J7 J; U9 j
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, ]1 q' Z3 K k4 l. ]/ p9 `/ M, ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 o! Z* k0 K" X6 I' ]. u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; t, d- f/ N- q/ {! ^ ( (CUser*)this )->AddTaskBar();*/
# p$ x8 S1 z8 E. ` ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ r* ?# C9 y/ _2 d#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- v4 {, I* C. o9 J; Q ((CUser*)this)->CheckHonorStat();' A/ b. z9 T% @" I6 h' E
((CUser*)this)->AddHonorListAck();
$ X! w2 M" W6 L$ w k3 |% { g_UserMng.AddHonorTitleChange( this, m_nHonor);$ w; z$ t1 R' b( H+ P& A( I
#endif // __HONORABLE_TITLE // ′Tà?0 G7 `4 B4 c+ L. t, T4 ^; w
}
& @, \ U! H4 c b- b#endif // __WORLDSERVER' \" `5 E0 R. M- ]% L
}
; q+ x4 L L u4 z0 p" ? ?+ T% J1 _2 P/ z8 H: N
然后你进入functextcmd.cpp并添加以下; i) g+ m' k& X5 o) t# r2 i
9 y- e6 X9 R/ e: J, E
代码:$ ?2 ?0 C2 \0 _( ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ u. I; t7 ?! v5 @3 t下面插入
: u8 a% n' q8 l- H# m" ?ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* Z# K* n0 M# c4 a0 a1 R I- n$ j1 U+ N' m
然后你去
* S/ G/ g# X# j9 Q" L8 `
4 }: f& a8 F/ z0 V/ Z9 x+ ?+ K- E7 o代码:
( s% }, a9 e) y0 w7 r0 p) u9 a) {代码
, e7 r& Y7 c! Y1 G! g# N N- kBOOL TextCmd_ClearPropose( CScanner & s )9 X9 i# F. |. {) X/ E9 ~' T# e n
{1 v, m' ^2 G3 S8 V- U4 R0 D6 I7 Y
#ifdef __WORLDSERVER5 s+ k/ h# o w0 Y4 c- g- m1 k
CUser* pUser = (CUser*)s.dwValue;' C5 H7 x$ Y% K/ U" q& y* ?
g_dpDBClient.SendClearPropose();0 p. |+ n. |$ ^! z5 ?
#endif // __WORLDSERVER
$ F7 p& h8 x! Z* T! T. o/ ~ return TRUE;: U( y' A+ k& `: @
}
+ K( @6 E6 C' s9 v" N下面插入
6 B: I0 t+ o: t% WBOOL TextCmd_rebirth( CScanner& scanner )+ e Z. K1 J4 E7 W9 P
{# o5 W A% p2 u. \
#ifdef __WORLDSERVER
; o# p# R1 _; u4 D1 _CUser *pUser;8 i w3 h! O) q4 c( u' s- e& [
pUser = (CUser*)scanner.dwValue;
, \. X% `# c/ Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
2 u- e# m. D; A% F; OpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
C& n5 G. s- F( R( G$ Yelse( h) Y5 a- U( Y! T7 U( M3 w
pUser->AddText("你还未达到重生条件!");! s; a# N" q& n" K, w
#endif
: _6 e1 m# [. breturn TRUE;; u6 w7 X* u$ h/ X
}
0 s3 ^0 L/ M' e2 u* s0 N. h4 h5 a- ]% x
1 I; `+ }! _" s+ c" G$ X- b
' d4 ?0 t3 G/ c1 B+ f1 u
: M. U0 e# @+ \- E- r G
|
|