|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 | ]) o6 q+ H; x% `9 \( U3 n! b5 ?! Q1 |4 Q+ e: q
Mover.h
, a2 s5 ~& X6 F2 N1 ~/ U代码:
6 k9 W2 J. @' X/ q* [4 v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! ?% S# q' o1 g
% T' C- O. A- b! h$ H5 f* D; E下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 U* T0 P3 b+ i7 C, \' @4 M6 X5 H
+ i8 Q" O' x$ ~! E% ?然后你去mover.cpp添加( }" z) r8 d# E# p, ]* D
0 I$ f: z+ X, i8 p3 ^# X+ `* c
代码: b5 w( X; k7 ^' v) |; t" o0 J1 d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 J4 y$ K- m' H; U{
& `6 t% R2 t1 K; K+ `+ i#ifdef __WORLDSERVER
2 X- f6 U# Y% ^* `" I2 Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ @# n- d1 T; @$ I% L% H
MoverProp* pProp = GetProp();
. @% S- D: m4 V& ]8 ] if( pProp )
1 s; F+ {1 [% F+ z {( p2 d1 g4 B& C* ~, W6 _
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 g& H% e y9 t( {0 A; z
{2 z" V) a. P5 J2 h
AddChangeJob( nJob );
1 r: E$ H* V0 Q6 J, p* z! ^" N7 ] }else{! b0 o ^" t% o, m+ i. h" Z" X
return;5 a* v# X0 }) { i
}( X& j" `0 j- z. q
int nPoint = 0;9 B8 L% ~3 w: Y' l
if( m_nJob == JOB_MERCENARY )
9 z A/ C1 I5 [ a0 J) C nPoint += 40;% d, R5 T0 F* C3 L% s7 E- b
else if( m_nJob == JOB_ACROBAT )6 `$ [$ ?$ u, e
nPoint += 50;1 `, o& s0 `' T
else if( m_nJob == JOB_ASSIST )
_2 \+ Q S0 h7 Z* i1 [3 |# F% O nPoint += 60;
2 U0 c' l4 T2 |& n3 ^ else if( m_nJob == JOB_MAGICIAN )
1 T: S* Y1 N7 C( W7 U+ J ] nPoint += 90;
5 M% T9 N1 T( L( ^7 W5 T+ E else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- _2 r2 D+ [6 X nPoint += 120;
* w8 t# N4 ^) q+ | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: ?' _6 m4 O$ Z: U nPoint += 150;
9 r' |4 @( j# u9 u7 O" k else if( m_nJob == JOB_RINGMASTER )
7 ~+ {* u1 g8 o# P( I+ b nPoint += 160;
6 S; s% m3 x e6 _0 ~. K else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' I7 w( ?, K- N8 C4 U% H! C
nPoint += 180;
( d7 v% X' v- h9 N9 D$ U1 G else if( m_nJob == JOB_ELEMENTOR )
) G$ [: a* F' J* v nPoint += 390;0 V- H" T" M9 t0 g0 B" G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' ?' @1 L1 J( c- L8 f l* U& w
nPoint += 120;
3 I: D8 L+ [1 V! y4 h$ B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 g2 F* n' _' A' o3 G( Y
nPoint += 150;
+ ?. C. v" [ O3 g2 X' s else if( nJob == JOB_FLORIST_HERO ), t' p# P) g* E- l; `, i
nPoint += 160;
+ B" M a2 A( ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. ~* O! d1 s9 O/ C. ?6 t- N6 F nPoint += 180;
4 P, J' |7 A6 B7 L3 |+ O# K else if( nJob == JOB_ELEMENTORLORD_HERO )2 D& ~3 J& ?+ j: c2 z
nPoint += 390;" ?- P5 C* @6 T% N1 O/ J& u+ J
, }8 @. {8 p- M+ q- y+ f
AddSkillPoint( nPoint );
/ n# h1 @* R+ t2 a# ]$ L m_nLevel = nLevel;
% A/ K$ H% z7 ^, I& Y [0 p. _% K! T" U* u* m1 v3 ?0 L5 I
SetJobLevel( nLevel, nJob );0 Q9 L9 \- y$ E
m_nDeathLevel = nLevel;
5 Y" c1 [5 A& [9 e/ g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) G/ ^1 w. K7 s
if(IsMaster())
}1 Z4 U+ g+ ?' o {
( g$ q4 \( S, M& y% {6 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 w4 C, Z1 x; r' u1 s& F5 g7 y if( nLevel > 59 && nLevel < 72 )% {. L+ X) v1 e) m3 y
dwTmpSkLevel = 1;
. Z3 m) W h& b2 Q6 {) q+ M `, `1 ` else if( nLevel > 71 && nLevel < 84 )
6 A1 D* b8 u3 N" d% s# M dwTmpSkLevel = 2;% w3 E( R/ n& Y* ?( h
else if( nLevel > 83 && nLevel < 96 ): E' m! B- x) G. n. t8 m- l. U: r
dwTmpSkLevel = 3;; p; G" O( |2 |# Y( Q+ ^% d$ A* d% [
else if( nLevel > 95 && nLevel < 108 )
9 m$ ~) \2 Z$ l- | dwTmpSkLevel = 4;; I( j( e8 n1 C, G8 q0 z7 u( G
else if( nLevel > 107 && nLevel < 120 )
6 V o/ s$ e' n4 ]6 u dwTmpSkLevel = 5;
9 @/ X. k* U7 Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) " G( Z% Q3 I) V
{ ! ~, ?% R! C" F" J
LPSKILL lpSkill = &(m_aJobSkill);
7 w; T8 B* j- b2 f w! f if( lpSkill && lpSkill->dwSkill != NULL_ID )8 H# ?8 O. x: F& s+ A/ a% k
{- ^( i! ]9 S9 x3 q9 T9 ]
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : `4 K* n0 u! S" s" H- m; f( F
if( pSkillProp == NULL )/ d; F0 j; _" E7 U) C
continue;
- g7 v% E% |% ]; i1 L9 W( b( ~8 b: R( T7 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ M, W* f4 l O continue;
) Z& v: C! C5 U! s2 E lpSkill->dwLevel = dwTmpSkLevel;- @3 U$ v% M7 `5 A9 K) q
}
: I9 V! f* {- E }
3 B/ x6 @7 O: n8 |4 I/ @ }: ?2 E; B+ I/ P" b7 h8 m
else if(IsHero()): e! i8 z" S+ ?+ U* }1 K5 n- Z& ]! M
{
T8 D6 _ h$ Y' T1 a, W for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! w6 f3 L7 J) p! q. D# G
{ $ D2 B6 X/ Z9 U; l0 d
LPSKILL lpSkill = &(m_aJobSkill);, Q- m& A" g4 G/ ~" e9 i& I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 m3 H, x( Y+ A8 u9 X$ H# x# a {6 F! P" l W! \: d/ h$ S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 K+ U% R# i$ C; U/ U
if( pSkillProp == NULL ): j( ~' {) o ` N5 ~" R
continue;
2 C0 {* W4 J0 R% \+ v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 ~" V/ B4 w1 E. P- d4 K0 ~# @& b
continue;
7 s; {. {4 ]. O6 T0 U lpSkill->dwLevel = 5;
/ l2 K* l7 r. p1 u! I# M }
, [8 L) X+ X5 E }1 q/ k* C" p8 b0 N5 O
}
H7 ~1 A( `6 [ else if(IsLegendHero())
# ?# W- O8 z0 r# k {
* _: G$ W! K# V' Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 p2 P1 |) i z
{
, M) \$ Z) ]* h! q6 v LPSKILL lpSkill = &(m_aJobSkill);
7 [' G6 g0 D/ I4 Z5 p5 k if( lpSkill && lpSkill->dwSkill != NULL_ID )* T% e I& p, Z3 S
{: l- m( x4 {9 {0 ]& N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 h K# }; j0 j1 r, W0 [ if( pSkillProp == NULL )
4 i) T: H/ F+ ]# Q& P0 E continue;9 x) M- |7 m/ |) r' @( d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): E1 o" V& C7 @ E: E& [
continue;
/ [! s6 w( R# ^ d) U8 L& G2 | lpSkill->dwLevel = 5;& i2 E; V* `. G% e, g% c5 x) |3 u
}
- R0 C$ x5 k8 F0 P W% L }& D2 B; @/ r: S
}7 a6 J. K' v9 D! B9 O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 F! Z$ _7 J% Q" `0 h" w" m
if( bGamma ), E8 q8 h" E6 r6 q, y/ ~
{
, Y2 J" T# {6 p/ q! |5 T m_nExp1 = 0;7 K) q$ U8 {+ l7 f1 n7 L: x
}
) f0 {* f. W0 Q% u& E9 z5 u0 j: Q! @, g/ O, D5 I
( (CUser*)this )->AddSetChangeJob( nJob );8 p, h: U4 n0 X _
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: p I4 N( |$ E- v# |6 p: e0 w) |* p! {4 r( `3 B& j0 Z# s
, J8 U, X! x) J" W#if __VER >= 11 // __SYS_PLAYER_DATA
4 G0 f1 M$ D, v5 Q: \, ] g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* \; \/ e+ g$ t2 b6 }6 F- s#else // __SYS_PLAYER_DATA
6 y3 T5 x" e* |" x+ }. z- f7 S# Q g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
4 v) J, a/ A$ [ x3 K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 h( y+ N" i# m) a3 b; E
if( m_idGuild != 0 )
! i( r; f& B4 P) g5 s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 J- S1 S6 v4 n
#endif // __SYS_PLAYER_DATA& v* F7 E9 L% l& d
SetHitPoint( GetMaxHitPoint() );
% b! Z3 C* j+ F+ } L SetManaPoint( GetMaxManaPoint() );
B- G) c$ x% s# a: |7 ] SetFatiguePoint( GetMaxFatiguePoint() );
7 W7 g) W3 S' ^% E$ i, T+ H if( nJob >= 1 && nJob <= 4 ). l: \7 D+ L) J
{
( N$ X7 _1 F5 h m_nStr = m_nSta = m_nDex = m_nInt = 15;5 g/ e) L5 t, j. O/ A& X, [
m_nRemainGP = 28;
) R, K; U: @- q, ^+ b+ g }, ]0 O6 I, D- q5 V {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 A7 w1 Q: }- ^; Q0 [
{
$ m' } ~7 `# e% v; ~% P, z m_nRemainGP = 118;9 p9 f5 s, w; D1 P, m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, ?+ r' v j) I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
) z+ {8 v ?! [6 y9 \( \ }' P) H* K5 O3 r* a' L# T
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 t G- T$ i; a! E+ m1 A$ C
{
+ y8 F# |% }5 T1 F& i7 W CItemElem itemelem;
' n+ n) x) _/ b0 H" i& x+ e6 `4 h itemelem.m_nItemNum = 1;& Z/ i0 P/ h$ Q1 X0 w1 O2 R
itemelem.m_bCharged = TRUE;
1 h6 G$ Q) {9 N8 d2 r9 S0 X BYTE nID;
; Y: {3 A+ t) C \1 a+ S2 |; S9 w+ a
if( nJob == JOB_MENTALIST_HERO )
7 _( j# _* U, g: O$ L2 S# \3 w' v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;& _: N# l% H; j; I
if( nJob == JOB_FORCEMASTER_HERO )& {/ ~ P8 t6 q3 t' P" K4 I
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* o ?; `: j* |; D2 S4 u
" } R5 l1 n, ?' \7 t
( ( CUser*)this)->CreateItem( &itemelem, &nID );/ E# ?2 `$ s! u# `, S# x
}! J0 U1 d7 \' d+ |( P
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; \! u# q8 x( ]! e! d4 I! A3 M
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! R0 ?2 K, L, a* _6 Z) h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 I% `8 a6 a) ], }5 n* _; {. f
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 ]* E) @# v! B1 V5 B ( (CUser*)this )->AddTaskBar();*/
" Y% L+ ]- a& a; Z1 N8 h ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 G9 `8 v0 I# m8 h5 a, ]) ~) l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& j0 w. O" M5 |2 q
((CUser*)this)->CheckHonorStat();
2 z6 g4 P# g/ M3 x ((CUser*)this)->AddHonorListAck();
( L. @% v& J% w5 @+ u) E g_UserMng.AddHonorTitleChange( this, m_nHonor);4 s4 D. V2 i+ g7 X
#endif // __HONORABLE_TITLE // ′Tà?% P/ T# x0 l( a% ]( Q7 ~
}
* ?$ s8 [* H& s- m A#endif // __WORLDSERVER
( R/ s! C8 m! j5 H% C} 8 A8 S1 Y: O7 C5 Z, B
5 O! j: L& H# u4 u' a
然后你进入functextcmd.cpp并添加以下
9 T/ [. T3 u7 V# i: g4 }: W7 U$ r. w! w0 t% I/ E
代码:% [! S( v: j, @: h( a8 H
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# j# U4 L; A1 W. l' j& d8 l$ G下面插入
$ n4 t" x# J7 wON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * ? j |2 P$ } s6 ~
4 Z, l0 g* l8 }6 y/ a9 ]& H然后你去
* e) M5 Y, r% J% c) K- ]
% _. `+ C: _8 C# D7 [) T代码:
: X8 J, Y4 \# }8 Q+ T7 e- `7 H代码
, a( R% P! `1 z" x K6 LBOOL TextCmd_ClearPropose( CScanner & s )* ~0 @7 Z) _8 a2 h
{
# B' j4 T+ _! Y& |* L#ifdef __WORLDSERVER. [: @# M" t; ]" l* h
CUser* pUser = (CUser*)s.dwValue;- u# {5 d! H- v% r" R6 K
g_dpDBClient.SendClearPropose();, Y6 C7 ?( K$ b# l6 B
#endif // __WORLDSERVER
8 |& X9 l9 m9 R) m# c* {! q3 _ return TRUE;
) m1 [8 Q9 h0 s! g m- s}
' W# \1 ^ r5 `! d5 `9 _/ _& w下面插入' N2 A3 q& { D: V( u: w
BOOL TextCmd_rebirth( CScanner& scanner )/ v1 D% K9 I! {6 g6 L9 q4 P
{
" s2 f- ^9 ~$ g# R3 @9 F3 r#ifdef __WORLDSERVER
' c( J# J7 L# o+ F8 uCUser *pUser;
" e4 w5 Q; A2 U! E* apUser = (CUser*)scanner.dwValue;
# H2 ?2 S& g) J. O: Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ R6 d0 _' `5 |2 j8 ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. A; h: S/ P* |2 C+ \' ^4 i
else+ r5 x& d- N6 x
pUser->AddText("你还未达到重生条件!");3 M$ j) S% X) Q7 D1 F
#endif+ b7 V3 h; k, I% M d L
return TRUE;
0 y% `; Q1 x" M+ e. ~1 p0 s4 n}
1 h! d8 @ O/ c/ r' T* ^7 u+ A$ R a; F) r, h
! I4 j0 h3 `: m' ]! @, @, d3 X( v& S
" Q* e- s. K( }. T- l8 ]6 g2 w( Z3 [* O) ?' a; b1 [
|
|