|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 i- C& d: u8 K( @3 T& G+ M/ K }$ n* c- D
Mover.h
1 d+ `9 T7 ]- \/ U4 L+ C# j0 C代码:
" O1 X1 y( d$ V! q/ x! [" | B找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
$ X; f5 i4 J/ u( Q9 J \; O% j, H$ i3 |- \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ {+ A W6 T2 V5 U0 q" s
3 L0 t! U3 P$ N* F! Z6 l然后你去mover.cpp添加3 H3 l7 h" b) `; f5 V5 x) N
' Y8 }7 O7 o6 U4 T& X4 D6 A代码:
3 q+ V& D5 ]4 R9 q+ G* c, tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 J! f. J! K8 h0 q{
# g0 @2 s V+ |: W#ifdef __WORLDSERVER
0 p# i& @! D% w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 s! \; E& E" V* _0 j% Q MoverProp* pProp = GetProp();
8 t, c' {& d$ s) E if( pProp )/ ~# o* M/ M! f3 O) }2 B+ {4 J
{( z/ X' S9 L V
if( nJob > 0 && nJob < MAX_LEGEND_HERO )" g8 x% [8 r: l$ {5 C5 X
{2 m; h3 v1 X' Z; I3 G& g
AddChangeJob( nJob );8 H- n; Y) o) V
}else{ m8 u1 w$ @5 R+ T
return;" U4 x/ ^- [" ?" s; W& I6 _( p" R
}
: t7 J/ E/ r, k; R4 { int nPoint = 0;* M8 W+ ], C9 F8 ?; m) D
if( m_nJob == JOB_MERCENARY )
3 u* ], n- f8 O+ X$ R$ Y nPoint += 40;
5 I5 ?+ k1 c5 l9 m else if( m_nJob == JOB_ACROBAT )3 p Y+ E3 [8 `' q% w
nPoint += 50;
. r1 G: W+ Z, i2 G- y2 y' x' z else if( m_nJob == JOB_ASSIST )& I) O: R- A* t1 p1 [
nPoint += 60; u. j- d0 w9 v# `8 E+ d3 h/ I" C
else if( m_nJob == JOB_MAGICIAN )
}/ s4 k8 r6 \/ C7 H+ ^ nPoint += 90;
2 C. a2 {# H+ } c) V5 h/ V2 r else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 b; l# E; j1 o$ ` nPoint += 120;0 @( E* O4 A2 h# t% d* I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ ?& {# O; G$ I( T! _' \; u
nPoint += 150;) y/ q- w- ~: S- E6 G4 ^4 \7 a
else if( m_nJob == JOB_RINGMASTER )- Y2 }3 J' H( B" x; s- r
nPoint += 160;
1 A1 I4 E- N) p7 W else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# B4 E0 j6 ]5 C) X q" x- G( H8 J nPoint += 180;
( ~. j- _ E2 j% c/ b2 a7 }8 ^ else if( m_nJob == JOB_ELEMENTOR )
4 r" I8 C- y2 m nPoint += 390;; e( ]) r! f! e: X" @
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" A2 u0 t, `8 f$ b6 W
nPoint += 120;
( |; d' h: V8 E else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# b5 W5 t+ t7 D2 `- y: l3 A
nPoint += 150;" M6 b8 M5 m f5 c& w# P9 d
else if( nJob == JOB_FLORIST_HERO )6 t/ K$ w" s" s" g, k! n7 K$ \
nPoint += 160;4 P j* ? f1 G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# R; p2 b0 g+ B/ u# ~. J( c! `. Y nPoint += 180;* A) \# _/ u5 Q! x& Z. o2 j! A
else if( nJob == JOB_ELEMENTORLORD_HERO )) k! B( e8 O' a' \2 A5 @& u
nPoint += 390;) ]0 Q( t& Q8 u, H' m; Z9 L7 i2 E
/ o: D/ v- w& _ AddSkillPoint( nPoint );
! h( V8 y! _! n7 x m_nLevel = nLevel;
% j7 {) F! t& ^8 ~' x
/ b* K; v8 e1 T7 ?( @/ o! z SetJobLevel( nLevel, nJob );# C' u2 r* Y1 ]. t; H; I
m_nDeathLevel = nLevel;
. E& g% t# T5 n( a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" J* j8 Y% [8 w. G if(IsMaster())% m& Y7 I9 w! a
{
# T' o6 E6 r% O+ i3 x7 L int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 ^. G3 `& L* J, A' w
if( nLevel > 59 && nLevel < 72 ) q; z5 T* x. |8 L/ r) ~% E
dwTmpSkLevel = 1; f% [/ o* E+ m# ~2 r
else if( nLevel > 71 && nLevel < 84 )5 y5 z; o" b1 p; [# E. i5 A4 X" B
dwTmpSkLevel = 2;# }1 y y4 H |# m/ E6 Y
else if( nLevel > 83 && nLevel < 96 )0 F' F& |. K$ s" A$ H7 i# X
dwTmpSkLevel = 3;0 [. W$ }3 }8 K6 }: y5 F5 f4 @
else if( nLevel > 95 && nLevel < 108 )$ w% {4 g) i D& p: h
dwTmpSkLevel = 4;$ [# |* t4 B) P; y7 D r% `
else if( nLevel > 107 && nLevel < 120 )
" j: A3 P% P) D. g3 Q+ l5 J8 D! y8 @ dwTmpSkLevel = 5;
8 ?* d0 x+ p/ Y) f' v for( int i = 0; i < MAX_SKILL_JOB; i++ ) . ^/ e+ t1 B- u; `
{
6 j' m1 m. ~9 v# h LPSKILL lpSkill = &(m_aJobSkill);
& m# e, o* A, M/ f if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ x3 H8 u6 I/ k9 _ {
, r, K- {8 m5 p* H: c& a: e4 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 b) A" p" n( {6 X5 S$ P. A3 f if( pSkillProp == NULL )
# a. J [) B, E continue;4 @: N1 N. k) c- K8 g& t; }5 n# R4 h3 G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( y0 ^: g3 ?2 ^ n+ I continue;
' d3 f8 }1 x' o' M0 o+ |, f5 d lpSkill->dwLevel = dwTmpSkLevel;
! c3 W- [: |1 E& c) m7 `6 X/ e- x }6 G+ T% N4 L5 R: R; j
}' O: R; H" Z% d/ s/ F/ P. c7 c
}5 G3 v4 h# e- J+ u" h. `) V$ {( j, z
else if(IsHero())
& x" @; R) _2 F% i {
# B3 G+ [4 B+ W+ `+ A for( int i = 0; i < MAX_SKILL_JOB; i++ )
; u8 l: ^2 `8 t8 D+ Q) D/ _ { 3 b; `+ P9 f7 \, V
LPSKILL lpSkill = &(m_aJobSkill);0 {- j& E1 e$ H& n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" ~5 F) u$ O& T u, u {
# {$ h+ e' ]% J. D, q$ C9 D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / h0 ~: ]; W# `4 L7 S6 Y
if( pSkillProp == NULL )' X6 I: a1 m& { X0 Q) _
continue;9 H9 j& W1 P: a! b* A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 |6 v2 b% E( g
continue;( Z$ |/ {& t9 l& f: g3 Z; Z8 w$ h
lpSkill->dwLevel = 5;' L- W7 ?4 y, f5 x) r
}% l& v- ]+ V: }- b2 r
}8 M5 u* ?% v' u' s1 X& F, e" _
}
" f/ N; _, g' W: c4 Y, |2 c: g( f else if(IsLegendHero())
. k) m. `$ S5 ~: s7 P9 x5 l {
( ~ A. y* F6 }2 _" X5 z, g6 ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) / N6 l7 i& d _; V
{ : c% ?, _. r6 ^2 x( r
LPSKILL lpSkill = &(m_aJobSkill);
1 Z7 c Q y' o0 K" W4 c- | if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 E5 u4 Q* Z& ], }8 v | {, |) J w3 e8 G7 W4 S+ E" E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 ~" j, Q7 n$ a* R r
if( pSkillProp == NULL )
9 P v; Y9 P% f H: J. ]% C5 m continue;2 H* w" }* Z- P) z a" p+ `7 B1 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( U$ X: C% X/ Q
continue;$ w/ x6 s1 W2 E7 G0 G# A! P% q# w
lpSkill->dwLevel = 5;( a `/ Q1 p( D% v ]
}7 q( @0 c5 m# H! p1 d) k6 Z
}) M8 B2 Q7 [9 \4 @, j: A2 w% u
}* I" C2 f% y5 q3 Y2 Z. W! W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# l' L; }# c' V if( bGamma )
. \2 q$ k7 Q0 \, c* o {' M4 h% M* ~& G* `1 s* R
m_nExp1 = 0;
& l) X% N T) _ }$ N7 k& E5 P# [
, A0 X& u' U: p+ I K. ?
( (CUser*)this )->AddSetChangeJob( nJob );* J6 }% D6 H7 i" [$ U( e( B1 S6 ]' C
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 ]6 L, ~# c6 J, r7 F
% S! U* W: i/ ~* k
, M) p3 p. w1 m; a1 B* k1 r+ _7 x% p#if __VER >= 11 // __SYS_PLAYER_DATA
2 ~; k" O# l. Z! ^5 C, g# c g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 I( P; R' R c- S' \( N J#else // __SYS_PLAYER_DATA
% Q0 f/ s3 [6 o' B! P+ I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; ]/ A6 N q0 N# @0 s3 R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
* Q) f8 C# h2 h5 u" s4 e2 _ if( m_idGuild != 0 ), ]$ ]2 d9 V, m4 r
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
: X; j* r( [- p9 K* T4 V#endif // __SYS_PLAYER_DATA
$ O1 G$ X/ }; o SetHitPoint( GetMaxHitPoint() );
/ s9 d$ _+ {; ?3 a SetManaPoint( GetMaxManaPoint() );
9 _. i: r7 }- p- o1 V: v SetFatiguePoint( GetMaxFatiguePoint() );6 X' I8 K% M8 m2 \) l1 k
if( nJob >= 1 && nJob <= 4 )+ L6 C- A2 ?' K' c
{) `# T$ o0 o8 G' h2 z% v1 Y, a
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ M7 h& S- C5 r. V/ w
m_nRemainGP = 28;
6 f% |& p; l! \6 E5 v% b4 V1 I }
+ |* k' S& d+ c _& G7 d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) u( {9 V& o2 D* W. G9 J9 l5 y8 P {
! R3 M4 G' M, _; E m_nRemainGP = 118;
' r Y% b f$ b! Q. W, u& @9 B& P2 I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 O* w5 S1 R. W6 a* a8 a3 t
m_nStr = m_nSta = m_nDex = m_nInt = 15;' c4 }" x1 @$ [0 ?
}0 K9 A: o' W- D: N
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) {$ I# D8 ^6 j* s- a$ `
{! D! Y! v: H4 D
CItemElem itemelem;
4 {8 y* t+ s( Z$ C itemelem.m_nItemNum = 1;
6 R% E$ D5 a% s. j+ l itemelem.m_bCharged = TRUE;( K, w" |' i% e$ e+ z8 j
BYTE nID;' H& g0 y3 e5 C8 Q/ U
3 ]" B) k3 `$ x1 E8 F1 E if( nJob == JOB_MENTALIST_HERO )
/ y9 ~1 _: o6 f. L0 u+ L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ i. u v0 \" H* c$ O+ P7 t1 r( V3 c if( nJob == JOB_FORCEMASTER_HERO )
" t/ U2 x! Q/ X% J itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 g& V4 N+ ~% `8 B, I G" Q
5 I" K" y+ n" P: i
( ( CUser*)this)->CreateItem( &itemelem, &nID );; x; \' @6 Q7 E2 w3 d
}
) y Y W2 R6 U3 b8 Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 j. ^: o+ m% g2 K( b
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
3 C& Y) @% j. N) N1 ]) o ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
G0 ]/ o3 w: A9 k; I6 C" I! ` /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );6 d3 n6 V) p5 l
( (CUser*)this )->AddTaskBar();*/
/ R( R- ^! m+ t! F4 Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 r: g3 z8 x2 v5 V
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- ?/ f' t: H3 ^. I5 F
((CUser*)this)->CheckHonorStat();5 B3 s: X4 A$ ?) O0 b" O
((CUser*)this)->AddHonorListAck();: O( u1 U0 |9 f5 B8 N0 S; [- q1 X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
: T- s- ~0 F* L |% F e#endif // __HONORABLE_TITLE // ′Tà?
/ v( s- ]/ B* ?5 c }
; N0 V% u8 O# r& P- Q, R2 n5 L#endif // __WORLDSERVER: h, |! d- z* i
}
8 V2 @% `1 w- }! X1 X' B- \0 g6 m3 w8 D7 ~3 S5 Y
然后你进入functextcmd.cpp并添加以下8 Y; b( G2 V, q) A5 W( `
3 B# a, o7 D b& I: l1 b
代码:: F( ]9 K3 w% f! i7 M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; @0 V" X# N) ~7 C: Y7 \6 ~下面插入; g- H7 i; q5 M- G; y7 j: F2 e. d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! n# `+ n, O# t3 |& w. ]+ T. f4 V4 P, w# t3 ]) I/ o
然后你去# [! U; z1 E n' V2 j0 G& g' d
7 p, Q0 T c+ h& L+ I
代码:% P: A2 }/ O. I$ t7 L
代码
, ^. b. o" q! e% r6 iBOOL TextCmd_ClearPropose( CScanner & s )
0 U( f5 u/ ?2 ^$ H0 F7 \{
0 `: i5 s5 N# _4 Y. y#ifdef __WORLDSERVER( _4 I/ [- K& V) F
CUser* pUser = (CUser*)s.dwValue;
+ Y8 ]" f% R1 Z% N/ f4 U, @ g_dpDBClient.SendClearPropose();/ Q) k5 ]: c7 o8 J: y7 m, t
#endif // __WORLDSERVER; w. [* Z5 A5 p! k8 ^# F
return TRUE;
3 ` E5 O% x( u* N+ N9 F}
, K4 l1 O8 F$ N1 s( {& o2 M' @下面插入* H! a' L! u2 [' [0 V# e
BOOL TextCmd_rebirth( CScanner& scanner )
, s1 j1 W; w# E{( f% ~' V% V9 v9 R
#ifdef __WORLDSERVER% X/ g* p, v1 T4 ?
CUser *pUser;
5 r$ y7 h Q% tpUser = (CUser*)scanner.dwValue;' _6 z% U$ Q* H& ^9 ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ ^' W0 l' _3 f) t
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* X& ?% u1 Y; ?else
0 U! u8 G) V2 N7 i" }$ ApUser->AddText("你还未达到重生条件!");
# ^2 f; D! M- V#endif
# h, {( K% L; R0 Creturn TRUE;% u! @) {. M1 {+ W: @
} ! F6 f" ?, [) a4 s% S, n
7 w- S7 z# i4 F# q; o; \4 Z
6 ^! T2 g( p( O+ y+ h# v- d
, b& @/ m3 v) t4 e" }6 a) q' g0 W& l1 P6 E, U
|
|