|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 F2 V. ~0 i5 ?. q$ ?9 f) r3 _- L
z/ i( w) r5 x" v
Mover.h
4 V: i# T$ B9 v0 u) b代码:
3 i( p0 ]0 Q* M6 p9 B o, x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- |4 T# y3 L! H$ Y' b, F1 _0 j5 }5 K6 H$ Z6 E" L5 N, @; H
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. }1 b/ ?' [4 e/ N7 ?" }
. n% z; h# p7 ]. S然后你去mover.cpp添加9 ]( B% `: ]; z$ u* i/ d, b E, c
/ {- h+ L, l5 F5 O( g6 S代码:+ N/ m5 e0 Y$ E+ g: i3 l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 q3 Z @7 Y: z l+ K1 F
{
1 z8 D& j: K* @2 [0 h#ifdef __WORLDSERVER
5 H0 T2 |& P- D% Z o5 ?0 r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 H8 Y0 y* b# }
MoverProp* pProp = GetProp();+ D+ c$ G" o: F+ j ^
if( pProp )) _" J8 N" j5 J3 ~* _3 M
{1 p( D; H* [( J) |& a. H: V
if( nJob > 0 && nJob < MAX_LEGEND_HERO ); O6 ^& j" [! Q9 K6 U+ E6 ]7 w; u
{- S: c1 u& R* m1 r$ v" f. Q7 R$ C
AddChangeJob( nJob );6 { \& `4 k0 m, i
}else{
& h% r4 w, _& |' P, t return;
1 b; n2 k# Z* K1 i/ P! ] }
; u* ^" m) y4 W4 ~, Q) _1 k int nPoint = 0;& k# a0 z7 H# ?9 _2 G
if( m_nJob == JOB_MERCENARY )
3 u0 N5 [) t# d5 T nPoint += 40;
& ~" ?" h" R. d+ K+ v" t# s else if( m_nJob == JOB_ACROBAT )
& X* M: [* e6 S4 B% M7 R! b1 p nPoint += 50;2 O ]; f$ k/ v4 ^5 a
else if( m_nJob == JOB_ASSIST )& N( D, t; I9 `5 C& k- B+ S
nPoint += 60;
" |% }+ Y( h* k, F1 H else if( m_nJob == JOB_MAGICIAN )! s% O3 q U: z0 @2 M) H8 p$ J& m
nPoint += 90;
+ J/ D/ x, ^3 [" ~+ V3 `1 ]' [5 M else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
, B8 W9 W( E' l3 [8 d nPoint += 120;+ y# j" R# n4 O$ _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 l) y1 a+ Y7 @6 T/ D3 t5 b7 _
nPoint += 150;" q- B3 ` R! U% E
else if( m_nJob == JOB_RINGMASTER )4 w) o$ c+ k- Z* s
nPoint += 160;
* s' C& i& `1 F8 G: O else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) M4 e; a7 O$ X& i( i7 P& ?) F0 a
nPoint += 180;
9 {: G1 V4 Y) v! p+ ]5 X+ c3 s; l else if( m_nJob == JOB_ELEMENTOR )
# s; r+ _5 f; u1 |( ~: }% m nPoint += 390;
6 g6 ]9 _) b7 l" O% Y& H% V: ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) |. I' I2 ?( t, Q# U
nPoint += 120;7 f! X7 @* T) F4 B: M4 m. g; a2 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* L% S7 E" @* ]4 y4 r/ H
nPoint += 150;
3 A0 R4 L. E( V else if( nJob == JOB_FLORIST_HERO )
& E- D2 ]0 G- ]# k& h5 E nPoint += 160;, e9 u) Z& }- `$ v8 ?
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ I3 K- e {# X- }7 R/ {: w nPoint += 180;
6 v# C1 P( `+ c7 \0 q5 B else if( nJob == JOB_ELEMENTORLORD_HERO ) J; Z0 Q$ S* }3 l3 @. t
nPoint += 390;
, Z: W% z" d! r+ t4 ^, u/ Z( [8 L1 q8 S
AddSkillPoint( nPoint );
, S3 I0 O5 m- U2 F m_nLevel = nLevel;. O9 q; ?) N& g4 O( Q
9 P1 I P0 u2 f9 y SetJobLevel( nLevel, nJob );
( [7 y( f. ?+ w m_nDeathLevel = nLevel;
7 [% ~; ]+ i6 l8 f#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans u+ q" B# ^6 n1 [' ]
if(IsMaster()). M( ?6 V" c7 i+ i2 F; b
{: Z5 E5 M: I0 P/ i4 G. ^
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, a! c8 M- E/ P$ N) J( |/ P
if( nLevel > 59 && nLevel < 72 )
2 ]: }9 Z2 w- b, Q" o dwTmpSkLevel = 1;9 A8 J) z' n/ P$ z7 }
else if( nLevel > 71 && nLevel < 84 ) r7 }8 k9 J( v5 ?1 r$ e+ }
dwTmpSkLevel = 2;
& s4 X" j3 I; n2 [: p else if( nLevel > 83 && nLevel < 96 ): F2 t1 l* V) z W0 ]
dwTmpSkLevel = 3;$ r+ A O8 {, z, b. g" J: r- E- G
else if( nLevel > 95 && nLevel < 108 )/ L+ T: i( n. u+ P9 M$ v! F
dwTmpSkLevel = 4;
y/ H; a: o3 ~5 |% F3 e* _2 F else if( nLevel > 107 && nLevel < 120 )4 D0 N% q- x- p. _; h6 K
dwTmpSkLevel = 5;
7 y% [1 h4 J2 r$ s for( int i = 0; i < MAX_SKILL_JOB; i++ ) + n2 U4 m9 S3 @, V5 j9 ~8 U
{
- Y, B3 v! R5 `; L% \6 ~0 C' [ LPSKILL lpSkill = &(m_aJobSkill);
5 C- _& p! L { if( lpSkill && lpSkill->dwSkill != NULL_ID )# X# r, H: h6 R* j9 {5 x0 ^
{
4 J6 s. S5 n/ _' d% ~* D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( }- f- y7 ?" n* v) [- W if( pSkillProp == NULL )$ i) g, V* g7 M6 J
continue;
2 d. J6 E+ J7 j8 A% k if( pSkillProp->dwItemKind1 != JTYPE_MASTER): m- F( }) z, ]$ w
continue;
R( _' X* T7 b2 O; [ z0 Q1 X lpSkill->dwLevel = dwTmpSkLevel;) C# j, l( |; O1 `
}( P: G, l4 b1 @ K% e
}! s& r. o. ^/ e, n) p
}
' `- U. g5 M% h9 k$ s else if(IsHero())' e& B5 [- W! |' q9 L
{8 k9 X' N- i0 P6 a# x, C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . h$ Z( U" u$ u" P8 |
{ 4 N9 L: q& f* u$ u
LPSKILL lpSkill = &(m_aJobSkill);
6 I- R: Y; R; U3 m if( lpSkill && lpSkill->dwSkill != NULL_ID )
! r0 v) Q6 U4 ] F; J$ E6 F { ~* ?# Z5 r" q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ]7 r1 B* P1 u* H if( pSkillProp == NULL )
6 @; J2 b3 ~2 J+ ]+ q: U7 U continue;/ ]9 O. P' O- l1 \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* x- {: D) u% N" m" l continue;
: z: l" b" @" b7 Z% [( M lpSkill->dwLevel = 5;* `: U( c7 E1 O! D& _
}2 a$ x$ X9 {, R9 z
}
0 E" q+ n) K# X& I, N# Y }
/ g1 M* G" {% A& [ else if(IsLegendHero())
' \: V+ X* k6 R {
7 a) s) C) K, y4 _. G2 P0 W) }9 | for( int i = 0; i < MAX_SKILL_JOB; i++ ) & d6 S1 y- E+ j. S3 K! w- x3 e* H* K
{ : u( @' K# l" z
LPSKILL lpSkill = &(m_aJobSkill);* P$ `' G* ` k' y0 { q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! j3 j* f7 k8 D* R; v% ~ {& L9 O4 z; S. m9 t O! E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ U( n5 C6 g2 k& a if( pSkillProp == NULL )
, X7 ]: I3 O/ V% p, X$ F continue;2 n4 F2 ]; ?1 {# @# u2 J$ u6 z. u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* E% _- T; v+ K7 W7 o" J
continue;
6 l2 H4 q( ~, L lpSkill->dwLevel = 5;
" ]! r% C) s/ u( [- E }
) Y5 Y9 o; C, E+ Y* z; Z }% ?$ c4 h6 i2 ^ z4 Z N1 q. ^
}
6 g! a5 j+ Q( s8 B/ c ^) F' W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 E! W2 D/ X! T: x. F# I$ d
if( bGamma )
$ S. K8 A$ G7 P z {
% c7 i) H7 Q) x0 c0 a9 R m_nExp1 = 0;$ o* L" w# q O/ N& N1 I, ?) G
}
7 l3 s8 H4 D6 {& E% V! H
! I" A! Z* w9 `: B) B2 Z ( (CUser*)this )->AddSetChangeJob( nJob );
2 E/ r8 s7 X3 r& Z; n: g) F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* g7 ^" Q; H0 P; t6 ~
3 ^; X n$ l* P. n/ V
|! R# ^4 M" q. D! y#if __VER >= 11 // __SYS_PLAYER_DATA& S5 d4 C, k+ V# O. S! \7 j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ [( ] f7 B* b1 c#else // __SYS_PLAYER_DATA0 X( f8 B. O' A7 \# p
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# R$ @ o* @/ I" W+ e g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# [8 R9 n' F8 Q0 j' W
if( m_idGuild != 0 )" l U q8 d$ C# U' p, ]
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 b5 o) T; h8 D0 |, q5 s7 h#endif // __SYS_PLAYER_DATA D" q. S1 U& t8 E3 X0 ^+ z( D, R% f
SetHitPoint( GetMaxHitPoint() );
$ A' f3 ]0 [( n/ `$ M) N) d1 G SetManaPoint( GetMaxManaPoint() );
! R# m& T9 y6 f i/ k3 c# I4 D: J; } SetFatiguePoint( GetMaxFatiguePoint() );- r* v% U- @; b" N" v: W
if( nJob >= 1 && nJob <= 4 ), q" [' L3 M1 _9 q/ Z& V
{
/ _% t+ A2 F: K" D1 T' i! B7 i% t m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ T3 G" w; P# T* U o& e$ x m_nRemainGP = 28;
1 ?1 i: c, F% d2 z3 C }5 p# d3 j; z2 T
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ) B% G8 B( ?: X. |
{" g: D, h- \; V0 r: h3 a
m_nRemainGP = 118;9 f7 x+ f3 d; B5 \6 Y& C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* j* @$ s8 r$ B m
m_nStr = m_nSta = m_nDex = m_nInt = 15;, {# L& c5 R! C6 E
}' L+ C& y( m k
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 {7 [8 C. r- K" M8 T% Q+ K {0 V; |9 H( x* I: u. g# D; y
CItemElem itemelem;
& X, R' P9 n/ o1 E3 D itemelem.m_nItemNum = 1;6 I" q% r5 H* z" q3 b1 |) c s: {
itemelem.m_bCharged = TRUE;
2 f5 p$ P, Q$ }8 {7 a BYTE nID;
) M. [; A8 d# H) U' b$ ]7 S2 W1 r7 ?5 ~
if( nJob == JOB_MENTALIST_HERO )& g# @: Q; R- p5 [( `1 g
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* g; w6 t( u, U/ h& n
if( nJob == JOB_FORCEMASTER_HERO )! H; X9 j* c4 I) N+ _, M
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;* v7 g1 T2 w+ d9 G" L
: o5 P% u8 D5 ~9 [5 q ( ( CUser*)this)->CreateItem( &itemelem, &nID );
) ^, }) E5 Q! W! A+ v. U/ I }/ X* q- A+ A5 y! l: C& f
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );: O3 F$ S$ V2 A, W' j! I @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, P' A! W% L1 O! E- y6 E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ O* e3 k) h# b" G2 y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 i1 \/ d7 ?4 w5 x. |
( (CUser*)this )->AddTaskBar();*/
& f' _( F6 [. j ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 s7 g, }0 @" O2 k: M" y6 ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?+ R8 @% Y( K2 I: @5 d) m# ` C8 W
((CUser*)this)->CheckHonorStat();
) D7 ?5 W* }& l5 c3 M: m* F ((CUser*)this)->AddHonorListAck();
4 f3 t3 d1 x, X g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 t5 [' M% t% \* [" F. _#endif // __HONORABLE_TITLE // ′Tà?1 f8 b- H7 o. A
}
$ S" q, z! Z, a* [& {4 b& r#endif // __WORLDSERVER1 x1 X( j$ ~7 k# p8 ]
} - c1 ~$ |6 t$ j, E2 U1 ^+ a
5 ]+ \3 i6 F7 W& p1 z6 `; q, W) z然后你进入functextcmd.cpp并添加以下
7 d8 ]+ }* v" Z/ D- `+ Z( o/ S) U; `3 z) a* j6 d
代码:
% v; v2 F1 m1 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% O- L# h' O z' p+ U
下面插入) X& S5 d! ]0 n; o( i4 i; W5 s# Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! V2 [. n( h3 l: @
0 |; c) K; q' y" o" D) B
然后你去
) u" q$ l0 y- Y4 r5 G4 M: B6 z3 x* r$ b' C" W9 D {" x
代码:
! d$ O& K6 z1 X9 J0 H5 T代码
/ `) G7 ], B- g4 qBOOL TextCmd_ClearPropose( CScanner & s )
6 z6 I) u4 H1 M5 x! R{
$ d. C" Q2 s) e0 y7 B ?#ifdef __WORLDSERVER4 o8 ]! Y5 @8 @: f
CUser* pUser = (CUser*)s.dwValue;
. n @" B7 Z& c1 }) q4 F g_dpDBClient.SendClearPropose();
. T+ h4 T2 }7 S2 |#endif // __WORLDSERVER% g6 x2 t1 J+ e( n/ j
return TRUE;
& C$ l9 M: ^1 b/ U/ E* a}
. u6 R1 o& G, C. H7 z, D- G下面插入) \! H6 G- \5 ~' Q4 s# p
BOOL TextCmd_rebirth( CScanner& scanner )
' G |9 s+ I d, s& N! b{9 J; M0 R9 L' Y! K) ^5 P
#ifdef __WORLDSERVER
* ~: Y. O/ d4 X$ j: {9 C% ]CUser *pUser;0 W( C& x% ?8 Y# s* a, \# A
pUser = (CUser*)scanner.dwValue;: M0 t6 ~( H3 B5 Z/ [/ F2 B2 T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! X7 ~; Y$ N" \ |& kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 W7 ~. d0 r" q, O4 l
else
9 o8 @) v7 D2 `% h# ZpUser->AddText("你还未达到重生条件!");
. o7 [- s' f5 k7 S( Q; `#endif$ X0 _8 \5 ^* s1 L4 u
return TRUE;
% I* X% ?+ A+ O( ?& C% l% R}
' }) U4 B# @6 L' I
0 V* |$ F% x; U
5 ]1 m( `( [0 H) [0 P( Q e
* }- |0 C1 ` I( D- U+ @. Q D" a
x1 J8 j K% |* K( W1 [5 d! z |
|