|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 {8 E" m% R: [+ w
0 M. P+ g1 X- ]( ?Mover.h
6 `, X( P! j3 ^$ t+ @代码:$ L: q1 l2 k5 ~( @" l9 }( f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ I( e& F% y5 n) |$ ?' s2 J
3 o$ \4 B' P& Y" n( R; m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : t2 o: {* d' u: s( n6 \7 f2 Z
+ E, A( D8 \% m$ M7 ?然后你去mover.cpp添加" o( _. B9 g' ]) X3 l* L3 h$ c
/ E( G, O% r# g# U7 g
代码:- k- X/ w5 O* f. Q9 }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, d1 C5 e+ _4 N" n{, M+ G1 Q. S( D% r$ Q% H
#ifdef __WORLDSERVER
& G6 g9 X4 v7 H9 R6 o* | // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 ~7 E5 y% M; ]6 o1 c5 A MoverProp* pProp = GetProp();
8 V# `3 V- n5 o$ c" u if( pProp )& z+ `* p( n9 f3 K ~) U( c
{
# J' ]( }3 q8 c' U if( nJob > 0 && nJob < MAX_LEGEND_HERO ); t( q6 p7 q v$ @
{, O3 R7 \" N2 ?$ [2 N
AddChangeJob( nJob );
4 }, G% @2 t6 p( w1 ~& D }else{
! Q, I, g. ]3 v7 q return;% E j, Q. D G% L% e
}
& `/ l M: w7 t2 ~3 @6 t8 [ int nPoint = 0;
" ?- N0 h) V" g8 C. V if( m_nJob == JOB_MERCENARY )7 z7 J7 G, X; f; G+ v
nPoint += 40;
( |. D$ i5 g: ^# d+ W else if( m_nJob == JOB_ACROBAT )+ l. {5 F6 ^; ^$ P, P% z9 o
nPoint += 50;
. H7 w2 `* D1 D6 G7 p& M0 M* v+ e else if( m_nJob == JOB_ASSIST )
, G2 p4 J- [( s7 m+ n4 C5 R nPoint += 60;$ ]4 R# l# Y% C; O% A* {/ T
else if( m_nJob == JOB_MAGICIAN )% a& Z3 G0 y1 j- Y
nPoint += 90;
6 d, Q8 N. G! ^9 T) R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* l, f% c$ ]8 `* x! [
nPoint += 120;
$ ]5 s2 c0 c" c5 B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* Q) v% _( F' c, V- h/ q% }; S nPoint += 150;+ q% D! s, y& q9 m, x" [% {! _
else if( m_nJob == JOB_RINGMASTER )/ ]" g- L/ H& k5 w6 E6 ~
nPoint += 160;
& }3 h" v( @" |: g6 J* o% A, R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 b$ n& Y* E ~. d4 {' j* G nPoint += 180;
, o+ n/ ^! {9 D( O4 O0 \ else if( m_nJob == JOB_ELEMENTOR )7 \8 B5 h$ q0 e; b
nPoint += 390;$ a& y9 w2 Z6 a
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 j4 ]0 a/ ~1 ]# @+ f nPoint += 120;
; f1 [6 H/ e1 `- B | else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 ^. `( y f8 M, @1 W+ t nPoint += 150;% p# t! W0 H# p i, V
else if( nJob == JOB_FLORIST_HERO )
% Q J4 w" t T: ]7 m; @ nPoint += 160;
% Z" f) p! R, F! b9 H: e3 l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' u1 T. p* ~- N1 a nPoint += 180;
! r$ u# _- D) j3 z& l* D2 r else if( nJob == JOB_ELEMENTORLORD_HERO )3 ]. Z8 t7 Z- r7 ^ d; A% }
nPoint += 390;
9 T# s& e! Q$ A8 @8 j
y C5 R/ G3 D. c AddSkillPoint( nPoint );9 ~1 D4 s, d5 F
m_nLevel = nLevel;
0 J% k3 {. v( y' h( C) y8 t0 m" ^: }. @' v
SetJobLevel( nLevel, nJob );
9 ~/ t f" U9 b: \5 I: E2 Z m_nDeathLevel = nLevel;
$ [) w4 {6 U3 y/ |: e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 ? n- P e) ]/ T! j
if(IsMaster())
1 ?8 r& s/ Z. F {
) @( S: O/ s; I int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. E) A5 L, d4 f3 _# l" p if( nLevel > 59 && nLevel < 72 )2 R3 [. b$ o+ C b9 z! O6 @
dwTmpSkLevel = 1;3 s( |6 [9 w" X2 y
else if( nLevel > 71 && nLevel < 84 )
; H- N+ M: n/ T3 c; |7 i H& u% j dwTmpSkLevel = 2;( s+ j0 v4 b% B! m& i! @
else if( nLevel > 83 && nLevel < 96 )
) C1 B6 ~; M( b8 J4 B dwTmpSkLevel = 3;
4 s' H$ l9 A; H else if( nLevel > 95 && nLevel < 108 )
) z: w( C" B. }! `( R D$ v7 Z' d dwTmpSkLevel = 4;
0 X% ^% Z t. A+ _3 j else if( nLevel > 107 && nLevel < 120 )
0 v/ h; L& ~6 J | dwTmpSkLevel = 5;
) ]+ j( e4 M9 B- \( N for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' g/ m" k3 Y n5 o" x( [
{
d$ ~) d* v. {$ d5 I7 Z: J LPSKILL lpSkill = &(m_aJobSkill);
* a- ]: d% Y0 U' g if( lpSkill && lpSkill->dwSkill != NULL_ID )
: L- h9 {7 ^7 t* z1 c( d1 o+ G {
! `5 U9 ]6 X3 m5 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - i+ e6 m2 I* @9 ]+ b
if( pSkillProp == NULL )9 }4 C7 Z) V4 x. N( Z
continue;7 ^) N+ I+ K: ~6 i( E0 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ `! y+ S2 y) M continue;* r5 K; } m" V& m
lpSkill->dwLevel = dwTmpSkLevel;
* o& K8 N/ W& a0 E: ~ }
9 t! [5 x: _+ H/ [/ @3 u+ f }0 q8 \% `* z0 g" A O9 ]
}
3 Y7 {; X& H0 p else if(IsHero())
6 l0 r+ u& B" W {
$ f/ x0 C9 D4 F5 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 j3 L8 b% L: Q9 D# E) s8 e+ `
{ 1 S+ R! Y# x& n* U+ |2 o3 ?& \
LPSKILL lpSkill = &(m_aJobSkill);& Q, \ f( r9 q4 p+ u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ \% p) b; w; h/ m { }: {9 S# M/ r; [6 f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! G3 s2 w" ]% _
if( pSkillProp == NULL )
! Q( i- x: G2 s continue;
j/ N% Q: {, j$ r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% y$ r. ~" V# H J. f8 y7 b
continue;
9 A& n5 t& z8 H9 U' `- P lpSkill->dwLevel = 5;: l* F4 w9 O/ J2 ]# a* U
}& k+ p: n. l/ s) M. t5 x
}+ a' K8 C7 Z! f3 @0 O" ~4 w
}
3 X$ K7 D5 p# U. A- [* z2 g3 S else if(IsLegendHero())
6 A- F6 W- f' }# M {3 }; R' @0 g# X. E* {5 L" h: U& s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# Q0 ]+ W$ ?3 G" s: q: _ { , L9 [9 d( V8 {3 J# v0 @0 z
LPSKILL lpSkill = &(m_aJobSkill);
j% v, h ^8 U( X4 r! I6 j& p' { if( lpSkill && lpSkill->dwSkill != NULL_ID ). l. a% P8 \: `, x9 J7 v
{
* p7 @* t" W3 n" o: ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, I; {1 X8 _6 K if( pSkillProp == NULL )
. _, d T5 C; C4 c* a: z8 p# t continue;" E- x& i K `: S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ f9 R t& Q; Y! Z5 K
continue; ~0 z: w$ d+ [1 P! V8 X$ ]; }
lpSkill->dwLevel = 5;& }; K# b. h, G0 F+ f$ A. V, A
}
p3 t W: i/ W4 U }
7 P3 r o4 y9 ]( [ }- V, n y8 q' R: T9 V9 N' y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 q( p/ i8 w. |, I: r
if( bGamma )2 {3 A( f' |3 |9 L: p, Z
{6 W/ Q6 S% ?2 }% a
m_nExp1 = 0;
2 N) u U& i0 E; f4 E }" j' Y8 v& Q# A+ i
3 ~5 G& z: Y: N( i ( (CUser*)this )->AddSetChangeJob( nJob );
5 j2 N# d% Z# y& S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ r( Y$ l" T' Y' w* O6 I P/ c/ B7 }1 E8 W/ A! X
]: O9 T: x8 |#if __VER >= 11 // __SYS_PLAYER_DATA
0 G0 f0 {4 H0 r# N' c/ B g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- i" d+ E- D* C4 c3 T6 O
#else // __SYS_PLAYER_DATA
7 i& a2 Z! V, h7 v& m0 G, t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 v& N8 X3 g; i9 R! V8 e
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. O! A; X& r, M# T( S
if( m_idGuild != 0 )
; W1 p+ |' w0 @4 X5 j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* F7 v% D! Z1 g( L0 M#endif // __SYS_PLAYER_DATA9 O V. B0 p) }- @& m- [& f: Q
SetHitPoint( GetMaxHitPoint() );
$ K. U' Q' i1 x. a4 O* K$ | SetManaPoint( GetMaxManaPoint() );
) ?( \% @3 V7 Y g- b% P SetFatiguePoint( GetMaxFatiguePoint() );2 {0 i3 Z) F( Y2 t" w
if( nJob >= 1 && nJob <= 4 )
/ R: t* _: E. \! c2 ~5 O {
1 c# k4 |5 s0 i m_nStr = m_nSta = m_nDex = m_nInt = 15;- t& G% g) N7 U) }. K5 F7 p6 m
m_nRemainGP = 28;3 ?- @! @- p' S X/ |
}
7 ^! `& G; x7 y; i8 E# m+ }3 d8 l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; S1 L! O9 g, T9 p/ d$ C {
* o" g+ z+ @+ G$ i; |3 P m_nRemainGP = 118;& H1 M" y7 }) E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 X9 ~" Z7 I1 Z, H' f m_nStr = m_nSta = m_nDex = m_nInt = 15;
% ]: v$ g* C( ~4 l }
) y* r- H- ]! B+ K) y( P if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. t' u( {0 O' J' O {/ _+ ~* d+ [5 L" r& }1 d. w
CItemElem itemelem;
$ S4 W) ]: T) d9 E1 Z1 X7 Q itemelem.m_nItemNum = 1;
% {0 V) y1 ?; E. e itemelem.m_bCharged = TRUE; t5 ^+ R% y1 F% W0 \
BYTE nID;3 S0 q/ v0 N- l9 f8 }2 N$ g
4 S/ K" s: s0 U; b3 v/ C \% \9 [' V
if( nJob == JOB_MENTALIST_HERO )' N/ ^3 O/ D9 W- S* b9 X/ K
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% G! Q/ d6 {6 K# T* `: u if( nJob == JOB_FORCEMASTER_HERO )2 V' L( J/ P& @8 G# }" U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 C8 [. I. B) {( ~: ?/ b2 h
9 M1 K1 ]& o0 v1 e5 r9 T ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 p9 N* N' v+ ~; s
}/ r- F M! e: Z4 d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
D. c. ~. Z4 k ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' Y4 B4 @1 |' {8 b% S% r' r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 ~. O8 x U S6 Q, o' j) T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
_2 M- a/ U/ C" g( P0 F ( (CUser*)this )->AddTaskBar();*/0 m4 b4 W1 i. R) ^9 ]4 K. o3 V$ H, w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 O6 ?+ D7 m$ A& f% M" I+ p) t2 V [2 ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ Z' Z3 T) a/ g- J& ?2 t
((CUser*)this)->CheckHonorStat();
$ i9 m8 _" G) x. k5 Q ((CUser*)this)->AddHonorListAck();
! N" J8 [+ k. |. D: l+ j t g_UserMng.AddHonorTitleChange( this, m_nHonor);
! J- B* m; R7 ?. ^# Y# s2 t* {+ A0 K. `#endif // __HONORABLE_TITLE // ′Tà?
q. E. k0 Z, [5 } }
! s$ N5 Q( J* `5 ^#endif // __WORLDSERVER1 d& c1 Z: V1 }( N8 P% m
} - o7 q; [) R/ c/ X
; G2 y6 g3 s- M. n) [" ]) Y/ j4 Q) x然后你进入functextcmd.cpp并添加以下2 f4 _6 m+ Z, l' u# F
3 u8 h- m, K) `代码:
7 ^* s5 n4 }- ?9 i- WON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# x% U! H4 J6 E; G v* {4 j; i下面插入. F$ q4 p0 b! H1 B: i% w
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& p/ M( \; c: W$ q" ?* T. r8 F. K4 s
然后你去
* H' N0 | U b% U3 Y D/ F2 o7 p' ?- R
代码:$ v% c% ~, a( \. y8 N
代码
, @) g# |& q ^ x: A2 oBOOL TextCmd_ClearPropose( CScanner & s )4 d4 E8 y. t1 Q7 x+ ?
{, J' E, W G+ W4 i
#ifdef __WORLDSERVER) e8 ~( q; V' \/ ^
CUser* pUser = (CUser*)s.dwValue;8 f6 q5 H: P( e z& Z
g_dpDBClient.SendClearPropose();
. _: p# f }" M; K+ q y& L#endif // __WORLDSERVER# d) N! i5 Z6 T- r# l5 H
return TRUE;
% U) V% m4 Y* }1 s9 @7 N# ]" v& z}
1 @* e7 ^0 f8 R7 S' E下面插入$ X; R: o) N! Q, K8 l
BOOL TextCmd_rebirth( CScanner& scanner )* R3 O& L# c( k4 H& t( \' ?% E
{+ z6 d4 T* U$ [
#ifdef __WORLDSERVER
0 v& p/ z! n- MCUser *pUser;2 g! v9 v5 S8 M2 q! p
pUser = (CUser*)scanner.dwValue;
5 Z8 s# U" N, N* Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ x; W% H/ K" |
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
V3 f: s. u& k/ A0 c' delse
# W' T! P+ X( @$ ]7 UpUser->AddText("你还未达到重生条件!");8 I4 w. h1 j; P5 C2 K
#endif
/ U4 @' u% B1 u# A8 `# p7 Creturn TRUE;
6 m6 t/ N0 k& ^3 A6 N. H* e5 A}
, w# L* ]; T) o7 G1 d& Q$ g3 F u' \6 m7 L ?' W- ^& c
. r4 x& Z3 Z/ J+ A: c
' ~5 N! ?( I T0 u1 P- \, Z- |3 L
|
|