|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 Z$ n3 C# N& K5 I& }* `3 k" }
0 ~% a: j' C4 T1 |
Mover.h
3 p& M9 o& ^) q2 @; t+ q8 v3 U9 Y代码:7 p# B2 r( T! s7 ^ f" @& ~% U
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü \) J3 U/ ?3 x) o, i8 f+ w
- c" e4 v! r* q4 c
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " }! t" H7 n0 O7 ?0 {# i
. A R; T! E6 ?6 t a& `
然后你去mover.cpp添加( W( q% C/ i& I. h5 ]. f b
; a9 e% X& L" `3 x z. H$ \代码:4 M- Q. j, n# f2 h3 g/ _4 K8 A8 n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ d0 s7 ^' n5 z3 O0 @
{, S+ `* O; k7 o$ X( J2 D
#ifdef __WORLDSERVER) R ]3 r8 w7 ?# a7 ? H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ ^0 T0 n' q q2 J' X6 U: a1 H MoverProp* pProp = GetProp();
p' b5 K- N# b1 @5 j if( pProp )
; C* ?3 d3 l D- p! }% \ {
: y; N1 K y c- X if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ F1 C$ O+ X# i& M2 b
{
" n5 ~" R. e5 E o5 V! | AddChangeJob( nJob );( M; U+ w* E% L) b
}else{5 f# c% i. T/ o5 L' U& L
return;
}! q! b: f( E" t) f+ I' @$ v }
; r F- i) b- m0 S6 U1 N3 l int nPoint = 0;- B+ W/ c0 E8 Y& f" z$ F2 ^3 N
if( m_nJob == JOB_MERCENARY )) l/ W! s. T0 `+ C9 H7 Z; f9 n
nPoint += 40;: {( F6 y) w K8 ^. p% `# E
else if( m_nJob == JOB_ACROBAT )1 H' g5 f' c5 l3 P/ @5 ?
nPoint += 50; x" L% ?* k5 P
else if( m_nJob == JOB_ASSIST )8 t. C# _7 p# H6 Y A8 K& r. f; k
nPoint += 60;$ u; v* [8 T( A+ r9 `. e
else if( m_nJob == JOB_MAGICIAN )
I+ T' O6 T2 |# ~, x* M% w nPoint += 90;$ _1 ~ \: v( o9 f1 `. |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# g8 O" E, h, n" K6 N: M' O" P( ^ nPoint += 120;9 i4 {- b0 L2 Y2 D8 M
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ k* u, ^. ?( J nPoint += 150;
, F3 f/ m. X; L! |# @9 D else if( m_nJob == JOB_RINGMASTER )
, j# C7 S: g8 c nPoint += 160;
) w, x0 j- _, b }/ D else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )8 C; F/ j5 g& o/ ?* k4 J0 V: L
nPoint += 180;6 u4 L. G! K: G+ | B2 g9 Y
else if( m_nJob == JOB_ELEMENTOR ); i- R4 E8 y. s5 M) j
nPoint += 390;
6 h- x$ n1 b& j7 b1 q& I9 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) ^& i3 K; X: Y6 e$ h nPoint += 120;
- B- K/ p8 k! t else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ V6 k9 y( }7 d9 t
nPoint += 150;
2 H- w) L. ~. F# C( }5 X else if( nJob == JOB_FLORIST_HERO )
7 s6 [2 V+ g- W/ a. t3 G6 d% Q, t nPoint += 160;
1 D: n1 L6 w( _9 ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( p/ s0 z0 H6 N. {! S nPoint += 180;
1 ^6 V) R( [( Z1 l. X, p- C' h else if( nJob == JOB_ELEMENTORLORD_HERO )8 N3 ?- K" ]. \+ [( ?( F
nPoint += 390;8 b2 R) U ~ v+ V: q8 @
' U( h, M$ q0 b p: ~7 S9 I
AddSkillPoint( nPoint );
& \) K! E% n, ^0 Z5 x6 v6 z2 H; k m_nLevel = nLevel;9 B$ j7 b8 X( Q. p4 P
% q1 V3 {1 A0 |8 G4 J) C& K
SetJobLevel( nLevel, nJob );
8 A. n8 T' H( z- l8 o: u m_nDeathLevel = nLevel;7 _4 b4 T+ l1 r- |( _8 W, H
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. N3 A8 Q* x6 g, T
if(IsMaster())
; G. k# f2 a$ |2 R2 n6 ?( z {
' e; ^6 _& ~3 s6 D7 p int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- f% o! s* `& ^, p6 N6 Z if( nLevel > 59 && nLevel < 72 )/ w/ g6 v- f* _# c4 ~! Z) b" p$ R
dwTmpSkLevel = 1;
& H1 j1 p* I# m$ u7 q else if( nLevel > 71 && nLevel < 84 )& S: n3 B4 y/ K& ^( R
dwTmpSkLevel = 2;1 T' ?* l& W6 p" m. q
else if( nLevel > 83 && nLevel < 96 )& ?6 c4 [8 V- N1 C- V
dwTmpSkLevel = 3;
. h6 i3 X1 M: q else if( nLevel > 95 && nLevel < 108 )
3 v4 t$ e: \7 i: S dwTmpSkLevel = 4;
6 h: A* P% @; k% X3 ?6 l else if( nLevel > 107 && nLevel < 120 ); U& Z# N+ s8 _ E
dwTmpSkLevel = 5;! r" ] n; g' j4 `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( }: K/ Z s o# ~/ R0 q1 u; k
{
- }* n# C' Z2 n& F, B2 W LPSKILL lpSkill = &(m_aJobSkill);# F u" ~$ K1 D3 J* {, q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ w2 c) x1 G" Y, S {
8 q: V' I- q8 z/ B8 h" \8 B ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : A3 u5 u t4 h1 \7 a4 A
if( pSkillProp == NULL )
& B; E6 `) b4 u% p$ W continue;
5 C$ X6 ] h; H9 ]( g7 \, w- x if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& T9 a9 z& Z' m0 \' v1 h v8 k$ R# P
continue;
' Z# J, V4 M! e: M+ }( g lpSkill->dwLevel = dwTmpSkLevel;
( d5 D8 F' D6 ^& d/ Y9 ^7 h }
8 [" a+ H- s- P: s% y/ C }9 N" R& o4 c0 m0 a
}
6 @2 q! C. p! B# }! a. X else if(IsHero())4 T6 I# R6 p( b7 o$ X7 g
{
9 z0 Y5 i8 |- S' x8 O; U for( int i = 0; i < MAX_SKILL_JOB; i++ ) " f+ W2 [8 d7 ~# E. b
{
3 y+ a' A. \/ M5 u8 I( }+ K" a LPSKILL lpSkill = &(m_aJobSkill);# u0 o8 a# R+ j# t' Y
if( lpSkill && lpSkill->dwSkill != NULL_ID )* |2 C0 e4 y. Z) X" K
{
/ a# j; w' }( ~+ l' _- Z( S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . @6 E$ S& O! C1 E% ^
if( pSkillProp == NULL )! g4 }+ r8 C" S* D! W( f
continue;
4 I% p$ ]& M. K; `* @: Z3 O$ V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 R, H9 R" g- y* [" T: S
continue;
. g1 Z' Q: |" Q/ T lpSkill->dwLevel = 5;
' h0 [5 S5 `; B/ ?5 n* A+ G } x# h9 {/ V) n% ^4 Z) C
}
j! I( A. r9 S }3 L" o% q; ?1 B+ O' d9 j# {& n) X
else if(IsLegendHero())
( w" y2 m/ [! L) ?+ q( H+ I* i( T {9 f9 x' F5 W$ w- m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; |' s/ j- f' u ~ P {
! \5 p& V T2 e* d }& [# ` LPSKILL lpSkill = &(m_aJobSkill); I* h% g' f( ~ k# G7 B2 P, i7 g e
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 @7 Q9 \3 ~7 X
{
- o+ s5 K K. Z% F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- |7 K5 g" X: p( T if( pSkillProp == NULL )0 Q- z! M4 t3 L8 `) p& \5 T
continue;
( w s: \* s P' C+ u, F/ V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' T$ s) E |* y. K( d9 ?+ X continue;
, ?' e" l+ G6 [" i lpSkill->dwLevel = 5;
7 P; _. ^5 s2 }2 D. P6 {- F8 M& J }
' B! n8 I( r' f! m }
) q4 U' A! q( c# _2 Y- I }
( |+ b. U3 ^6 t$ \' C2 H#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 b% F4 K5 ]! G1 v& C: m& ^; G8 @ if( bGamma )9 p( e$ b! s$ ~0 O2 K
{
2 p: e7 u% o9 f, y: u m_nExp1 = 0;
" {3 ^6 ?4 @) O8 ` }
5 [$ ~ Q2 t7 A5 F% g) ?+ m( r) |" B
) {* m; O D6 N' n ( (CUser*)this )->AddSetChangeJob( nJob );
; V2 t# c6 z9 M7 q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( _& @, W; F' g W, ~$ m- S+ s0 W) e% N
/ U6 J0 _, J" R2 g" R+ M; O4 \2 K#if __VER >= 11 // __SYS_PLAYER_DATA
t9 F: K4 x1 m2 F& w g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ e3 s! X/ l# Q3 Q9 O#else // __SYS_PLAYER_DATA
; U9 s9 i+ @" J5 O1 ^. f: M g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& B. G) P7 G! J% E5 d- h" \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 p; }3 _; Y! r; |& s1 o
if( m_idGuild != 0 )
' e* Y% Z! g. E. x- P9 l( ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' b( }$ F3 }) ?# f9 X) }7 ~#endif // __SYS_PLAYER_DATA+ v8 i5 r0 k L) ~. R
SetHitPoint( GetMaxHitPoint() );
, u8 r" |; D7 `7 i( h SetManaPoint( GetMaxManaPoint() );
2 e Q V9 m. ?+ l! t$ _* n SetFatiguePoint( GetMaxFatiguePoint() );
* ?" P0 _: j0 n+ l* d% s8 u if( nJob >= 1 && nJob <= 4 )& L! o/ p; t8 t
{3 G7 |, P1 [$ s3 R/ B- T$ V5 E3 J
m_nStr = m_nSta = m_nDex = m_nInt = 15;9 Z! l- A! v# }; ^. F9 c
m_nRemainGP = 28;( ^ {3 Q- K$ Y+ \( x5 ~
}% a, f8 T* R6 s: v- q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) @$ e! n4 j6 X& V4 i2 x; ~
{6 d1 F' a: n0 f# T' W' s
m_nRemainGP = 118;: ^2 [/ Q. g1 p2 W. E
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; K" o/ d+ p$ r2 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% |7 k: ?) _8 f" r }$ @( ~0 d% D% r) u# z) L5 v
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: M* ^: @/ w% J) o2 P, O4 {8 w {7 b: K) B& p% w; V- Z
CItemElem itemelem;
7 k( M6 G% g# ^, l itemelem.m_nItemNum = 1;
* h9 {2 A* t! w2 b( H; Q& w itemelem.m_bCharged = TRUE;
4 [; A4 L1 [6 B* N3 w; F# A: P' N BYTE nID;; U3 M. |9 ^8 f+ K- L
, W9 z) l, E& m9 i1 Z* Z% ]7 i- w m
if( nJob == JOB_MENTALIST_HERO )$ O: M9 A& \: } k' f; W1 W0 o& i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
g3 f6 V$ E" P; c { if( nJob == JOB_FORCEMASTER_HERO )( B+ t( a( L! s! d) H6 g
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& S+ u/ S( X3 |3 d; O- M2 }
}8 _$ I Z" C1 ` x4 [
( ( CUser*)this)->CreateItem( &itemelem, &nID );( j# n: p( Z7 P
}" o0 T; |" @/ Y: R9 N
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
, {0 @+ S: y! U2 W8 K ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( X% L. L& v5 i# K" [ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
@8 J; u" Z0 E$ K: b! P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 E* M5 Q3 c. T( d
( (CUser*)this )->AddTaskBar();*/: G2 O' {: h0 {3 B- h& O7 T+ ?$ g
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
3 A5 @4 R1 v6 ^4 {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( d* C/ V0 ~% z6 f ((CUser*)this)->CheckHonorStat();
* k/ [% I8 s% \0 g: s6 { ((CUser*)this)->AddHonorListAck();
: ^, o# S2 h* R$ C4 s9 L! @ g_UserMng.AddHonorTitleChange( this, m_nHonor);2 l0 f1 {: g0 `5 L" |
#endif // __HONORABLE_TITLE // ′Tà?5 [" T6 s. E& A
}
! r9 u, \4 B% i% T#endif // __WORLDSERVER9 L& K ]$ s# Z7 x$ T& r S, @
}
1 z, O2 o$ X: \; ]+ Q3 v. J1 }! {. G. M( | X0 l! a# ^" [
然后你进入functextcmd.cpp并添加以下3 G5 A* v) _. V1 p) z) L
6 \* W4 ?+ Z0 E4 B代码:% c" W% {1 E9 X+ j# H
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# a! e6 v- K5 D7 k下面插入0 E2 S/ }% b$ k' U* I( S
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! \, v) d! [5 O5 x" D7 n0 L E% ?, q% T5 q
然后你去& k4 ]. r8 E; P
; _7 | r; F; i2 `, z9 [- e代码:! `, t8 K( R" {; C# P6 I
代码
% r6 ?& n. p3 _' h/ _9 ]- ]BOOL TextCmd_ClearPropose( CScanner & s )
5 d4 h9 z+ j. |3 {{
3 C) d3 G. u" q( u4 J5 i* t" p#ifdef __WORLDSERVER
8 o( \% K+ P. B CUser* pUser = (CUser*)s.dwValue;7 l8 m* G( U0 ~- p5 L9 T$ h
g_dpDBClient.SendClearPropose();1 U/ d j7 D3 m0 r; a8 M
#endif // __WORLDSERVER) b3 y$ C8 @# z* \% _
return TRUE;
7 M+ z# D; J# o; r( z& a0 n}
& |9 f1 Y1 V2 w下面插入 `8 C. z& g+ o# c/ G
BOOL TextCmd_rebirth( CScanner& scanner )
0 F8 f: d A' b, P2 k5 c% A. C+ O1 u{
+ G% T j. Z! A+ P* J+ y#ifdef __WORLDSERVER
. {* |# C$ l* r% ?CUser *pUser;
6 e# G3 s3 u7 C6 }% g8 JpUser = (CUser*)scanner.dwValue;* `, G: [/ | {1 Q/ J+ L+ Z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())- {5 k' k: F) ^( G' E# l' [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
K4 S& p/ F9 T+ D" z$ h9 h0 |4 ~else7 P: s4 S+ n7 ~: T' X5 ^
pUser->AddText("你还未达到重生条件!");
; o0 k5 `" v3 @ E" l; S T#endif" H6 ~: t0 T: X
return TRUE;# v1 }8 H% l$ `. x9 J
}
' u+ q3 W( q; K& X8 |% F3 u; m4 e6 }7 P: F
- `% o7 o1 u. y; K5 i1 S2 S
2 g( q8 O+ t: p3 c+ e5 A
2 h4 {( N5 B7 A* K) A: I1 ] |
|