|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: E0 t. I. I1 L. S9 G1 \* y; Q3 y
Mover.h6 D& k) C( p4 P' Q" Y8 s' ]
代码:
' C# \0 f) E% U# {. Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü: y8 {" h8 H: }- Q$ e5 S
7 u. x0 i9 D" L下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. e& I, M# k# w. L( ]
b# e4 s4 l+ `6 r* A. p% T n; C然后你去mover.cpp添加
9 c; I2 H: S/ V3 D7 H/ L
) `' C! |: C+ U3 D: Q' ?代码:" y: |, _9 L% E% f3 E! I: {6 d' R
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 U- F( t0 p5 I `{ z9 p2 x* x2 s8 K% e3 D
#ifdef __WORLDSERVER) z& y* L" i4 d5 a! }- Z6 J* o
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 d; W$ }) \( ~! b1 q* }( L! V MoverProp* pProp = GetProp(); t% v& ^0 b! M3 w
if( pProp ); n$ J" b2 j* W/ U; ]! r( M
{2 A0 ?5 z1 |7 k
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& W: A# [& S; \$ A {: ] j: i6 S5 L! j# S
AddChangeJob( nJob );
$ Y$ g/ r! V) H0 Q) K5 E% Q6 @* P1 m }else{7 @, T( i* |7 X2 q
return;" c; a8 r0 U( O, y, }
}
: d( U7 b. y! @( ]2 p int nPoint = 0;
z$ G4 n1 \/ ?. n' A p if( m_nJob == JOB_MERCENARY ): ~* x; S: I# r
nPoint += 40;
0 G1 e( ]* e v6 H+ L else if( m_nJob == JOB_ACROBAT )
0 F; j7 A d2 \$ C nPoint += 50; S, q/ v4 o/ _* x2 g* v' `
else if( m_nJob == JOB_ASSIST )4 ~0 }$ K }8 W3 _
nPoint += 60;
5 ^/ L+ W) X4 k else if( m_nJob == JOB_MAGICIAN )* K i: q N/ t$ F: p
nPoint += 90;
! l! e& h9 @8 Y5 V1 D0 Q. h m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 ^/ H; M. [, n6 t
nPoint += 120;
; F. U& u; I& [2 G: F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" Q/ l7 p' J/ A
nPoint += 150;# P _# d- J9 o2 B
else if( m_nJob == JOB_RINGMASTER )
* }" P1 e3 y2 k y. E, ? nPoint += 160;- K9 f) V* [# {" n# |$ B
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): K( k5 I; V& G% b
nPoint += 180;
; ^7 k0 b/ K- F: H, R else if( m_nJob == JOB_ELEMENTOR )
* W+ F, [! F, E7 `) ~7 K nPoint += 390;
( V3 Z! i# ^: n# c1 C+ I; l else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) y- Z' y4 `( e/ i1 \' J
nPoint += 120;) A. a0 I/ ^2 b! j9 l
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). }4 p1 }' N% y. F* c
nPoint += 150;# [6 T# H) z9 T6 I9 J: Y
else if( nJob == JOB_FLORIST_HERO )
" n' m3 @) j' L9 R. L( @ nPoint += 160;
0 r% v3 z1 U) W( G- m5 X6 ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' |0 [ Y# }3 g. H. t
nPoint += 180;
$ _5 C/ T' M+ T" @' k" n else if( nJob == JOB_ELEMENTORLORD_HERO )/ f8 }; e- `" l, d. i2 {+ q" \: f o
nPoint += 390;1 k( P! M, H. B, n
8 n6 j3 ~3 u5 ?$ ^) C) T. I, n AddSkillPoint( nPoint );
9 ]7 s+ J9 O B) o9 d6 s4 l m_nLevel = nLevel;* D" c& f4 j" j
J% M. z6 F4 I6 u, Q SetJobLevel( nLevel, nJob );
( Q# ]: c: X0 L1 l; b. I, {+ A' e9 r3 L m_nDeathLevel = nLevel;& M. E, q2 F0 g4 r# [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) Q3 W; n, D0 m" g( l. q
if(IsMaster())7 b/ u- z. |( V5 e* K! n, A
{
5 i9 R8 c4 E4 c5 k int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. t9 r0 [7 T0 A+ Z/ X if( nLevel > 59 && nLevel < 72 )3 r1 Z5 O! r2 u8 i! G
dwTmpSkLevel = 1;; S0 _4 O5 d7 \7 d$ f9 Q( L; C; E
else if( nLevel > 71 && nLevel < 84 )
7 E- A3 ]3 B/ @( F _ dwTmpSkLevel = 2;
" P0 J- K$ V% a. P; Y else if( nLevel > 83 && nLevel < 96 )
: z; G& I# `1 U7 O: c# `1 i8 x dwTmpSkLevel = 3;
& C6 Q# O& Q0 v' ^& K" t% }, i' {+ P else if( nLevel > 95 && nLevel < 108 )9 M! o9 n% ~8 g" e; r
dwTmpSkLevel = 4;
$ k0 [. g: }# L' C3 Q else if( nLevel > 107 && nLevel < 120 )
3 A% [2 [. L7 ~: S5 Z. d# V dwTmpSkLevel = 5;7 N8 [& K+ F: z. [2 \* w, l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
D) ^ F3 f! {/ H* I- c( }4 b {
' P" G- k3 f& r- P% Z/ M1 |( K- s LPSKILL lpSkill = &(m_aJobSkill);# {3 j! w1 V! m8 v8 M8 c
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 z$ ]! J, W" c. v7 A/ \ {5 z/ ]- {' O6 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) ^& ]1 Y* I) N( ] if( pSkillProp == NULL )
. w& @ `0 u) N+ X- E; i continue;+ J W3 ~( f/ L2 f7 N% A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 q9 b* q, v# s" D
continue;
( r& l" f& m8 H" ]. W# } lpSkill->dwLevel = dwTmpSkLevel;2 n: I5 _/ k+ e* V
}+ z. a$ D' l+ s( X, Z
}; \9 b: ?8 P: O2 \! A
}
) M6 J5 r) h, H6 z1 M% p else if(IsHero())) Y0 E$ ?! R5 S( f
{' g8 ]- c; c0 `# s% Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 q; w8 v0 H/ v/ ^1 u" C, w { : S J" ^: r2 u+ M# o. L
LPSKILL lpSkill = &(m_aJobSkill);
" c/ k3 t& [2 [: k7 c% _/ n if( lpSkill && lpSkill->dwSkill != NULL_ID )" u9 c/ s- y9 C
{
. U) f5 u" z9 r# @# b# h) m" I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 x& z* S5 i9 x. ~8 q
if( pSkillProp == NULL )+ T3 E3 d- V3 u6 u& f
continue;0 S* J) k$ Z' a& T7 ^8 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 n' i N7 n5 N/ t0 ~, H) I( u continue;7 t: X7 |- }0 V, N1 g& e
lpSkill->dwLevel = 5;& e/ p6 C8 k. Y! N( Y
}. b) m$ U& N, }# |9 G1 G S+ d6 e
}$ K/ n+ L! t, v
}3 J+ |( d1 [9 A3 t6 ?+ ]
else if(IsLegendHero())$ X( B8 A$ \5 a4 w
{
6 } q& T; y \6 g! @1 X9 b& n for( int i = 0; i < MAX_SKILL_JOB; i++ ) : A. K2 X5 Z- @" t
{ & M9 l# ?6 n3 c r5 t
LPSKILL lpSkill = &(m_aJobSkill);2 C% U: J4 S. T
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 k" f7 W3 I/ f; { {1 T. L1 O6 s: p. ^ K/ @0 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 ~" j A5 k* X- c
if( pSkillProp == NULL )( [1 z+ ^# K+ w3 [6 Y& `
continue;2 l1 v4 _' q0 M. ]- o, u- ]% `3 K
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 | j/ N, q) M. o/ s8 b, {5 P6 U continue;
- b7 b+ w& u$ }& |1 H lpSkill->dwLevel = 5;
/ e: R4 K. X8 W6 E( R( b% h; s }
9 h, T7 c. k5 o' a/ {; _ }
$ c$ v( G2 P+ U! u- c: B2 { }
( D( V6 K2 J" L. l; c. m3 F3 y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- j: W3 L) r/ j n if( bGamma )& O. N5 F! b4 n( Q0 T+ {: f
{: X% S# Y* ^! Z9 f9 @+ O$ {1 W
m_nExp1 = 0;+ z* j9 W, Z, J+ S
}7 P% J, X1 B( ], N L; |
+ h5 N$ o+ J8 F! E- b, ~% h0 c ( (CUser*)this )->AddSetChangeJob( nJob );
" z5 h. V- l9 F: @' [: E% } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
/ L X# P8 f: U* n
2 w/ P' Z9 t: Y5 {7 X9 y
9 ]$ f' m! ]% a Q+ ]#if __VER >= 11 // __SYS_PLAYER_DATA2 }, }) q0 l; `" {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 u' y) R- d! w" G) ?7 ?5 T#else // __SYS_PLAYER_DATA) l) E0 C* r0 \" l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );8 N c# M+ M- i( c6 ]) u$ e! v& V$ }7 y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 j0 ]$ j, v& l0 ] if( m_idGuild != 0 )
% ?3 R+ V4 ]0 I( M+ } g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 ^$ b2 C% ^/ P# N
#endif // __SYS_PLAYER_DATA
. z9 Q7 r' W9 Q2 j3 f$ [% n SetHitPoint( GetMaxHitPoint() );
4 [+ H) g: ~; [7 S3 s9 X SetManaPoint( GetMaxManaPoint() );! X" `, X, K- {/ @2 X
SetFatiguePoint( GetMaxFatiguePoint() );! B$ E9 i& L- ]
if( nJob >= 1 && nJob <= 4 )
: {( y1 w" {2 w/ o' ?# I Z {
; ^& m$ {1 a7 H m_nStr = m_nSta = m_nDex = m_nInt = 15;
) I9 d' D+ i: I3 F" A8 ?2 B6 c m_nRemainGP = 28;
U8 G) o% G6 F4 j }/ Q7 q0 n6 J% a9 M2 r- z5 Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ Q8 \7 [& N9 [4 @3 |% w6 ^; M
{
. ~# ~6 g/ b; C9 E, `6 Y+ U m_nRemainGP = 118;
6 E7 r" R0 j3 p+ \5 w& j- V9 [) Q$ _& ` //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
7 r3 S8 J& s4 ?: H- V. z: D m_nStr = m_nSta = m_nDex = m_nInt = 15;7 D, S: S( R b
}1 X6 }) `, w2 i2 k+ | v$ h; x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% I: c u7 {; G% L! R {
: U- c! W* o z8 u6 }. G% [2 B" k CItemElem itemelem;
. h7 J# b9 ~/ X; Q itemelem.m_nItemNum = 1;
. G8 p$ b. p8 h' n, _. `: \* ^1 F itemelem.m_bCharged = TRUE;* Z: H* o) `$ d9 j. Y
BYTE nID;
9 j: E, b- g( c* \5 o) ~! q
8 C$ V# l* m* b4 x( S# L if( nJob == JOB_MENTALIST_HERO )! }2 N% Y. j4 h/ d+ P
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; H3 S G0 f9 a2 L- c# V$ o if( nJob == JOB_FORCEMASTER_HERO )% Z2 X( G& ~6 e6 i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 Z f) R( x6 A1 w* O" F# P7 L- G2 ^
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- t4 ~( [: |0 x$ D' Q8 g% l7 H7 W }8 {* H# O( P5 E, ?& ~; k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
: c# y6 x4 [! I( q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 C0 W5 e+ q! w3 N' G7 `+ _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 J5 z8 ^& q# Z! o( X
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 b$ N9 s7 z6 G# W* T. F' }
( (CUser*)this )->AddTaskBar();*/) L( X6 t7 c; h% U8 R3 |! @1 F( A2 b
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 R b& E. j. B P. O
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
I; x3 j4 e% c5 O1 D: c/ L ((CUser*)this)->CheckHonorStat();
! d4 T0 B2 e) E, { ((CUser*)this)->AddHonorListAck();
& b+ V* n& I0 ^+ E8 N5 O' ^ g_UserMng.AddHonorTitleChange( this, m_nHonor);8 C/ J& z4 ?4 Y3 P% a) ]
#endif // __HONORABLE_TITLE // ′Tà?/ p6 t& A' A3 t7 D
}: A N2 [% x; }; o" N
#endif // __WORLDSERVER
/ o8 \9 C8 b$ n# r J}
) P2 i3 `4 l) g' }- |
( I% q" @2 N% L* r然后你进入functextcmd.cpp并添加以下5 C# P m- {& {5 w/ v
/ q" M0 [1 m0 A% A- v" h0 R
代码:; c' s( |5 Q1 n0 M" p$ Z" Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ r7 N& r2 B) B6 m下面插入' u1 l0 N _! O: ~; [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 l( R: L9 t, k" q- y
" ?6 n J1 Q, z# x: |然后你去+ F3 o+ }% A& V: F$ k0 g
2 x1 q5 ^6 L0 J代码:2 g2 V; f! x+ I8 n
代码+ m5 ~3 \7 t3 r4 S
BOOL TextCmd_ClearPropose( CScanner & s )% W1 P3 ~+ j ]2 L
{
2 G) M! t/ _( o0 B0 a#ifdef __WORLDSERVER- b- Q; T! f& u: y
CUser* pUser = (CUser*)s.dwValue; K7 X4 S2 ~+ E4 R, ?
g_dpDBClient.SendClearPropose();; m8 a& }3 K2 W% z
#endif // __WORLDSERVER5 [0 W A5 z6 h" A- b1 U$ j
return TRUE;0 V' E v4 l9 c& |9 c% }6 T& I
}
: x6 g p, o' m7 b z下面插入5 X. y! A& Z" S! c* S5 ^
BOOL TextCmd_rebirth( CScanner& scanner )! H$ f0 M7 |9 i7 o2 F
{1 J# w0 O5 k; ~ v# Q! f; d+ Q
#ifdef __WORLDSERVER- a; Q! b$ y/ |
CUser *pUser;
2 ^% g( @3 X: f- K mpUser = (CUser*)scanner.dwValue;0 P1 `% Q$ c# s" r! o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 n4 f1 g+ Y9 S& J: d* XpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
7 N, N! _. D( g. \else' H# O0 } o9 K+ P, G# ]. S
pUser->AddText("你还未达到重生条件!");* [# z+ R. B3 b3 w4 x1 j
#endif; ~3 _ M, c$ P1 `8 v9 ]
return TRUE;/ Y: X. N1 U9 J! ^- [. i
} 4 y, U: \7 S1 }" M
, x$ o+ p. k% @3 } c7 i. ^/ G. _1 i7 n) R# Y4 O! w+ C9 v5 n
8 ^- X0 x/ G8 |5 e. g6 o( {" G. E; A' s7 u3 I) H) W" W9 M
|
|