|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 y/ `) @& B* O; a: V9 ^; j" K4 }5 C
+ n$ l% O0 i2 p: C0 K
Mover.h
( k- I6 s) j) ?代码:
- n& @. N* g* s6 B2 t( ?6 x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& {" K( ]4 n7 m# q4 r: A, l
' z. P% G0 Y0 O; [7 E5 [7 j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % d R; ^0 N7 d# j5 B
/ I$ V4 e2 ~- T" Q然后你去mover.cpp添加; Z" G {! C0 r9 b2 _+ z0 j
3 \& k/ {3 M. \. R代码:
# I& } k4 B# ?; P) }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, Z1 v' p/ N1 _! V- c1 l{6 s+ I% D5 d1 f! F$ | f" t; ]
#ifdef __WORLDSERVER, m( p o# \) K( q7 _+ k- q5 ~$ R4 V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: }7 u/ X+ u* u* B, v% h MoverProp* pProp = GetProp();
+ ]6 Q( f3 ]) q6 V if( pProp )
4 a; @( Z( u5 @+ f D {
/ Z$ D6 q; d/ }. Y5 _8 n if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 r2 T4 c3 M0 E- D+ G {6 U: Q% y7 o+ Y2 P- T. ~; S
AddChangeJob( nJob );( D/ x; _+ ~7 s+ \1 r
}else{' Z; Y* \* R; j, g/ G
return;
' S5 F3 d) J1 `5 F# E }# ]; H0 u% t* }* j3 f
int nPoint = 0;
* N: h* l# J( U if( m_nJob == JOB_MERCENARY )% F7 E( i( ^' {9 V9 ]
nPoint += 40;; l- F% ~% Z+ Q2 i$ L6 m% D
else if( m_nJob == JOB_ACROBAT )& D: {3 n- b$ j4 }: X# G- |* i
nPoint += 50;, h9 H( x$ M0 w% ~* w
else if( m_nJob == JOB_ASSIST )( x4 x/ K$ U' y$ V! B4 N
nPoint += 60;& u8 L6 e, L! {5 s4 p
else if( m_nJob == JOB_MAGICIAN )
0 z4 f" O( \* [ nPoint += 90;+ f1 \9 c6 P- e% W- A" H: R% O4 o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 F/ ]! ]' k2 e
nPoint += 120;
3 k% m& a$ l: f2 [3 p else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- H3 A B" {9 V$ M nPoint += 150;7 A: y7 d% [9 N
else if( m_nJob == JOB_RINGMASTER )
" L% Y1 a& _% X$ {0 M1 b nPoint += 160;
- c( W7 l2 Z9 n6 E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! g& W( x" `4 p- U$ k
nPoint += 180;
! y) ]/ k. U, b6 } N5 l# Q else if( m_nJob == JOB_ELEMENTOR )3 t* j5 N' a/ i* R- w" r, S
nPoint += 390;; K' C; A) J' V+ M* p) |+ {
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: Q/ {9 P7 P5 }9 A+ B7 i( Q nPoint += 120;% L& O& P4 Z9 P0 D" }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
: l: @' V2 C! V; D [- _; ~ nPoint += 150;; ?) p+ G* Q/ u& l R
else if( nJob == JOB_FLORIST_HERO )
; @+ x; \9 A3 ~) U nPoint += 160;
: x: E: ~4 s6 ?6 i2 P! n else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), b& s( B4 r" a" t4 e: n
nPoint += 180;
+ m6 M2 D) S" ` else if( nJob == JOB_ELEMENTORLORD_HERO )$ g+ I1 \1 `, f$ E$ V
nPoint += 390;$ D0 _% J* A. U
( J5 S2 N4 u _( ~( | AddSkillPoint( nPoint );
: m9 [1 ^4 }4 _' `* [4 j. B m_nLevel = nLevel;
8 L; o/ ?: h/ z; r2 x0 L0 s
2 R2 c/ M% x5 M) ^# }2 _; E SetJobLevel( nLevel, nJob );
4 ^" m5 b: e' S i7 M m_nDeathLevel = nLevel;
% I+ ]% g; a& W' W# l- a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: }6 m2 s9 N5 i- I& X9 F3 y if(IsMaster())+ \+ f. a/ ?6 S: V/ K
{/ g$ @7 e4 c7 B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 t2 u: t: L0 X( D2 d9 I if( nLevel > 59 && nLevel < 72 )
/ X1 x9 ~, V; y8 u, _& W7 V dwTmpSkLevel = 1;' t7 \8 _+ Q5 U3 h
else if( nLevel > 71 && nLevel < 84 ); e7 H2 A, g6 }5 E$ g7 e: i- C
dwTmpSkLevel = 2;1 d7 z8 y. @% D4 t ]
else if( nLevel > 83 && nLevel < 96 )
+ h1 M& f7 A" T& d dwTmpSkLevel = 3;8 B, n) z! l7 M) g: ?
else if( nLevel > 95 && nLevel < 108 )
5 E' i; ?. ?, Y9 v; `& x dwTmpSkLevel = 4;
' P- M! i- ?$ R5 [) p else if( nLevel > 107 && nLevel < 120 )
7 D1 n) O, I" v, _8 {- P dwTmpSkLevel = 5;
6 ^/ E. w j! s0 }% J+ G for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 }% ?7 n2 T' b {
) _2 P& a( h. ]# B! ?' F$ f4 n* R LPSKILL lpSkill = &(m_aJobSkill);6 d& [7 U7 k% |( ^ i* P3 t5 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )% i% M- z! v7 b* C
{0 M2 g8 n3 l/ Z2 L' a
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 G% E+ e* X" S% n+ h if( pSkillProp == NULL )6 E& r7 u. o! e& ^/ u4 L/ s
continue;* S& E+ p& c( ~+ w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 o" v, h4 J3 k
continue;
; d- f" j2 S, ~3 v lpSkill->dwLevel = dwTmpSkLevel;
' N% N0 R d5 s5 v2 E) K }
1 ~/ L/ q, y2 l G }6 C. v. `3 }8 f3 c. O7 P
}
* n+ i; f9 j, d8 r8 }. G" m y2 s else if(IsHero())
7 Z7 R0 i/ l/ e* B, f4 H! {: K {
: I0 Y- M! O7 b& x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 b6 \2 k3 ^: y0 z
{
5 l+ T' h, v/ n* ~; o- S, V6 N6 N LPSKILL lpSkill = &(m_aJobSkill);
0 \ P' |2 W, h if( lpSkill && lpSkill->dwSkill != NULL_ID )* H0 B( G& ]9 W3 F$ Z
{$ r) V p' m4 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 f& S Y" D5 [ z if( pSkillProp == NULL )5 R: _" c: e1 z/ p/ f
continue;* H2 g( a" p$ P7 ^8 @0 q* Q @1 _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) r/ R. I& R: e4 c. R0 ~+ F
continue;# t8 o$ Y: Z# a3 ~6 J% f
lpSkill->dwLevel = 5;% U# u/ R3 m1 R* a( H2 C
}1 r2 h! _* Y x4 ^3 e
}
3 O4 I) g8 C9 u8 B V3 I" P" I3 X }3 V* B$ e0 H/ @* j% T$ B
else if(IsLegendHero())
, i0 r8 Y( o0 @! Z$ T/ [7 ] {
$ s. c) l# z }. T9 Z: N for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ f$ x* H3 O- ~6 T# D) R {
" u1 R$ G/ V) J4 ? LPSKILL lpSkill = &(m_aJobSkill);* G5 k2 \5 q$ ^/ n6 m" C
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 D* g8 q5 P8 G/ Y. h0 h/ m2 z
{ n. r! e i; e" Z. w$ c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% k @# K' D7 D+ {& u if( pSkillProp == NULL )
$ J" y& N- U4 x; T* i$ _! |& _* Y continue;0 i2 b3 K/ B) I# `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 Q$ `! Y- p7 U; _ continue;
6 ]2 a3 }( T/ j% }; I lpSkill->dwLevel = 5;
" d" e6 O1 Z V2 V8 U: z }; m- x9 u+ F- }0 Z0 n' x4 L
}, a! N K2 O; S/ E- i) x( J
}
# A' V; r! M- ~) j: E3 n$ E. }#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 j6 S. w& _1 A* o+ J# z if( bGamma )
3 K! `& Y. f" \& ?# [ {& ]* K" _+ V( Y' U1 O
m_nExp1 = 0;1 h, U2 p: v. h, f5 ?. T
}% N: E! m4 b/ ^( _
8 Y8 \+ W) q8 m9 s+ J ( (CUser*)this )->AddSetChangeJob( nJob );
/ D6 b/ d- g. a, G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 x$ _, x y( T5 G' O7 S/ t* B) I3 O H
# o+ q' v5 R& O9 K: o# b" a#if __VER >= 11 // __SYS_PLAYER_DATA
( Q8 |4 R# Q* G$ r5 r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" N" h! F! M8 q8 Y, b& }6 r
#else // __SYS_PLAYER_DATA
" Z2 l r, Q1 P0 @6 O g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 |6 \9 y; S: u1 \% D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( Y( N k5 H6 d9 Y8 G
if( m_idGuild != 0 )
2 R1 |- z7 C( j; p6 j- x- A- q: H g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' c5 ~' h# f- j- m; |, @6 u# E#endif // __SYS_PLAYER_DATA
, a! V, X7 R, s$ K# o SetHitPoint( GetMaxHitPoint() );
9 k% A' z* m6 B" Y' i6 T1 h SetManaPoint( GetMaxManaPoint() );/ [- W& P% h+ @7 k
SetFatiguePoint( GetMaxFatiguePoint() );
) J C) ?0 h J1 W4 B if( nJob >= 1 && nJob <= 4 )
! r, l0 w4 F( V {* ~1 f9 ~4 E- p+ \, ]* S6 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- L& r7 W. L8 A% O* O m_nRemainGP = 28;
3 m. b! l6 l4 N+ h" k }- s# g8 U! U) A4 s; |6 q& V. J( S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ |$ J2 U Z* ]/ d; |
{
v, {% H4 z8 d m_nRemainGP = 118;
: h: y) y) P/ B# ?" Z3 d8 q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 B8 D6 }- T1 O% ?. g/ j
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ e/ c- i5 ]. W' b/ q }
o0 p. L/ t5 t( u5 V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 I/ X! C; S$ l$ o* T6 g {+ B: S! u# ~! \8 ^+ I
CItemElem itemelem;
7 j3 C. z$ w$ Y6 ? j" d itemelem.m_nItemNum = 1;" O/ C7 H4 }' @5 Y% x
itemelem.m_bCharged = TRUE;
4 L6 n" k6 ~- J* } BYTE nID;
5 h. L" s! t4 m) P* E, k( `) F% {/ ]/ k
if( nJob == JOB_MENTALIST_HERO )
# r6 e7 F/ `' a itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
: N: F, j7 y, r if( nJob == JOB_FORCEMASTER_HERO )
; J& D7 i5 O$ |+ p6 t! y) k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- Q& G3 u/ {$ ^1 F' x0 C. T
; O2 G7 x7 B3 }* Z, m, S ( ( CUser*)this)->CreateItem( &itemelem, &nID );
& L8 S. B0 b' l k }
0 F' x& i0 r3 }" ]+ U, P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 H1 C0 a, {3 V$ ^. C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* _. D& t1 m" B4 D6 }! [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 ]) C/ H' x/ D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% e' s, V' C! V. m7 X8 T9 u. @. [# w
( (CUser*)this )->AddTaskBar();*/
, K* w% ^% Y3 T$ @5 h2 r+ j ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- J! J- J2 }5 a" r/ T* P7 O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 N# W$ l S- h8 W ((CUser*)this)->CheckHonorStat();' |, w4 ]: M0 R4 l- p$ p) m" o6 l
((CUser*)this)->AddHonorListAck();& \% Y1 n# J5 O% H( `
g_UserMng.AddHonorTitleChange( this, m_nHonor);) E' Q+ R% `) y( Q/ H# K
#endif // __HONORABLE_TITLE // ′Tà?
. ]# W4 I; {# R$ q }
) l" A9 |2 M. W# Y% m$ v#endif // __WORLDSERVER
6 N! e1 a" c$ |0 A' A} 4 R7 s, m* z& b5 F# y1 n" `2 _5 w
; ^* e- B' T! Q- O: _0 a然后你进入functextcmd.cpp并添加以下
' S5 z% W/ I, f: a" ]* ?* M7 h+ [. } `1 a
代码:, m. ?% f6 o8 n) `
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 N3 e( j) V- C) ]' i Y. q2 v下面插入4 c/ Y& O; q; t8 H& k) M8 i+ O
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) }* s2 q3 w8 |+ |, L- F
; M9 N/ m+ ?, c8 |; e; K4 v然后你去7 E6 v, @- |* d8 @, K) F2 ^: \' P4 U
6 C1 T2 ?* D4 x4 N- p代码:% [6 j1 n% W/ [1 ?: n
代码8 `5 v3 t0 i0 F0 x3 x4 o7 c& }
BOOL TextCmd_ClearPropose( CScanner & s )
8 o$ I, f/ J# `+ q% |{
! X0 D: H: {1 S4 D$ @/ o#ifdef __WORLDSERVER
1 S+ v5 x3 y7 P# f% A CUser* pUser = (CUser*)s.dwValue;% s+ K- F9 N9 c/ ?4 ^( u( ?6 n
g_dpDBClient.SendClearPropose();
! |( P" @% b# a @% k1 i#endif // __WORLDSERVER: m3 }% _3 f' x6 [4 ]# A
return TRUE;
7 @: v: O9 y, Q3 c6 }! }; Z}
9 \% [/ F+ t4 b! E% L) L8 P下面插入+ z2 t1 c/ U1 R0 `! \4 S" g" Z8 o5 |
BOOL TextCmd_rebirth( CScanner& scanner )$ E6 u- e8 A# g2 s2 J
{# i" @+ C* V1 O# I! X. N( N
#ifdef __WORLDSERVER
' b' |+ h1 M' ~5 ]' a) _CUser *pUser;, I5 G/ O8 ~) h$ X8 _
pUser = (CUser*)scanner.dwValue;. A/ N. z$ C% v* b& w6 y& a
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! C' y& o; V) L3 E( [0 N- m0 c7 r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) y6 f' m; q+ ^- ^' N- w0 D- X4 @
else
5 T/ {3 l. @3 i# G3 B9 tpUser->AddText("你还未达到重生条件!");9 i$ t8 ?9 h" H) W" x1 m. T
#endif! N( A, o# k6 y5 _5 U( d; F2 d
return TRUE;
( [0 F/ K% X( n8 c& @}
9 j: n# H9 o& ^* N4 G
( b G# z$ a+ p* h8 C# ~+ B4 d6 c0 K. l- x) u$ S" D1 V7 c
+ R i+ f, `' R+ L! r
% f+ R+ \( J- ]8 i2 y* l p |
|