|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* u/ B+ K4 H1 ?9 j( [
; S6 J+ o$ w5 ^) X% Z9 R6 k4 NMover.h4 T/ b9 e& T- X1 O* ?
代码:
) T6 j) O* f" j9 ], o" d' k找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 O' P' ?: h: @1 [# b
) G" V% ~0 N1 U# Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 j5 D# r1 h2 c5 G! B9 c* H- W" O
( c' P, j4 Z, U: }- l- f7 W5 B然后你去mover.cpp添加
) i% {2 @" k0 V+ Q) d* t7 v" b# S% ^) S
代码:/ ^/ q+ M+ y* V9 n8 l% |/ b8 N
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 w; z* r6 Q9 F' _{8 z! [+ |2 S2 I% F. L2 c- K
#ifdef __WORLDSERVER
5 s% |0 T$ K2 p5 n }2 ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
J A) I' Y3 R0 O1 i) r2 l: R9 Q MoverProp* pProp = GetProp();! B6 l. b5 V7 x5 O8 ?
if( pProp ), r+ b) H$ A; ^1 I0 o
{
' o4 R/ J7 k0 n8 V if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' i$ F( i; ? U% o& \% w; ^ {
2 V9 r, M* k/ d( A3 `& [ AddChangeJob( nJob );
/ I& c' [4 | a }else{
3 f& l- T7 s- u [/ a O return;( f q/ p% F% F
}
$ e; j+ r4 e4 X int nPoint = 0; O+ |0 V8 w8 C5 k7 M8 Q
if( m_nJob == JOB_MERCENARY )5 y) E: i; \# G4 I8 g3 U' e" }
nPoint += 40;
' I+ h# D/ C, ]' F7 B) N: c else if( m_nJob == JOB_ACROBAT )% q, T. V W6 v8 j, C
nPoint += 50;; U' P) M2 ~ Q
else if( m_nJob == JOB_ASSIST )
- U/ C& ~6 ~! ~8 S( z7 A( _ nPoint += 60;
, ?* f% g8 F7 j else if( m_nJob == JOB_MAGICIAN )/ a7 R6 L' r# S
nPoint += 90;) W1 g5 o' e# p& n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) I5 k2 [! l, ?% s- h7 J nPoint += 120;5 u x- W. D1 R: p' B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 f. t: Y- R. Z% ?: e5 d; z7 [8 p
nPoint += 150;) ]9 {. ^$ \; X4 o7 ]0 [
else if( m_nJob == JOB_RINGMASTER )
9 {/ j' K* m" X nPoint += 160;
4 \7 O5 T1 g+ ~0 j+ Y( z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ }8 |( o0 H+ m3 Z, V$ Y4 ]
nPoint += 180;8 C+ e* l; j$ Q6 u& ^& s) ]
else if( m_nJob == JOB_ELEMENTOR )
7 w- D6 S# K; l' j. i! v0 e9 q! ?: @ nPoint += 390;
! s p7 e+ F7 E/ L3 ?+ \/ K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 [4 S9 F( C# Q- g' Z' `1 f# \# F
nPoint += 120;% P; O0 ~: t4 u$ d! l; `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! O1 K; f' y) b. [
nPoint += 150;
* n7 w; o9 a. I0 [$ H2 g" D else if( nJob == JOB_FLORIST_HERO )) b& ?. M5 [6 Z1 O
nPoint += 160;
2 N; _- J; b+ L. Q" @% ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 y! \5 x( C$ `7 F7 u! A, c# C4 b! O4 z
nPoint += 180;
& O- g' T4 C! Y b7 w' u* }, { else if( nJob == JOB_ELEMENTORLORD_HERO )
+ Q7 D+ B% H2 l8 a. E8 G nPoint += 390;
( |, G& B% d6 N+ ?. V+ O: S) x+ u7 i& e' l
AddSkillPoint( nPoint );
4 L: k. \( d. X | r m_nLevel = nLevel;
1 R+ E% V6 e; p( p' I. ~, v6 q3 \, U! d- @4 j, Y
SetJobLevel( nLevel, nJob );! G5 M$ a2 `* k# W( H9 t: E
m_nDeathLevel = nLevel;
5 t9 g+ N0 @) k# x#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# n" ], V$ M1 i+ P: P5 o) r! V( ^* q
if(IsMaster())* t, R f6 _5 s# U
{! M3 |1 e* M$ z( H; D- a% `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- q, N* {8 ~& m5 z* k3 Z+ |
if( nLevel > 59 && nLevel < 72 )* D) \: t' S! \& q' t
dwTmpSkLevel = 1;( T1 U; |, D P r; V$ R0 f S
else if( nLevel > 71 && nLevel < 84 )
8 L! c+ B9 E% ^0 r6 s! N* \ dwTmpSkLevel = 2;
3 d# E) q" `8 n else if( nLevel > 83 && nLevel < 96 )' }2 y K6 N0 u
dwTmpSkLevel = 3;3 H; M+ O" ^% I& D G" b( g
else if( nLevel > 95 && nLevel < 108 )
. ~0 s8 I/ N+ I( K3 b& i' j, Q- u; _( c) K dwTmpSkLevel = 4;
5 r/ h: B) \$ d) O4 o else if( nLevel > 107 && nLevel < 120 )! K7 V6 F4 t8 z, M
dwTmpSkLevel = 5;+ |* E3 |6 G: y. r# S; D
for( int i = 0; i < MAX_SKILL_JOB; i++ )
! _7 |: h! F; t& l1 m3 V, H {
. A0 y ]7 T* I) B, v2 F& d% X0 Y: y& w+ O LPSKILL lpSkill = &(m_aJobSkill);4 I% U) {9 x' _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- B4 e% s$ Z0 Z0 k- x+ x {
9 L, s; f: i/ e1 m6 C$ a, k8 u% i$ G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 p. W1 U5 s, r' W& H$ A+ O* T if( pSkillProp == NULL )
7 F( j2 G) I, T: u) @ continue;
3 K2 n) ]1 C2 b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* K* C# K" t2 O ^# z- p
continue;$ R1 B( s& m) o; L
lpSkill->dwLevel = dwTmpSkLevel;
3 r; }( w6 _& n$ e' W" q }2 y& d) @# n+ a/ y4 u: [/ i8 _
}/ s* E5 {- p( ]2 m
}) g( \* g9 [8 N9 P6 z3 }9 `& c6 Z
else if(IsHero())
6 R" V& U0 n6 h7 q& z5 @: H {
2 ]8 }0 x# Y4 p- O) U/ U/ ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) , V2 r- S; d3 j3 W2 l8 C3 s
{ # ]% \& L, K/ e4 O8 y
LPSKILL lpSkill = &(m_aJobSkill);
6 w9 [/ E: R5 H e9 U+ X if( lpSkill && lpSkill->dwSkill != NULL_ID )
) p* U" ?& g1 c: g& g9 x {
* ]$ j( _* S) ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); i6 ?4 v2 u. {- j; t) R+ o/ k/ ?% W
if( pSkillProp == NULL )) e, \0 p: R" f4 b' b# U1 _* \
continue;
. P# H% @7 x1 j3 ]$ ^" Y if( pSkillProp->dwItemKind1 != JTYPE_MASTER): H+ E6 y& r- t% U2 r" z2 A2 e
continue;
: H% y7 F! L5 ~3 o! V) h5 L lpSkill->dwLevel = 5;
3 N( t* |! A( D }/ @, O* {. {1 _$ z
}
$ J b- A% j& m, Z3 d }
. Z+ J2 X4 J/ e2 r) S else if(IsLegendHero())
: I" y) Y) S o0 z5 {7 T, ` {1 ~6 E7 Q8 a' G1 I( z! n& ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & K4 Q7 b: k& B
{ ( z/ U9 `' c% D) o! ] H
LPSKILL lpSkill = &(m_aJobSkill);2 U9 K- Q0 d/ Z# @ f X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& U/ s' M% _" y0 K {
: {2 H, G) t. ?! ?8 J- N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 W3 a( s0 o: V6 K$ \2 Q: Z V
if( pSkillProp == NULL )! I! l/ m t; O7 Q0 I4 ]- I& k
continue;2 z# x3 C+ |$ d% y! I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ e/ y s4 J) ~# t, R% R' J continue;
8 C# H0 ~7 u2 W `/ Z, \+ b lpSkill->dwLevel = 5;
& d3 y7 o; t& ]) K } [9 X5 T4 w* _% u9 D& m1 }; A
}
# P! m/ \7 D9 w' R }
6 c, ?+ E6 U9 [+ H( r#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 B: r7 ~8 y( @# `9 ^& }
if( bGamma ) H! S" O6 L4 c
{: e( v9 U* h V( h7 @6 M" H
m_nExp1 = 0;4 U5 U% T, X- K9 d+ ?2 u9 m& Q' d
}
: t: T! `' R' K1 p' ~
) `9 {- W8 f* N) X! [3 ^6 h8 C9 E ( (CUser*)this )->AddSetChangeJob( nJob );
* g% ~" ` a0 z5 `1 v, n( T0 f4 { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 m+ i* k8 @( Z! W* s5 @7 Z7 f8 Y0 N
* L. M3 [* x2 E( q
#if __VER >= 11 // __SYS_PLAYER_DATA
% I$ ^! `. H) Z g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( K: t. |4 j8 }; t
#else // __SYS_PLAYER_DATA
- }1 p: W, _: b) L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) W8 g, o9 A! I& k1 h5 ?- \. B6 @ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 F9 @8 z T9 F5 b* N; [ if( m_idGuild != 0 )- k X$ G ~3 P+ l7 Y. d
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- f7 D2 I( ]2 H1 ]8 K# n#endif // __SYS_PLAYER_DATA2 S) j& U" } f1 a
SetHitPoint( GetMaxHitPoint() );) k) {& F) a: n+ @0 u( D
SetManaPoint( GetMaxManaPoint() );5 |! E! g; X B! j# _ N0 t
SetFatiguePoint( GetMaxFatiguePoint() );
" c1 Q- B4 q* j# N if( nJob >= 1 && nJob <= 4 ), k% t' i/ N9 \" T
{$ R; J. v ^( V. z; q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ k) {) z) v; K" R m_nRemainGP = 28;
2 u) x7 {" g) W9 \. P }+ Q9 O e2 z6 m3 t6 @0 S2 R
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 x3 z+ m5 F* f* `4 o4 o+ J& I {9 t9 F: @6 X' S# v* y9 }* q
m_nRemainGP = 118; D% [2 {- \0 I7 r |% P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;" j% t% Y1 @+ @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
h2 C& U. q4 w5 i }
6 t! v: K5 w1 ^9 O2 k/ b% j; x if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" H- |: n6 u: b* @
{
% |# C1 Y2 Y4 T8 M% _) p: K# g CItemElem itemelem;
: K) h3 z4 o& t; d- k itemelem.m_nItemNum = 1;3 ~3 T: J1 p' {6 {
itemelem.m_bCharged = TRUE;6 n+ S" [* |0 b3 L
BYTE nID;; R# J6 C2 s8 O4 S
7 J) L F- B8 h3 v# B if( nJob == JOB_MENTALIST_HERO )
6 a1 n/ s' x) r5 M7 s* s itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ t( s# _7 ]+ _$ p0 A
if( nJob == JOB_FORCEMASTER_HERO )
+ D' T6 S; H( Z/ c: _3 H9 J4 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* Z6 P' _- n: V! B, U+ C( g N, Y: C, O: i8 l, H
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 I7 M8 M1 `4 e2 ~
}
7 b6 t' E' v( {0 U# P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& g0 h0 I7 v% L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ {" ]8 G" I! _
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
: |3 r1 J$ a, n/ @* T8 p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );; C. X6 w0 T* q# w
( (CUser*)this )->AddTaskBar();*/
& F O" p) E& N/ u# p) Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ b8 O3 ]5 X1 J" v/ L#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- F% j+ q* s5 i9 s ((CUser*)this)->CheckHonorStat();
8 y" F) O0 y' d ((CUser*)this)->AddHonorListAck();& V9 T" ]6 \# p4 \% b7 W; u. A- C* H
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 E$ x+ y# r3 Q- I#endif // __HONORABLE_TITLE // ′Tà?
, t) x. `; X, w8 x6 ]% u }4 R! g5 P9 L* _
#endif // __WORLDSERVER
, x _5 ]' R/ _' ?* G}
( D1 t' L/ m" ~/ A+ E- n0 Q0 J
4 E% W2 s. {6 a6 {% _然后你进入functextcmd.cpp并添加以下
( ~- v- _+ @: E) E7 g
& b$ @5 s9 r) U6 h. f4 ]代码:( Q3 q8 a. V0 |& r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 W9 O0 ]( g9 W下面插入' ~$ e: I/ s/ d% m
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 C8 o& \) `- Y" V
6 O$ m" f4 e0 n: N6 T
然后你去; ^) u1 ~" g- Y# r4 n
; W' H' J, P7 e$ A
代码:
: t/ G1 _& F3 B3 J& B代码
# N4 q2 X4 F& o/ [7 u9 ]BOOL TextCmd_ClearPropose( CScanner & s )3 W3 n8 a- f$ a# t: v$ U
{& ?& z) m/ [ V8 \, c
#ifdef __WORLDSERVER
& v z' w. \ O; u, i CUser* pUser = (CUser*)s.dwValue;
0 ?8 u+ B, {, Y g_dpDBClient.SendClearPropose();
4 F; v, H8 F3 u9 y#endif // __WORLDSERVER
8 l3 H: o0 S$ q2 ^4 ]$ p return TRUE;
+ g" X3 S& T8 p" M+ b( S}
# _1 I- B) R \: p, Y3 w下面插入6 F# ^5 Q: b7 F* v8 ^) \6 v; K
BOOL TextCmd_rebirth( CScanner& scanner )6 r6 f7 U' K' g- g/ M% C! S
{' S( _' e' {) i5 ~- j$ ^
#ifdef __WORLDSERVER
8 [2 F4 v. I! jCUser *pUser;6 H: L, d A/ f8 T7 z9 c" H+ A
pUser = (CUser*)scanner.dwValue;. t; [" |$ p5 S- s3 i7 O: R! B- @
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 d9 x1 |: W% ?; R# s3 V" C" MpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 c" S+ _0 a5 g, b, ^1 B8 s+ D# ?else' L, `) s8 T( l n0 u
pUser->AddText("你还未达到重生条件!");
) X/ g, ]: X, l7 n#endif
3 a6 m6 `6 N7 x7 Mreturn TRUE;
2 T/ P V8 ^2 a} ! @0 D4 w: J5 ^" w v% h
$ l' D2 D3 _, Y2 Q4 P
7 U: r- R7 r+ ^+ F) F% [
0 s1 e8 b. q" K2 E& o
( W* ^) M. m& W7 a9 | |
|