|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( E3 F) F$ t) T/ [# l3 _
+ D* w* e' p+ X& O" j- s, i! y
Mover.h2 K6 k: T, v6 e1 W( @5 ]9 K
代码:
, {! d0 Z& v- O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' s$ v! r' T) P. K% n. Z
* \& a$ x4 ^% p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ a3 t/ {: M! q
2 }3 M5 t9 b5 b# G: P; q& q1 L然后你去mover.cpp添加
. Q; f5 Q3 ~- F5 X* R7 b* F/ l- B! a+ i* z) q) }4 s+ G
代码:
- g2 v3 ~7 s% u% L) K: uvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
' @, N8 b0 S' J& b" g [{- v% e3 j0 o+ ]. T4 A* J- p8 b
#ifdef __WORLDSERVER
0 V) P n1 Z$ r) [5 ^# W // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) |$ ~' F: Q' b- ] MoverProp* pProp = GetProp();) h, x3 i3 L0 Q6 n' u" H
if( pProp )
/ P+ f' C4 R: h0 p8 G- r {
" g3 j" k4 O2 o4 q* X if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 \ y+ h* e, E2 R# y, B {! D2 w/ f% D" k' i+ y( L
AddChangeJob( nJob );" B; i2 t/ m$ q. K
}else{
* f) H* y& ~6 f& @$ V$ T return;6 t8 D' `" [" A, n4 S" r. z# k
}
: F. R& v& r1 h3 r2 H& A int nPoint = 0;
( Q8 u4 p# m5 }: e2 l if( m_nJob == JOB_MERCENARY )& K" F0 m6 W! @" m1 S
nPoint += 40;
9 m( _1 q! {2 v else if( m_nJob == JOB_ACROBAT )
+ F# {5 z# P3 {: X7 d4 Y; {) K nPoint += 50;
9 W; i3 k0 u$ J9 ?( { else if( m_nJob == JOB_ASSIST )
$ x5 L; O+ J) q( o9 ^/ C+ M nPoint += 60;
& {0 \) n7 z ]0 u0 l& k9 a- I- n' k else if( m_nJob == JOB_MAGICIAN )
. ?; g4 Q: R$ \: ]6 | nPoint += 90;4 j+ n6 q1 I G4 L% W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 {* M6 e+ R; \/ E& k8 _ nPoint += 120;
3 t* q* L7 \" E) A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! ?2 U, D9 S/ Q6 ] X, o% {- e nPoint += 150;
! \$ m: S8 U0 u7 f. _3 @8 m7 y$ y else if( m_nJob == JOB_RINGMASTER ): N% n( y+ }0 N+ M0 }
nPoint += 160;
- G! I, G2 x% b; z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 |( g2 ?; N0 \, v* E
nPoint += 180;
- u% H. q5 a2 l, l) t else if( m_nJob == JOB_ELEMENTOR )6 M" T) |! M$ }+ G
nPoint += 390;
5 C& ?& \1 |% D else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
7 t7 h6 ], h* W) m nPoint += 120;" G1 Y6 p, V; ]# Z# D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ P/ B, T5 B K; ?7 X
nPoint += 150;1 y7 y0 E A9 H, a0 q. G
else if( nJob == JOB_FLORIST_HERO )
/ w* O1 p0 P0 v3 Z. x5 D nPoint += 160;
8 C0 Q U1 Z( m4 e( W7 r& m. F; {7 N else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 V# w1 t% y! d) x4 j9 e u nPoint += 180;
$ p4 {" c/ z% J" ^+ ^ else if( nJob == JOB_ELEMENTORLORD_HERO )
+ [5 g$ Z- k j Z* V nPoint += 390;
9 l: |6 @' d: b9 t i0 g( Q9 n+ `2 u# M- D: O. E; U$ J1 @
AddSkillPoint( nPoint );/ R: f7 ?" K( f! g0 n
m_nLevel = nLevel;
2 f4 P& O: x8 b% P4 L6 ?. o: f
- K& Z. D) g. R) j* k/ r* i SetJobLevel( nLevel, nJob );
3 c8 {4 P; p3 d/ g b5 ?/ N9 @- P m_nDeathLevel = nLevel;
/ \0 b/ I% F1 L; k#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, g4 B* w9 Z/ v3 q7 P6 s6 f
if(IsMaster())5 Y* g4 ]4 T5 i: z+ E
{
$ v- s6 N: M6 c/ E) i9 Y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% ~1 C U; P* k& j! P: o
if( nLevel > 59 && nLevel < 72 )
, z7 d/ D& P( ?2 h5 g/ T+ | dwTmpSkLevel = 1;. p! ?+ C4 D2 q
else if( nLevel > 71 && nLevel < 84 )
0 X- x4 t/ m) c& d' i1 }' j dwTmpSkLevel = 2;- Q* X; }6 } Y: S" E, I
else if( nLevel > 83 && nLevel < 96 )+ V; h4 x% Q' x" M
dwTmpSkLevel = 3;
8 v% f5 A( G8 ?! U: Q else if( nLevel > 95 && nLevel < 108 ) _+ e& |* a" d, J/ R$ R3 d) T
dwTmpSkLevel = 4;
8 N" a$ j& A8 h% l else if( nLevel > 107 && nLevel < 120 )
5 w `" s) H, `3 h6 Q3 A, M: S4 ^) N _ dwTmpSkLevel = 5;( l: |1 E9 o7 A# A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' A' T3 s, d3 A/ n; \ { 5 C) e! L& R3 W8 T! I9 K# V3 ]
LPSKILL lpSkill = &(m_aJobSkill);: S% |$ p+ Y9 n$ \2 V0 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& Z) M, U9 g4 K) }& g5 t Q {5 Z, E9 L ]2 [) w! x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' j2 C+ y3 C- Q! R! N
if( pSkillProp == NULL )
/ E3 l3 D- }/ _0 k continue;
. E3 s- @" l" x9 Z1 X+ x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 _7 q: S# N, r! f6 u continue;
$ f9 Q# a% s% Z, i4 H lpSkill->dwLevel = dwTmpSkLevel;" P& j, d6 V( u9 o
}
( K8 o/ T" D- e L }4 l0 O: `2 k/ i w5 G3 U$ B7 N
}
6 d, G6 P4 U! D0 |% e else if(IsHero())2 x1 j' K* w* G% _3 U
{
- B, \+ ] x2 [$ i! Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; h/ v' @- I- F& o6 Q7 d, L
{
@# y% Q4 b; Q. b+ p. c LPSKILL lpSkill = &(m_aJobSkill);" I$ o+ F0 y/ l- {4 x5 J5 }/ W
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; H( N" V% x; c) A {/ S$ A2 e6 u+ Z/ o) I0 `$ N( e# y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " U1 S+ ~( e- }9 e _ S
if( pSkillProp == NULL )
+ x0 j: M2 w$ Y+ s( H7 ]- s- N continue;5 v3 S! \1 ?5 h, M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; ]# q. K7 L1 f8 R continue;$ F }( T4 x. D; a+ A8 I9 T1 k
lpSkill->dwLevel = 5;7 e7 N% M& F; Z" J$ l- f8 ]
}: D t2 i' |- ]) g" t0 i
}
( P; C/ k$ C( G0 R7 C0 b! Y! @+ h5 R4 N } W) \9 d* {3 A8 }. i$ M" ?
else if(IsLegendHero())5 |( D; P( n" O
{: }+ ~6 C; _9 y$ Y9 R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 P$ {' x4 p: \7 q1 E0 @
{ & L* H( i5 G( x6 q4 ?: e8 I
LPSKILL lpSkill = &(m_aJobSkill);, x; T( ?5 w A6 g, a9 g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 ]4 D8 S" N; h6 E. X {) Q% C, g2 I5 R& D3 e+ U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. Y1 [# L4 x( F; h if( pSkillProp == NULL )
. Z8 y1 f! a) D+ R* g$ @. b continue;
* d* i6 J* `8 g9 n7 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 x' `& p1 i; n- z
continue;2 B! C9 h" \1 v8 Y: F: v
lpSkill->dwLevel = 5;
- ?6 z# R1 V& f, D$ P }5 S/ h; `' Z& a: s4 `+ [
}
1 o; L& t6 j/ Q6 j- x6 L }; Z/ V5 f% S |) v4 K; C
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' \2 O4 F0 X5 J' r/ O3 O: G! V if( bGamma )
$ W7 j) b1 ?. B {
% | J* ^; N% y( ^" W m_nExp1 = 0;
2 K4 B0 Y' ?; D }
, f& }3 ]4 ~2 w, J) w: u( b8 w
1 E) ?2 C9 { x) n7 u$ l* Y ( (CUser*)this )->AddSetChangeJob( nJob );6 M. X; x) b/ H7 x; a/ O F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ n( M: O0 m( s# s- Y, X& \, U
0 B* E! d4 r9 }8 U$ X! ?; Z% Q6 i, C% I, o) |5 M
#if __VER >= 11 // __SYS_PLAYER_DATA
, T2 N/ T. O0 u$ _& k1 D$ M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
m+ p6 _* g* }# n% X#else // __SYS_PLAYER_DATA- Q1 M& B; P# b2 E0 z
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% l0 H* I4 V. T' c( K' f1 k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
7 F# e% n& ^) r) m3 f6 L if( m_idGuild != 0 )/ l! u' _6 i: u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% p0 S' h+ ]% T) c' U J0 E
#endif // __SYS_PLAYER_DATA% f6 j: @+ C9 n
SetHitPoint( GetMaxHitPoint() );$ |8 ]9 [, Q2 a
SetManaPoint( GetMaxManaPoint() );2 k/ M6 Z& U, A3 O9 H
SetFatiguePoint( GetMaxFatiguePoint() );
6 D5 @# v' T; d! ] if( nJob >= 1 && nJob <= 4 )
) a7 Y6 e; c1 t! X {
* m# R9 d# o. ~- \. ]. p+ W m_nStr = m_nSta = m_nDex = m_nInt = 15;
. @ k3 G% E+ ^3 W: R* b m_nRemainGP = 28;
/ W: u. r* E+ ?' I6 w( y }
% G; q7 }/ ^& C$ }, X* M. e9 \8 F if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- J4 z/ U! ?: P% \2 }
{
3 R" ~. G& N9 G( ` m_nRemainGP = 118;
; k# U/ m9 B" {0 [8 h, A) g, v //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 p" A% t2 [; v. W
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 C* A" ^) B0 e( q2 O2 c3 m! z }
6 W/ P5 Y3 X& ?# t& a. a if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 ]/ y- g; p2 R3 T. P {
$ q7 y8 i- Y4 _, P7 L* q u CItemElem itemelem;! G! }0 Q& \9 t
itemelem.m_nItemNum = 1;
- V: k& D! z4 ^5 t itemelem.m_bCharged = TRUE;# B. i" ]. u' V" P. ~& k! U
BYTE nID;
7 [7 A3 n1 ~" Q4 u7 N
3 o! y& x4 e6 P L( v* N if( nJob == JOB_MENTALIST_HERO )
6 v3 p0 @# G6 g7 p; B+ G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' C) P1 p( a0 i
if( nJob == JOB_FORCEMASTER_HERO )" ?( m: b! S) i: b; `
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 x5 O! K5 e. ^" m) P' Z
+ q& O# W5 I$ m9 z; k# @5 ^- n
( ( CUser*)this)->CreateItem( &itemelem, &nID );( ^' u4 \" h6 M j: T
}2 a" {/ l8 q, p, L) @# F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* F7 b/ L3 R& G# f1 @/ q3 ]" i
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 G0 O" z% c- U+ e# { n+ q3 Y5 m ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& J% r: e: S8 Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) h- e4 C- }0 |4 {: a9 S
( (CUser*)this )->AddTaskBar();*/3 A5 {! Y9 r7 e5 O" P! r3 @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ I0 M/ e/ Z5 s6 `. Z8 ]0 I( J! |0 y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 V7 F) R0 }7 ~: x1 t% Z3 N0 D: a ((CUser*)this)->CheckHonorStat();% F- O1 c, R M; O0 H
((CUser*)this)->AddHonorListAck();: A6 o; G! J0 r$ S+ L. ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);. o" A8 L) D/ _* d$ b% U( l6 w
#endif // __HONORABLE_TITLE // ′Tà?) X# _# n! M8 b/ ]
}5 {3 k6 {4 Q8 k6 j* j4 c
#endif // __WORLDSERVER
( |# }+ }* d1 Z4 b4 B7 @1 S} $ e# X3 f d. B7 U6 N" R1 `
. B2 @/ e A9 D: e
然后你进入functextcmd.cpp并添加以下
0 k' T. v" j8 S: Y- j) _
, G8 S) K$ ?1 ]" X" N+ p1 i代码:
# I2 L* }; q* w8 z$ [' q! dON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, D k) Z6 T, t% q' V% w) F下面插入
- t) m% |, m0 f* T* |ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ F) K# L1 y8 @; m
( R) y9 Y8 ~+ T4 V2 A; [; O然后你去
0 X% R3 t1 [9 r. k! I8 v- R
! I/ E4 H0 o! B7 a2 k( K+ Z5 j代码:5 G! H& _# p% X9 p! A7 s% I
代码
" g5 E, x9 V# R6 J! H) `* H4 fBOOL TextCmd_ClearPropose( CScanner & s )* e* E' O5 r/ J" i: ]) b
{
; Z0 l0 K$ X1 P) D: A, C; Y#ifdef __WORLDSERVER
" B$ y k, T2 J& s CUser* pUser = (CUser*)s.dwValue;- Y! {: L7 A: }$ {0 O8 h
g_dpDBClient.SendClearPropose();9 U) V( L& f. e h8 f
#endif // __WORLDSERVER
; x1 J/ c9 |7 W# T% n8 n return TRUE;
4 s6 c$ l( z2 F" v6 A}/ i! o6 z9 X. f/ c2 ?" N
下面插入4 @3 k- b2 o4 S# L" I$ C- J
BOOL TextCmd_rebirth( CScanner& scanner )
8 ?, t: c X0 i, m{+ s6 c7 [( N0 ~ V* Q2 c
#ifdef __WORLDSERVER
1 K: v* w' A. n+ c! Y/ l1 ?' bCUser *pUser;
1 m+ H7 c5 i$ v5 {; _, h3 g) \pUser = (CUser*)scanner.dwValue;0 W1 x, q$ X9 f' }4 l' l/ E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())) o* `, }# v2 G0 A9 A1 c! j g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 M ?9 H3 H0 [5 Lelse
1 X0 n- W5 G) S9 s- `pUser->AddText("你还未达到重生条件!");+ C3 ^, e5 L3 D: [( u
#endif: |, ]7 p1 B+ X* Q4 l
return TRUE;; X7 Z% {' J1 q+ {1 X8 M, q
} : S# N7 [/ x+ [! K9 t& _* D
6 v3 z+ J1 F3 c. R. D9 q; o
/ r1 C& d& s. k" V6 m# W. c4 Q, o o
" P _$ {/ d$ e
|
|