|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ m. w9 ~& V" x2 c# z3 g" n2 d
, _" O3 R. B. v" M8 a3 M6 b0 IMover.h7 Q8 L# O# t) Z$ S [+ R
代码:$ [" m/ M- {: b; O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% m( k% P! q" J/ A; C9 S) L6 o# E
5 e) a3 r* j$ v3 ~0 s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 O" J; W+ n1 s1 g5 _; W4 u
- q# s$ q+ c6 \; j% a然后你去mover.cpp添加: P! P% s+ w8 ]* O
% V k3 }' K8 A
代码:* O5 C( s0 z0 B; h* p" b& n# D/ n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( N) K0 `) z1 L. A/ z
{
; [2 x7 K8 F" G7 |+ h, ]5 m#ifdef __WORLDSERVER. B/ \* V# \( v* g) `
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ r& b( O- n5 | MoverProp* pProp = GetProp();5 ]8 p b( f' G7 Y# d# [! _' D
if( pProp )
# t/ ^' j! |/ ]. f. N! a. R {
. p/ i$ g4 a# \; k- y" ~! ^ if( nJob > 0 && nJob < MAX_LEGEND_HERO )) _6 c m3 U' p2 R# ]$ v: Y
{
% l7 V {. F3 G. v9 l+ G- P0 Y6 F AddChangeJob( nJob );
9 R0 a1 Z2 r/ i& E4 p }else{
7 n/ T' f8 f+ _) `$ ` return;
' X( D3 ^% ~) Y$ N# _3 G4 q. z }
7 r) s+ @) l3 o% ^ int nPoint = 0;
' j$ x( v) Y$ j+ S6 `& @1 j$ z0 }3 m. r if( m_nJob == JOB_MERCENARY )4 d) X) B3 t; Z1 I% K# e( o. v
nPoint += 40;
6 l! _- l4 X/ N& o8 T" k else if( m_nJob == JOB_ACROBAT )
) ~ {- [ N+ Z' a# h nPoint += 50;
: `+ X; I. F( |9 k5 i else if( m_nJob == JOB_ASSIST )
9 B7 @# L1 |/ ?$ j& l nPoint += 60;6 q8 V( m5 Y' u- J
else if( m_nJob == JOB_MAGICIAN )
2 U/ \, \. T; V' L' I3 C nPoint += 90;
4 Y; g- {- F6 _& ]# y- ^! |$ x# e else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 u2 ~. G( a9 l
nPoint += 120;; P7 T, {; ^7 H4 x e# h( {7 x; R. j
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
u' u; ^% S' c! y nPoint += 150;' E) U; s( ~$ @# n: S5 T0 d
else if( m_nJob == JOB_RINGMASTER )
- A/ M+ q; B+ c5 V2 P1 Y nPoint += 160;" R5 z6 U7 X0 ~* n6 X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, O& Y' ]" W( H: Z( {8 m- {& G& w nPoint += 180;: ^5 _5 I/ ^# H
else if( m_nJob == JOB_ELEMENTOR )
- E4 Y3 a* ~8 } nPoint += 390;# U* a5 O) J$ w1 H3 `
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )( u [0 X) z D( a4 R/ `2 U
nPoint += 120;* ?+ |8 I& w( }9 j6 m! a
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 E; \/ u) C# A- q nPoint += 150;
+ G9 X. y4 c6 R' k; F6 Z else if( nJob == JOB_FLORIST_HERO )8 s# M8 |) \0 Z5 t3 Q4 o
nPoint += 160;5 T, m$ u# R; M; z) r2 R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) z% [& K# H* ]1 H/ {
nPoint += 180;
9 E2 C U4 | }2 V; Q" B else if( nJob == JOB_ELEMENTORLORD_HERO )
: o5 A8 z7 g" O- ^ nPoint += 390;, O$ u8 C5 O+ e o
/ b2 D8 w' H2 v5 L& v1 z
AddSkillPoint( nPoint );
+ l# c/ |/ k7 m( @' O) j m_nLevel = nLevel;
# c$ |) h D9 o ]3 q3 x& z! o, E0 _9 r X9 r
SetJobLevel( nLevel, nJob );
) k% e$ w, b* ~5 Z m_nDeathLevel = nLevel;9 E0 [7 ?- q2 Y, |; q9 K, j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ t7 @% t: m: H+ L$ i4 t6 M
if(IsMaster())5 w* o& s0 L6 E% I9 I
{$ ^8 T8 N! d- j; j! x* f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- j/ ~$ ~5 W' C: H/ a: F! L4 H8 i if( nLevel > 59 && nLevel < 72 )
% Q* r# E) p* x0 n4 K% S$ T) _' K dwTmpSkLevel = 1;# j: \7 Q% f3 k0 Y9 a! F6 ], O
else if( nLevel > 71 && nLevel < 84 )
' h. I) z8 z" ]. x& { dwTmpSkLevel = 2;
) ?. c1 Z1 S2 U) Y w else if( nLevel > 83 && nLevel < 96 )/ @2 f4 h0 _( z) E8 ^3 [
dwTmpSkLevel = 3;
- C% n* v5 a n! M2 E1 v1 d } else if( nLevel > 95 && nLevel < 108 )8 w5 ]5 l/ x5 \/ Z! [
dwTmpSkLevel = 4;
+ n+ I6 R: |5 e else if( nLevel > 107 && nLevel < 120 ), _ X$ g$ u* S) p; h
dwTmpSkLevel = 5;
$ h8 ^8 l$ c4 v$ ~" b for( int i = 0; i < MAX_SKILL_JOB; i++ )
; z5 z. s1 {8 k% \ {
3 @# }& f% e0 `% S3 t LPSKILL lpSkill = &(m_aJobSkill);
- L1 |4 u& s) r% B1 D( S! F; W if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 S4 E0 F6 r7 T; m {
. l6 Y) x9 b3 H1 I, L9 z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); b: d0 ]# X3 @% \, h
if( pSkillProp == NULL )4 Y$ d# n1 T& V8 A; n
continue;2 a0 o4 M9 k9 a# }" g' u3 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- ~+ N8 Q7 g8 J' r9 T7 K continue;
* X) J0 O% x: M! g- r2 S lpSkill->dwLevel = dwTmpSkLevel;
]( c1 ?9 s( s* d; ]) m }
1 A$ h3 x6 T. j4 w! e% d# p }- [' Q: P# [8 Q8 c
}
; V% `* {+ V6 Q: O; ]+ h else if(IsHero())+ B) t: F7 Z: i- B- e+ o# a+ i
{+ ~- B9 z G% o( k- y7 ]( Q3 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, Y# ^, v. \2 m8 Q: G {
# g( o/ A. e- j1 K LPSKILL lpSkill = &(m_aJobSkill);/ Z6 n" X1 I) g- F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. [- u& D% ^; F0 |* q" T6 X: q {
. q5 h, ?" C% R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ p5 j( N- ]! t. |0 o if( pSkillProp == NULL )
! @) G8 o* {, w* u$ Y/ ~ continue;0 l( e$ _( X( J: P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 q. {. y7 J% E+ P6 n$ Y& d1 D& [ continue;
4 f- I% ~# e1 b lpSkill->dwLevel = 5;
w# j( N- q8 a$ r1 [% s( S }- U$ U [" y9 O
}9 [4 u# ~4 \: a5 |8 E
}: h, R7 n+ e, a5 k4 g$ v; G! X
else if(IsLegendHero())
+ p% J. @) w" a( } ^ {- d! U" p0 l# s. i2 A' A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 ?% r" H8 s- ]% }) |; S
{ . a% X/ Q; P5 D+ y
LPSKILL lpSkill = &(m_aJobSkill);
0 A" h8 L {5 X3 P. d: w g if( lpSkill && lpSkill->dwSkill != NULL_ID )- L( m- A2 t" n1 |# ?$ P6 Q* i
{
' N- B1 v# ]1 H- p9 O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : X0 V! j o8 X8 T- a
if( pSkillProp == NULL )2 O) Z& W& L. j N N4 q
continue;
+ y+ g( \' G' z' E& |) R Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 p# ^8 P. Z2 P5 j6 `- h continue;. F9 S v3 g3 R. a. G) S
lpSkill->dwLevel = 5;
" J: c/ B9 h$ W' t }
; X$ N+ ~4 m1 S5 e1 l }
- K. I/ m! G6 b; ?' d" I/ a }; H5 L& M/ f! R9 P9 ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! L/ m; H/ y7 k& K M if( bGamma )
) A! Y0 Z0 N, {) X" h' D {/ d; E) R' E" g9 A% F' _; `# X
m_nExp1 = 0;
7 p1 X$ X1 _: F4 R }+ w# \9 d' w+ _6 c
Q) A2 M$ m4 y, J ( (CUser*)this )->AddSetChangeJob( nJob );
: E9 Y% D- m; Z! a2 ^1 G g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, @4 k" Z& d2 K6 S: {# v+ n1 o# s
|& B: X \* |
' o( N$ h) ^* T8 l, _6 h#if __VER >= 11 // __SYS_PLAYER_DATA r5 u" N4 Y: l1 {' H
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ d1 d7 n% W+ @* u& k- @
#else // __SYS_PLAYER_DATA' e) ?! g9 @- K, o# \4 E* A0 s. |
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 D7 a3 A) k; D G; f1 i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' b, ^" c; N& i, s0 q" c if( m_idGuild != 0 )
4 M# C; q1 u$ z8 h4 Y& g5 n" \ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% {# o+ z: K. X5 T! S$ S#endif // __SYS_PLAYER_DATA
- O& G1 K8 s- R$ A6 r SetHitPoint( GetMaxHitPoint() );
/ r! q8 X- g# q. P" ^, g- C SetManaPoint( GetMaxManaPoint() );( t4 F7 L/ |. }3 ]8 J2 \
SetFatiguePoint( GetMaxFatiguePoint() );
& N$ b& w. w! G. {' b5 l if( nJob >= 1 && nJob <= 4 )
, w7 H' T! a! ` r0 T Y7 r- b {
- o4 `/ i/ ~8 u! m# r% s$ t m_nStr = m_nSta = m_nDex = m_nInt = 15;7 L2 \6 K3 ]' N) Z5 F0 d7 f
m_nRemainGP = 28;* t9 w. D9 o$ Z( G1 ~
}# `2 P& M! R6 j$ x" r5 ^7 K+ t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 ]/ x6 e/ N) A3 w3 ^ {& _" }$ h0 ~) X: j0 v/ h% i/ h
m_nRemainGP = 118;* p% m) _3 S# c1 I& i& q: v
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* h0 E: t3 Z4 v1 G% U! h6 u9 @
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ d# I' b7 A4 J8 P U: m }+ T( ~# W) e* Z5 X
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% A( n' E ^3 K% Z7 K {+ ?' z2 e" B4 m# v$ @, J
CItemElem itemelem;& n3 B. e, S4 ^) j/ {
itemelem.m_nItemNum = 1;
# @, ~1 U% \# Z itemelem.m_bCharged = TRUE;5 P" r' k! g+ s+ X' C' K
BYTE nID;7 N& X! a8 b/ B8 A
6 ]# l) v2 N1 a7 f8 p' y if( nJob == JOB_MENTALIST_HERO )
4 Q) g4 R# b1 @ S9 B& V9 G itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 A4 Y* W$ a. G% Z; z8 j
if( nJob == JOB_FORCEMASTER_HERO )
0 x6 b0 W% _2 p% F! l/ k! E6 d itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 K/ s& p' u2 I$ c6 Y4 y/ f8 y4 S+ c( W5 g5 s
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 ^0 W% n( J2 t, N
}
$ j6 Z( S$ p! ~% c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
+ x! B) s& T- d) g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- N1 j1 F0 l- W1 n" ~6 i: l s
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- }) |/ G# j+ u0 i+ ^$ b- R8 c, a /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 `% y9 s7 w1 Y2 m ( (CUser*)this )->AddTaskBar();*/
8 b1 ^% ~ v7 Y, D2 J$ V' Q ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! O ^# {( v1 r! f( @6 N, t4 O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
# a! q6 m# b2 H6 Y( b; j1 R ((CUser*)this)->CheckHonorStat();
. S; ?# _! J% v5 v4 D1 a# G ((CUser*)this)->AddHonorListAck();
! k. l$ Y1 J* U0 i. }: d. X g_UserMng.AddHonorTitleChange( this, m_nHonor);: A9 d7 v' U6 `. n
#endif // __HONORABLE_TITLE // ′Tà?7 R: |7 |) d8 `9 M( Q
}* m8 E9 z/ ?& T
#endif // __WORLDSERVER
! m1 P; H# P0 Y( Y6 p" ^5 Q}
/ X! Q% Q6 z( Q) G: P- F* V6 L3 R1 V+ m% w. W [, ?; I
然后你进入functextcmd.cpp并添加以下
! U: x" n% D" w$ _# U* A
) T5 J7 c' r, f# ^* N% N* I代码:
( c$ \) ]* v2 `5 p5 ~ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! ?' X# [! K9 E下面插入3 ~4 i7 r: M9 \
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. a& R. J& D1 u9 S9 U: _
" _3 I) Y7 ~& y- ]然后你去
1 `0 H6 d' X! W0 C7 F0 E0 {7 W3 _
代码:+ k y9 K- ?( y- A
代码% [& U5 N f. P# ]$ I" Z
BOOL TextCmd_ClearPropose( CScanner & s )2 _9 ]! K( @5 B& P/ E" `: K
{
1 J6 `, l5 |! q. I, f#ifdef __WORLDSERVER
+ J( e4 o: Q' J6 r$ x CUser* pUser = (CUser*)s.dwValue;( K+ v$ R) O1 [2 j: o) F4 x9 j
g_dpDBClient.SendClearPropose();
& f5 ]' `* [0 g: _7 b; H#endif // __WORLDSERVER
/ f- t" L F) E/ q& n+ ?: F return TRUE;' O6 E+ p" }& V5 i' g- G
}
4 d8 O2 U9 n/ r! p, G1 K; a下面插入
4 y V) o- q9 Y$ z' W) D# hBOOL TextCmd_rebirth( CScanner& scanner )
6 \2 ]8 I5 f* X7 @2 v# g) @' G{- l2 i2 p; r+ K
#ifdef __WORLDSERVER
( v, n, b" e* g0 u0 BCUser *pUser;( H: q7 Q6 Y% ]7 h) J
pUser = (CUser*)scanner.dwValue;0 R0 D& e& [+ m5 q. F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 P: D# g0 L: {, A$ w; {( jpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) ^/ e5 ?1 d" V9 Belse1 l% a& I: {# D8 D9 m5 z
pUser->AddText("你还未达到重生条件!");9 L7 ^& L5 E4 ]7 W
#endif7 C+ Q$ g+ r* R
return TRUE;( k# Z* A4 F$ q1 H
}
3 G+ W6 m, d0 L! _$ Y
# O+ A, \4 h) H
+ O9 ?$ ?% y, O8 i* n, I! r1 I
7 Y; A7 S( D4 r! n' E( U, g I5 c _3 ]9 R1 o8 B, E
|
|