|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* e; |. u; {0 o5 s. Y0 ~
( ?! x, l3 z/ K- c) d* _/ xMover.h
2 `+ M8 a2 C$ }( ~3 e% _代码:
4 M; a7 @# ^' h" C2 t0 z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! D0 ~7 b0 G0 `5 o2 `! P [
' Y( t0 D3 H" s Q; b8 l下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ E5 O) x$ {6 u- z1 H+ @' T; Z( X
" @% h4 ?& l/ x/ t7 y. W0 b; x然后你去mover.cpp添加
& }$ [1 j* R7 V" @; G* z8 A+ X: U& H7 Y3 m" l* i
代码:& }( _2 A; s( v
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 V, l: m0 k4 ]$ @. l8 e* B
{0 w, V1 M0 u' c- d- p* j3 Y! J
#ifdef __WORLDSERVER
% V: ~3 |# j( Y V" y% \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 E9 Z1 @0 F; T% Z1 B9 W MoverProp* pProp = GetProp();
! p7 p1 A2 \2 B# u' w' G if( pProp )
+ w* Y4 V/ g# L) U {# t2 C, u8 o$ g% W3 m$ H5 r- _* n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* ]& @- H/ ` \, u. Z" w {6 O' U, P2 ]7 \- B* x
AddChangeJob( nJob );9 I1 S3 O! s5 V4 R. z2 [! T( z
}else{& b! J6 e8 U, p) z8 J Q/ G
return;
{* M( n7 \4 a8 E) ^, V) a }; \: [, B, T& k/ L. ?2 b
int nPoint = 0;
9 E# m' m" l: A9 L if( m_nJob == JOB_MERCENARY )" J v) p4 z( g, g) R E0 e. b
nPoint += 40;
- y+ A1 y4 \5 C _ else if( m_nJob == JOB_ACROBAT )$ f/ ~& N, q* t; g) s6 }) ?
nPoint += 50;% e; E& |8 h% H, o+ C0 D& B) N% s! a
else if( m_nJob == JOB_ASSIST )8 t) Y+ ]4 A: E5 z- ]0 Y
nPoint += 60;1 ?( L2 r7 r+ E4 i) D+ u
else if( m_nJob == JOB_MAGICIAN )0 V7 u1 M" C3 B
nPoint += 90;7 R/ N3 b+ K3 B+ N! K; Q, z6 ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 b/ g6 U" U6 {9 P Q) L- V) _
nPoint += 120;, Q. h0 `. J$ W' e% C3 B. I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 n" z! y! g; A8 g4 E' D nPoint += 150;
8 i- A$ X0 R1 Z6 u+ }1 | else if( m_nJob == JOB_RINGMASTER )' ^' H- Q r: ?' G7 U3 _. e b& E" X
nPoint += 160;
' }/ W! j* I0 |- m/ K8 {- o else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, ]/ U3 Q; {. W4 t) V nPoint += 180;+ @0 ?( j/ a5 S8 e
else if( m_nJob == JOB_ELEMENTOR )6 _+ F8 X8 b% ?& j9 }
nPoint += 390;$ v' g1 q& h" X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( K- q; U9 x6 {7 \$ k8 v7 J nPoint += 120;
. N4 ?) K# z1 P) \+ ~. Q1 @0 C else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 d3 o7 n+ O: G/ H }: }" s nPoint += 150;/ \/ A/ o) z% i% U% h
else if( nJob == JOB_FLORIST_HERO )
$ H9 V( Z! i5 q; e nPoint += 160;: N- g4 j$ G" t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 F6 K$ ?) I8 m nPoint += 180;& R$ @7 \5 v; y
else if( nJob == JOB_ELEMENTORLORD_HERO )
% j: R9 E6 c; V" I; p3 o nPoint += 390;; x; _3 S' ? M8 t
* B- u1 G* [7 _9 z% [ AddSkillPoint( nPoint );
! w6 g' {4 w# M1 r( O s7 D: _9 j m_nLevel = nLevel;
- Z: [/ o1 W: `" |# E) P1 r- T) e8 n0 M
/ }' f- h6 {: X7 }3 v1 A k9 h% r0 ^ SetJobLevel( nLevel, nJob );
1 W s x) A8 u! z/ r m_nDeathLevel = nLevel;
- y+ n% [9 q2 r, P- F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans Q1 i9 v# i' u, w0 F2 `6 C( |1 Z
if(IsMaster())
, J% `! V8 \5 V2 U T% c- Y7 B. Q# C {
2 E2 }, {* q7 L: T1 W6 j int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
, N% j7 Q7 v, e! w C! I; I if( nLevel > 59 && nLevel < 72 )
% O8 s: m7 t% R1 w- ]( x dwTmpSkLevel = 1;
. b" L J& M( j) F; x. F else if( nLevel > 71 && nLevel < 84 )& x% v9 [' O7 d5 [ u! r
dwTmpSkLevel = 2;# f2 f% W: A5 i2 u2 u, g; ]
else if( nLevel > 83 && nLevel < 96 )
+ z" s. L9 v6 b1 U0 j0 v3 P- z dwTmpSkLevel = 3;. f* \7 }& e+ ]1 I
else if( nLevel > 95 && nLevel < 108 )
5 A5 d! j, p& z* A" p6 w dwTmpSkLevel = 4;* \8 e% z" o, e1 I/ s; J2 b5 a
else if( nLevel > 107 && nLevel < 120 )
8 ], ?0 r: u3 i, a dwTmpSkLevel = 5;
X: ?& E2 R7 N; A1 L8 j2 y for( int i = 0; i < MAX_SKILL_JOB; i++ )
( P: w+ W0 U4 s- f# i {
! x- k5 H3 t; Q4 J2 t3 O! S* j( C LPSKILL lpSkill = &(m_aJobSkill);
9 Y# b0 z9 O! ], q G" o. ~8 R0 Y4 n if( lpSkill && lpSkill->dwSkill != NULL_ID )
, N2 M+ f- A. d, u2 \- R3 | {
$ e- v5 d% _( A1 R' a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : u) [# r. Y9 s+ j( Y( Z
if( pSkillProp == NULL )1 I9 T3 t+ S4 y, q+ K4 }
continue;
2 ?+ V0 S J6 W( M9 d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" Z, @0 Q+ p+ f6 y7 N3 P, ~% G continue;
$ s) m( Z7 ^2 N6 m% ]- y ?+ ? lpSkill->dwLevel = dwTmpSkLevel;
$ J7 G8 o7 j8 p5 N }
, l0 {" H' I1 o. p* i }; [9 _2 y; Y1 V% f
}
# z4 ?3 f4 s* p3 f2 j7 X& h0 q else if(IsHero())
+ b8 j3 C. C6 K) t! f" m1 e/ u {1 E" |/ e& y/ n5 ~8 D* L/ Z0 H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ n% U: b. D- b& B, L0 D% o0 c
{
9 h' n( |7 F4 }2 y LPSKILL lpSkill = &(m_aJobSkill);# e; I3 v4 u( \* p
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 ]# M& E+ ^5 A/ H; l X1 {
{
0 \) L! B5 G0 S+ j, Y$ J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; \6 v& u) p. u( ^' Q, K
if( pSkillProp == NULL )
# c5 Y) Y$ [3 u5 h continue;
% x. b: a* N+ w$ T# W, ]2 U9 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
D; k9 D5 a- C continue;
* w, `. Y l! F7 O lpSkill->dwLevel = 5;
# Q, ]9 P/ Z4 z/ P* @ }
7 N! e* T+ f4 Z- S0 q# [ }; s8 ?1 {7 h" e7 X, T4 i4 e! ?
}1 g A Z2 J" D; M9 P
else if(IsLegendHero())4 F' |. p# ^; F. N
{$ b- ~! ?9 h8 o4 }) G0 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) R3 d5 a6 q% |% [, Z ]0 P
{
- l2 g# t! S4 s: k) w& @+ P9 ` LPSKILL lpSkill = &(m_aJobSkill);$ S7 o0 P! H% R9 g0 w8 m
if( lpSkill && lpSkill->dwSkill != NULL_ID ), \5 h+ R" C8 ~4 E6 D* p O6 Q
{
- f3 l4 }2 h2 L- y+ g7 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 k' F3 e' Q3 b- E if( pSkillProp == NULL )$ S# {6 g/ p6 _* l2 W
continue; W% q: @) N R$ W6 q1 N, S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 ^6 j7 Y$ N$ `# B) G continue;! w# K" a5 P0 B: k9 x' ]
lpSkill->dwLevel = 5;
& Y4 M& Z+ Y. ~ d& a. k4 [ }
% J. [7 N, h: v: f3 @9 n4 c6 T1 X }
# P9 [% D/ _1 u% b& y& T% D }
, J( [( \% a7 C+ Z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% u3 w, E0 S# n z3 d t: d
if( bGamma )% L Q8 X, h% G* y* q
{
, C; a# Q! ]/ R) _1 t m_nExp1 = 0;
7 {. A% V% Y( K" k4 {5 A9 u2 b }& J8 h; r" M! d
3 V" t) y# v* N! e, ^: C ( (CUser*)this )->AddSetChangeJob( nJob );
+ G W0 [2 Z! F5 H+ H- I/ S g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! ^% d9 `- @9 G0 U6 s) Z
+ g! `. Y- [. S# Q, F5 b3 w; B8 [$ U! d! C; I: N. e9 x: s
#if __VER >= 11 // __SYS_PLAYER_DATA9 E8 w) @- k; W4 |0 r" v" P
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );$ a9 c8 ~- P3 F! g% W$ Y; i
#else // __SYS_PLAYER_DATA" n3 I/ j; N: s2 |& k9 \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( T8 G: }6 y5 \" ^ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' n5 s0 S( t' L a. o
if( m_idGuild != 0 )0 K" W8 _1 G: Y1 O2 j; n2 r2 Q
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 E* C" V) M9 Z* Y( {2 }#endif // __SYS_PLAYER_DATA
& t7 r% s6 G5 a" H SetHitPoint( GetMaxHitPoint() );% }2 M: q. @8 o* O( h& D
SetManaPoint( GetMaxManaPoint() );
$ |/ \1 f' L% ~) k9 D* U SetFatiguePoint( GetMaxFatiguePoint() );- G; R1 L1 u, l5 x
if( nJob >= 1 && nJob <= 4 )
% R& L, e- z! S) R6 }# i, _' O. f" s {
) J4 ?3 p* R& w7 J' C m_nStr = m_nSta = m_nDex = m_nInt = 15;3 }. A8 u; V8 F0 [. u- r6 r* y9 {) g
m_nRemainGP = 28;; M7 Y/ T! e$ P' H3 g3 g/ W4 b
}
6 m- w5 ?8 I w/ } if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, |4 Y p% N" V6 d* } {; A0 Z4 H" ?% F* k
m_nRemainGP = 118;
. f) N! |2 J$ g* M4 m //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;/ K0 t( \* ]9 U: r' W0 S
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ R- q; N) [1 m
}) Y7 ]" o2 [( s# ?2 S H) X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' C! j- `7 k2 }% h
{
5 `9 D& I% e6 z( x; g" d4 c' g CItemElem itemelem;
: M" e/ s& ^; D! K# h! i5 c6 k itemelem.m_nItemNum = 1;5 Y5 g4 Z0 c7 ?9 G7 Y4 @
itemelem.m_bCharged = TRUE;" d' i. ?7 O4 f8 b; y' u
BYTE nID;: C; ]5 s% F; c2 p/ X: H& }
1 ?6 F/ G5 m$ C B: M
if( nJob == JOB_MENTALIST_HERO )
. f& F- G& F1 K2 x- x itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
8 v' |) p% v8 m3 ~ if( nJob == JOB_FORCEMASTER_HERO )7 T" a, |9 ~- Z7 C0 y0 U$ w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* t* \$ ^# O# M$ t; {" {
3 V& _ z9 v0 s$ L6 M$ v* i2 Q* T ( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 N& e: G5 }, q! J! Z" v }7 q7 y! i! y* f6 N6 [5 } m( I% v0 W
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
" K5 S& u( }* K, G: H; Z9 r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ K( }- D2 J/ U/ t X ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );, O& O5 U$ [2 s, o& Y" r
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 ?# ?' [9 A$ O: V ( (CUser*)this )->AddTaskBar();*/
1 R! h6 s0 a0 m% R4 ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 t* x2 x2 l5 L
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ e6 a" A3 A' F2 k# P7 F9 x2 q! M ((CUser*)this)->CheckHonorStat();
7 c( B* W" c V, T ((CUser*)this)->AddHonorListAck();+ e" S# l- F9 w$ C& s' {8 c
g_UserMng.AddHonorTitleChange( this, m_nHonor);% n" o+ j% N; d/ N6 d; X
#endif // __HONORABLE_TITLE // ′Tà? C9 v4 X/ l6 L3 ~
}6 e+ g( f M' V7 ]& n- |3 W- E
#endif // __WORLDSERVER" F# t% `0 J8 [1 ]
} * u3 A9 O1 m [6 X4 ~% O
$ C; V \' Z6 D/ W! ~0 O% Y3 i
然后你进入functextcmd.cpp并添加以下6 s$ b& x# [: O# Z3 m! l
; V' `. g* N: |
代码:7 T0 ], U, Y8 v! Z3 t! G, V. M
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); y2 q: _* d/ ?
下面插入
5 V5 m5 q+ ?# t! ]6 uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- L. \( N2 ^: p8 G+ E w4 i V) {1 \8 O- o
然后你去: V1 B' I1 r( N7 z' P' v
) s$ ?# {% n$ h) }5 s I
代码:. p. T$ Q k t" b% l" F1 d! e
代码
% k4 Q; K; M4 h" g1 g! z+ }BOOL TextCmd_ClearPropose( CScanner & s )# Y( ^2 X# i4 R& E: [" J
{
, |" a( A; m9 K#ifdef __WORLDSERVER0 |& Y) d9 M4 |6 }4 z4 J: g
CUser* pUser = (CUser*)s.dwValue;
/ Z. ]- ~7 }% k- D* P g_dpDBClient.SendClearPropose();
" J1 i/ i- f! ^5 O4 k! x* C#endif // __WORLDSERVER
Z" D0 @% u! X! W( r/ m$ f6 L return TRUE;
* r! m& ^; i/ Y7 s" r* n4 W}6 A# V+ X! ]3 F0 W. m
下面插入
0 N2 C+ F& A' I9 W6 V6 A7 U/ gBOOL TextCmd_rebirth( CScanner& scanner )
c/ l8 b; f8 J{9 T! f1 N" r6 ~) x B: ]+ M
#ifdef __WORLDSERVER
! P( P( w) B0 {. A" ?CUser *pUser;
; }. R( K. P2 `, w5 Q6 C6 bpUser = (CUser*)scanner.dwValue;
) N$ D& B+ o5 q+ ` @if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())' V; |; m) s. l' q. R8 g6 d( a
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, u* H6 N g3 W) p$ Q
else
* {8 x; J. X: S: E- e+ a- apUser->AddText("你还未达到重生条件!");4 D+ z+ |: ~% g5 h2 C$ V
#endif
" ` N" [; w; K) y# ?$ z! e5 V, Rreturn TRUE;
$ p+ x u; C+ ?* ^9 b( c* v} , I. Q# ?' g9 h2 a& J1 |8 G6 V
4 W9 t/ }. l- S7 O2 u3 J w
/ h' J% b! [5 Q; F+ D- [, @& @4 Z5 h3 L6 w+ \: l6 W
8 N3 W4 o( t& T8 K7 t |
|