|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ L, J8 o% o) U O; s. @9 R! N `' n2 n2 V7 T
Mover.h
8 K4 X" r' S6 N* |$ G; n% s0 x5 @- t代码:5 w- j! ^5 @' J0 g" \ J# k
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! t% l6 |. F+ J* ~7 z6 z0 K3 t3 q5 ? I/ V+ h1 C5 @ Q2 F) d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 1 u) n3 y& q* `8 e/ M7 C _7 e; Z m
, V+ i1 T* E( W9 ?然后你去mover.cpp添加
9 y: l; b5 B" Q4 T' T2 r7 U/ J2 _
1 r4 E( L: S% Z; g% U代码:
" C: `" J0 t3 }3 mvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ V6 q' k7 c, t$ e1 x4 s{* Q# ?- G1 R, m# U9 J$ p$ m
#ifdef __WORLDSERVER
! C7 s5 u7 B* s9 x9 c$ E' A! z // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! A: u7 I) x- Z) e9 S3 q MoverProp* pProp = GetProp();
4 _# N3 e3 P6 j if( pProp ), H: o! L# J& M' d! g2 R
{5 ]% A# G0 t' Y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )! g5 }3 y# w2 I7 C' z$ B
{7 o* r) Y% G0 ?! q' C
AddChangeJob( nJob );% g* h) \4 A e% n
}else{
* W0 Q5 A/ c, K0 P' v9 e return;+ s! l* q5 u) d, x, z
}1 S% T; L& S% M3 s( H: }
int nPoint = 0;
& f- `3 b4 V1 F }" u, P8 B3 e7 s& k if( m_nJob == JOB_MERCENARY )
& K4 s6 s0 K: u+ L; g) m q+ A3 P" w nPoint += 40;5 T$ @4 p2 c2 Y* i0 j8 [9 W3 ]
else if( m_nJob == JOB_ACROBAT )4 w0 P `, p2 }" k- [6 x: Y
nPoint += 50;
2 ~. h5 T. ]( m* U6 w else if( m_nJob == JOB_ASSIST )
8 N. U5 O9 |: J; u9 U" b; `* @+ A9 b nPoint += 60;
3 i$ b/ u% h0 P else if( m_nJob == JOB_MAGICIAN )
. M @: K/ T7 Z0 K Z; S% z. B nPoint += 90;
, r# O1 U% D/ M( K# m5 z; _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 a" S# C( J7 x4 n' B" A/ b( V nPoint += 120;( m4 N; g" F* g1 R
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" ?' [4 @* |8 m9 g0 q# L
nPoint += 150;
" R0 c4 a, U* e" x5 I V8 [ else if( m_nJob == JOB_RINGMASTER )
" R+ ^3 ^% j9 U) }8 [ nPoint += 160;0 G. d! ?" @1 c- s1 u# Q* |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* M$ [) m0 d, o# r2 G4 t
nPoint += 180;
6 m& m# d4 q* L& g2 L9 q# T4 b7 i else if( m_nJob == JOB_ELEMENTOR ). x8 v# |& ?4 A( K; d/ P5 s
nPoint += 390;& F9 k; m ?" M: x+ ?) I/ {7 M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 C, w; N. k7 d3 b) s& k' g! m
nPoint += 120;
/ ?% t( U6 b# Z9 Y' _6 U c2 F1 P else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): U% [3 D6 \7 J. h" c U
nPoint += 150;: c/ n8 X, _: R9 p
else if( nJob == JOB_FLORIST_HERO )
( {* D" p5 e" M9 z( T6 s nPoint += 160;& F; d7 Z+ p" ~) I2 h' b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ I% ?+ t2 q) x/ ^& }& k! L nPoint += 180;: N% a# y1 J7 B, c7 F
else if( nJob == JOB_ELEMENTORLORD_HERO )
6 k1 H% I! ~8 }- f' o1 b1 s3 I+ ? nPoint += 390;* R; O/ X& ?2 E) U: P
% c" S7 S" u4 {& [1 r
AddSkillPoint( nPoint );
$ ]4 Q1 m. y' `$ o# d" g0 z/ O1 o m_nLevel = nLevel;
/ M: ~ H5 F, h8 v: \7 @( C
7 @' Y, y9 S# Y3 ~5 u; V SetJobLevel( nLevel, nJob );9 e8 M, W3 _6 N" B. L
m_nDeathLevel = nLevel;
+ A5 v5 F6 O- U! b#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 |: }+ j9 k6 B- b- Z if(IsMaster())
9 P" r: a& l+ |/ D1 R9 T$ B {4 R3 J) Z* l$ p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( j: f8 M& k2 p, o' i3 B! u
if( nLevel > 59 && nLevel < 72 )3 ]" l3 T- }5 S: G8 t! n1 N$ a, L; W6 e
dwTmpSkLevel = 1;
( M2 X5 j7 R$ S) M else if( nLevel > 71 && nLevel < 84 )7 i# ] h& P' q j* Z
dwTmpSkLevel = 2;
) ^( A; c/ D; A# F2 a else if( nLevel > 83 && nLevel < 96 ); [0 b' S) d8 O& @+ Q, `4 }' ]
dwTmpSkLevel = 3;" }0 C% F" \9 h9 ?- I# k
else if( nLevel > 95 && nLevel < 108 )2 _8 G" u: z% f( S. w
dwTmpSkLevel = 4;
$ v" ?3 ]* J9 x% f else if( nLevel > 107 && nLevel < 120 )0 k( u$ v, a1 g! c9 d
dwTmpSkLevel = 5;
; i1 x9 o O% i& S) h( A4 {: x for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 y, D9 t0 O% a5 |7 [
{ 3 \8 J5 r& x- r! [
LPSKILL lpSkill = &(m_aJobSkill);
5 W9 Z- {6 k. a, n! x if( lpSkill && lpSkill->dwSkill != NULL_ID )
- `$ u3 u( K5 ]7 ]( E/ | {2 G! j, O, ]1 ]* e. z: S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : U+ {4 _# f7 g/ R* {5 z% x
if( pSkillProp == NULL ) [" Y' X1 `$ \; h
continue;/ }3 e" F ?" S- _- Y0 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& P5 P; x. Z% J$ K7 @ continue;
; Q: W$ @, M5 {5 S. t- E3 M lpSkill->dwLevel = dwTmpSkLevel;
9 i) r: m" q: {3 J+ j }
, y% q; n5 \% p( K+ z }5 x- b9 `+ ^, z& M0 s0 o5 q+ C
}
5 f( F1 v4 C+ C9 g7 {/ d! y else if(IsHero())* n4 d3 b: W5 E+ s: S
{5 b( _ J1 ~' t+ D* Y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + _+ b+ o6 d7 ^! ?) p7 R; l
{ ; ~5 T; B! g4 {) s: R4 w% q
LPSKILL lpSkill = &(m_aJobSkill);/ X" j% |( |% f6 O9 D: P' W+ U" l
if( lpSkill && lpSkill->dwSkill != NULL_ID )
+ H& k! n6 v5 z {- p L" w1 t! f3 m v" ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 `1 E8 q! E) O3 a. X& @' q
if( pSkillProp == NULL )
6 e3 ]7 v, [9 k! ~; u( a. L- G continue;
2 `* {8 Z/ _1 L; O2 A! U1 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 s. k( R: [; `/ ~# z* e _
continue;% c+ E% E* B4 b( I0 P( S U
lpSkill->dwLevel = 5;) z6 W* s, L2 g* c
}
- @ I+ _- F5 o8 Y. k% B }
) l# J" a- Z' W9 i/ J8 q: ^1 } }
# d2 U+ ?7 R0 l0 [7 H1 D else if(IsLegendHero())( M, y! s5 N) E' L
{
# j9 }, ~0 s6 X0 t5 q for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ U# K# w$ _- Q( Z; q; r {
/ Z$ J1 l1 U, i( M/ V! F LPSKILL lpSkill = &(m_aJobSkill);
4 m) n8 h2 I. g% [" B% ?# h. Z$ A0 } if( lpSkill && lpSkill->dwSkill != NULL_ID )! @- i8 t' ~% p7 n) c4 r
{& l- }( o& v# H+ N, U: S! `8 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ E3 D' L% m/ H* ^2 ~- l
if( pSkillProp == NULL )7 H: D: M1 @2 k; y) H/ v- e
continue;7 r3 X: s' G: ^* Z7 w1 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). g7 N9 e. g5 T1 S7 x0 n
continue;! J7 ^4 Q- y+ r5 O) i
lpSkill->dwLevel = 5;) z) v4 R- K0 P6 ?1 I6 k& Y
}4 B. N3 d0 Y0 ~' c
}
+ @1 \' a+ l0 x4 u7 w! P }
8 E) P1 s' }8 h#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( ^1 ?2 o+ v4 m% b8 U
if( bGamma )% j g6 T# V1 J! _4 z( _- H
{
* Z2 J- e# {3 y4 A. c' N: B4 O m_nExp1 = 0;$ s1 g* c. _* b' ]/ v
}
S6 I Q# g) r' v L& F& m) u0 n- j' R7 a4 Q) V
( (CUser*)this )->AddSetChangeJob( nJob );1 c: S& N# z5 G% R: M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. U+ n9 ~ ]4 }8 ~/ ^1 Y8 X% K( p
1 b3 x. v. Y5 ^, y$ g* D; j) r4 U# D/ K
#if __VER >= 11 // __SYS_PLAYER_DATA# p( e9 Y9 \$ h# E# G6 F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) N6 s1 D, L6 J/ o* m8 |
#else // __SYS_PLAYER_DATA
+ N# C) e6 K2 D; ]! g g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, a) L: Y% c+ s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- E4 C7 z4 X! ~' L$ l) B if( m_idGuild != 0 )3 l/ [1 A4 E) R& T3 y$ b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" G6 S5 @. Q, s
#endif // __SYS_PLAYER_DATA- J' z+ c1 e5 @4 [% ~! b
SetHitPoint( GetMaxHitPoint() );
4 M+ [. x: k' r$ Y* T SetManaPoint( GetMaxManaPoint() );1 L+ ~, w1 O7 a* q
SetFatiguePoint( GetMaxFatiguePoint() );9 U6 e5 N; @3 t( X O' R9 Q% m
if( nJob >= 1 && nJob <= 4 )
/ h- o: }- Z0 V: M, O& ~# ]9 Q {! k* T* L/ ]2 v+ z/ ^; S# \) Q3 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' E5 V( t' Y' L/ s$ p m_nRemainGP = 28;
2 F2 |6 e% T8 _+ m3 f7 x5 J }7 ?. j" i2 a( f; h( Y$ {
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) |. F9 l- Q2 \$ U" r {
+ {; O$ i {2 l m_nRemainGP = 118;! S a3 k F T) \
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% J/ g- Y; g. f5 C' R, K m_nStr = m_nSta = m_nDex = m_nInt = 15;# J$ `9 i6 i4 S
}2 c, K/ x5 @0 i' [1 K
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ J5 ], y. `% h% R; K
{1 B$ P* Q; A5 Y4 f
CItemElem itemelem;
3 x% g- @8 l- T, v# A itemelem.m_nItemNum = 1;
1 i0 H. h- d( `( F3 w itemelem.m_bCharged = TRUE;
7 u9 I& {( X8 k0 g9 ?4 q BYTE nID;
' Y3 c4 {: H$ b5 E. A% c
" |2 E8 i+ ^3 P2 P$ @5 |" Y if( nJob == JOB_MENTALIST_HERO ). f' b5 w1 Q# |+ j5 B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# u* T* \% g& K if( nJob == JOB_FORCEMASTER_HERO )
9 O* V" U8 k: L7 a- U itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
1 s5 ` u9 F2 r4 y' G
4 u' c1 P) y% G- J- ~1 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 h% h- H# g8 D% `; W, @- n5 }3 [# G }* W. k6 D2 H1 ^: @2 K) o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
6 I$ F, m1 t" Z( W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );# ^3 }7 Z u2 y) l. X
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 S' C) o3 F1 u0 J5 g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 t2 o* @' q! g' V8 n, a; H. w- J& | ( (CUser*)this )->AddTaskBar();*/
# ]# q& d. M. ~; x& }" u5 \ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* _! G" u8 r2 s f# S/ ]' v
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 K/ f7 _' f" e+ { ((CUser*)this)->CheckHonorStat();
! j( O6 _" Z9 ?1 _7 Y ((CUser*)this)->AddHonorListAck();, L& X: u' W5 ~6 b# l
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* h8 f9 p4 A% y#endif // __HONORABLE_TITLE // ′Tà?
: I ^; t1 ?8 c, _. L- }; k+ s }5 G3 P1 e2 q+ l. k3 n: \6 L/ U" Z
#endif // __WORLDSERVER
! ]( D+ H6 b7 J4 Y& |}
- G* c; V/ W E. p4 E7 Q
1 I+ _! d& N. e1 s然后你进入functextcmd.cpp并添加以下
3 e* J7 V: [6 U7 v
& S, s' E6 V( W4 x! q" I代码:
- s* {; B( R. t; D( h7 u7 g: kON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 ~' J ] M7 l& T9 b k下面插入7 @$ r5 S) N9 D
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 X8 O& A$ ]- |/ X" S6 v% T r3 @1 b
3 p% l' \9 `/ D然后你去4 \' u4 c* ]/ o5 q8 J# [5 I9 v
; } H, ?, Y0 K; G( T
代码:
+ }2 o- a: N4 [) }; c& m: y代码
7 y9 p: [3 ?& g7 ABOOL TextCmd_ClearPropose( CScanner & s )) D) {/ p- T+ v7 o! b* ]1 v
{
# C/ R( Z9 X( j6 G7 m0 V#ifdef __WORLDSERVER# P( \. z! s2 _! v: S- V; \9 ]
CUser* pUser = (CUser*)s.dwValue;
# }! V2 Z7 A: g# Z' W g_dpDBClient.SendClearPropose();
( V& B% {8 W8 W' ]#endif // __WORLDSERVER. e1 `5 ^, a1 c+ m% q/ s
return TRUE;
: M$ W+ g3 @# n( i}
3 }/ r% g) p, Z4 j1 V下面插入0 {6 K6 S1 ] U! L* l" m
BOOL TextCmd_rebirth( CScanner& scanner )
2 \3 w- U" d, R, W' R{
& S: O: |% G# K r& M#ifdef __WORLDSERVER( c( i. l! I7 B/ i$ O, ~5 b
CUser *pUser;
6 P+ J2 u$ D: t3 C2 LpUser = (CUser*)scanner.dwValue;/ P3 E/ n# D+ J D0 b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 I" z! G1 f6 ~5 ?) Y5 E2 T. bpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) H6 A. S+ \; ~0 eelse
; D4 G' b* M$ R# FpUser->AddText("你还未达到重生条件!");2 s5 q; K$ Z3 G
#endif
9 k; S; D2 S+ U( Q9 Jreturn TRUE;
, ^# ~0 J: S0 {8 j9 Q}
3 b" o# q8 ], k6 K6 y7 [, S! A( s5 R
/ c& U- Q# e1 @5 G1 Z; @/ ~* V0 f$ C+ h1 A$ K
! ?& y# m6 p5 x' @5 p& Z3 D" B8 L
1 s! i: \; Z# C+ C5 X) B |
|