|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 {0 a4 o% u O/ g6 | i
6 {+ }4 i8 T) C$ @! {Mover.h$ q& n3 [$ M' s3 }/ @' W
代码:
+ K+ H% G0 h/ X0 a找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# ?& x1 h0 {: ~; t$ U; M
2 A& W, m$ o) ^0 e& [5 x下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! m! K1 P: Z2 O8 q0 L" `, x, `
2 q4 u% r9 d$ S8 I0 C1 v. Z4 ]0 r然后你去mover.cpp添加
' K! Z: S$ {8 c6 F+ t4 ^5 w! W% ^; I! |7 t
0 G/ A3 Q0 `7 Z% N" Y代码:+ i2 T2 |. m, k( G8 T- b- Z7 i7 E6 @
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# P w r3 \- p( g* e{
$ K6 Q# t9 r3 R, x$ i6 X6 h% F#ifdef __WORLDSERVER
9 P) t# \) N. x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% v6 O% a* ?" F
MoverProp* pProp = GetProp();/ K9 ~' u9 s8 T2 w! y$ x6 D5 G. y
if( pProp )' J! x8 x3 o+ h% o9 l. T& y
{- ~- F2 Q4 E& B# Q5 j/ l9 R' A& \
if( nJob > 0 && nJob < MAX_LEGEND_HERO )* O/ V% T5 B" ]/ b+ O4 X
{
( j# n% P) m) X G AddChangeJob( nJob );2 k0 ?5 O- C7 k# v3 r" b
}else{
* w- J' n/ l7 e+ b return;6 ] D$ U, A7 }- P# y# A
}5 i; W) \& ?, z7 W; A3 q% L
int nPoint = 0;
5 }) D9 W8 t* x! |$ g0 _ if( m_nJob == JOB_MERCENARY )
6 t9 C# h- E, _& ~+ M- I nPoint += 40;0 x6 p! n" _2 N" k* Q
else if( m_nJob == JOB_ACROBAT )% O# f1 Y9 [8 i Y
nPoint += 50; d2 V! Q& p3 |) D
else if( m_nJob == JOB_ASSIST )4 [; n9 k& B- m7 L( H- K3 q
nPoint += 60;% K4 d4 k8 H; I/ \3 f) c
else if( m_nJob == JOB_MAGICIAN )* `& V: q$ ~; q
nPoint += 90;
: S. `( A, a# c) l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ P H- J# v6 D, r nPoint += 120;
/ O* K1 o; X9 r# M3 l) X else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 k& F5 a: _ A/ }$ L9 E
nPoint += 150;
, l- L0 J& P7 o( m$ |+ W else if( m_nJob == JOB_RINGMASTER )$ I4 v9 M9 M9 m8 M3 p4 S
nPoint += 160;
& |7 W# m; B( P( R2 B( l$ M& M2 u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; U+ v& X7 Y/ E8 l% [9 _ nPoint += 180;4 w k/ I5 O+ Q5 R' C) H! ?7 f
else if( m_nJob == JOB_ELEMENTOR )) ?) V& E* r+ }. H5 S/ A# ]
nPoint += 390;
6 o' w( e5 S7 K* q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 r: h: V0 K+ F" Y/ t
nPoint += 120;
* v/ C- k x: G9 H; A4 `6 z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): s% p% F& u% r6 Z+ W
nPoint += 150;
, C$ E* ]& {7 } y( f/ f% l, _ else if( nJob == JOB_FLORIST_HERO )
5 \. @ P3 Z1 ^ nPoint += 160;9 u q j8 ^6 W' x2 W' A
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! I0 z- ?% l8 ^1 C* ~9 }. [$ J nPoint += 180;
, x9 L! [7 A, V' q% B* ^- P3 H8 @1 Z else if( nJob == JOB_ELEMENTORLORD_HERO )
. X" u5 u' N- H nPoint += 390;
' ^% ?6 \! @0 {% v
1 e1 y2 V$ U$ O9 _7 z& F AddSkillPoint( nPoint );8 q3 g7 ^* g6 z
m_nLevel = nLevel;6 E3 ~- y4 m3 n q g& m
6 [5 P% C) b! Z, V1 r
SetJobLevel( nLevel, nJob );
J$ g$ x1 I5 A m_nDeathLevel = nLevel;
6 y+ b( h% f9 H( p' C2 |, y3 g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) t. v4 M: R& f# d( g
if(IsMaster())# G6 G2 h3 d, M( @3 c
{
2 d3 [& p& b8 b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ T+ X, ~/ k& t if( nLevel > 59 && nLevel < 72 )% W( z. f0 V# Y: T- L& M x5 I
dwTmpSkLevel = 1;( K+ F0 \* R$ u4 {- Z/ n
else if( nLevel > 71 && nLevel < 84 )
" o3 \9 |' Y+ ]+ C0 j dwTmpSkLevel = 2;1 H: Q2 u- H5 O8 [7 F$ c' S
else if( nLevel > 83 && nLevel < 96 )* X9 Y5 o: q; D c7 A; Y
dwTmpSkLevel = 3;
- ]( Z1 K3 G7 } else if( nLevel > 95 && nLevel < 108 )3 ^, c1 M8 X( `% u9 @8 ~3 A- ~$ N9 m
dwTmpSkLevel = 4;
' Z) ^* D2 J7 l# ~ else if( nLevel > 107 && nLevel < 120 )1 P) o. s; ~; ]( G8 L
dwTmpSkLevel = 5;% D' N$ s( ~% i: B, N
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% ] j; [ r' x+ H& V { ; {! Q6 g" ^3 {/ _
LPSKILL lpSkill = &(m_aJobSkill);
* A! l `5 {" g- l6 P( k2 T" T. Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
, n# }; }& P5 B" ^5 i {) V) u4 U' R7 |) ^9 w" |$ V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + h6 J2 \2 ^/ X% W7 \
if( pSkillProp == NULL ): `8 B! B. u$ D! s5 ]' t
continue;
% P3 U4 t+ s$ h' k* t: n" r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; b# g5 q& |+ A continue;" P" Z; y z1 n2 g% W" x! f: D! Z
lpSkill->dwLevel = dwTmpSkLevel;0 d8 A. W, B' Z/ i) f7 U6 y# N! [3 ~" Q
}
8 J: x5 W+ g8 M2 V$ A0 n }
3 p' V9 X& r: A& h }& W8 |" d5 U: ]4 P$ s! {
else if(IsHero())
i6 ?) R. `2 J/ V! U {
- |' A, v X( X$ h for( int i = 0; i < MAX_SKILL_JOB; i++ ) & G7 F* J) q3 H1 R
{ # ~/ H- Y) d* U9 F7 [! {+ w
LPSKILL lpSkill = &(m_aJobSkill);
( z( j; ^, t$ A2 C if( lpSkill && lpSkill->dwSkill != NULL_ID )( |9 Y$ m3 |5 J! v
{0 B# f. y+ V- t" c* t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 w- a3 l6 S8 p4 Z+ N6 S
if( pSkillProp == NULL )0 ]! j% M" W2 {! O+ ?: ^5 z/ x
continue;* r6 d/ m0 C2 ?; ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! ?, Q D" S: _6 K: u; O
continue;9 V6 M9 `7 G% {& g% n, j
lpSkill->dwLevel = 5;
* C8 i N" |8 s6 a W7 W$ ? }
2 p6 V# R2 K/ z) q; O! R }
; W3 P- H4 _5 |% t" Y% F }
! ~ `' p# G% {, y else if(IsLegendHero())) e* {3 c% @/ i8 K. A9 q3 F# q
{8 D' ~/ [; L* x+ @; J% `" s
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' O) r& B* J+ Q { . I) i' q( }3 F- k4 m6 C. ~
LPSKILL lpSkill = &(m_aJobSkill);
4 ]* v- @- P x7 M, @0 [: n if( lpSkill && lpSkill->dwSkill != NULL_ID )* Q N' A a/ l% p
{
/ b- d E& S o7 Y7 U4 }/ d0 h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 {, f% r( l; z/ a) C# S( G
if( pSkillProp == NULL )) M8 b, R$ M( [0 N
continue;! c3 a9 L% b8 w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 v9 ]8 a q7 x4 Z% l' ?
continue;
+ ^7 t5 v& ~) j5 O* M lpSkill->dwLevel = 5;
% ?/ S- o r0 d9 v }
( h5 u! N+ @/ z }& u, T6 B1 C! K( F5 M* B
}
. v7 ~. Y% V# b2 P#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% G0 v! x9 ?* ]5 b if( bGamma )' a8 u ~* l+ S5 l" _2 q4 d
{
* ?7 f8 j1 D$ R* S' e m_nExp1 = 0;& n$ C+ o8 ^+ V$ D) ~. {
}4 P0 p( q6 I# @& H# @; e4 }( R
* o# h* W" @! s' q4 }
( (CUser*)this )->AddSetChangeJob( nJob );
8 r7 B, w F5 s" N. ~* |5 y g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' n. I+ n, V' P& y3 k$ i$ M0 ^; R$ K# f8 H
) ?$ b( K: B& A+ B0 ?% ^' x
#if __VER >= 11 // __SYS_PLAYER_DATA
7 u& j8 d, x1 G+ h9 Q6 ~ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 ]: x9 y9 o6 [! _+ c1 H" I4 @
#else // __SYS_PLAYER_DATA* b, Z `, L( C- o$ G( k: J. e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 o; q. }) \. z" t6 R0 c
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );) J& f1 y8 b5 ]& c3 t( s8 s
if( m_idGuild != 0 )
. k1 V$ ~% ~+ x2 S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 C8 Y$ v8 V" ?; z. I, U
#endif // __SYS_PLAYER_DATA; f2 g' Q0 u' K( y q+ X: Z% K2 n
SetHitPoint( GetMaxHitPoint() );
9 b1 ^$ r3 l4 b2 r' h# A SetManaPoint( GetMaxManaPoint() );
: E/ q. h3 e7 j: `+ _* s7 g9 F SetFatiguePoint( GetMaxFatiguePoint() );
9 s. F: f; O7 {7 v5 C" a if( nJob >= 1 && nJob <= 4 )( z) x% I8 b- U; }: ?0 v/ M
{
# I+ }3 K0 N3 s/ }: h m_nStr = m_nSta = m_nDex = m_nInt = 15;7 r A* O* `, I3 M6 N+ B' G8 I
m_nRemainGP = 28;# ~, \$ J( P5 R6 U
}& u6 T4 e3 c; o$ H8 n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# e) K( r8 ~7 \0 v. N
{4 z3 b2 }; P" I, }5 z! g/ T
m_nRemainGP = 118;$ y( o; r# s5 Y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- y+ H! x Y7 T0 M# E( O m_nStr = m_nSta = m_nDex = m_nInt = 15;; |# n% ]. V, ~9 m3 E' J
}
6 [5 J+ X( u+ A, J4 @ } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 ^! F" _9 F) `5 h3 R. }' B; t4 \
{
% v2 ?5 Q1 p* r1 e6 h- _ CItemElem itemelem;
* I9 D. p0 j7 h4 f/ i X itemelem.m_nItemNum = 1;6 E2 W2 x1 z. d/ C
itemelem.m_bCharged = TRUE;
1 j' k& a, L! ] v+ j9 b/ ? BYTE nID;
4 r* P, D% i& J3 C9 m& \
, e* u! s/ A# C9 g2 w5 s7 i' ~ if( nJob == JOB_MENTALIST_HERO )
8 ]8 y6 T; D1 R itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ F& Z0 _7 O7 X! J$ [& _5 _ if( nJob == JOB_FORCEMASTER_HERO ), w- ^# {" s5 ?, E2 R% G; R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 o' r/ A/ s' Q1 ~
- y; S: W1 C/ J$ p( U0 g4 H
( ( CUser*)this)->CreateItem( &itemelem, &nID ); n$ ?3 t- z) E! h
}5 o( @* b/ b2 t( [0 E4 y9 ?
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 U; S; o: j5 U/ d
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 C- G9 o2 _, g, k
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 R& v% G: U |: u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 V) C+ v' q0 y6 n, {2 v ( (CUser*)this )->AddTaskBar();*/
' I) N1 V, l; j7 L" u% v4 u ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ w; K9 u2 n2 @' C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 K3 A ?9 ]7 D* F" R3 Z2 h
((CUser*)this)->CheckHonorStat();* f5 X3 p7 l! N R1 E/ g& y, B
((CUser*)this)->AddHonorListAck();) |8 m- V' \6 ^; D- L7 w$ a
g_UserMng.AddHonorTitleChange( this, m_nHonor);, k3 z1 f& c* u% a
#endif // __HONORABLE_TITLE // ′Tà?
3 f- f8 L$ P0 ~ P% G$ k }
5 S6 P8 {+ g1 D; j1 g9 w#endif // __WORLDSERVER
8 ~- f s: R! @: e) m! @! D5 K}
5 y6 O, O0 @. D: d/ ?3 S0 Q8 {) \6 Q1 o5 r! D7 Y( k& ]
然后你进入functextcmd.cpp并添加以下1 ]1 S l7 j8 c$ p9 q# m& X# |
- I4 i3 U# h+ Z/ a/ ^
代码:
- |5 W: _' M; r' _: YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# c4 q1 \4 _1 I3 N) s下面插入2 I% J" B5 P- N7 ]8 L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* f" m! K2 C4 y* U7 ]5 B: u8 K2 Q# y: V% F9 T' w( P
然后你去
2 ?7 t# v$ |! @2 R8 j, G0 R% _
- |" M% T4 A( U8 `/ z代码:2 j9 R: d. D% Q
代码
* ~; w' c# H4 {BOOL TextCmd_ClearPropose( CScanner & s )" I/ _8 y! K& X4 R. e6 H$ z
{% ?5 r3 |8 e! E: Z7 T- Z& J$ B" [
#ifdef __WORLDSERVER
: w9 S1 @8 k9 M. S CUser* pUser = (CUser*)s.dwValue;* y- B F. B# q
g_dpDBClient.SendClearPropose();
9 W: I8 S0 E+ A4 T- Z9 y#endif // __WORLDSERVER
6 R) K; x0 i. w @4 M" |, ^' a: d return TRUE;
/ A- h% e* _' C% g- z}
! D4 X3 i* M- ~+ Q+ i下面插入
% @9 ^6 w7 T1 b1 {8 M5 F! f6 C9 J1 OBOOL TextCmd_rebirth( CScanner& scanner ). R9 \. C! t# I0 @$ b# R* {; e
{9 H: @" |: t4 I( K
#ifdef __WORLDSERVER2 Z. I. \, ^7 e- b) X8 p, i
CUser *pUser;" Q6 @ t6 w1 E
pUser = (CUser*)scanner.dwValue;9 p% M; a! f" @( i7 k
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" o9 Y+ I+ p" h& S1 U6 O' \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- F5 P' i0 P( selse# k' X9 I7 \ ~0 T( p0 p8 t5 p
pUser->AddText("你还未达到重生条件!");
& H4 u6 f3 m0 T, d$ l3 T9 p#endif
9 g7 P, M. S/ o8 N( Ireturn TRUE;
) m) u. Q% l! Y1 E" [' |* H. z5 N9 K. R} & {5 X' L( K7 s
6 k) u8 d% @+ g
8 c, B x" s9 l; l" N
3 T: e4 `& k2 ]9 k- k. e- T4 k, D
+ L( V7 d8 @! p8 c L$ \' F: u |
|