|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel5 |7 r7 e( b, k6 J, m
. o0 h; V& U6 ]Mover.h
- f$ u1 Z1 c( c* E) v) L代码:8 D4 s5 p/ a0 E! N$ ^! z; T
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* Y" F5 }- m( j/ ~
7 B8 G1 ~9 _. B# u" ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 J7 C) V' w; w4 C4 E8 J2 K3 j
: C$ b W/ \# l+ w" q然后你去mover.cpp添加
$ U; p, d4 p6 f7 W+ g' N& w2 p+ B6 _. N( @
代码:9 a& z9 I' X( J& k) \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; u/ T0 N7 D/ B0 y{
9 @) \* }3 p) n' P# o#ifdef __WORLDSERVER2 K0 c* \6 a$ F) |
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
?4 r7 R( O; r# |+ D MoverProp* pProp = GetProp();* o7 u( u$ H, n4 ]
if( pProp )
7 j$ F+ \1 v# _7 c$ U/ m7 } {
' }) M& U8 [, J- R/ b if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 b0 K4 x) j ^% f
{
, W/ h% W2 H3 C" w+ \- x AddChangeJob( nJob );' r3 b* U% l5 X( H* k8 Y* w2 @9 _5 @2 T
}else{
6 ~ J+ E/ Y% ]8 N return;! ~/ j) w3 z0 M- R: ~
}
! L- `6 I( m$ y5 V7 u8 L int nPoint = 0;- A5 B0 S; _2 Y* M
if( m_nJob == JOB_MERCENARY )+ ^1 w5 m& J% M# ]5 _8 |3 D. f
nPoint += 40;7 i* t q6 |- y
else if( m_nJob == JOB_ACROBAT )
8 n6 s. [7 t: k Q1 e( n" s nPoint += 50;
% x0 l6 }3 s2 D! ` h+ \8 }0 ~ else if( m_nJob == JOB_ASSIST ) H# `$ u$ D5 Q3 p0 {. X& I
nPoint += 60;3 v& J9 z% E: e% G$ a R3 X
else if( m_nJob == JOB_MAGICIAN )( V9 [- L+ o8 ]6 f
nPoint += 90;* {/ o$ y5 Z. e6 i) {% P
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 F) S ]( W Q @. {& q' `4 W+ o nPoint += 120;
, m( B7 t$ `% T9 j# k8 @' N else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, I0 Z" \) L9 L) J- i5 [ nPoint += 150;& ?* C, x" d, g( U- n0 m5 o4 G
else if( m_nJob == JOB_RINGMASTER )0 J5 Q! }2 B4 ^3 X9 Q0 {0 Q
nPoint += 160;
( t) g! z& O1 O! ~, P6 }0 a' R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 x6 |' J" V) n. Z
nPoint += 180;
+ b4 f* T: m0 E3 R0 Y% X- m else if( m_nJob == JOB_ELEMENTOR )
& c% T H( Q% A" X) q nPoint += 390;3 T- P' D- z [9 d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 J, v0 j$ o; w% |3 S u1 P
nPoint += 120;
* p: q: ?( U& \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 E" |0 Y8 l l+ ?* }* u9 l% l
nPoint += 150;
6 o9 h9 n: j' U5 F. ?- M2 G. A else if( nJob == JOB_FLORIST_HERO )
4 ^" ~ Z) P: q6 N m nPoint += 160;- ?# t: g' {+ y7 T/ \6 j
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 c4 G/ ^4 f: B( D& |
nPoint += 180;
/ w+ Z2 K% i, P$ h# F6 y else if( nJob == JOB_ELEMENTORLORD_HERO )9 I6 N% ]9 g3 X8 V) R
nPoint += 390;
, \& D3 [ c5 R: x2 q( w0 x* c/ M! j! `3 F5 j
AddSkillPoint( nPoint );
" n* v: e$ V* a m_nLevel = nLevel;
+ d3 S/ N5 p+ M; z; x/ A# ?6 p/ X# a
7 }! t6 x! r+ z) W& c+ F% m SetJobLevel( nLevel, nJob );
7 s2 [* A6 N. D) \ f N m_nDeathLevel = nLevel;
. M* x) F' `: d. w, `1 Q7 K: S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 E; o( u& k5 ^2 }4 v ~ if(IsMaster())& h, b; Y5 y* [0 b- h' m% g
{ o8 V+ [2 C8 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! D4 g# {( S" Q1 n) N& j if( nLevel > 59 && nLevel < 72 )
: H9 F" B6 q* m$ a4 Z" m dwTmpSkLevel = 1;
& \; L$ S, ]$ X4 K else if( nLevel > 71 && nLevel < 84 )
" N1 T u' D# c4 |& f9 A4 s dwTmpSkLevel = 2;9 ?/ a. [" t. K1 ^ o! ?5 f
else if( nLevel > 83 && nLevel < 96 )
. G1 t5 q! I$ Q) L. V dwTmpSkLevel = 3;
4 `; y$ b8 R: r$ a else if( nLevel > 95 && nLevel < 108 ) T/ _; v- m$ q2 ~1 }
dwTmpSkLevel = 4;
% l; z* G7 N) ~( a else if( nLevel > 107 && nLevel < 120 )
6 h# Z+ [( @" l' `) F T# S h$ L3 m0 b M dwTmpSkLevel = 5;
9 e& b d6 z; A* n( S A7 D1 @2 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ]8 i5 Z9 H' T* |2 p( K {
4 b+ u" D5 i- R- x- F% h LPSKILL lpSkill = &(m_aJobSkill);! ~5 C/ |' S. W4 x' m
if( lpSkill && lpSkill->dwSkill != NULL_ID )* U4 U' @. U/ f" P: f( @
{, z9 Z; Q: b: m. o. {' f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# s1 m7 w: d" u- h5 {: x if( pSkillProp == NULL )
" R; Z9 @& C' q1 Q9 M5 N; B continue;
3 k+ B3 H& p& O3 d1 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 J" }) P* x: U. K5 S9 v& f
continue;2 r, S7 O" Z! j% K3 b- j9 a% Q
lpSkill->dwLevel = dwTmpSkLevel;' ?; N7 N" l( M' B, Z: W3 N
}" f- w& U. b8 `
}
1 d- P: d9 `9 X# B7 q4 n$ s N$ u }/ p4 o5 [9 O4 d1 M h' n, ^3 Y, o8 C# N
else if(IsHero())' U/ h2 a/ j8 X/ x( h6 a
{
& k' f& p6 D, P: ^ for( int i = 0; i < MAX_SKILL_JOB; i++ ) + R7 @6 z% ]7 h8 a( [
{
4 g& Y* p! S/ ?# I v' a2 m4 x4 r) u LPSKILL lpSkill = &(m_aJobSkill);7 v! k$ V3 ?" p) K8 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ Q* @. F3 r" c- e
{
/ g2 w9 S# i8 q# y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 m/ L' Q8 @* @* x! z2 W) Y if( pSkillProp == NULL )5 v8 \2 R: D5 q0 o
continue;
- G6 b* \" \, j: B1 q6 B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 [* S; R/ p; T continue;: a7 @. [6 l! u0 f/ L7 I( x
lpSkill->dwLevel = 5;$ W- P. i/ t! w- \9 @* u+ o2 Z
}
! Z+ N9 [' g, w# ^ D7 c }
`& e/ t, v. i) O6 F3 b }
; u: g. a3 a* r else if(IsLegendHero()), X" P1 ~0 T* V6 y0 C
{; i( }4 E' F# ~3 Y9 l" q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; U4 z7 H. A; _+ _ ]. x7 M" c { ' \4 f& h. `4 v, D
LPSKILL lpSkill = &(m_aJobSkill);
+ x$ r) I- Y6 |# z& W if( lpSkill && lpSkill->dwSkill != NULL_ID )5 y# V+ n% t8 Q8 _% _% ?: s2 X
{8 G8 b+ V' b$ A; S6 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( d. ?' s& Q9 { if( pSkillProp == NULL )' ^& |0 s% J- J) k: @" F
continue;
( B& T, Y# A5 J7 [. Y& Y- X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 w) j; ?9 x" _+ H3 d continue;
% Z2 ~8 c7 d4 @ lpSkill->dwLevel = 5;
- S0 f( d: Y% K' c1 X( _" e }7 Q* ^' T5 n0 {1 q
}
' E' R6 E) w8 K: v% u }) k+ K! |& o, C- y, a: f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 _% t8 d/ |2 {6 p$ x9 P) B
if( bGamma )
8 T! \) g% C; a5 o" m {+ n' D( b( T: U
m_nExp1 = 0;8 D0 \( A" ]) ~3 c( ~1 _# p
}! x! L2 {# B0 s& r5 W
# D1 C: k) m; R# q1 \) Y ( (CUser*)this )->AddSetChangeJob( nJob );/ }, v( O9 W* Z2 B J7 _; U
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ C: v" [3 C4 J& u {( R& K8 h3 D9 e/ p6 x
8 ^" X1 v2 Q( \: L0 @# j( x#if __VER >= 11 // __SYS_PLAYER_DATA
8 c+ \! d9 P0 _- t# Y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ S, x7 @" B* u#else // __SYS_PLAYER_DATA
% L \3 l' J( x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 \ P+ e+ Y# b+ i- i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; o! P+ ?+ J- j4 T% S# b4 Z! L
if( m_idGuild != 0 )/ s, p+ ~/ S9 H% c; z6 [. r
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 H1 W0 @+ A, @7 v6 |$ U3 |7 \
#endif // __SYS_PLAYER_DATA
0 c; G$ q) |3 C: { SetHitPoint( GetMaxHitPoint() );
" C7 K8 t& z3 s) w* H+ C8 K SetManaPoint( GetMaxManaPoint() );4 O8 k t% I. c+ a
SetFatiguePoint( GetMaxFatiguePoint() );+ e4 ?& h1 _) L: i' P* O# G
if( nJob >= 1 && nJob <= 4 ), X( G* R" P1 r9 `1 H% q2 e
{
- u% w% J$ a2 i$ b m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 T( x% t# R( I+ w& E+ @ Y c m_nRemainGP = 28;4 ^3 ~8 G" O4 q3 v+ d
}4 k3 y6 F f: O7 m( J5 M- H
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 k( O8 y" K7 r0 X2 ?8 i: X {
( V2 D9 @1 b4 F: P4 r m_nRemainGP = 118;
; ]- K3 I4 N( u% u, A) ~& b# i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ r' J6 V6 z& `- i
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 h! P5 e7 l9 u7 V L Y5 L }3 @. m& o s- }% X# z: t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- i+ g7 C$ H. ~0 r
{: X( _1 Q" a& D! r* f! X) x1 \
CItemElem itemelem;: h- [! b7 S9 ^1 V$ S" P
itemelem.m_nItemNum = 1;
, R2 w% _; P* B7 }6 ?% G- W itemelem.m_bCharged = TRUE;; d, I+ d" H+ o; q) S9 W7 H- t2 i
BYTE nID;
* A+ y9 b3 @/ P! f$ M& ]2 D0 _3 k) [ }. N. M7 F, p* L$ j. X
if( nJob == JOB_MENTALIST_HERO )
$ e z9 E% Y* v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
]7 w7 h5 p6 F if( nJob == JOB_FORCEMASTER_HERO )$ C' ?! U7 }# t6 e- F" ]; R9 Z/ z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* I! `3 i/ u! f
) g% W2 c8 v/ ~4 U8 Y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 I( r: Y8 C$ s: M) `, Y6 @, G5 ~ }5 }. t% ^0 {& B1 Y3 Y9 D4 ] l
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: z! }8 L1 r7 B0 V0 b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; x1 z8 w4 z0 ]# j. }8 L
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); h1 B4 S# ~/ l; |' h# D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 k% K$ `, J0 o4 o! s ( (CUser*)this )->AddTaskBar();*/1 i% Y# Q( y; O; \
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 a9 v6 k/ e9 J+ {% L9 b# H1 v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
, J/ C" L. U( S ((CUser*)this)->CheckHonorStat();
2 C( ~# X! c2 P: R3 U7 L ((CUser*)this)->AddHonorListAck();
) f4 Z* Z" E' P0 X g_UserMng.AddHonorTitleChange( this, m_nHonor);
' ~* _4 M; S# Y#endif // __HONORABLE_TITLE // ′Tà?
- f) K0 P( Q: c& E1 m( Z }
) b6 |8 i8 A; r0 y- X# n" d h5 x#endif // __WORLDSERVER1 k7 R Y1 L- ^
}
. D1 R) `' S" Q. @+ P% c5 V/ K; ]4 {9 q7 A; j: l
然后你进入functextcmd.cpp并添加以下% e' M3 {# G1 j! y
$ l/ M( T7 Z4 g
代码:+ R9 i1 c9 _: |* y ~8 K% e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 r* T$ ]: t+ E0 S) _0 ~
下面插入
. z, \& e- [8 m# zON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, w& e/ P* {" T. p$ B7 ?+ k
5 b0 ~2 r% J* Y" }! U8 r然后你去
+ @2 f m3 x* d; {/ h0 I
|6 a' w% L: B0 O+ J- h( J, {代码: J/ ?8 w V/ q: @, I
代码0 d& l7 T0 k+ i" r y
BOOL TextCmd_ClearPropose( CScanner & s )$ n" h( m+ ]) f! u' D$ m
{
6 p/ O" b& z) A& ^$ L#ifdef __WORLDSERVER
1 w& d" R; B; K7 W CUser* pUser = (CUser*)s.dwValue;
" g3 O1 m; ~0 _! v( H& m0 q1 ?' `( w! b g_dpDBClient.SendClearPropose();/ |1 O/ W) U4 i1 m
#endif // __WORLDSERVER! B& `8 [1 m! G2 f! M7 M
return TRUE;
) v7 b7 A# K+ i3 a! V}
/ c; Z7 m& c8 X4 ?9 w5 D( ^' [+ }下面插入
+ v2 _- G2 _) }) D c' Y: OBOOL TextCmd_rebirth( CScanner& scanner )
/ P2 y ]) |, d; d; |, n{' u4 b5 ? }& \3 U: Z) U% \5 S
#ifdef __WORLDSERVER& \, d$ S; X$ g! x' ~- z
CUser *pUser;
; q/ c% v+ X4 j! V0 v6 xpUser = (CUser*)scanner.dwValue;; h) M$ S' `$ y5 Y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 m2 [6 J3 n3 A M& y4 ]4 NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 C v' h* q/ ? }. |5 ]* v. b+ Y7 o
else* w, B) D6 s/ ]; I. ?
pUser->AddText("你还未达到重生条件!");) E, K, Y f9 X8 |0 o' R5 N' e4 s+ _
#endif" C2 J2 y$ T7 v5 e- @- t4 _
return TRUE;# S9 k z8 T5 k% J d2 I! Q
} ; Z |3 r& N4 l
2 @6 ~* |- b7 `2 F9 w6 ]" b+ J* ^5 H3 Q+ x( U
. O; a1 m& I* p" {+ {7 G6 d: c. Y- y# C+ E, f. \
|
|