|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 B+ U+ M8 u2 [* I8 V
# z! a% O& K2 O& G* n
Mover.h
% ?- _2 Y( } T: J; D( \( j代码:
3 i0 |5 g8 k5 G6 u) z8 t找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 |0 |8 t+ @2 E! ^6 r
" i9 x- G$ E% D下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # k+ \ B" [- D, N
: ?; e `4 N" {, Y9 R$ R然后你去mover.cpp添加
V% G6 I" j% |& M6 G' \9 W$ ~0 b, ]9 ~
代码:
9 Y+ v- K# V1 o1 Q% X2 Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ |7 j) V( J; G" `! M4 E9 J{
7 ^9 f9 @: h: W \#ifdef __WORLDSERVER* F0 D. ]# K; I. g: }( I3 M' n( J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
* B2 X. ~1 D0 w5 ?( l0 x' F6 f/ T MoverProp* pProp = GetProp();( K: g! x5 a# n; H2 z# ]
if( pProp )
# |) r4 ]' w, T5 F7 z. F! B {
) K' M; E5 f) B2 P if( nJob > 0 && nJob < MAX_LEGEND_HERO )
' ^7 e& f7 O9 y" c" a {
" T& d# Y! t7 M. ~! _% }) x5 q6 r; C$ F AddChangeJob( nJob );# v' O( F' s, k& w; W5 V. ^) f* t
}else{
# q" x. L& q, q1 j2 d return;3 B. b9 }- X# M" T ]
}
3 \5 Z1 T8 H% ] x int nPoint = 0;% I$ U% n5 E- _! i
if( m_nJob == JOB_MERCENARY ) q7 ~; n) l4 K( ^5 ^
nPoint += 40;
! {$ t" O( D; A else if( m_nJob == JOB_ACROBAT )
: b# u5 Z) B# Y nPoint += 50;; K% v& u' }1 | q( `1 H v) ]
else if( m_nJob == JOB_ASSIST )
' I+ L" P0 q) J* s nPoint += 60;
. W8 |) `* m6 h" }4 s: ` else if( m_nJob == JOB_MAGICIAN )
& E- g+ ?. t' {9 v1 `: ~ nPoint += 90;
3 Z5 O/ W }% s# h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 O; p* F: \2 ?3 L
nPoint += 120;, M4 G6 M! w4 q$ K9 t2 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ w- m3 Q; k: m$ T/ P: D7 E; E nPoint += 150;# T+ x7 N/ W- c9 k
else if( m_nJob == JOB_RINGMASTER )3 W9 z; q: p3 W
nPoint += 160;
$ L1 j" {5 C5 X! i else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 T6 j6 l- ~4 l4 E a: ?
nPoint += 180;/ `7 V( h. z/ Q
else if( m_nJob == JOB_ELEMENTOR )
$ ^! f" o- O3 E% w h9 g nPoint += 390;
s$ F0 b: J# _. i4 J$ L( `: O5 G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); N" o: R. Z( m r1 V0 i
nPoint += 120;: }, M! [1 _, B- _. [$ R; R5 v8 [
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; h: n7 D" i6 R) S3 g nPoint += 150;
5 d! H: | }4 c# w3 F a4 q2 V else if( nJob == JOB_FLORIST_HERO )
3 K, B2 @- ^: Y( M nPoint += 160;+ n, m. o- [0 B \7 O8 _0 i/ W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 t" C: t3 x5 U: ~
nPoint += 180;+ q5 L" ?# X3 X( {* d1 D
else if( nJob == JOB_ELEMENTORLORD_HERO )
! M% U7 z5 f; W( C7 T nPoint += 390;, o$ k$ |* x* P4 M) f2 [
3 V4 @4 X1 E! e3 T2 P1 e) ^ AddSkillPoint( nPoint );
- V; w! u. x5 {+ l8 y m_nLevel = nLevel;
# J: O, W4 x1 c( Q' n% T$ z' a) N4 Q- y$ l0 |# R
SetJobLevel( nLevel, nJob );# L8 ]" H* H- Y$ o
m_nDeathLevel = nLevel;. W% {2 H5 q! z+ n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& ?* m! j6 r" B! D if(IsMaster())
, i! y4 G& i8 o# S! A& Q( m {
! ?# |4 X6 D4 g& i2 C5 P int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 P2 h5 a3 ^1 ?- n4 j if( nLevel > 59 && nLevel < 72 )
: S. g! b' {2 M; w* S& ^. A& @1 V dwTmpSkLevel = 1;. Y2 m4 }; ~/ J$ N P2 B, R
else if( nLevel > 71 && nLevel < 84 )1 o. Q4 |/ l$ p2 F& |# V; `
dwTmpSkLevel = 2;. L; u' ~9 f E$ P: Z
else if( nLevel > 83 && nLevel < 96 )
% `% W8 N% ]. O* \- b dwTmpSkLevel = 3;5 p0 Y. I3 T y2 V# T K: P
else if( nLevel > 95 && nLevel < 108 )
# x) J$ m- m3 S7 b) I dwTmpSkLevel = 4;4 F0 ]) E7 p/ i; I* P
else if( nLevel > 107 && nLevel < 120 )
/ b( @+ t" U+ ?- L9 D6 F dwTmpSkLevel = 5;
9 l- a8 n% X3 k; m M8 B for( int i = 0; i < MAX_SKILL_JOB; i++ )
& _+ T# a X: w! J# ^' Q6 [' E {
# H, r4 p T7 A% K4 E$ }- d! x LPSKILL lpSkill = &(m_aJobSkill);6 P- d) B8 c" O! I3 n( x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 K8 C* p* K2 Q# `' l1 I8 Z9 C( z {
5 w6 r& r- m% k" v: F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! w+ l4 p9 n- `, V5 x$ A if( pSkillProp == NULL ) m3 I+ n+ F1 F/ z! @/ m: B
continue;
, q% A8 k3 R" @/ h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" y3 w. r ~" ^* H continue;
& A2 w- H# k1 {$ W9 S! p lpSkill->dwLevel = dwTmpSkLevel; I v5 F1 \6 ?$ Q6 U; D. E
}
# I& q7 h* k; P; W: r W Z% a# R }+ r2 a$ M/ `/ F
}9 a+ I- M; Q, P9 ^& F' |
else if(IsHero())
6 Z5 [ B; \/ W8 m1 ~) G" q {! k( [6 F4 J# k+ H, G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 r/ h1 C) Z- S. }3 B4 O- m- J { " q: t7 F1 q3 D( y2 \* c# m8 p
LPSKILL lpSkill = &(m_aJobSkill);
) z0 }/ D9 M" ?( V; I3 I3 J if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 m; _! H6 q! o1 z& q7 @ {
' u( Z5 s$ E1 t/ O1 ]- T( z- X! f8 G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : c7 A7 v& R* x6 N9 P! s6 L
if( pSkillProp == NULL )
- B$ g( C: F( } continue;) M1 Y" Q. P( A. v& f1 {4 P3 k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" {; |' Q% D, ]8 J# J- Z continue;
A' U( O; n, x! A: r) x lpSkill->dwLevel = 5;, S/ G0 ?2 |7 m Q$ ^/ g) I
}
8 H) B7 Q9 c/ {4 }. o' K }- s8 S0 e. p2 z1 |$ B
}
3 M. ~; F) k: \; k; U! M else if(IsLegendHero()) ?3 v# }2 U p) R. E1 s. L1 K
{
9 _$ Y+ {% \% i for( int i = 0; i < MAX_SKILL_JOB; i++ )
- K1 V f/ p, i* y& H# c {
9 Y9 }' m3 q5 H+ r$ k% F+ ~ LPSKILL lpSkill = &(m_aJobSkill);
1 m/ _( c! S8 o* y8 j2 r) w if( lpSkill && lpSkill->dwSkill != NULL_ID )/ i& C8 m1 O9 w
{
9 o# H/ f8 k4 S D5 \' E$ _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 I! |- J) r" b3 P0 D8 L
if( pSkillProp == NULL )
% p" |% g2 l3 W @8 n continue;
/ C3 y5 x' `$ d9 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, z3 Q% M. A7 |* Z7 X continue;. E' O: }4 m8 p9 I
lpSkill->dwLevel = 5;, h/ c" D/ T5 a! n4 S
}
' z" m% [1 Y6 D# O& d }- {6 q/ O, y5 {5 B& X
}
" H& x: ]7 z2 w2 L' X7 ~* ]#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" b0 Z. e0 \( [: _6 c if( bGamma )7 l d6 o1 ^7 z! d
{
8 c2 a& F3 ~2 \% u# } m_nExp1 = 0;$ K+ E$ s6 X9 V9 N' g- `& g& r
}' W! z0 I' r# i. X- h" v- K7 y
' j4 w/ V# H8 j ( (CUser*)this )->AddSetChangeJob( nJob );& n/ U- _* M" Z; ]! r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 b i3 k4 y0 {. R4 l2 m0 V2 H2 q' L$ v" \8 V
3 J) L. m5 k6 a4 M# m; W#if __VER >= 11 // __SYS_PLAYER_DATA8 _! P# i$ D& o7 C+ S* F; d1 I3 n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 W# O- k7 ^$ r! w, G( @: W7 j, |
#else // __SYS_PLAYER_DATA
0 J& {; r' F1 a g_DPCoreClient.SendPartyMemberJob( (CUser*)this );$ @9 d$ c/ W* q h& U3 N
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( a; [& x: k+ T if( m_idGuild != 0 )
' ] f% r$ C4 W, I, z" L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# B* P' z# B5 k% L6 I) O
#endif // __SYS_PLAYER_DATA+ @- o4 s+ e, E1 L
SetHitPoint( GetMaxHitPoint() );0 t) I0 _; H0 m; B/ P* u
SetManaPoint( GetMaxManaPoint() );
& G1 K( c* R, O2 @/ y SetFatiguePoint( GetMaxFatiguePoint() );4 {1 v0 L* ~5 b. `
if( nJob >= 1 && nJob <= 4 )
3 r x3 M7 x' q. X7 C- E {/ ]+ i+ K* K3 M9 C( a- Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ Q: g( c8 h# h2 ? @9 k" L
m_nRemainGP = 28;+ N9 ?: J2 C1 A0 f) A/ w
}: F; F3 E( K3 o3 G8 |
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )3 a0 D$ O" l. V' i2 ]
{
3 E7 b7 Y1 Z9 h B1 x6 s& C5 N m_nRemainGP = 118;
: w% X; f* \/ p5 ]8 X //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 y: e+ r8 Q: z2 h2 f" h8 G% u- N
m_nStr = m_nSta = m_nDex = m_nInt = 15; D0 v0 h# M& t( C. U
}
6 O: q# `) ]% C6 c% g, S- A if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )% J- e7 g, I) P5 E4 h+ D
{& \* o6 x3 G- q; m) O; T e, T! w
CItemElem itemelem;/ M" _- R9 `5 y5 ? _: T
itemelem.m_nItemNum = 1;
7 q# w. t) P0 y. z itemelem.m_bCharged = TRUE; r; }; e+ T6 d. ^2 e& n
BYTE nID;* v* H; Q4 I9 c+ b
) ]. r- r) I7 [. w6 M" l; Q& i
if( nJob == JOB_MENTALIST_HERO ) G7 T5 J8 y4 Z1 R6 O7 o" p B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
7 I2 P9 B+ m! O- _- R if( nJob == JOB_FORCEMASTER_HERO )
" l' C8 C+ P1 c8 r' \7 e7 H itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. N/ s. ~ N- C2 w8 Y/ k; Z9 Q9 X! Q) l: f0 v# b- Y7 s5 t$ l) j
( ( CUser*)this)->CreateItem( &itemelem, &nID );" g. ?0 N- X% k' q0 v4 r' z
}
* |, t- _' L9 `- |% l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' t W; A6 C5 t% \' r$ M% K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' C' M( O5 f6 w6 S* \4 S5 M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 B: i3 u" v) n
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
: y/ n6 x8 _% Q5 ?- G5 s% O ( (CUser*)this )->AddTaskBar();*/
w$ k% l- e( M& f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
/ S* W. A6 z+ f( K#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. P+ J: J y0 a3 s }# \
((CUser*)this)->CheckHonorStat();% t) }9 R$ s; A- ?
((CUser*)this)->AddHonorListAck();' d7 k7 T) Q- ?4 R
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 p3 v# H& \. [, W: @9 K+ ^#endif // __HONORABLE_TITLE // ′Tà?3 j, @+ x) D- s
}
; \% W$ ]3 _ ]#endif // __WORLDSERVER
! G4 E# E* |7 s: f+ r7 k} 8 R/ s+ `! g) F$ J: r
# _' X: r- |* J' {' L0 g G
然后你进入functextcmd.cpp并添加以下
" N' e( W+ i. o- s! k4 e/ n" Z9 C; m2 [7 f! n+ r+ M7 B6 z N" x' A
代码:
- u! O! F9 ~/ ^6 e' j! P cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ). R; R: y P0 V" l# u) \7 _
下面插入
$ ~1 g% k' y( T4 ]8 U5 a' b* x. ^ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
Y5 s& i- R. h, o/ w- K; v; V$ |. z- c! C- `& [1 j
然后你去2 _8 |: ~$ ?5 q6 m) _. E: Q) ^
- D5 I, j' O* P- {1 \' r* a代码:7 A1 P6 b& W) w' z# t" l
代码
# X: s8 e/ G0 o0 ]BOOL TextCmd_ClearPropose( CScanner & s )
4 ~8 d! _+ V' @0 r9 l0 v4 _( r{
* }. \/ d" @) t+ d! W#ifdef __WORLDSERVER N, r, s+ @5 l3 @; F
CUser* pUser = (CUser*)s.dwValue;3 m) c+ a5 L6 n5 X" n6 `
g_dpDBClient.SendClearPropose();9 h& p2 X; J4 @0 f
#endif // __WORLDSERVER
# S0 W9 I7 Z6 V return TRUE;
0 v) j+ s/ h b}
: d4 j1 v5 u( P3 J- f下面插入9 B% m2 Q) d$ X: ~
BOOL TextCmd_rebirth( CScanner& scanner )0 G( v Z) x# o- ] V2 A
{0 b. r# n: ^/ r9 s3 F2 ^8 K
#ifdef __WORLDSERVER
+ q: e$ @7 m. T+ F7 ^CUser *pUser;
% N% S( Y% K% E* EpUser = (CUser*)scanner.dwValue;
$ \9 b/ T3 m3 w) ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 X; g3 _2 O& B1 U! q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 z8 D0 V2 |, {7 [else
. K8 ?5 t- q, k3 {4 Q* o; `$ Z* zpUser->AddText("你还未达到重生条件!");. t5 ~; |7 L7 V" }' U
#endif
0 E/ B4 _, y: S% }1 F" }# A7 Xreturn TRUE;
: y2 W* h4 }+ V% G% W) d}
" k' k( H& h. Z6 r, @ e9 G4 q3 ?1 A, t# c
& @- n$ I2 R' t* y6 u
3 `0 ?$ J. d- T% C. L8 J
# u' N v/ Y7 h |
|