|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 _6 o' A5 P( [; k) y
0 W/ x$ x& O! MMover.h1 t/ j( y3 ]+ C+ M3 q* }6 s9 }/ x
代码:
8 `0 T- r ?! j3 W* m: u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, O# h2 G9 U! ~- B: Z3 k
' G% ]2 U" n5 I9 N% W1 }* s
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' l* @; B2 } F. t) r1 } K/ n
; P9 x3 w! q5 S, l1 Z然后你去mover.cpp添加
C( b/ z$ [9 F }5 `. K( y) [$ y9 M' N; @. o/ G
代码:: L: V8 o4 v+ x) Y' d6 Z5 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, b ^$ }2 ]1 d" I7 o{) { f- z8 {$ D4 t2 I4 k9 d( l. g
#ifdef __WORLDSERVER6 _1 S3 `, K2 m% x8 ^7 N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
2 h& w" C9 m" ?4 d MoverProp* pProp = GetProp();
) G; t% d( x# C if( pProp )/ `3 h% k* t. a7 A8 g) w' m
{
7 [, E5 w- u, R0 ^; O1 Y* | if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. g) v T3 a+ w9 ^* x {
1 W* q0 v0 h0 v# w AddChangeJob( nJob );0 ?' ]5 B m; M: d# p% m
}else{
1 b% t8 d& _; J1 b3 ?# r9 x return;$ z( d3 V' C3 E. }6 Y+ Q! `
}! \. E) R8 K/ g% l, c8 z7 w- J% o* e
int nPoint = 0;
9 W9 n! n" }/ ~ if( m_nJob == JOB_MERCENARY )$ W$ j% @8 ~- {7 b1 A- ?% u" I
nPoint += 40;
: n% C8 c$ T# ^; z7 Z1 \; a else if( m_nJob == JOB_ACROBAT )/ W [4 D2 h1 x; B
nPoint += 50;/ V T4 S7 V7 x" e4 {! R9 n: X2 {
else if( m_nJob == JOB_ASSIST )
9 e) n6 A- i1 L' z1 j nPoint += 60;
" |5 v; q/ q* S5 T [3 F4 |. R( Y else if( m_nJob == JOB_MAGICIAN ); A }/ B+ p6 Q1 N
nPoint += 90;0 V* t# ]6 q# x) Y" e( j0 W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' ?/ H; U4 O3 k* O nPoint += 120;
4 d0 o! {/ G' d7 S6 W/ O' T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 C Z5 A9 ~7 j7 d$ I
nPoint += 150;
6 H- ]& l1 b$ u$ e else if( m_nJob == JOB_RINGMASTER )
1 u, r; x8 [7 S7 U- X# U nPoint += 160;% X. P; d& M1 ^# q Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )9 {7 H" J9 x' g7 i4 r" p
nPoint += 180;
6 Y+ ]' X% Q0 }, k( b% w& I$ x else if( m_nJob == JOB_ELEMENTOR )
1 [* g& D6 I* u2 w8 h9 k nPoint += 390;* ?4 A7 }* W* j1 L5 k4 g
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; f2 l! L% |9 i0 R0 @! S; F nPoint += 120;
. W5 x& F: [# A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% g5 D& g$ Q# Z* Q4 k nPoint += 150;. P$ _/ D4 K, j# e0 o/ n
else if( nJob == JOB_FLORIST_HERO )* h8 z/ J$ M. O
nPoint += 160;, Y! r9 b1 O. b0 X# d5 t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" h1 P1 T1 }5 J) o$ L) l
nPoint += 180;
- y; ~: i: k: x8 I+ d5 z8 w5 s else if( nJob == JOB_ELEMENTORLORD_HERO )4 `/ F. Y: L, [" N3 s! X
nPoint += 390;" \5 B. m6 f& t
% s5 G( \ P5 H+ ]! [! }* e# X AddSkillPoint( nPoint );( o5 G# A; u, k: I
m_nLevel = nLevel;
; s# T" Y: \0 a/ ?6 n- s
4 [) }* C: v& C3 E SetJobLevel( nLevel, nJob );( f4 \3 E' j6 `. |2 l
m_nDeathLevel = nLevel;
) f( [6 m2 k5 k/ c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 [& W- `( C6 u% E# j3 }
if(IsMaster())) e0 V6 _& _) E& W
{
; ~& v# w& r. }9 O. L8 n int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% ? I; T, W$ i6 j5 y if( nLevel > 59 && nLevel < 72 )! y n- z5 p& z a
dwTmpSkLevel = 1;
2 f0 J0 n- B* g# H else if( nLevel > 71 && nLevel < 84 )& p2 E. \# V( h' V% i+ l3 D
dwTmpSkLevel = 2;
, \" g# v( Z/ v* L8 s! M; p! F' X else if( nLevel > 83 && nLevel < 96 ). a7 Z! l1 d m% B
dwTmpSkLevel = 3;
+ i7 M( i5 \& Z0 Y* y7 C( q else if( nLevel > 95 && nLevel < 108 )) V& [ \+ h% j: S
dwTmpSkLevel = 4;# F2 H/ S7 g5 P; ?
else if( nLevel > 107 && nLevel < 120 )7 Q! n" a% @% S% v, D% f
dwTmpSkLevel = 5;
! `" ?* V* Z$ k6 I* I! A; _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! e' Y3 f: O! d/ Y1 f0 q
{ + } Y" p1 B+ c6 a' h9 I
LPSKILL lpSkill = &(m_aJobSkill);
6 N; Q4 t; n0 }3 ]2 w! X5 T if( lpSkill && lpSkill->dwSkill != NULL_ID )5 R3 b: J; T, B2 e" \
{. n3 v N8 {, M* @" S" e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( X2 y- ~# l0 U- g: g) M6 k if( pSkillProp == NULL )
+ \$ y5 `. p% l continue;; x. y& b* H9 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& g. ?1 C7 V6 v continue;
; Y6 }' J3 e, v+ A/ h4 O lpSkill->dwLevel = dwTmpSkLevel;
0 I/ P- g6 n& h. e, Z5 e2 l9 E$ Z }0 P( p- M( L5 l% p, X: S# x
}8 `! r8 \- o9 F' b6 r$ q5 |
}
, l, _4 ~. f, \& G& A3 c# q7 v else if(IsHero())
* c# @. q7 B J9 U; ~ {
/ R; [: i1 n; Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 S% E; ?1 b: d- c( R
{ " Y5 i. v9 u% [# R' k7 u
LPSKILL lpSkill = &(m_aJobSkill);
5 ^2 C0 Q$ t" { l6 ], G if( lpSkill && lpSkill->dwSkill != NULL_ID )' R: a0 o3 ?8 B4 a+ Z/ G
{
2 h0 |; k2 g ?9 G2 c; P9 V ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( b9 v; L2 ?# D/ R' O- I, L
if( pSkillProp == NULL )
7 e" d+ T0 i8 s; C5 k5 t4 b continue;
' m3 }/ z2 r$ ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 l9 R2 Y) t1 y O6 o continue;
1 F" m+ p* u& c5 M lpSkill->dwLevel = 5;& Q* S) `6 m" B, E- C- u
}! i, r+ } |# k; F+ l8 m
}3 L7 c+ ?. o5 D `
}/ ~8 U m$ \5 u# X
else if(IsLegendHero())0 ]" d/ w- T+ e) ?
{, J3 j B p3 }5 ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' `- h% _' O3 k; c, ^1 s0 H" D
{ S% u4 u/ Q1 J" j, y% X* f
LPSKILL lpSkill = &(m_aJobSkill);; R) O |, _& S1 z8 B
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 R3 G* i3 E3 |
{
9 P* W0 m- L$ Y+ M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ F$ {& G; c0 _$ V Q if( pSkillProp == NULL )
- k8 \! ]2 L! P continue;8 @% H7 [7 Z8 T0 B' b3 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 U6 j- S8 k. p. F continue;
' u) n- C1 F/ W. Z lpSkill->dwLevel = 5;4 H7 @8 r! Z3 [$ E) d& i1 Y
}
& L7 p# I. @7 V [' i: f! B6 k }
1 ]- ]' I# @7 M2 o }
" `* B2 a( {5 E' _$ a#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" b1 B" w3 J' x
if( bGamma )
( o$ y5 t1 w* S ]+ s* V. K x {/ N" D/ j7 D( J K9 j
m_nExp1 = 0;0 M% Y9 Y8 a4 R7 |
}
% K; p! w9 C( X* j+ ^1 Y% r+ ?# T2 i' R6 h: a
( (CUser*)this )->AddSetChangeJob( nJob );
, k+ Y* C' W8 m B/ z1 H: B! B1 @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ T" v# s% u9 g
8 N+ Y7 c9 J) Y6 d% d- C7 Z! G
#if __VER >= 11 // __SYS_PLAYER_DATA
5 K8 A% M2 a; X% o& ]& o) w9 x g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 [" w8 T: k" }, ]" Y" v* U& j
#else // __SYS_PLAYER_DATA0 A! Q7 @5 a8 D L" J2 p6 H
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% R- z- ^' [: E: \- W! R: s9 { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: b1 N2 {9 o! {) k
if( m_idGuild != 0 )) A5 C$ _* _, f* W1 `; K+ K
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& ]0 w: r8 y6 z1 t: K#endif // __SYS_PLAYER_DATA( v9 p" c. B4 }, ?
SetHitPoint( GetMaxHitPoint() );! M1 B" ]* w4 p2 b( T. E; ?
SetManaPoint( GetMaxManaPoint() );; U- H3 M3 o2 ^5 H
SetFatiguePoint( GetMaxFatiguePoint() );
$ ~& A6 w8 r$ g7 h3 o; X" _, G9 M if( nJob >= 1 && nJob <= 4 )
- C2 }7 n9 c% H- r {: h9 A3 T. n" z5 p' I5 Q" v: B
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 s7 G3 {) P% r' b ?1 c6 {
m_nRemainGP = 28;
. |/ z8 B- n3 E/ [* z8 s- ~ }
0 V: F; q) O& M, B if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) Q# Z4 q# @& f
{
* M, u7 Y& D% Z* k m_nRemainGP = 118;
- l4 g% h6 w% S8 z' E! l3 S //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ V! k: d- J8 N+ g( \
m_nStr = m_nSta = m_nDex = m_nInt = 15;, Z0 [9 s- ]2 Z
}
, [0 X" h( X3 R0 l- O if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 T/ L/ a) x; o
{. S: V0 {" _7 |0 o2 l: Z2 _7 ]
CItemElem itemelem;5 L* k: I) `* s+ e: p: y9 U
itemelem.m_nItemNum = 1;0 A6 ^5 y5 a3 c: C- C y$ ~% B
itemelem.m_bCharged = TRUE;
5 P0 f! L9 _- o+ E7 x6 |) B, S S* ? BYTE nID;2 f5 U. _1 e$ W1 m- l
+ b) ]& h7 v9 D! a8 M- v- I+ t
if( nJob == JOB_MENTALIST_HERO )- n! _" h# u z& @
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! R( N4 C; k: F: }% G# v1 p4 B5 s
if( nJob == JOB_FORCEMASTER_HERO )' p7 ]' I" _ C& L( |) l" ~, s' H1 d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 N$ Q4 @& H# }6 K. R- _$ s. U" R
9 s' {$ l/ s. Z, i5 @2 _# n
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( X* \+ g, a9 E4 U, g }
& Z$ x0 a( C4 ]8 f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# {; V, L5 O4 \0 R$ ]4 N ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; B6 F2 r2 Q7 y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 `- S- T' g0 `2 y- c3 S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
u0 m9 u: D: m1 x ( (CUser*)this )->AddTaskBar();*/
% [# u& u2 Z" L; F9 } ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 M4 @$ D6 ?- e0 I* E G% l#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* G- K! `; m7 H/ J ((CUser*)this)->CheckHonorStat();
6 a- x1 O; m/ k8 J ((CUser*)this)->AddHonorListAck();
3 v$ c. c* ~) k. k g_UserMng.AddHonorTitleChange( this, m_nHonor);
* V& Q4 u) y8 h W#endif // __HONORABLE_TITLE // ′Tà?
8 b8 x. A" g/ B! B1 a: L1 P }
3 L- @6 B8 n4 R- G) I#endif // __WORLDSERVER0 w2 Y' W- B, M
}
2 m7 d$ O$ F- l- {2 [. {( t5 s+ M ~# G; ?/ O7 @# x) K
然后你进入functextcmd.cpp并添加以下
( q; F( @9 V9 @1 L, T- Z
1 `1 D' |# A6 @8 [. X- H( X$ l# t代码:
3 K- ?2 R$ _, W+ M0 v, K5 [ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) X& `* x" Z* P$ T e4 Q
下面插入
. t) j0 c3 \. O" X! }9 q' cON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 M" A8 d' ~3 i- G$ j& |
6 I9 f4 l8 A% r/ Z3 F
然后你去
- H9 h% Q' b8 j" B& h g$ C
+ z$ _6 v. ^/ o. i代码:
" S+ ^6 F- i- u+ x! Y, K* C代码
0 G" H6 v. B& m* dBOOL TextCmd_ClearPropose( CScanner & s )
1 c$ @; x% }6 i# k& j5 B/ n{
+ k v; U$ R3 H#ifdef __WORLDSERVER1 E2 N) [& }, ]% U$ \9 U: N
CUser* pUser = (CUser*)s.dwValue;
6 i4 y: R9 p, \ P g_dpDBClient.SendClearPropose();
" M) u0 b8 L) }1 |#endif // __WORLDSERVER8 \* u9 \; C( W; Y' P! u4 K$ o! D
return TRUE;
1 D/ [5 D9 ]1 {: v: M/ j2 h+ J# ^}
1 t/ Y+ }2 l# n. t w下面插入. j. C7 w R+ @2 L0 }! s
BOOL TextCmd_rebirth( CScanner& scanner )) w9 r# H# l( f1 R' K# ]
{
9 ^. C+ ~/ {' `* p* c9 ?' q' ~#ifdef __WORLDSERVER
- K, F% S, Z" @' U4 b/ }$ n: {CUser *pUser;9 L" s+ _ ]6 r4 \, A
pUser = (CUser*)scanner.dwValue;
6 i! p& h% [' ?, G, ]9 m: [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# I* a& Q0 _+ ~
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
- x2 c" a: `$ l# N- F! T* d9 Q7 eelse
0 b! T n* v! J8 D( HpUser->AddText("你还未达到重生条件!");% T% a; p6 [3 v) u$ A) \' L
#endif
+ y. x- F. ?: J6 f( T7 S9 O2 [return TRUE; N# r. W0 v# W. E( V* A
} ) z; g1 w3 U, v5 ]8 o/ M: _* r5 x9 n Z
" S4 E1 |/ n B0 v# T1 S0 h. @( s9 J e
; F+ X! c+ T; x0 ?& x
% G2 ~" b9 p ]) i6 c
|
|