|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 m0 ?. E0 g+ |4 @) G, g. ^; m) t, g2 i' Z$ `/ {( k" U
Mover.h
, @+ Z) O) `, C6 w' s代码:
) }& l+ M6 N% Z' ]! o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' M, n% ^* t; L! W' ~" C( x1 K$ t! C; [4 _1 b0 d, R4 I ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; : p% e# c/ I, F: W5 \ v& F# z! W$ V* `
' J$ V1 U7 z+ q/ o ]9 A6 T4 @
然后你去mover.cpp添加
% u* y: Z0 }( `( w8 P& I* v$ o2 r, Q
代码:
. [" Y- ^9 b* [) y+ ^' R" i$ X, Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# `8 P, L! a4 I8 T7 U{
6 a* L; S3 l' k, ?/ v D% n, N- }#ifdef __WORLDSERVER
2 f5 }8 O g$ n- T2 F2 e5 k5 | // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 J& x, n3 t9 n2 ~$ d; Q, b- J; n
MoverProp* pProp = GetProp();
/ j# H3 I- s, q: x if( pProp )' B, o' S/ G5 U
{
7 @. Y- }9 t, u* v4 J4 G if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# a+ K" U! @ c; l: @. i {- B. I. D! m$ J8 L8 A' F
AddChangeJob( nJob );& {* F( B) I' }
}else{
B# g1 r$ v8 o( I( u return;8 j) n( W7 n# I5 J' D
}/ A1 X: F( c3 ?; i
int nPoint = 0;
2 ^2 X" l- {# D9 u, f if( m_nJob == JOB_MERCENARY )
`2 ~6 ?6 i( v+ N nPoint += 40;
/ b8 f8 n+ k# y else if( m_nJob == JOB_ACROBAT )
& W2 L) w5 F% l2 t2 _( @; R* H) n nPoint += 50;4 o& v# h9 J3 q9 C8 z( H
else if( m_nJob == JOB_ASSIST )
% M) J/ l& }0 K) i) G5 W nPoint += 60;
5 Z) c6 p j/ P3 J3 W' X( ]: O else if( m_nJob == JOB_MAGICIAN )
3 |. q o" A9 {9 g2 y nPoint += 90;( w: c1 O' j" v9 v/ K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& K4 `" f" i1 M3 f. [
nPoint += 120;
3 }) F8 \9 r) ]: S* E& ^8 c else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 ^7 ]% W9 t. B* c8 g nPoint += 150;3 M9 B9 b+ `! n0 e. G
else if( m_nJob == JOB_RINGMASTER )0 e3 K* X8 y1 d" p8 S: N% t) @' S
nPoint += 160;
: _/ f2 j! G. o3 f1 X+ y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) ~; m7 @( d7 H
nPoint += 180;
, q- M8 N& S9 |1 ] else if( m_nJob == JOB_ELEMENTOR )
3 \8 i* y! }% o2 |9 n% M nPoint += 390;4 ~; @ F, l L; v. B$ d1 [
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )% t3 a, ^2 d: i! A
nPoint += 120;/ u5 l4 L) f& {5 M _8 s2 n
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 C6 P: F% K2 \, K/ L7 j nPoint += 150;4 r; H4 x( c1 f4 `: O2 N' v
else if( nJob == JOB_FLORIST_HERO )
$ {$ L3 I, W5 b3 ` nPoint += 160;
. z, }! A- L$ d! }7 }. w$ \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )1 S" L' {' H% R* {
nPoint += 180;
. \: L5 p, s, M! B+ |& J else if( nJob == JOB_ELEMENTORLORD_HERO )
$ U0 i3 Z, g/ H6 @5 T nPoint += 390;
2 l) [$ }6 E9 R& I4 L9 E7 o& l% ]7 R1 @+ z5 S5 y6 R+ H) W
AddSkillPoint( nPoint );3 ]8 P4 {' M, a& O9 t: ^6 O
m_nLevel = nLevel;
4 W3 }6 w0 b4 N5 s" z. ]- q: ~5 d
$ W; ^1 d% b0 ] R* Z8 B SetJobLevel( nLevel, nJob );9 j w0 b. [& I( n* H! ?$ d- @
m_nDeathLevel = nLevel;7 |- ?, Q/ H4 a5 E" K d) g1 U+ ?
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# Y$ i z# |! c9 m if(IsMaster())1 I1 t" B% `7 u: `/ n A, y A
{3 Q) k. ], P7 Y9 Z. K) h h
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. z' Z7 ]+ ?* t, w3 o3 }+ _ if( nLevel > 59 && nLevel < 72 )5 E- i f, u( g$ e( p
dwTmpSkLevel = 1;7 ^0 v5 i6 p0 b7 o/ g4 A4 u: L) R6 b
else if( nLevel > 71 && nLevel < 84 )
; f4 z, m2 m; @8 s" Z$ B dwTmpSkLevel = 2;% x+ S% p' P+ H: }1 j" ?+ X# }; `7 l
else if( nLevel > 83 && nLevel < 96 )
2 J. M- _0 N5 ^ dwTmpSkLevel = 3;
7 p- J. H# T* F2 W else if( nLevel > 95 && nLevel < 108 )
|; H* I5 w" \8 D% b; p dwTmpSkLevel = 4;
/ \! E( p2 @. F- B else if( nLevel > 107 && nLevel < 120 )
( w' Y0 U* W$ t; t6 t; m9 o2 C+ g( Y dwTmpSkLevel = 5;
0 d# F9 @* C3 ~* M! W7 q7 w2 r for( int i = 0; i < MAX_SKILL_JOB; i++ ) % T8 p2 d I7 O* Y% I
{ . t3 p8 ^/ [4 j
LPSKILL lpSkill = &(m_aJobSkill);4 g; p5 h/ S. P n
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 l: d; V8 k) @$ x9 V
{* t( h5 Z; R1 {$ J7 g5 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* w! e" C/ F, W' e: T" J if( pSkillProp == NULL )9 x: X& I; T, z; K. I+ C' e
continue;
' B s% }5 R/ h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 P% {: d- H% k Z
continue;
! C( T2 f( e- L0 @& O; _7 ^. I! C lpSkill->dwLevel = dwTmpSkLevel;+ M" K+ [2 g3 {, v
}
' u% c$ B3 F. ^- @ }
$ r) l0 Z: Z$ {! D }
7 |4 B8 p3 f8 \1 F/ p& Z else if(IsHero()); N% L# A6 A5 p" s# T7 B+ [
{+ `" X; Z( e Q2 C8 I$ N
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 m$ \5 z* r. H! ~7 N
{
1 u" p6 e1 s7 { LPSKILL lpSkill = &(m_aJobSkill);! O" j. v0 m' n( c, a* S
if( lpSkill && lpSkill->dwSkill != NULL_ID )! L2 O4 n% _& U. ~+ S
{
- B) G, P0 J: ^- S% z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ |$ n! [+ S) ^$ e* c3 a/ m' ~
if( pSkillProp == NULL ), }" y& L9 X/ E" B' C6 M, T5 a% X
continue;) w0 t+ H4 f7 T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& u5 |5 I2 M, h9 u continue;( `1 r8 z5 Y4 N( k
lpSkill->dwLevel = 5;
6 p$ { O6 }) j3 e }
2 s0 q4 Y% I. n3 y1 d. \8 n }( c0 |8 [$ L8 x: U# c ^
}
' u+ s/ e% @6 P* {- k else if(IsLegendHero())
- I3 [4 V0 ~8 b& Z5 h% ^. B {
0 u8 v. ?- k+ F for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ r. M1 S* z0 b( K" h. ]
{ , r# n& l( A0 E
LPSKILL lpSkill = &(m_aJobSkill);
+ f- H: u$ ~" S* Q) R: S if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 G" M0 k$ e4 S: Y4 V1 V {; O4 G6 Z% l2 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% a1 W M% r7 s' Y# h if( pSkillProp == NULL )/ H1 Z+ L) h9 q0 i: N- v* u* W
continue;/ a' q$ p# o* l3 C+ r: u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 l8 m: I9 r h- l! M2 a6 W" O continue;
- H$ n& G( [6 h! Y; j lpSkill->dwLevel = 5;4 f1 ]: l. @' G& E& P( L
}
1 o5 u" e! |5 }6 Y }
: g- G/ d* @/ u% a! ^ }/ w& k; L& p# N4 Q2 _- |9 T0 m% X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 {: S0 Z9 |8 N( i9 G if( bGamma )
. w- ?& [. i0 u% X4 B C6 b( u: y {
! J @7 ^+ p, _+ A+ `, b) ?& F) i m_nExp1 = 0;
7 P: X) A) F. d. o( r6 [ }
1 p. C' I- e3 j7 W) x/ r
9 g4 d' m: X' O# y; z0 @- U ( (CUser*)this )->AddSetChangeJob( nJob );8 u5 ~0 m- M+ [1 e8 W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! B8 S% F" P/ J8 F! X9 }9 `+ ]
$ v. ]: S+ ?+ s0 G" I- E
0 R% c7 J6 H9 D#if __VER >= 11 // __SYS_PLAYER_DATA/ O/ q4 j3 w3 D0 h/ F5 c1 q5 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
+ a4 b+ E- z( y#else // __SYS_PLAYER_DATA
* f) J1 W/ c6 z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* k( u( V8 u9 C1 u) Q5 p6 I g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: {/ |/ l( y) g% j2 I0 F
if( m_idGuild != 0 )1 N5 m) B/ x* s) `% }, k& c F
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ [5 }9 S9 v$ [2 T2 r
#endif // __SYS_PLAYER_DATA
! f, \) t6 Y D* B9 T9 ` SetHitPoint( GetMaxHitPoint() );
# S; @: y+ ]2 o& P SetManaPoint( GetMaxManaPoint() );2 n1 T4 [+ H B9 ]5 n- B
SetFatiguePoint( GetMaxFatiguePoint() );3 N: J& o7 {1 q5 W3 y1 N
if( nJob >= 1 && nJob <= 4 )* X& I) f7 {" n* o' o
{0 W+ @) g5 o8 _ Z+ P. w$ I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ [9 h5 `+ @5 M! {* C/ m m_nRemainGP = 28;+ X& m5 z, B+ L; f9 _: K
} b- Y9 w' @9 ]' ]. X6 o
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% q$ j! T# e! \, p( d- B: I {9 X8 Z' o# h. w
m_nRemainGP = 118;
& e, ?% R0 A' m& F( n. K* r //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* e! I8 X: B, `: B/ `( J& R5 B5 ~0 u, ^; `
m_nStr = m_nSta = m_nDex = m_nInt = 15;
c( B9 D; Z/ o! }4 g0 E8 u } C& n2 X! L" W" y1 g6 V! H
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 S; v) H: z8 G, R7 M* i {" y0 d: C9 H2 q! Z- b
CItemElem itemelem;
5 x% T. d9 ]5 q# j itemelem.m_nItemNum = 1;0 c; _2 V7 d- r" P
itemelem.m_bCharged = TRUE;$ {; \& g; r4 B# C( c" s" ~
BYTE nID;3 K* [3 u5 } B7 D5 `5 {
& N/ H# [* F& p. A if( nJob == JOB_MENTALIST_HERO )
- N5 b% }, ]- t itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 q! z# C/ C+ U+ l& Z/ w# t3 e
if( nJob == JOB_FORCEMASTER_HERO )+ o5 h3 S' |% C0 p( x, L
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 z8 c% ?/ n6 x6 m
# N7 k- A! d3 W
( ( CUser*)this)->CreateItem( &itemelem, &nID );- ?$ G' f. b% t
}6 q3 c4 }4 F8 r" E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
' z, K9 G* t$ f4 `* U0 j ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 a+ o# N1 Q; l1 Z' c
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );5 F& V, F! t0 z+ L; G4 p. `& o
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) L3 r5 f6 |+ j4 F+ X0 a
( (CUser*)this )->AddTaskBar();*/4 ` L* ]. y% w: A7 N! q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );) Z( z {/ A9 Q5 n6 }9 w% e
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% |' |& O5 e' u2 x. O% H
((CUser*)this)->CheckHonorStat();
( E% k! r8 c- k' `9 u8 O ((CUser*)this)->AddHonorListAck();- F: R' r0 @% s3 H- |$ Z* U
g_UserMng.AddHonorTitleChange( this, m_nHonor);" @# c1 E" S. }- r
#endif // __HONORABLE_TITLE // ′Tà?
* r3 V8 }: E& g( d" w/ b }
- y2 e- x4 S+ ~5 X& j& |' Y" M#endif // __WORLDSERVER
- T3 r7 a' _( E; B0 q& D! L3 u}
6 M, k5 M9 z( d% \
# i% K3 c0 |/ x. A6 s然后你进入functextcmd.cpp并添加以下: w8 m% c& K4 v
* s# h6 q) _0 J& @" e5 i代码:9 {. G6 z) v5 F" ?. @# a- k; F% Z7 h
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! }" V8 v( N7 k下面插入
, L4 |2 X4 d9 DON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 5 A& p1 S" [- y/ z- p
3 ]& z8 N& D, n然后你去% F% S# O. E% O7 A; U6 l- _0 |
" o/ j: C9 x" M9 H+ z" V
代码:4 Z# [) @! |/ X4 F- V
代码8 b% r% q5 W- t; m( Y" w4 N( j
BOOL TextCmd_ClearPropose( CScanner & s )
2 q9 v% `8 U4 ]$ o: z7 @{' ]" \8 H) [4 t" R" `/ G
#ifdef __WORLDSERVER' f6 h/ Q ]/ T3 H
CUser* pUser = (CUser*)s.dwValue;
/ G& O8 |+ f% }- j" X& d8 { g_dpDBClient.SendClearPropose();
: k$ u9 Q7 _4 n- H#endif // __WORLDSERVER, I4 t# @- e; l7 F ]9 o- X
return TRUE;7 f2 v# f( \( l9 L+ x
}
+ U( o8 y8 `1 S' |0 M3 Q0 ^; x下面插入4 u7 b1 l9 C5 M. T" ~
BOOL TextCmd_rebirth( CScanner& scanner )- v d& S; e3 Y( A& A, `: ]9 @
{8 v9 S- w; S" n% Y3 @
#ifdef __WORLDSERVER
- l: d1 d1 U* ~ yCUser *pUser;
# g. E, L; Y7 t) S$ N/ J. P0 ppUser = (CUser*)scanner.dwValue;
% h0 ]3 e, K9 Q! c: e, K' }. f* Sif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); F6 L" k- @- ^5 n3 E& e$ E
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# m$ M) E4 H. ]9 `* Pelse* x' R9 Y' b; x7 J8 R) r }: _
pUser->AddText("你还未达到重生条件!");9 T; I( c& Z V/ s2 E
#endif
( K* G' z! K4 P9 I O4 ireturn TRUE;3 D0 d, ?! e; k+ ^. m
} : n5 H+ f7 z2 C: N: E7 [
1 V! \9 j* ?, D# ^. s; j
2 I6 _$ [% W# z$ ~1 a
7 b! o2 m& @. ?
1 _0 p) G4 f5 a |
|