|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
9 o( V- t' l/ }+ o+ Z% W! N1 J! n
Mover.h5 L( D: T3 z. P# \) P* F5 C
代码:
! w1 G% D, C, y' k7 @7 ]) F& i0 n# D找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
/ Z$ B, V8 t/ C" F
. [3 i: @) m) Z% ]9 u# Y- e下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! i, Z7 x, C( K7 E p+ d/ z3 ]
! {& B* e" V9 f1 c9 D8 M
然后你去mover.cpp添加" G/ |2 h3 y J7 x
6 j) T; \1 b1 W( l, H! j" b
代码:, p0 Q0 K# @* _ t1 R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! D% A3 L. e. u{
* }2 b2 u* f1 a; }% | Q4 C#ifdef __WORLDSERVER; l" R9 R0 Q; w X4 X* m) A
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" ~! m' ?% @' b MoverProp* pProp = GetProp();+ _! E; p% G8 W- y5 Q
if( pProp )9 R6 C# a' o- F) c# h
{
, L4 K2 a9 V* f$ ^$ \" } if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 ]" K) {- C; p* s1 f
{- g+ i% a4 c h! L! l
AddChangeJob( nJob );
3 m- b* v7 [& h; h }else{2 B) _- b7 q& b' C( l' u. f
return;5 b' {9 `% Y" H
}
6 z3 p1 k5 B8 M4 t0 R int nPoint = 0;; ~( |: Q2 p+ C V0 |$ ?7 c" c! f" V
if( m_nJob == JOB_MERCENARY )1 B5 w0 W; M0 l+ X% j. A" q. P; R' B
nPoint += 40;' d2 i- @8 {% W/ K$ D( q2 F
else if( m_nJob == JOB_ACROBAT )
6 ^' ?- [* l+ n8 V4 y nPoint += 50;" j! K% o# P, u
else if( m_nJob == JOB_ASSIST )
+ D" h: ~ i, c, | nPoint += 60;
: N, g4 ^# e7 S) j2 @ else if( m_nJob == JOB_MAGICIAN )
6 i; @* l. e9 ] A; z) {2 V) v nPoint += 90;
% @0 n* u, ~ p/ O3 ~; T m3 r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ u5 c, R. K8 { p, o) P
nPoint += 120;4 F$ `- e! D( t) i- A, q O
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: S6 Q l, s4 N/ x/ b: ]4 Y9 f nPoint += 150;
) i( o o- B( `' A- v else if( m_nJob == JOB_RINGMASTER )
+ e+ p1 \) x. h' c nPoint += 160;
0 `2 D- A! L5 c' E; s! z' P else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) \4 z5 t# [4 d7 o1 R, L nPoint += 180;, l1 r# h/ Y( P& R; _, g: t8 c. \
else if( m_nJob == JOB_ELEMENTOR )* }1 W+ f% w0 j; {+ L
nPoint += 390;( m6 A7 z( w8 |. q |- g9 S4 N% ~" {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! W% i# B0 F, ~& ?* z% k$ c
nPoint += 120;$ w& v3 p7 ?% L) _3 U9 H5 k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ u$ P0 i/ Y/ ~/ p, _) F; U ? nPoint += 150;8 t) Q& p9 J1 Z4 [6 q
else if( nJob == JOB_FLORIST_HERO )' Z) b4 \* d' R9 V. X% y7 t% H
nPoint += 160;
x) l0 N- P N( n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 Y3 n3 z) Y7 R# \+ ?5 x( w nPoint += 180;
& _% k) m A' ^: P0 c8 f else if( nJob == JOB_ELEMENTORLORD_HERO )# g' T5 m1 p0 z
nPoint += 390;
% Z F s+ [) S+ I1 I, X& X% F
1 f0 F% H" y8 Y. P AddSkillPoint( nPoint );- Z0 \" M' c2 e' G+ |* _; q: C
m_nLevel = nLevel;; B8 F: J1 }$ @3 v* l
1 c9 E: ~. Z( P8 r5 \ SetJobLevel( nLevel, nJob );3 n* i/ Q* T) ]5 \
m_nDeathLevel = nLevel;
; a" e" M* n5 u# y7 n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 Y6 R$ ]% C p8 B; M9 L u3 [( y" B5 V
if(IsMaster())
+ Q6 t7 s: [, m. V' G; F6 g& i {, H' \4 v% t+ D% e! J+ P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- T6 M9 B" C6 G$ v5 J2 H- c if( nLevel > 59 && nLevel < 72 )
- B% W! R# a4 I' q; ^( { dwTmpSkLevel = 1;
% X4 q/ C% k9 d/ l' O% [3 G else if( nLevel > 71 && nLevel < 84 )
8 R2 C, d3 E+ _: ^& j dwTmpSkLevel = 2;) `; J0 r/ H1 J( B0 H9 r
else if( nLevel > 83 && nLevel < 96 ) m2 [7 F5 u" G7 F* ]
dwTmpSkLevel = 3;
) s' j+ k) I- o C6 B; b else if( nLevel > 95 && nLevel < 108 )
3 q# u- k- o1 \* _ dwTmpSkLevel = 4;
/ b' u8 m U6 w: v else if( nLevel > 107 && nLevel < 120 )1 I' W! k* |+ r/ K8 z$ C
dwTmpSkLevel = 5;' }* j; o& @; s) W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 u R( P3 H* v! r7 c { $ n7 d P7 `0 a2 k/ l5 v o% f: M7 f
LPSKILL lpSkill = &(m_aJobSkill);
" y! }; l; r- o if( lpSkill && lpSkill->dwSkill != NULL_ID )
& z# Q, x) b; R+ g {9 L: F- Q) A0 U* ]& U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 t' ~( Z& l1 A: ?: O/ }' v
if( pSkillProp == NULL )% ?5 ~ W1 S1 k$ l0 _' B
continue;
, H) C& i. T' K+ y! z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* m# h+ A- M& e0 _* Q+ ` continue;
5 o- ^2 c v8 c2 c. y lpSkill->dwLevel = dwTmpSkLevel; O8 d- k" ~9 D p
}
$ E/ _/ x3 Z7 R# q( U: T5 P$ Q }) `0 w6 o/ v8 e0 C; Y' Q% N
}3 t) ] A3 W3 t% \- J. R; A
else if(IsHero()); i0 |4 m [/ H( @* [
{) Q" L& I8 p# M% \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ T; J! `4 O; u5 n6 p' y {
) t) a- M% C$ q+ O- ]: Q LPSKILL lpSkill = &(m_aJobSkill);" A: A- ~6 B, E! \: a' l: G1 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: ]9 \% N$ ^: w {
5 Z7 U9 I' P( m6 g8 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! r8 i, z, P' P) }) Q; P if( pSkillProp == NULL )
* L: s, j) h6 Y8 y: Q4 n" @ continue;) y- L: m; G$ M, U, m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% ]9 h& `2 g: I. M( x& g continue;6 Y2 _( z, c2 V3 f; F! z
lpSkill->dwLevel = 5;' Z/ c) ]- H4 K7 |1 Y
}" E2 p; @& k1 K: v$ ?
}
x! k- ?/ Z3 h* ^3 p0 f }* g h0 Z, ]$ u; x
else if(IsLegendHero())
# @; F; O5 }% m& W5 q7 d5 @7 b" h {% h" l) h4 `/ J0 j2 `: c5 }% a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 m, I: N. L$ |7 c7 m- z3 d5 t
{
" A. @8 A5 V- n. F: {9 p( d/ h5 d LPSKILL lpSkill = &(m_aJobSkill);3 e: l [( g$ m4 P" t
if( lpSkill && lpSkill->dwSkill != NULL_ID )" P7 Z# G3 A& h |; a
{
2 Z; F% T5 F, v, f2 I% J8 t( l% ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 w: c- |2 ~/ a* p) q
if( pSkillProp == NULL )
6 C6 v# ] E9 l1 U2 a continue;0 J# N7 @6 \0 u0 A: Q( ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- y1 C% m) D+ ~3 l4 D
continue;2 \+ s) B& U; Z/ K9 }
lpSkill->dwLevel = 5;
; d9 B/ |1 ~/ u }
a7 t/ r% @; ]' I6 b& }' ` }
! Y% m$ u R6 T, ]+ t! U }
5 U$ R+ b0 B' \#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 p3 l- |' A, l( K) |! m8 x: r+ A
if( bGamma )
2 f: P' y9 I1 |2 B! N Y" A; a/ X1 m {
1 v8 T) E" M! m# |1 K m_nExp1 = 0;
8 C2 E1 B1 R1 X4 Y. W Y) ~) e }
( F: S: B' v! R2 b7 e% p5 |- ^. M5 M4 v# D
( (CUser*)this )->AddSetChangeJob( nJob );1 H3 p! q1 A3 ?+ P0 N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ z1 ~& T5 g, B
' U+ ]5 @# D( n9 ^. J+ D
8 J- ^3 U0 q6 _1 S#if __VER >= 11 // __SYS_PLAYER_DATA. r' L% I9 x" G9 u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 d2 p9 S! c8 `5 M) B2 r6 g; k#else // __SYS_PLAYER_DATA \9 T$ e' f4 i4 j8 b7 M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 }/ Z- U5 d: D; G3 p6 h3 } g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ W0 j8 @' F( o) z# v$ Z
if( m_idGuild != 0 )! f4 B7 |9 t; U
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% h* A2 f, w: P* V
#endif // __SYS_PLAYER_DATA
7 t i) i& K0 q( Z' W/ t$ j SetHitPoint( GetMaxHitPoint() );# v0 H7 B+ s& F+ h& F4 X
SetManaPoint( GetMaxManaPoint() );' a4 Q& h" _4 p% Q
SetFatiguePoint( GetMaxFatiguePoint() );- [ g- A- ^& E3 w$ w$ b
if( nJob >= 1 && nJob <= 4 )" V- @5 p: A: X! v6 t. M0 x
{* h, X; w, e/ o4 Y' v. O+ b
m_nStr = m_nSta = m_nDex = m_nInt = 15;, f" m% F }( f+ A
m_nRemainGP = 28;2 z4 C! N l5 b6 J. P, W0 Q
}
& q$ x* [# t7 a! U, H if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, U7 ~9 C) Q( p4 W; j8 p5 ] {
, A( O3 `" L0 E m_nRemainGP = 118;
8 X0 z/ t8 X: R( w- e& H //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. H6 K/ D. Z6 A9 n% Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;" V! ^4 d+ ~: @6 Y4 q1 F) c# X
}
8 k; |) s* w' D( R. ?5 G if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 M3 c1 b1 z7 z9 Y4 i3 Y1 x
{$ H0 ?* }3 K# |" O* D9 W2 U
CItemElem itemelem;' j6 T" c) B6 N/ ~
itemelem.m_nItemNum = 1;& I& C& P2 b( e- ^& Z( c6 t* B
itemelem.m_bCharged = TRUE;' N; L+ F4 `! }" k; D0 E+ j
BYTE nID;
( A3 K9 Y. q# P$ ]% _' t1 ^; I; R3 I2 R* a/ n
if( nJob == JOB_MENTALIST_HERO )
" H8 l1 y h5 H' c2 I itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) J! C9 O8 P. ]1 ?6 x
if( nJob == JOB_FORCEMASTER_HERO ): K# D l+ n/ G
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;2 Z+ [0 ?2 C/ @' S, A9 Z& [8 R
9 W W& x( h9 t) r7 c l( \! J! {
( ( CUser*)this)->CreateItem( &itemelem, &nID );
$ C1 ^/ }: W) V! ~; \: D2 F0 o }
1 r8 V3 O4 f- ~. @) \4 Q" T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 a+ y+ l6 I. s" y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- f8 y4 ~ Q' F5 u6 s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. y# x, ^1 s2 E/ T$ J3 r- r& _* l8 _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );& _6 }2 B# o- F% D( b* o
( (CUser*)this )->AddTaskBar();*/- [: p: f. h+ Y+ n7 ]- v3 {% ~
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 Z8 x* t3 p% g1 e# `. d% ^& D( D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ ?/ s: W @: z h7 H4 ] ((CUser*)this)->CheckHonorStat();0 l# T$ g/ U5 s) u/ R: H1 K
((CUser*)this)->AddHonorListAck();
Q' }& `% N0 V( U U+ D6 W8 } k g_UserMng.AddHonorTitleChange( this, m_nHonor);
. K. r# H- O9 H2 u! \#endif // __HONORABLE_TITLE // ′Tà?1 f* P9 f# s" e4 ^, J" X
}* Q. M: Y: ?, V1 S9 @: D: c
#endif // __WORLDSERVER
D' @4 {. ^% ?8 `} % ~/ J# y$ q" L" u( C2 G/ \
" k' S7 R, k6 t
然后你进入functextcmd.cpp并添加以下4 m9 }6 a' H; |3 f% m- J
+ E. r D8 [- S( l- Y
代码:
# _. C/ V! j7 u: @' b OON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! r' \# G" P, H# I( F. ^; \
下面插入" f5 i ?1 Y! H, P: h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! @$ U- ?5 \& V# ?; F
& B3 m- W" w3 j1 Y然后你去
6 S% ~: L, o; U, J
. d0 Z# x3 L& l7 v# j代码:
- |1 |9 D& j6 |8 e代码
3 w* s7 `2 Q3 P4 JBOOL TextCmd_ClearPropose( CScanner & s )
2 V4 q/ v+ ^# D: v f{7 N. A d) I2 K$ M# o0 O
#ifdef __WORLDSERVER5 w! y3 t' s8 V& v) E6 o
CUser* pUser = (CUser*)s.dwValue;
- C8 ?3 Y3 X2 Z8 p, T! x. c g_dpDBClient.SendClearPropose();
2 o& x+ O( t& y#endif // __WORLDSERVER
3 F, a" r7 |( s) ~& B return TRUE;, V% e- O0 Y" P. ?* u5 Q
}5 l& K) R6 N: t/ H8 v* C
下面插入; a G# E6 E' I" F
BOOL TextCmd_rebirth( CScanner& scanner )
3 H% ~' q* I. o{
% U: I6 ^7 Y& s a; E( o* @7 s#ifdef __WORLDSERVER# c+ M$ q% V' `3 L4 X
CUser *pUser;
, A" B1 B5 q, r- c/ h2 gpUser = (CUser*)scanner.dwValue;5 I* y/ b' O0 V: Q% }2 }7 x: H/ K
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' @* U' |/ K( j" M' {: d0 }, g- BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
; f% C/ [, W2 w$ U. w! nelse
; m+ _( j. `4 y' P$ X" s* z$ o5 ?pUser->AddText("你还未达到重生条件!");
1 s1 R2 b: f9 M( f#endif5 B! C! l& Z$ i3 u
return TRUE;8 \' h y+ T* v$ F" }8 o0 ~
}
! `* B4 J9 [* K0 a0 P% f7 z, F
+ l5 W3 u5 p# W; B k
4 f! j) r( Y* U8 U( R0 Y
A- @; }" U4 C" [9 m, J M% R a6 S& m; q9 l
|
|