|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 D. ]) q5 j/ q, s
9 D5 S9 [; Q5 |, P8 BMover.h
( N, t! u' r( D. K代码:
) [9 S8 g* j$ w4 Z" G6 k找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü q0 e, K/ C) ? t
3 a/ W/ T0 h) G; E) ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 C* M& [$ _2 I. P. z" [4 Q8 m9 A' N X" n/ \
然后你去mover.cpp添加
- b- }- P% f1 o- R- P
+ o% I9 H) {2 K9 e2 T) G7 m2 S4 D代码:# v" C, J1 N( ^4 J2 X8 p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
r2 }2 u6 `; p) R1 t# d{1 q* [; U: {' L; l$ J! {4 t& B
#ifdef __WORLDSERVER4 T0 k3 m* }5 X3 Z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. g) s! l+ N4 B8 @/ d MoverProp* pProp = GetProp();
# _ M, I& J# g& ` if( pProp )
! |$ u7 Z$ z6 C- n3 k* ^6 a: H9 x1 x6 g {& ~- h4 @/ D: J; f' e- u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 g5 y$ I- l ?0 m
{: ^2 u$ u8 d* X% v6 o& h; c
AddChangeJob( nJob );
0 c/ B+ w+ a- j8 V* ~ }else{
/ a6 o/ n6 u0 V7 X, q. d% Y0 R J return;9 D. k; L( C* U, l0 s* { K8 _
}& w" x5 G4 T6 \. L
int nPoint = 0;9 ^& G) g, k5 U3 j
if( m_nJob == JOB_MERCENARY )
, d8 o+ m8 V3 U( q) `/ e nPoint += 40;
) z. T2 ~ [3 K6 ` else if( m_nJob == JOB_ACROBAT )
5 i! H- u* s7 J7 b nPoint += 50;
' n8 B$ S) p1 {, n0 W else if( m_nJob == JOB_ASSIST )' p- n. C6 @5 o. l3 l4 z1 J7 O8 B
nPoint += 60;2 }8 |; a$ t& g8 B( H
else if( m_nJob == JOB_MAGICIAN )
1 R) r6 c. |& R5 j nPoint += 90;6 m: W8 M8 n. h& w5 B7 o" f! [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 t3 h# B" e) S4 ~$ R7 Y: q: m nPoint += 120;( o" t/ Z# y- ^. D9 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' s2 E: a4 r% g6 g" C
nPoint += 150;
( X7 y) n, g0 x% w+ | else if( m_nJob == JOB_RINGMASTER )
8 _ u, d5 e4 P3 y( Z nPoint += 160;4 T: u. N. W- {
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) o, M7 P. J6 g. a9 C0 y# F, t
nPoint += 180;
% ^" N" j/ l* V, n w else if( m_nJob == JOB_ELEMENTOR )2 w8 n0 i' O% ]4 H, i
nPoint += 390;2 g7 p( M9 L/ c- T* t( S% }: ~
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" n3 [1 ]. k6 c1 W: p% G
nPoint += 120;$ A& c) I' g" B# I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
* ]. e$ Z: |2 S7 _; z nPoint += 150;
' A; f) i6 [( q else if( nJob == JOB_FLORIST_HERO ) C% V* e5 c4 c( G
nPoint += 160;
6 h/ t& P1 I5 { t) h else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; G e/ O/ ]) ?6 U ^( h nPoint += 180;
, \. s5 Q! s$ S5 v- }+ @ else if( nJob == JOB_ELEMENTORLORD_HERO ), Y9 u9 c3 S4 b6 i- g* H' ?
nPoint += 390;
U9 N' n) K5 z/ ]7 ^6 O! c6 I: f. j, L6 j6 l
AddSkillPoint( nPoint );
; }. A" ?& X0 y/ j9 Q m_nLevel = nLevel;8 s3 o+ N7 N J0 s
" G% X: O$ H2 _0 K SetJobLevel( nLevel, nJob );( j& a8 D$ `2 ?: ?, i$ G3 O
m_nDeathLevel = nLevel;
" U! `4 N$ C! w& ?" [. E: d- S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 Z' B0 I/ B- l$ a' i if(IsMaster()), f1 p7 d( @ _/ M2 l
{
+ ~, A1 a Q. q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
i2 o9 |5 v, n. n if( nLevel > 59 && nLevel < 72 )
/ d; d$ T! y$ r( N& |( j4 f dwTmpSkLevel = 1;0 N" a0 T4 c5 t' u
else if( nLevel > 71 && nLevel < 84 )1 h7 M5 \( j$ F( X% n) A" u* C6 M
dwTmpSkLevel = 2;
8 z& m1 ^: `9 r8 k2 p8 m else if( nLevel > 83 && nLevel < 96 )) f) M% c6 o8 M3 c5 Y/ c9 H
dwTmpSkLevel = 3;) i! c+ T& v3 z- o% s7 A4 M0 w
else if( nLevel > 95 && nLevel < 108 )
/ R$ j1 v- h- N dwTmpSkLevel = 4;
; N6 m! P$ O: R6 e( Z) C6 x6 e+ q+ t else if( nLevel > 107 && nLevel < 120 )3 ]) w$ Q+ C9 d6 n. @
dwTmpSkLevel = 5;
# T, n, I9 X4 h0 l4 W for( int i = 0; i < MAX_SKILL_JOB; i++ ) t' A6 p, ~& `' V( b
{ 7 f7 Q1 r0 {# {' f
LPSKILL lpSkill = &(m_aJobSkill);
, [6 b! d" R; s0 E7 W if( lpSkill && lpSkill->dwSkill != NULL_ID )3 U w) y4 ?, \& h- z, J
{; E: b" Y# E6 T6 o9 S; g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 c( l0 G1 l% H) t& E" N7 r9 j- k
if( pSkillProp == NULL )
( A& Q: w6 S) Q continue;* W2 v: I! r( C1 N4 [2 E* ?) C% b8 P0 _; c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 b1 Q! k" O T
continue;
8 f1 ~( c$ c9 n7 T4 k lpSkill->dwLevel = dwTmpSkLevel;
W; i2 P$ U$ V3 C }
% R+ C" r3 { H c1 I$ h }
- B" C- E9 Q% O2 n5 k/ r* }* p }! S" K6 N! Q4 F' u: u, K, W# g
else if(IsHero())
. i; c& I! M/ g1 j {% U9 p5 ^7 R1 ^# B. W' B; z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" b: X1 j4 O* W6 f( `0 z { 8 y: G( s7 m. W: U0 Q8 ~
LPSKILL lpSkill = &(m_aJobSkill);$ I- e( ]* z% J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 n8 o) X+ _6 c/ z& b* ?0 b { I: G; s; G* B! I) O6 o& y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 [ U) u' W$ {
if( pSkillProp == NULL )/ b' P' D) T; `/ [
continue;# n) k) V! G% D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. |/ b4 Z/ I* Y. x+ _4 [% W continue;# E+ ]% j$ ^. ]% s: W8 ?1 E
lpSkill->dwLevel = 5;
7 i9 E8 i" n8 O }
+ {+ X1 r' p. }# G }
1 ^) a, d, X6 ^# ]- C+ U2 j3 F }
4 u8 G, E5 f: g7 C0 m else if(IsLegendHero()) g+ @ F" D& d
{
; D b6 {0 g4 ~" b( \6 F# [( C for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 ?; i( }! c4 p! S
{
- h! m) Z Q( @6 {* Z5 u LPSKILL lpSkill = &(m_aJobSkill);
" B) X8 b( ^( x5 O if( lpSkill && lpSkill->dwSkill != NULL_ID )+ m! l' i, ^0 i, g
{
# a# b& } i( o% R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! [9 L6 M' q# h! j if( pSkillProp == NULL ): Y3 N. j L n5 r- n( F
continue;2 i5 D, @3 _! z" I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ }. T# q( y1 D; \6 J6 A6 A* b continue;
' \' V5 u) g8 l: m; G lpSkill->dwLevel = 5;
( a% h9 n4 X4 v* S' ?: w }" g7 X! F% @- p
}
5 Y A/ R' X# A" q/ w8 | }
( x" Q5 l- r, U( j#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, V1 a! ]$ T' q5 B. @5 R/ {0 w
if( bGamma )% l' c2 _2 q8 i3 z
{
7 p2 D) _- m/ U4 M m_nExp1 = 0;
7 Q" Q+ A0 Y+ B( R }
; |' A4 Q+ D' r# z4 X) W
' W+ e" r5 `2 k% X ( (CUser*)this )->AddSetChangeJob( nJob );
8 [, G3 b, @% b0 X& L$ l, } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 L- z. G& q* K' Q( T, I/ H( }; X6 R# J3 ?) T6 B
& G4 o) @4 ?! Z; v
#if __VER >= 11 // __SYS_PLAYER_DATA. P/ J/ Q: o+ ^2 v# h( B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 i# w ~& s, H% a% m' z
#else // __SYS_PLAYER_DATA
6 C2 _% w6 A4 B g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( q: g8 U; R; J1 `) d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! j L0 g7 m/ ^! c3 W" Z
if( m_idGuild != 0 )) C% q& Y% X4 F: b' W. L
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" `) k+ u+ R6 `2 _1 G#endif // __SYS_PLAYER_DATA
* {5 `; x. Q1 b2 R. ^ SetHitPoint( GetMaxHitPoint() );) B/ E- x6 c* M A/ |! R
SetManaPoint( GetMaxManaPoint() );! P; A; w8 X" r* D2 [1 V" R) e
SetFatiguePoint( GetMaxFatiguePoint() );
0 U8 o3 F; H k* z3 U) s& e) x7 o if( nJob >= 1 && nJob <= 4 )
2 n L1 }9 G+ N( B p {* d/ U3 ?0 _; K" b! ~) _( k! b% V
m_nStr = m_nSta = m_nDex = m_nInt = 15;, S1 |( C! p; ?, Q9 s' G
m_nRemainGP = 28;1 K: T/ F' f& }$ s' P- }
}
! c# j. T$ w9 @& K if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 J/ ?% P9 O' a4 W4 T
{
; ?3 u* v$ M5 i U9 R3 o m_nRemainGP = 118;
% A! V% Z7 q- \ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: [& } s7 w- N
m_nStr = m_nSta = m_nDex = m_nInt = 15;! ~& M/ i, h6 d: r: v4 L( @; A
}" V. Y; d5 X, ^9 b6 X' P2 \
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% y! h& g, [* C2 [1 {# _: _
{
" v. `' p1 J- G2 @+ C CItemElem itemelem;
7 H' j4 b- {5 K, X! r itemelem.m_nItemNum = 1;
. c. Z* p, n5 }3 O1 M2 ], c% u% o itemelem.m_bCharged = TRUE;$ @ w! } M, _5 g# a4 |3 ]5 _
BYTE nID;4 Q4 G+ v( b) `5 Y6 Y
6 k; @$ n/ a3 B* ? if( nJob == JOB_MENTALIST_HERO )
O5 ]1 k5 x" L( _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% M* r# K% I, z8 t
if( nJob == JOB_FORCEMASTER_HERO )0 {9 |) g: \" D$ a# t6 C u
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& K( p% Q, k8 q1 P. W
- {( g# D" Y4 V E, Z5 {2 w ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 L$ m. @1 L6 A/ @ }+ B# k/ W0 K* T+ Z4 `4 }+ }8 K3 Y! B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 R+ ^ B H; }! U ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 R0 `4 t" T A/ ]7 Q+ C0 j! d) Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) A3 f8 T$ l+ |' z/ r0 ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );+ |+ E2 F8 x$ C! \1 I5 A# {
( (CUser*)this )->AddTaskBar();*/
$ V) d. ]) ^" c, B0 s ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 p8 d, Z% m/ v" D/ u A* C8 ]) ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 D8 _+ T* @: R, t$ p ((CUser*)this)->CheckHonorStat();2 P7 i5 v p) I6 d: W$ O
((CUser*)this)->AddHonorListAck();. x. m& [, \7 }- _/ @
g_UserMng.AddHonorTitleChange( this, m_nHonor);6 w* Z; r, z" e0 O0 Y q! p: ]
#endif // __HONORABLE_TITLE // ′Tà?( p4 ~! N7 w% i8 t. x
}- N1 R3 N6 ]0 H W& m9 \
#endif // __WORLDSERVER
- O4 P$ v* t: S1 g) Y} 6 x& E) B" M2 x |1 j) ^
, a$ H1 G: i2 ^7 i; d: E* C7 S
然后你进入functextcmd.cpp并添加以下
7 u ?) c& ~% q5 A/ M) N. a2 P1 i6 r% k5 s" b/ u u
代码: E2 L' f( b* R" R, J/ `5 D
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 T+ c2 h3 i1 j6 p9 Q. G' X下面插入+ M5 s L! `4 A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 y% {+ V# i- p5 `0 c4 H, j5 v- [7 z. C& R1 X+ M1 K4 |; ]
然后你去. q% d. N. }8 K1 L$ Y
) q q( a0 U U/ z
代码:
# W4 z! F9 s- B代码- X8 P6 E, c9 E
BOOL TextCmd_ClearPropose( CScanner & s )* x. M6 U$ R& d, F7 |: ~
{
% ^& d6 G9 ?0 }+ v#ifdef __WORLDSERVER# ~ ~5 ^' @* g, s; L& g
CUser* pUser = (CUser*)s.dwValue;
6 E" v# ~0 o9 V z9 w2 B( ]$ l8 H g_dpDBClient.SendClearPropose();$ G: _. ]0 Z; S: {
#endif // __WORLDSERVER1 D; f9 Z+ |% h( v. S, F m5 S) Q
return TRUE;/ o- ~' t. k* ~. g
}
1 y8 k# n* ]! Q) M: t下面插入# v7 h: l7 P# [$ r
BOOL TextCmd_rebirth( CScanner& scanner )
1 G2 }7 L/ I, `* ~4 q) o{
/ U& _4 K0 A5 i0 k& U: R' ]#ifdef __WORLDSERVER
9 q0 t! X. t+ b5 u, v. s4 jCUser *pUser; O$ b: j+ R" k* ~9 I c% l
pUser = (CUser*)scanner.dwValue;* x: A y% N, X( i9 B, q( K8 g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 t J8 W2 d" d; J. ?pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: ~6 ^, D2 I0 ~; ]# b9 S5 d
else
8 }5 c5 v. Q5 d' a* l% k ZpUser->AddText("你还未达到重生条件!");
0 k: y7 G# ^# _# K; D" b#endif6 k0 J7 V& s. y+ w/ o: y! c8 N. L
return TRUE;
3 L9 f. f) x6 M* d( P) H2 T& P} ( F+ g# g3 }7 X" i0 ^, s
5 F8 E$ Z1 S- k9 R
: G" K: `$ C7 F5 |' y( h2 s# O- y- E* v8 e
P: Q3 R0 u" @$ T; X3 g' O/ Y' i
|
|