|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& A9 ~" b, b, n, I$ b/ M" E7 G# [! A3 o/ u
Mover.h$ d- @5 a: Y) v' _" q( m
代码:
: r8 q0 y5 X4 t Q2 f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) @2 V9 J9 _ N2 g$ T2 j
4 I6 }0 e. }# l$ \/ N: [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 j2 L3 u# @- a2 B# R+ e% q) ~
& H+ `/ C* L3 i; C8 ^8 |然后你去mover.cpp添加
E7 L- C6 |; y% g1 |& y0 L5 ?) N3 t
代码:+ ^# L; k; [! V9 U; a) j7 X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 J/ w/ G4 d8 h% F
{
+ |) E: w* n' T0 ]8 v- e#ifdef __WORLDSERVER
& a2 f' ?% B5 |1 t: R2 t // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" l3 ]4 ^) M. v' Q( Z MoverProp* pProp = GetProp();
9 v+ A9 A' Q9 ]# S7 w if( pProp )
3 l8 B# F: K. i6 ~6 h: n {
8 {+ T- V0 w' K$ { if( nJob > 0 && nJob < MAX_LEGEND_HERO )' u7 R" V6 P& Z8 j `
{7 F3 l6 o2 S7 E$ Z3 }
AddChangeJob( nJob );
& @$ B ] B9 Z i: W1 g }else{
0 n8 k) c, y; Q0 I return;; B# v" S& R8 e) Q6 _! `9 \* B
}
8 `! C7 N C3 |0 Q5 q0 h% e int nPoint = 0;
3 U Q r% k* P/ G* O6 r3 ^ if( m_nJob == JOB_MERCENARY )
# Q' S/ Q F$ |: e; b nPoint += 40;
t/ _9 C% x2 W* { else if( m_nJob == JOB_ACROBAT )! C5 c. |/ Q: W- [
nPoint += 50;, i) i# v7 M# F: `. C- n$ i! P; T
else if( m_nJob == JOB_ASSIST )# p2 \; n8 f* M
nPoint += 60;! j5 K9 K8 A+ p* X1 k
else if( m_nJob == JOB_MAGICIAN )
- w; c( {: _- G8 E* r, `" U2 p nPoint += 90;" b9 s* s& `* ~! o4 H) x% @
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 ? `, [ G: H! t& J$ y3 t( p5 \( t
nPoint += 120;
: G4 Q4 T7 L5 |1 ~7 i: X) f* t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )6 s9 Q/ q" ~/ Q
nPoint += 150;$ N+ N6 Q' \& D2 @7 r
else if( m_nJob == JOB_RINGMASTER )1 f5 ^. u! V1 w( ~9 T& z+ V, j8 P: B5 U
nPoint += 160;1 D; B: _( I. T9 Q: }; o
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 a) a+ |* [0 m* d
nPoint += 180;
: E+ Y2 Y# y' I% B0 m/ F+ X! n else if( m_nJob == JOB_ELEMENTOR )
" u3 D/ r, g @+ Y2 u/ L& c& O6 ^- V nPoint += 390;9 X5 D9 I4 \3 W/ [1 L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 d! a3 ]2 i7 P1 P* m
nPoint += 120;8 ?( m( C; \- n; W+ Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ ], E5 l- y" }: T nPoint += 150;+ [8 k+ S6 F! i- J# k' H' `) |
else if( nJob == JOB_FLORIST_HERO )8 G2 f2 W# k) l2 _) ^, I
nPoint += 160;' l8 a/ k; U3 b- F% e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, L* |8 U9 h, u3 j$ M( F nPoint += 180;6 L5 A8 c" i4 O- V c. T
else if( nJob == JOB_ELEMENTORLORD_HERO )
# S" s: I9 L3 G' C+ w nPoint += 390;
4 | X$ V9 B; X
( u7 X+ K1 B: N! J2 G Z AddSkillPoint( nPoint );. }0 l$ F6 E x0 @" Z: K
m_nLevel = nLevel;7 C# k$ ~( W" \9 N* b/ v1 x
# r0 b) M/ ?, Y; y; V9 P SetJobLevel( nLevel, nJob );8 G5 N9 p% D5 E* V) Q' a( C3 z' Z8 [- S
m_nDeathLevel = nLevel;2 O$ n& \. G( ?0 D5 a" f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& C( L) X% P2 _# _5 I0 ^
if(IsMaster())* `$ O3 g/ Z. H" i: `0 ]
{1 M' ]7 P+ c3 v8 J) `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# \/ T. u9 F3 R6 t9 M
if( nLevel > 59 && nLevel < 72 )
$ P7 [5 B. G8 b) N* u/ k- v4 y dwTmpSkLevel = 1;
) Q" V3 f9 }) Y. F2 w else if( nLevel > 71 && nLevel < 84 )( p7 n2 M7 [/ D" b
dwTmpSkLevel = 2;
. G5 K0 N. B0 \% E else if( nLevel > 83 && nLevel < 96 )
; z j! c0 B; O9 f8 s; E1 K; C- j dwTmpSkLevel = 3;5 |! u7 f7 e( f7 ]0 W \* f
else if( nLevel > 95 && nLevel < 108 )/ p0 @$ h n$ L
dwTmpSkLevel = 4;& p0 @# O/ J- I; F/ P3 u
else if( nLevel > 107 && nLevel < 120 ). M7 N$ {( p9 d6 m2 P
dwTmpSkLevel = 5;" N9 d4 b8 T. L" h1 a; W9 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . y; J: V* f9 E9 a2 F# ?8 T8 \
{
3 m! U1 C2 o' a' ~ LPSKILL lpSkill = &(m_aJobSkill);/ [5 ?3 c/ t9 b1 p1 ]
if( lpSkill && lpSkill->dwSkill != NULL_ID ) x R; d+ d# v8 u9 k' ^( o
{
" f8 C: D9 R# G& d) `$ C ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . B; o$ J( Q1 V7 U) I1 ~
if( pSkillProp == NULL )( g) q6 b t( U- x
continue;: V4 C0 W( Q# P+ f& U5 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! M# f" ]; ^7 R& I5 N6 `% n$ e% H continue;
- L0 `, i8 d6 R$ q lpSkill->dwLevel = dwTmpSkLevel;8 g9 J; O$ m0 D9 W
}7 B/ b- S( ~( W0 R
}
2 a- }0 Z x0 D1 A0 q' e# D" } }
& I& D. Z8 m# j) n/ ^ else if(IsHero())
7 b5 w% ^+ g, I$ y, m {
( z2 T* I) |! m+ ]2 Z5 b for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 P4 h& R5 b8 [
{
7 z/ y5 H: G- P7 Q; y% Q" z5 ? LPSKILL lpSkill = &(m_aJobSkill);5 E1 M$ u2 x( \& d! w
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 R3 `+ W' M7 g! {/ V {
6 X: k) o0 f0 M/ s+ a, }7 w% _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# \ {; L( ]8 R- W: a if( pSkillProp == NULL )
/ ^6 V: I( i; X% D o8 I continue;
/ U3 L$ s( f+ h6 t' O2 P) ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: ^6 {& q! h& |) M r- _: `* ?6 A continue;" e" R. z6 d0 M/ p3 @+ Z% X
lpSkill->dwLevel = 5;
9 X* b4 ^$ S7 f v/ W2 m$ o2 u }+ f% i6 B0 p* e- ?
}
3 F/ Y/ ~" i+ N0 p" Y }' p7 w- I& `, Y& Q: B" e
else if(IsLegendHero())! S0 G! s' N/ a& W" X% t0 Q
{
4 j- R8 }* z. H- d. N: `( o for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ t+ U: x* J& {! O5 E { % G8 x _* e! ?/ b
LPSKILL lpSkill = &(m_aJobSkill); `) Y0 L, r! e& X9 B4 A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' c3 M7 k" Y' J# [/ Y" Y {
+ z- C( ^3 U! a8 j& h+ q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
^9 m& T4 L0 H* D' ^ if( pSkillProp == NULL )& w+ R5 N$ X7 R1 T9 k2 C
continue;: A, X1 T- B9 d! m1 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) x8 H" q8 a( y3 J' A# S- X
continue;/ w! l* C2 X+ r% U
lpSkill->dwLevel = 5;; l! p$ [5 m* g; H6 @& h
}6 f# V3 q% e% I6 `5 I; |7 a
}% a$ q0 W& _' f3 R" V9 T
}
0 Q4 D) [, Y; P/ U# u7 _) {" h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 {, c( o$ d% Q; g, {* h
if( bGamma )% ?" Y4 j$ k9 o) x& G$ E
{. s- z& |. N) a9 |$ W- w
m_nExp1 = 0;* T7 p' G3 B& M: X
}2 u# ]; J7 V- i4 j
* y# Z( k7 E- u9 ~+ ]
( (CUser*)this )->AddSetChangeJob( nJob );+ B' L# j( d0 ^6 z3 h. k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] ); Q; Q7 X, R1 e5 i
4 s- I7 |- o# ^
! y+ s6 `4 ?' U#if __VER >= 11 // __SYS_PLAYER_DATA8 ]$ ^/ o4 Z- O( t* x t% W* d
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( c: m8 @% R/ _0 M$ y- e V& o1 T
#else // __SYS_PLAYER_DATA5 `/ l' x7 \) s1 V b) ]4 P
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 ]# z/ Y1 |3 q- E6 T* E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );4 [9 N4 L$ e4 z3 J4 `9 b
if( m_idGuild != 0 )- ^4 q/ t% b( R+ g2 k( u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% c7 s& V* t, R [/ g#endif // __SYS_PLAYER_DATA
; _+ O+ k5 Z2 a7 e' ] SetHitPoint( GetMaxHitPoint() );
5 q2 I, u* i; T, G, s2 R5 y SetManaPoint( GetMaxManaPoint() );( `$ r+ E' N+ C" \
SetFatiguePoint( GetMaxFatiguePoint() );: H& [# \+ K- l. F$ b' d; L/ ^
if( nJob >= 1 && nJob <= 4 ); e& C2 g3 t5 u# n
{5 \; R4 u5 W) \: s6 h9 ]
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ `! g- V% z5 a \! ^6 ^5 y/ d' S8 w
m_nRemainGP = 28;3 u* W- }$ b& ?- n0 p& j, l% T# K! U
}1 ]5 d1 H: Q8 |8 N6 H- A
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): D5 s8 i* G! q& r% E: V% Z
{* X! V. p* L$ l5 Y% Z
m_nRemainGP = 118;4 H$ F6 [) B1 U! S6 c4 L6 G2 M
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! f4 \- r! C7 K! M& F! F m_nStr = m_nSta = m_nDex = m_nInt = 15;7 X3 l5 v' A) e! j3 q. q
}- j( O. c9 p2 P: p' i& I. w2 |* K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), b6 ?% [- V+ @* u- V5 n
{8 B4 [2 T. q% W4 s! M$ s) C# k
CItemElem itemelem;
% G% V5 t8 g; H- K5 z$ i itemelem.m_nItemNum = 1;/ h3 R$ T8 z' U6 M+ \) K
itemelem.m_bCharged = TRUE;. J; n- u" U$ M. W; O9 O. ?7 b+ m( R
BYTE nID;
7 e0 J5 D# I: ~' L
( Y) n" s4 ]0 M if( nJob == JOB_MENTALIST_HERO )3 k# k! V# C: i0 O. v" m7 o0 d
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, Z3 Q3 ]3 p* P* ~9 F# I if( nJob == JOB_FORCEMASTER_HERO )
- [( J8 h: O% d! o% B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;# u. b% _7 t3 @6 @( O+ b
+ X7 k# @* k9 P6 ~* c
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 O0 k, }6 T" f/ Z! \3 V4 I" h8 P
}
- ?2 }% _" k" G0 g" \$ C ~& e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 z- i& @' F) B8 j1 a/ N; t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); N/ n. |0 F, N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
8 v e1 ~: s% c& e /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, w8 Y% r: O4 D0 q. `4 f
( (CUser*)this )->AddTaskBar();*/- p' s8 Z2 Z# {) P4 j
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 L T" k& ^: Q6 y4 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; [' q) w+ ?" a- ]4 J& Z6 v
((CUser*)this)->CheckHonorStat();
$ T) C! r5 [. L$ U* p- q' d ((CUser*)this)->AddHonorListAck();
3 H! P. {# u* f g_UserMng.AddHonorTitleChange( this, m_nHonor);& _( F" h* i8 v
#endif // __HONORABLE_TITLE // ′Tà?- q, W. B: s0 y$ w, l- o- [9 p
}
/ _4 `# l% O' p9 ~ w, ?3 P#endif // __WORLDSERVER4 l' n9 p0 `. n- d% ^ o
} , N$ X0 r5 c/ C# g3 b: U
6 n: D e/ D' o) S" ?3 P; x v* @然后你进入functextcmd.cpp并添加以下
$ s$ {4 p% _/ ~5 R* ^" H2 C, A' l' u$ M, M; ^( }1 K
代码:( P8 h% }( P( M# J6 k; A% \9 b
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! Y# [" H- k2 x8 z h, L- x' O# u4 N
下面插入
' g) f0 D* r& P2 F$ TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 l) N0 {/ h+ s' M
0 i4 t9 U W3 W0 a2 Z, K. j) ]然后你去
8 F6 c( t% A5 ]- O" I# a& P8 E( i
' T+ y6 ^/ B M代码:
/ O% v ^$ D% ]代码
% D6 c! F6 `% f1 {+ P2 n4 Z gBOOL TextCmd_ClearPropose( CScanner & s )- x R4 @3 m/ y' Z/ _+ @/ O7 R
{$ v' v, `$ G2 l
#ifdef __WORLDSERVER; z& @$ L- g' }, K, R+ ?9 Q
CUser* pUser = (CUser*)s.dwValue;
6 s0 L! `! X+ w% D& G9 \6 Y( { g_dpDBClient.SendClearPropose();2 X3 P& j" w8 ^' H2 j D
#endif // __WORLDSERVER
) [; W/ S: ?7 i$ u2 C) Q& c$ h return TRUE;
! j( K" i( F7 I( O( M( A" L}
5 J. M+ T9 t6 x1 Y" _ {/ N, U& K' B. K下面插入5 f$ f( v6 {# @( y3 J$ b& d' H& _2 R
BOOL TextCmd_rebirth( CScanner& scanner )
6 _; [5 O. k4 L" T* q{
% d- m$ ]/ \9 h# T#ifdef __WORLDSERVER9 f' ^0 ?3 F9 S: k. b1 ^$ d
CUser *pUser;
: z6 f0 o% t5 r; P" fpUser = (CUser*)scanner.dwValue;
" G) x5 o# h @4 w* T1 ^if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())2 i3 X# o+ k9 J. Y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 w- {0 o2 O0 t+ a, Delse( [3 a% r u8 Q- P) Z7 F
pUser->AddText("你还未达到重生条件!");+ a+ a( k+ c, w! M0 P$ l$ b( c
#endif
) h0 s+ V5 o( k! c5 B [return TRUE;7 Z" c+ u7 g5 L! l3 d
} $ y O t N% Z6 x% y9 F( v
, y6 h! \. U* t G6 F t7 h1 i, e1 N% i v" ^4 O- H. z; X
, D e3 U3 R+ o5 W5 i8 i# N2 ~- u
5 W% K2 P/ E) Q. W5 a; V- w |
|