|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) N1 a6 X9 u) W$ P9 `
. n5 f ^0 w1 y1 j1 y: mMover.h, d& G7 }: O3 N+ }) r' _
代码:
! _3 A' Y) {4 T3 u7 r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; Q$ ]0 }/ \& }5 b
2 D, X \; J, y; n. ]2 |- k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " P [/ N" V# w C/ ]3 J2 s
% P' C, q5 R8 R/ y, X然后你去mover.cpp添加+ s9 Y& k) j8 _! K( X! {6 u
f \ ?( Z5 V+ b; k1 A+ k: z5 P) ~代码:2 W4 p! g8 [5 L* N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( _9 ?. O3 D; N1 Z{
8 t. V: V( G5 g, b7 u#ifdef __WORLDSERVER
% {* Z( I% V5 a7 u. n7 V // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 U6 o- m6 l8 u/ |' x6 ^2 l$ q% H3 |, s: h
MoverProp* pProp = GetProp();
. \1 F. a" M/ a if( pProp ); w6 w( J& i7 h4 M! W8 B( S
{
2 }/ L, E; z7 G8 H5 m* T+ f1 ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: D" K5 v) S; [ {
3 C0 W( m8 f2 G% K3 }& n, U AddChangeJob( nJob );% l6 X# Y' U3 V) I1 G/ m: X5 ?! `* \
}else{: j% }; U* z b: T9 `! e
return;% y: ?. E- r3 v( r& C: a3 K
}3 t* w$ M# y) E
int nPoint = 0;
& Q' y* i& ^$ \1 T if( m_nJob == JOB_MERCENARY )& k- ]+ o9 {3 c! Z) [! R7 y5 s2 V
nPoint += 40;
/ Q) k+ X \5 @9 j3 ~ else if( m_nJob == JOB_ACROBAT )
) x) K' o9 j# D9 B nPoint += 50;
/ q% w' r; D" D else if( m_nJob == JOB_ASSIST )
' @; h3 c+ x% J; V: z1 m nPoint += 60;: H- y _) _- P8 _9 d2 `6 v3 k
else if( m_nJob == JOB_MAGICIAN )
8 n- S* u8 { F* {+ @1 M+ u% r nPoint += 90;" j7 L( x+ L/ i8 z8 j. Q& h5 L
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* V8 I ?/ ?6 @0 [" K6 M9 B nPoint += 120;
) a% T" z* l) n/ M. ^" h0 A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 n" N9 C, T! W nPoint += 150;
5 e4 _; Y% ]" K( G* ]) r else if( m_nJob == JOB_RINGMASTER ). s" l/ t) z' |4 K
nPoint += 160;" a1 N1 l& D! j, y- w1 g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 r0 {( }" g/ n" o
nPoint += 180;$ W7 O6 j. u& c; B% }7 ?
else if( m_nJob == JOB_ELEMENTOR )
: ?0 R" H! g7 m nPoint += 390;
2 f+ M7 }+ t0 I1 @' ]5 g0 n$ @! @ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* }3 R; P0 l7 m1 t nPoint += 120;
% I8 f' V9 p! O; l- g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), o# x$ A5 x5 N# U3 l- [/ v
nPoint += 150;- e4 e3 P0 V6 E6 J& Q% t
else if( nJob == JOB_FLORIST_HERO )
% X% o% R" J; }& U r nPoint += 160;0 P* T( h/ \ R7 N0 I) D% K
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 p. p( o8 H7 m, j' r6 e$ M2 ?* Q
nPoint += 180;
* V# y* \ X0 \9 d6 s7 v) _ else if( nJob == JOB_ELEMENTORLORD_HERO )
7 ^ j$ p$ p# ~. L+ g; @9 L nPoint += 390;5 l" W l- s4 |% Y& H6 l' |$ Q4 c
. ^! r3 s9 h' L, p0 u X
AddSkillPoint( nPoint );3 a+ n( z1 x' q
m_nLevel = nLevel;( k9 k z( A: D( R6 @
7 r& P# c5 |: c( i
SetJobLevel( nLevel, nJob );
, W6 U3 p6 Y" P$ U$ r2 h& q! L7 E& G m_nDeathLevel = nLevel;8 f' q: s2 b! }/ }; j9 R0 P
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 q2 [8 r! S& w
if(IsMaster())! A$ P6 W9 L$ L. I1 |4 _, g; [
{
" w# @" s% w( T4 y2 t( b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 U* r* ?5 }6 w5 t. o if( nLevel > 59 && nLevel < 72 )
* d! @# {; `% V% I/ d dwTmpSkLevel = 1;$ x) ^7 H, M) M% m# M
else if( nLevel > 71 && nLevel < 84 ) z/ F5 e3 q% H" `& z' L; e- Q
dwTmpSkLevel = 2;
! S, D; X! A+ N$ i& C7 ~ r else if( nLevel > 83 && nLevel < 96 )
. x0 s0 n# Y" h! U9 D dwTmpSkLevel = 3;& L; S# }/ o) [1 r. I T9 \
else if( nLevel > 95 && nLevel < 108 )
. L9 ^" |( \ ~' S$ P1 R; v6 ~ dwTmpSkLevel = 4;
0 N5 p# G( r8 l' S4 G0 J else if( nLevel > 107 && nLevel < 120 )/ p* o, f, o7 u) a
dwTmpSkLevel = 5;
4 V+ h4 ]8 m5 i# v for( int i = 0; i < MAX_SKILL_JOB; i++ ) / A5 A: `. Z% S7 n( [7 x& o/ i
{
* w5 G( m& I3 n7 P% t; M j LPSKILL lpSkill = &(m_aJobSkill);: r. x# w( k, Y" W7 [
if( lpSkill && lpSkill->dwSkill != NULL_ID ); d: W' v; E8 k3 g9 ]
{
B7 [' \- W/ }/ E4 X* t% Z6 O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) T& ?+ a. S/ O! f8 d3 \, Z' }
if( pSkillProp == NULL )
' p) l* X, U( Y3 z continue;( Y5 a9 k! w$ W8 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). H/ F2 T% n6 x
continue;
. Y8 j/ C+ J5 N" x9 X: ]5 q. | lpSkill->dwLevel = dwTmpSkLevel;
4 C; X- I6 _: I. G j }
+ w" B1 h9 l& I+ x, T$ U }
. D" J* j* R, \1 Z1 S& V2 s }: o1 N) o! {0 n7 ?$ {% d
else if(IsHero())
" j- a7 m: c" ]5 B+ v% b% V3 V% e {
9 k+ A8 x8 W" Y6 G for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ z9 ` A1 x6 |3 [0 p, {( g( j/ e
{
- s" W6 S9 x7 e) Q4 O LPSKILL lpSkill = &(m_aJobSkill);
! E( g" Z. S7 L: m$ [3 { if( lpSkill && lpSkill->dwSkill != NULL_ID )8 V% e. ^. q$ {- ]7 b. O0 f
{2 p& n+ x+ [0 [9 i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & S _4 x/ {: Y- I
if( pSkillProp == NULL )1 w7 m9 y7 @0 ?$ P$ w
continue;
* W9 T) Y5 n$ [5 a$ R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 ]- h1 H' |$ p, a. h: i continue;- I8 _8 K* f2 E0 k( y4 Z* w
lpSkill->dwLevel = 5;
* ^8 S, M" s1 v! z* A) W0 i }' U+ X- V; x( ~( V* v# Y2 d
}- m; c* e* x' A; F' C6 Q
}
6 [: O+ S" a$ g% O else if(IsLegendHero()). T$ i$ S$ [, ^# _- o7 W
{
$ Z+ `" h% R2 [+ T* Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 u, ?, U" e% g7 W2 R {
. L' |! q- U* e% b LPSKILL lpSkill = &(m_aJobSkill);
. k6 U: h) d$ K, k3 D. D! D+ R if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 C, m+ l; {% U p4 Q8 y# j {
8 Q* o# l# u9 Z @1 m( y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: {+ y; w' q7 N; Q. H if( pSkillProp == NULL )0 F& ?9 P; Z+ F1 U; }
continue;
2 u" b0 m+ U1 x7 z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% D4 ]* i% l# N' E3 c" F& K. O continue;
, m$ I2 x: T Z& g4 Z* x+ C Q lpSkill->dwLevel = 5;
- X+ W) V8 w) E1 x }
" D4 J" _; }% t0 @4 l }
# M' A! O0 ~, s }( X" D1 v4 N* A: Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) s. Z9 y0 k l if( bGamma )
9 G( E9 g& p3 p% c {& K7 b+ Q, c, ~* g9 C
m_nExp1 = 0;, U* U) u0 M# L# `
}
, |1 C( `. w! ]8 t7 |6 D
( A% h2 t1 p6 S3 c# O+ y- t# K ( (CUser*)this )->AddSetChangeJob( nJob );
- ~# g( Y5 g" _6 o" v% w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 x3 @) ~6 \) M, C: v4 J8 |. I& |. u8 V5 y# b, t
$ U8 [. B: U8 \; [( \/ N
#if __VER >= 11 // __SYS_PLAYER_DATA Y6 W { y/ S
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! J: r2 `4 o+ `: K% N
#else // __SYS_PLAYER_DATA
2 q: n2 w8 w, l( { k. Y& c g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 i& L- O: k/ ~& [- f: ], A
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );, M; e( i7 n0 I- A0 Q) `) o1 z& I+ Y
if( m_idGuild != 0 )2 {% {; e, O2 i- C; _
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ p5 N: I' ]3 s- Y/ d' a#endif // __SYS_PLAYER_DATA
% n) j" X7 T ] SetHitPoint( GetMaxHitPoint() );
9 K$ J7 g a3 S. e& g Q SetManaPoint( GetMaxManaPoint() );; T2 w* U" W9 }5 R* n9 p/ X
SetFatiguePoint( GetMaxFatiguePoint() );0 g: b& \" L; ]/ t" ~$ S8 {
if( nJob >= 1 && nJob <= 4 )9 h) `( {) e- \" x
{0 k/ [/ {& x1 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 l/ p% X, k: H3 F
m_nRemainGP = 28;
, i/ U. i/ N2 I4 F( V- M5 O }
* W* W0 L \/ y) Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" d& b" c# D) ?4 j& m d, A- M2 A {/ E4 S/ w& [ `; t" L
m_nRemainGP = 118;
X+ }; z( y$ }% B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 L/ _, i" x7 E/ q- d: ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
* J# E" a4 p! O! [/ s, B2 X }
. c6 {/ k! T( H2 p D4 R" }' H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 t* G' ]8 j9 J2 g
{& i2 l( g) ~ H6 m% i) |
CItemElem itemelem;3 U4 x/ J8 N! ]! u7 A3 H
itemelem.m_nItemNum = 1;
; q5 [% L! J' f0 ] itemelem.m_bCharged = TRUE;5 Q& w/ @" ~; B/ x! D3 A1 `( r
BYTE nID;1 y2 E: M4 j: t* Q! ~
# {* @/ s. d2 X$ i1 m if( nJob == JOB_MENTALIST_HERO )6 f$ O# d+ L8 W" A3 E: I( i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 i' _4 L: T" x0 z
if( nJob == JOB_FORCEMASTER_HERO )& m B3 Y1 G U! W4 E- \2 B$ ~
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 i/ E# K; L7 j( ]8 H }/ L: f- }) i8 _! N/ L9 F; ]' k& K, j
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ t1 D1 \4 Z$ s8 H3 Y4 j
}0 [! ^+ Z- Y# c% {) e: B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. u$ a: t: g( c* T J z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# U9 _# H% V0 |3 | ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( T9 F1 h1 @) ^. ?+ |. X T0 m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% y* a/ [2 k0 | O( `0 l ( (CUser*)this )->AddTaskBar();*/6 [, G I5 }" r/ X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 o, [6 L. J, q( }& ~6 R4 @: d
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# v. }4 M0 N* _, [( [' d
((CUser*)this)->CheckHonorStat();. m5 |4 X( f4 O' t$ |/ P
((CUser*)this)->AddHonorListAck();
/ H. P; {5 J* {; J# U g_UserMng.AddHonorTitleChange( this, m_nHonor);
v% p# ]+ |& O#endif // __HONORABLE_TITLE // ′Tà?& K1 Y" {1 y( i8 ? O4 e
}
6 G" N1 F4 P. c#endif // __WORLDSERVER
# o! J+ m" |' ~0 S} 6 F5 a2 U* p$ B* `5 s! V. ?
) V# A0 Z4 q8 k' _: ~8 @
然后你进入functextcmd.cpp并添加以下
6 m4 Y6 G/ W$ Q! ]* P$ z) I+ K' y% E4 \2 x2 ~1 ^: m
代码:
9 n6 v# T. \# P2 @& }4 L* `ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 [, n% g( @: s7 |* h/ S( S
下面插入
7 {3 q% \' W- X v& LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
U' M9 @8 p0 _$ Q5 Z7 Z0 W7 s7 f" i8 O, h/ O- z
然后你去: H! K8 N/ t5 o* i3 m
+ r& f9 a; z, k- A4 ?. b8 c8 s6 ^
代码:
, Q) E' f' v0 i- \0 \- g代码
/ [$ X" Y, R( |# U0 R& j1 XBOOL TextCmd_ClearPropose( CScanner & s )
' z( I6 D5 _, U* `- O{2 T* s/ F! o# Z9 `
#ifdef __WORLDSERVER9 v( J% y9 _% M' P. a. b6 D
CUser* pUser = (CUser*)s.dwValue;( {& m# C2 Z; w# {" `( u) U) d
g_dpDBClient.SendClearPropose();
& l0 k3 K, M# y& X#endif // __WORLDSERVER
$ L1 I1 O* c$ ?) I$ [0 D2 M return TRUE;4 G+ ?4 X9 G: [5 ]
}
7 J8 _6 a6 L- x, Y% E0 _7 E下面插入
& [! J1 h, o$ }% j: [1 X! y( sBOOL TextCmd_rebirth( CScanner& scanner )5 b; S9 Q; ^/ ~
{# x0 \0 s; a1 }4 ~- j
#ifdef __WORLDSERVER
% Q {1 H) H! r" v2 \CUser *pUser;
, {5 P% t/ m4 g; z) ^' ApUser = (CUser*)scanner.dwValue;# a: a3 C; \7 s4 K4 s# ~2 c$ p
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# j' [0 R2 d4 E
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" Q. G9 O8 I& Delse
) N$ \: ^* g5 ^* N4 o0 mpUser->AddText("你还未达到重生条件!");+ a Q8 { H; `! g( k
#endif" I: V+ o) s) F6 S# ]2 N
return TRUE;- h8 H% c) [% J; ?5 I7 ~+ B
} : u3 w: F8 A) ]$ s8 d- O
: i# f2 p5 J& D: j. E6 c
/ c4 E u9 B# {' _
& `# E' p4 Y n6 ]7 r
, t- f1 M( P0 n/ O$ v
|
|