|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' n5 W1 \6 b; S7 j
1 h8 Z2 \5 U6 h" S5 I1 d
Mover.h3 {7 n" d d/ V, E6 q! q8 @
代码:
6 F. [: s! U$ U Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 J- Z* F: r' Q& \: U) s$ d0 Z; n# h" M7 q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" x& P' x4 N8 o6 G$ |; {5 K( T3 r8 Z0 q
然后你去mover.cpp添加
1 N& p! F3 h; M+ K6 Y1 Z# v
+ N1 [, w4 F; _- W# S8 D) l* n代码:6 B$ a- G* L. o7 b7 Z1 D
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 Q) m: l* b% M
{
8 b3 h! ~, N8 X+ k3 f#ifdef __WORLDSERVER9 s0 V5 t0 Q& b* a
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ B5 w# r8 p/ p; l2 V, k2 x& d
MoverProp* pProp = GetProp();9 s. }1 i' f6 j
if( pProp )
5 _% G% I7 x+ Y e$ W& ]9 S9 v {
% _) W9 N1 e7 k4 N- ?( x if( nJob > 0 && nJob < MAX_LEGEND_HERO )( ^$ w3 Y9 k9 T
{
% C1 {8 \. N1 d6 k" {) ] AddChangeJob( nJob );
( P, e, l3 p' f- J }else{
/ f! b7 Q3 w1 G6 B4 `0 Q return;; t9 U5 h+ J4 D2 s+ f4 R8 d4 b# j
}
7 b8 v J8 }- P X0 k! S int nPoint = 0;
% B& G2 B: ~( j if( m_nJob == JOB_MERCENARY )) E3 Q v4 Q2 \/ b9 J" T
nPoint += 40;7 N7 V5 n3 f' g
else if( m_nJob == JOB_ACROBAT )
' Y" E- Y6 q/ |- ?6 U nPoint += 50;0 x. }8 M( |9 K m9 W7 B/ ~
else if( m_nJob == JOB_ASSIST )& f2 o9 x" G' Z; ^1 q5 f2 g: p% X" W
nPoint += 60;
# e# V/ ], ~+ [; D- I" v else if( m_nJob == JOB_MAGICIAN )
& S/ g& t5 o; @% `- o nPoint += 90;
! [' J X( \' T else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 X5 E7 {( p& G1 L nPoint += 120;$ k7 j9 Z) q5 }( A3 a1 ^
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( M) O& s$ |% B5 U8 ~" ] nPoint += 150;
9 z9 o: Q% V/ G' p2 |( z else if( m_nJob == JOB_RINGMASTER )
# u* d9 f' X9 R9 O) s% i nPoint += 160;- p9 \7 Q# B7 j0 v- @$ |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( i! F8 U7 q2 `% k5 c+ Z$ f! @
nPoint += 180;( j) _; r z) h2 I8 [9 {
else if( m_nJob == JOB_ELEMENTOR )2 o# j2 {! B8 Q- o, Z' u
nPoint += 390;
* P. b* b! W6 ^& _7 h4 p3 V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: H! {& J- y' k nPoint += 120;
5 o; _1 R2 d$ ?4 B b# T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 m+ ^2 {5 `" j' H# J nPoint += 150;
+ k5 r3 i2 _% Y) S* c) N8 |) C3 R else if( nJob == JOB_FLORIST_HERO )
. @8 o1 p, W% _0 N$ _ nPoint += 160;
* `" w0 |& A8 D3 J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 A/ l4 w8 o; W; L8 G# p( w
nPoint += 180;
$ u; x0 F2 g& ^7 x else if( nJob == JOB_ELEMENTORLORD_HERO )
5 D8 K+ \% L/ a) {; T3 J' Q( _- C nPoint += 390;: X- D0 G# f2 n- d2 J6 }8 O
' O+ _7 @7 m+ z0 Q* C: y0 H AddSkillPoint( nPoint );" N3 R; h5 \* T' k' Y2 ], X( D
m_nLevel = nLevel;
4 U ~% K( r/ ^; s$ f
# Q) y; E, P7 ~; T, f; w1 t SetJobLevel( nLevel, nJob );
5 `# s3 K; s% U; T m_nDeathLevel = nLevel;
2 m" ]! h. v# i" X4 T9 B3 t#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 ~ ?) C" D4 o* ]( ~; S" i4 g% [% E; u if(IsMaster())
5 [( L, E9 R1 Z& | {
* ?# G7 q* \3 A1 ` h) f' { int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; t$ j. n7 R6 Q2 S. D9 ] if( nLevel > 59 && nLevel < 72 )
: i/ q8 ^- x: G6 v* x* V8 D4 Z dwTmpSkLevel = 1;. k- Z2 i# x3 H* ]8 L
else if( nLevel > 71 && nLevel < 84 )8 b+ z# y8 l# p/ f4 d; S4 S
dwTmpSkLevel = 2;
- f6 Q$ G8 c' g2 i* e; v; a else if( nLevel > 83 && nLevel < 96 )4 [ m' n- I$ D5 T
dwTmpSkLevel = 3;
+ t4 B! i K0 z s3 h8 d else if( nLevel > 95 && nLevel < 108 ) T$ b# M7 t5 K4 b8 r
dwTmpSkLevel = 4;
, O( W1 r! d0 j& J else if( nLevel > 107 && nLevel < 120 )9 w7 U% X$ L0 a3 u
dwTmpSkLevel = 5;. v" c( G: ?5 s/ E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 v( F8 | A7 O' f; {' i1 l( Y/ ~) D
{ . b; C) f4 ?( j, J0 s) `6 e1 j
LPSKILL lpSkill = &(m_aJobSkill);" E" |6 o* O9 h0 X2 `" H& z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 E& c5 M$ C1 C/ D- R {
) v) P5 ^; w% k. J6 F+ b/ c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , @. S* G/ O4 C' K, X. L2 S( i
if( pSkillProp == NULL )
# M$ h2 y, B) V+ i5 z* } v continue;
5 O. ^9 u9 V) R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ g( N5 \; S7 d4 I9 w0 a$ ~& p continue;! \" @/ d ^$ C0 |2 T
lpSkill->dwLevel = dwTmpSkLevel;
/ M+ e% D: u) [8 B4 ~( @ }
) y2 M5 S: V. c' ] }
: K6 e; n& e7 @ }
: E3 B& T' w" u+ U3 F# k4 K" W else if(IsHero())
! O1 Z G) _8 t) S" C. k {6 o+ h. U1 x9 B2 n6 L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 y- n( _7 A: ^$ E3 ~
{
8 r2 I4 z8 `2 o LPSKILL lpSkill = &(m_aJobSkill);* H$ \3 P2 N4 d: n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' D% l a- c5 e# {/ Z) {# }( G {
b2 W+ [; ~5 H6 o. a9 r! v+ I# J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 q' ?; n/ k5 a/ C+ h( A if( pSkillProp == NULL )
6 J8 P4 [: ]7 F& Z/ E6 ^ continue;1 P5 [- B2 E+ t( s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 r( P1 E, h9 Q7 j3 X( z continue;
/ B. ]# f4 Y& f0 V: | lpSkill->dwLevel = 5;; k( B$ z. f' z* K2 b& L: g- ?0 [
}
! ]) z- W5 o6 K+ b }
$ k% K0 T4 B* }7 s# C ] }) X4 l8 l- D' R( j0 z4 L7 ~! q
else if(IsLegendHero())
( M5 Y( c$ q2 U' {# Q {0 E0 H+ M; H# L& ?' J8 \% K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ^0 d/ e7 X8 L' |
{
) A E, E6 {. A2 \, v+ [% T1 X LPSKILL lpSkill = &(m_aJobSkill);
( R( D3 q. c# ? if( lpSkill && lpSkill->dwSkill != NULL_ID )- x- q+ i# Z: s* b8 g
{
7 j2 [& B2 t! R4 n" ?+ Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : P; }* z) a+ E1 w3 R# ]
if( pSkillProp == NULL )! P; ]$ W+ o3 x
continue;# g: g. R4 Z; i/ Y- B, a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 N1 Q' y0 G" E, | continue;" t6 ~3 B4 w( e' v) m
lpSkill->dwLevel = 5;
8 H0 G6 @9 x% b3 z2 t7 ~( | }0 j" B4 R6 P% z: S3 }3 t; X* s
}
+ J# ^6 Q# c7 ] }9 o2 ?9 h' h: ] L, C$ ?5 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 `* q! g8 `6 N3 t+ s F if( bGamma ) X) e7 n. l# t
{
/ Z0 G& k7 M) u, E9 y+ {1 U m_nExp1 = 0;% z$ [, G7 G1 d4 W) m" f. M
}: N- E; O+ j4 Z5 d& S# ^
/ C3 N2 `: p0 }. M
( (CUser*)this )->AddSetChangeJob( nJob );! r( i) T. f% `4 @) ^, o$ |
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: F- N9 M" S' b) \& s3 X7 L4 }* R. C3 q8 c: }0 A
$ E/ q. k/ G7 i* G% J3 m3 |#if __VER >= 11 // __SYS_PLAYER_DATA7 p. F, `" b9 y) l: O. Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- H0 V# n2 x! ~2 G#else // __SYS_PLAYER_DATA
* w3 k; M. }/ w& K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );6 z2 ^( @6 t5 a. D1 h
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; O" _- V, F6 H' ? V7 {& I if( m_idGuild != 0 )
, L$ x0 s1 {3 O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
J1 { _* [! N7 J2 e! c5 x- g#endif // __SYS_PLAYER_DATA$ K* L! r& Z$ r2 k
SetHitPoint( GetMaxHitPoint() );
5 q3 c& j$ k2 M3 I% D& Y/ \ SetManaPoint( GetMaxManaPoint() );
' p# i. l4 o: r SetFatiguePoint( GetMaxFatiguePoint() );
6 Z7 _6 k! q7 K: \% _! K' x if( nJob >= 1 && nJob <= 4 )
" ~% X% h+ U# ~, g {
; k& r! W: C/ w/ H m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ U! K( u2 o ?" w m_nRemainGP = 28;
$ A8 L9 e0 e; \ }- x% O! P: ~1 q) T& r4 l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 ^1 U7 _8 N. \; j+ O
{
% R) t4 e0 j+ F2 J u m_nRemainGP = 118;
& C- U8 ^/ Q3 a8 { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. G1 S* m+ x6 s m_nStr = m_nSta = m_nDex = m_nInt = 15;- B- R5 Q2 E5 [; `3 n/ G2 V
}- E: z4 `5 p$ T! S! B% q9 A
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
2 ^9 W4 x5 U( p( ? {
, } y; o) R; o' b! x CItemElem itemelem;7 o" o: }/ F- f" \0 c7 `
itemelem.m_nItemNum = 1;
) |+ F) p% ] F) N+ E! ] itemelem.m_bCharged = TRUE;
5 A! p5 a7 K( u A BYTE nID;
3 ^ o' x/ ?2 F# e
6 l! c* ^$ C! F* }9 d) ?2 z if( nJob == JOB_MENTALIST_HERO ); L& \& c$ Z4 Y4 X+ f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. H I8 O5 ?5 |. y- a if( nJob == JOB_FORCEMASTER_HERO )$ [* k& o9 n/ T* V" A4 o1 m+ {5 O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 Y B8 p# C) \9 m* e2 h8 L. v
+ u5 ^/ x: l, m( f h3 f6 V. N ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 p/ Z; E" M# C% m" v# a0 v
}
5 @. u0 j5 J& ?, z* ^7 M; q6 ~ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 L+ I) [- m% [% p: |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 [# j2 i% W8 P' M: r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) d8 k& u O( Q5 ~) t
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 Q7 z4 a) u. B+ k. g ( (CUser*)this )->AddTaskBar();*/
8 O) I- W9 E9 h) j. O7 C ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ a0 U P9 k8 q7 i; S9 r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 H/ X3 m8 t/ }( Q- x* z# S( a
((CUser*)this)->CheckHonorStat();
7 @1 M1 ~1 t, l( \2 z& c) p0 ~- C ((CUser*)this)->AddHonorListAck();
0 e2 }/ x* H' A3 p9 Q: O g_UserMng.AddHonorTitleChange( this, m_nHonor);; H, P3 N; o5 e0 R" {
#endif // __HONORABLE_TITLE // ′Tà?. c0 ]# |: J, g' m$ `2 Q3 B
}9 F- [* p) ~8 H+ k
#endif // __WORLDSERVER
6 G1 a8 G& z) o+ t} ) ^# z" Y; `! P# U5 r
) F7 c: a: b( Z X/ N' t
然后你进入functextcmd.cpp并添加以下" c+ T- v7 g& @' W5 p
# p+ ]2 Q0 K( e6 N4 ~) S9 g
代码: c* e+ O* d9 u
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
6 B9 s) F2 z* |1 K" t' A& E8 }下面插入
5 d4 P+ ?$ _! z, b3 c( aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & U, d: B) j" I/ t& P; {
' J& o2 {4 y1 i* _* |: N- S1 J然后你去0 l) I# Q+ {* B- z
; Q: `2 \2 |2 J6 E6 a代码:' L/ i; i3 i% W/ y
代码
' z9 m/ I1 B; nBOOL TextCmd_ClearPropose( CScanner & s )9 h3 [3 L5 L( n+ b. d h
{
5 |% T8 O# T3 G& G; v: T# D T: |+ f#ifdef __WORLDSERVER3 v" }& u0 M9 L5 ^) b7 K! b8 @
CUser* pUser = (CUser*)s.dwValue;
" t" ^$ H0 Z$ }/ j! v g_dpDBClient.SendClearPropose();
5 M7 x& w7 N) X6 O#endif // __WORLDSERVER6 n: m$ [# h9 S
return TRUE;
! t- r, r0 E. l1 ~+ R}: O \( ]$ @8 Q% Q
下面插入' P1 s0 m( ]6 m. H+ o1 L7 i
BOOL TextCmd_rebirth( CScanner& scanner )
M# D# A) z. q! L! p) U3 D; L9 D{
& ^2 t; c' k* c5 C" R#ifdef __WORLDSERVER7 W# C- V% e( Q
CUser *pUser;% {6 y- D6 M" U$ w0 w4 w
pUser = (CUser*)scanner.dwValue;7 P/ o6 F2 a5 q# {% x w) j
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 t! ?/ t( c) [ ?0 Y# F2 G; R! n
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);* \6 I7 ?! b Y# ?! D
else( {$ r" U5 L, f: k+ V" {
pUser->AddText("你还未达到重生条件!");$ E# s( E, w/ B5 r, v2 R7 C
#endif! m) s0 H+ ?# m6 e
return TRUE;
. M( Y. s: r2 X) w0 p9 Z' g1 ] i} + _( z# F. y( q% i; s! _( w% j$ e
, b$ _' D# A \* ?) m% {% x5 n7 Q7 C; }
2 m Z# W: A' o# P; D4 h
7 u3 ?# b+ y6 D0 A
|
|