|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& ?! e4 Z6 F# y& F
# J) Z3 U& |" v& `5 O1 X3 qMover.h3 w/ Z/ ]+ `' R7 M; l
代码:
: q6 X, g5 R/ \& B; A2 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ n/ {6 R5 k3 |; u! A8 [1 A0 v' r1 @9 w6 u+ W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 Y' p2 o; U- C; W& o3 r2 m0 D# I& i) f
然后你去mover.cpp添加
* @- |5 Y }2 }) |; X& W& l6 V, F
代码:
6 D0 U4 a" f2 _8 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# A; u$ |4 F1 G+ c" J& |{* h4 e7 ~1 M* N m" K {
#ifdef __WORLDSERVER
5 n( k) W( r' v) p& l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 s! I" J* q+ J2 W( ?/ X# J9 u6 y MoverProp* pProp = GetProp();
) a1 A, }( {/ e: \0 Q0 _ if( pProp )" \2 _2 X! I; C) @7 L: ?& M9 W
{7 w- N; D3 v/ G8 j* k9 P5 H* B$ a
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) }9 E& }$ j1 Z6 C/ I: k4 g {4 g0 G$ k6 [! s# x$ m" d: X2 H0 ~
AddChangeJob( nJob );
8 P- r, G9 [1 h+ A4 H( A+ P& K- x }else{& d9 o3 i' ^7 f7 b% U0 x
return;, _% Q T6 j/ r v+ y; s6 z' i+ d
}. E! M8 o4 e* i$ B4 ?( D8 H, g
int nPoint = 0;% m M& s) C1 ^5 @2 O
if( m_nJob == JOB_MERCENARY )
! p4 X; n0 ?) }! v nPoint += 40;" G2 \2 ?0 W e5 N8 H
else if( m_nJob == JOB_ACROBAT )
) w F# L% f" a" P. v nPoint += 50;4 ~, f: A$ S b. G3 N
else if( m_nJob == JOB_ASSIST )0 p7 u# F( f: t. H" _
nPoint += 60;- A% a2 g/ C# w4 y
else if( m_nJob == JOB_MAGICIAN )% N- z8 O+ A/ g
nPoint += 90;; c; F& q g; ?0 R0 Y3 y* b
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
: b4 y+ p. e C8 K: @3 n nPoint += 120;
% @& j i8 h8 ]$ p; {, ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ J. o6 g7 P# r2 H5 {
nPoint += 150;/ o0 Y; T; \0 }% H4 S9 ?7 ]
else if( m_nJob == JOB_RINGMASTER )
: K3 Q4 M( n9 b# w/ N% l nPoint += 160;
) B2 K4 s: B: M. J0 T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
2 j! i; x1 }+ m' S+ [0 y! C nPoint += 180;
7 X9 O% h. _4 K; C' j else if( m_nJob == JOB_ELEMENTOR )3 B% A3 b$ {0 N. j) k
nPoint += 390;
* @, ` ^0 p8 P1 t% V, p" L else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! A' y1 v+ S/ M+ t' [1 j
nPoint += 120;
3 u+ G9 H6 \, [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
E0 c- X p) I" o0 z# [ nPoint += 150;
4 p/ y9 C4 }% W4 P5 Z! ^ Z3 r; a else if( nJob == JOB_FLORIST_HERO )* n/ P% ~% m) K$ f K2 v
nPoint += 160;# u0 p+ C) i8 h4 e5 `% f$ K, f
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
+ N( z$ C! `& e" y1 u* _/ w* ] nPoint += 180;
* \2 y" G6 Z2 e, T2 a0 _: p0 P% C else if( nJob == JOB_ELEMENTORLORD_HERO )5 ?) E8 i, Q% B" m! G
nPoint += 390;4 M' i' a* |6 b4 m
% _+ `" ~) h4 |8 x; t" r7 U AddSkillPoint( nPoint );
7 y+ X2 ?; x! f' A, V" X$ w m_nLevel = nLevel;
5 e% P% {' W, t* E
. W; g7 k. T9 Y! T$ Y- \ SetJobLevel( nLevel, nJob );
5 w3 x4 O7 c8 `9 K* E m_nDeathLevel = nLevel;
" ^+ ~5 P: k& ]2 p! Z; S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( k ~8 \, D! P' _
if(IsMaster())7 P6 v+ i' N. P1 e' {' O* K
{" N4 z$ |) y& u1 x8 D. @) q% P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 I4 ^% e0 R6 W% T if( nLevel > 59 && nLevel < 72 )
, O8 j, |: q6 g dwTmpSkLevel = 1;
9 d) Y# I2 E' j3 A! J else if( nLevel > 71 && nLevel < 84 )) F6 s$ V: d' h) B/ F E5 Z
dwTmpSkLevel = 2;6 _' R6 e; q6 F( {3 V
else if( nLevel > 83 && nLevel < 96 )
' G( T( \; W6 a9 U7 p( P" S( @ dwTmpSkLevel = 3;/ s# V- n# ^5 X0 b
else if( nLevel > 95 && nLevel < 108 ) g+ N2 L( }! m7 p: D0 s' o
dwTmpSkLevel = 4;0 E" u, Q6 i( M3 M/ f
else if( nLevel > 107 && nLevel < 120 )
& K# s$ C% L# H; R+ ?: | dwTmpSkLevel = 5;
% f3 o# _: h" }, x for( int i = 0; i < MAX_SKILL_JOB; i++ ) l Y* Y! g F+ u
{ / v: o4 ~. @2 ]( v4 e
LPSKILL lpSkill = &(m_aJobSkill);
9 I9 M! n* S" T if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ f2 |; }$ t0 V7 k/ g {
8 z( k3 V8 T6 R l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: H8 m! s1 I6 Y3 G7 f if( pSkillProp == NULL )
6 x, R, P3 S. Q" M& M7 @ Y continue;
+ A W F: B( g3 q7 ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ u) U( p; H$ q" ], @) ~& R; ? continue;4 ~) M6 c5 i% E, \+ Z+ E0 T
lpSkill->dwLevel = dwTmpSkLevel;
6 C: T2 W: {4 d3 {$ X2 [* p }
+ T4 b' [1 ?0 l }
: w$ R$ }/ s! v( c% u% y9 w/ }, f }
( M9 R: U: t' T+ ~7 ` else if(IsHero())
1 {4 t4 q: k, E$ V0 t7 O! A* N- l$ i {+ h+ e D" l% H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 e# {- ]7 @4 z, B3 B
{
/ `) r1 _& R. D; `: e- T LPSKILL lpSkill = &(m_aJobSkill);
. ^9 |1 s( G2 J0 E: E& r if( lpSkill && lpSkill->dwSkill != NULL_ID )& | j( M+ m2 x. k/ F4 F$ z; J
{
C( Y9 O+ h, y! a* F0 z% A( c g* Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 [9 l" Q, g6 p0 |) `9 L* v if( pSkillProp == NULL )9 H$ N" v0 A, g9 j2 R! H
continue;0 Q8 D) V1 r# d, ^# s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 S: A' R9 x4 |/ h( F
continue;
4 \ J, u9 r. ` J2 ] lpSkill->dwLevel = 5;
! k# Z+ J5 g) G4 E- j/ i! z. Z* G }% D7 v4 S7 r& v# C
}
i! B& w$ ~7 _- c }
0 g% v2 {" s! i7 R: _/ \ else if(IsLegendHero())7 Y8 ?- q4 B+ ^4 L
{
7 Z$ y2 q/ K: w/ j for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ u5 x6 @$ f8 t9 y" ~ w
{
0 E; t" s4 ^% @9 h0 x' n7 v( |! P, c LPSKILL lpSkill = &(m_aJobSkill);& r$ t* |, V' O) Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )& q. @3 @+ O) Z
{
; |. t" F+ R# l7 u/ i7 l } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; j% R n5 w' K. P
if( pSkillProp == NULL )- l; j p3 M( a* J* G% s. R6 X
continue;
+ ` ]. |; h) p if( pSkillProp->dwItemKind1 != JTYPE_MASTER). K9 _6 g: V4 o6 n2 A8 `
continue;1 W" H& v6 A: s8 {% R2 m% g" o& ~8 v
lpSkill->dwLevel = 5;$ ?/ d1 k N$ Z+ S( t0 d- |
}
* ^! W! R2 a0 M2 v- J }- f1 g B& e6 ?' M
}
8 p0 r- q4 W, B- o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ S2 G* e# h% f, V' p
if( bGamma )
, c! w" ~1 [# H9 S( g {
; w @4 b7 U9 E) N# c @" z! Q; h m_nExp1 = 0;3 W' y) Y" R" ~( \, |
}
- j, j$ T% y, X$ G6 x2 `2 g
5 R. G6 t% u" _& L7 T ( (CUser*)this )->AddSetChangeJob( nJob );
" P' b; q. a& g7 c+ E2 U( P+ L$ W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 }9 ~, g" o$ }& I$ \ Y5 E) R
0 b" {# S& N2 O! w$ n7 Y/ |% I7 }: f4 |4 f6 C
#if __VER >= 11 // __SYS_PLAYER_DATA8 i2 x- V+ S2 T" W' A0 z0 i1 u4 b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
H& W* X* B4 z R# D' K' h#else // __SYS_PLAYER_DATA. h' e6 f: l4 R4 @6 i2 |! P7 a
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ j4 V; \" x" w0 U5 h# e
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 c: e* h+ d( S& P5 y
if( m_idGuild != 0 )" ^: Y, f& U% f
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: g$ a! u4 H3 }" }- I5 d
#endif // __SYS_PLAYER_DATA' c! q0 l6 K3 p) v$ W
SetHitPoint( GetMaxHitPoint() );
! v* U9 h4 L) ?* P. h4 `+ e SetManaPoint( GetMaxManaPoint() );8 J, W: k @6 J' n; A) M9 x
SetFatiguePoint( GetMaxFatiguePoint() );+ G9 S8 B1 a8 j& K* Z- P
if( nJob >= 1 && nJob <= 4 )
+ C' d8 T* o- b- f X9 D6 p- ^ {
( [1 @& |1 q, ^# N ]8 _ m_nStr = m_nSta = m_nDex = m_nInt = 15;
- K( Z( A. t& e3 A3 P# B" b* b" k m_nRemainGP = 28;
6 h" D: w, g( D$ X) k0 ^ }1 R) x C& s, z2 z; D/ S
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ g" g9 i+ Q9 r3 \, W5 G {
1 [# }' N7 j5 n2 Y% Y+ K7 u) D* p m_nRemainGP = 118;9 W- s1 z5 N/ @6 ?: |* r+ \( x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" t. {8 R2 ]2 ` E! i: j/ W m_nStr = m_nSta = m_nDex = m_nInt = 15;+ P' ~' i* M% J. o8 Q; u6 r
}9 m) Z3 L; z& w5 g) Q2 c2 l! }: L/ o
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& g/ e5 }3 ^ K l {
2 P% w6 E9 z# U3 Q+ i CItemElem itemelem;' ^9 s, A: n$ T1 W/ D3 p# n, y
itemelem.m_nItemNum = 1;
2 h+ k/ O1 n" C0 m# @. c: Q! {) Y itemelem.m_bCharged = TRUE;6 m( E, A- F2 s7 m2 {- R( ?% J. z0 `1 D( P
BYTE nID;/ {; }2 f. I7 T0 Z) f$ }
% r$ D) y% Z1 \+ H% b7 n if( nJob == JOB_MENTALIST_HERO )
) h- H# g) Z$ b itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;6 u- _. `% C! |6 f, f
if( nJob == JOB_FORCEMASTER_HERO )
* D% j- g8 w: q: T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 N, I5 Y$ c) T0 U! X) z- u* j4 s) ~" Y1 w% n
( ( CUser*)this)->CreateItem( &itemelem, &nID );. d$ t, i$ O" }) c/ |( r
}
" V! g1 I% }' b% t: O7 M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! J1 A% G6 h) F/ N5 G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
5 ]3 [* F! k4 S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, ~! f& q3 ^' Q2 V+ O& V; r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 N- V8 ]0 p0 Z2 n* p3 K ( (CUser*)this )->AddTaskBar();*/& K9 t& r5 A" Y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 I# S2 `, E2 g @5 O; p6 C#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' |5 J: r5 q8 Q' z9 [6 @9 X
((CUser*)this)->CheckHonorStat();
2 C' y& r3 i3 S: [# b ((CUser*)this)->AddHonorListAck();
. e8 _9 `( A, M g_UserMng.AddHonorTitleChange( this, m_nHonor);
' {3 G! V2 k3 }#endif // __HONORABLE_TITLE // ′Tà?
/ w- e; O- {3 X( y }
- e2 @" j( [4 z2 D+ Q+ Q8 K/ S#endif // __WORLDSERVER6 a* g# [" i! u$ c2 w0 w
}
+ F& _* X4 J6 G9 {- _
& o" n' V1 k7 n7 m, n然后你进入functextcmd.cpp并添加以下1 y/ i+ K( }$ V* z; N* F) \
l4 X& r. G9 @( D T% D1 T
代码:
+ ]* r4 R) W( N- v, ^5 p3 ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ y1 |8 r! g1 A$ [' {$ g+ g下面插入3 }% o8 h5 v) w- P1 q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 B! b7 P. @- L1 w @
6 P7 w) ^4 a4 }" O5 Q然后你去) w q$ f$ @( ` w% r) n
2 H" Q5 H6 O( \2 Z% B) n/ L6 e: r代码:0 B) W( u9 D( l% x
代码5 f4 d m$ o* E6 j
BOOL TextCmd_ClearPropose( CScanner & s )0 @; H2 O8 a$ I% M( G
{: C( {5 @; w/ X1 c0 V) c# g' z
#ifdef __WORLDSERVER, e) j4 M; U5 p& v: a' r1 W
CUser* pUser = (CUser*)s.dwValue;
# e z1 o, u7 \ e# |5 T% Q! p" { g_dpDBClient.SendClearPropose();1 ^- k. v a% h. {
#endif // __WORLDSERVER7 {; L/ I% N1 I' u$ |2 M
return TRUE;
% H- @+ }2 n- q}7 Q! H# N% M4 g* b8 [* b
下面插入' l+ V# z! [" g9 N$ ?* O- e: S
BOOL TextCmd_rebirth( CScanner& scanner )
. p D* e. ]! Z6 Y6 P1 k6 V; E{- W, f6 b( ^2 Q
#ifdef __WORLDSERVER+ ~2 r6 }: e3 y, f! P- k
CUser *pUser;9 W6 |% p. f2 ]% u- g
pUser = (CUser*)scanner.dwValue;
) G W2 H4 p2 ?1 a* _if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% {% o& B# }4 j- f) i8 M. C
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; h8 w5 y' m4 V( D
else0 n9 y' ?" R4 |. r- O. {
pUser->AddText("你还未达到重生条件!");
, ]8 i3 i0 |, e& o4 B, y#endif
; y' F7 o, Y2 r9 N8 ]return TRUE;
5 w. K( ^ L, L# T}
% x: ]9 [( O, _4 T$ `( d
0 J. @9 O4 n! N& l& k) s/ C$ Z0 _2 i, `7 l% k( |
( ]5 z+ T" g) U' d& g
- i. S/ X% k J5 F. p/ ` |
|