|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% o* p" N) Z9 d w& l. Q) W5 s6 E
Mover.h
& N" k* `# g' L代码:3 l8 ]7 p% S3 W! }
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' i- a$ l1 X; [0 O; u8 Q3 I0 e9 G" y
/ W4 a/ C! C8 q. {4 r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ q$ Y; O3 f6 L% I, p- p+ ]7 a2 _. o( ]' q. R9 z0 a
然后你去mover.cpp添加5 L! g C! o( X- D6 s: |3 F
* o% u( y5 B$ o' K" h& E代码:
+ r* E6 U" Y9 M @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 P* ^. m) T) R) y* p
{
, h Q: e; t( k e' G6 n, K1 H#ifdef __WORLDSERVER- |9 S# [) R8 u' l o' V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( e* Z E3 M5 }, X Q( Z MoverProp* pProp = GetProp();/ U6 B% ~- m/ k3 B m- Y8 c
if( pProp )# n, }6 r% S" t& V+ [
{
# r! e8 V1 [: ?/ T( r7 b) T2 a( m( p6 b if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 ?( |# s R+ w' K% R
{+ R( W1 T$ B$ H& m7 R. L
AddChangeJob( nJob );$ S! @2 F3 g- l3 a
}else{
1 ?1 z' {& ~# a# l0 Z/ y) Z9 s return;
* O1 \3 \. i1 r) w k+ E( R" `. A- x }
* m; T2 E3 f- V7 L7 Y. v# A int nPoint = 0;% r) {! X0 o5 V8 ]- @* b/ a) A
if( m_nJob == JOB_MERCENARY ). d: v6 ^& g$ k( M; H' w! w
nPoint += 40;
2 a/ q5 C7 N' }% e' F else if( m_nJob == JOB_ACROBAT )6 G* c; F" a* i
nPoint += 50;
1 p$ a7 q: R8 G else if( m_nJob == JOB_ASSIST )4 Z) E/ K, f X3 U) N& V
nPoint += 60;- @3 m4 U2 k$ f- x: s* d
else if( m_nJob == JOB_MAGICIAN )8 g3 O- U% v$ O
nPoint += 90;
6 {; R1 i! s& {* P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% L: ]+ u T! t5 j
nPoint += 120;& V% [, _2 x+ d# i+ @! k* U" H" }
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( z! N+ {1 i8 z8 `0 F) i
nPoint += 150;
0 U+ A3 U6 Z Z: d8 z else if( m_nJob == JOB_RINGMASTER ): j& T; E0 D# c3 t2 _ I/ [0 e) x
nPoint += 160; B: p( x% a1 L, ?$ ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
9 _! w/ Q a3 c' C9 F& S( \ nPoint += 180;# z# c' [3 p/ w; G& |) [* V4 E
else if( m_nJob == JOB_ELEMENTOR )
, N9 U3 R Q! C! u; k4 t' C nPoint += 390;) z5 a# s8 k/ `1 x) O! o! u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* Z7 [7 ?# _6 u0 C; q# ] nPoint += 120;
$ o( C# O2 ?) s3 O/ N; ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): F O$ O r* [1 Q; H( M; G! e
nPoint += 150;
' w6 ], v% F/ u6 ~ else if( nJob == JOB_FLORIST_HERO )
4 y# A/ M4 I3 T9 F" i) @" j nPoint += 160;
7 Z% X( E& j! p5 D else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 Z2 g2 U( C" Q) I nPoint += 180;
# S% C8 F' t+ C. ?+ g else if( nJob == JOB_ELEMENTORLORD_HERO )
0 x- \" ]/ r- V2 ^/ S" ~! s: O: _ nPoint += 390;* i7 x3 j! X6 I6 D* f6 i! p
5 E% h1 E7 x, d# @% H( R9 q AddSkillPoint( nPoint );, E, d; J3 ?. F! V3 E- t2 v
m_nLevel = nLevel;
- ~$ _. u! P' Z! n0 k n4 I# P( }
SetJobLevel( nLevel, nJob );- _& i, r7 g2 d6 r |- ^1 B; @
m_nDeathLevel = nLevel;
& A( b' `9 ^+ i; e# R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. E$ w0 Q/ e. S- y
if(IsMaster())
: z/ F' H! H5 |& a. |. }6 ]0 _ {
0 ]3 y& ]: x* D int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( f# A7 }5 a- L2 y2 C, a
if( nLevel > 59 && nLevel < 72 )1 J0 K( |6 l- p$ H4 X8 v( \% L, g
dwTmpSkLevel = 1;
/ `9 N( O! o7 W6 Q% s8 }0 i else if( nLevel > 71 && nLevel < 84 )
! r- w9 i8 ]1 g2 P) O1 o; d dwTmpSkLevel = 2;
( h4 c/ T- I/ ^ else if( nLevel > 83 && nLevel < 96 )
6 D5 N! Z9 f3 s6 c, | dwTmpSkLevel = 3;
8 v/ G. G# k* b' F4 F9 o# { else if( nLevel > 95 && nLevel < 108 ): B4 e0 ?5 p' c5 @% T" ]8 J
dwTmpSkLevel = 4;
: H; t$ t# l1 b% ]( t% C2 Z/ ]$ z else if( nLevel > 107 && nLevel < 120 )8 ]2 ~ Z7 L: `% d
dwTmpSkLevel = 5;
4 h; K' v- ^( | for( int i = 0; i < MAX_SKILL_JOB; i++ ) + g, |! K% N M9 k
{
+ U. H. N! J9 z LPSKILL lpSkill = &(m_aJobSkill);- w! T' J' t4 `# p! g2 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )% I$ \) }! Y5 M- }+ n$ }
{
- a( [- ], o, @+ i) Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 j; p% @% Z. N+ y% J- z" y
if( pSkillProp == NULL )
$ ?3 Z" q4 _ f: l; _( [8 l continue;- h; V' U9 q3 v* s! j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: z' S( S+ [) |/ g continue;
# k( K9 K9 @% j% _- F3 B( y" V lpSkill->dwLevel = dwTmpSkLevel;
1 m% {" K6 N8 a+ I9 G8 }+ {# _3 @ } N! m" I8 [' a5 B( d3 H0 T( j
}
1 Z* M" V J8 u9 A/ v% O- F }
; \* w+ {( k* \8 ]6 Y else if(IsHero())1 c0 c# M- q: r1 L- |! u
{0 n; R4 B* A+ `, q, X. P2 V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 r' ?( p5 c. U9 S7 w& H0 e( H# D
{
6 K; u( u9 e" Q LPSKILL lpSkill = &(m_aJobSkill);+ f, B7 R* [ d% e# I
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 {0 R: f1 U+ \( d7 U1 V- E; o
{' D# [5 c; k% `- O$ _7 A# i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 K- n5 p w! @. o& E if( pSkillProp == NULL )
7 E/ S% Q9 Z r6 `, v7 b$ R9 p* i1 } continue;0 c( i, V3 L8 B) Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 Q, e) p1 i4 d9 }- A continue;
& i# v4 |/ J7 a* c$ J3 E @ lpSkill->dwLevel = 5;
) n% |5 y! Z& O" j K0 x8 O }; a: ]% X0 X U) F2 |3 P
}9 J" Q7 ]% N; M2 r9 }* C6 I+ Q
}" g1 v5 n, E5 w8 U3 l8 V
else if(IsLegendHero())
: {* i# n! P ?7 G2 q {
! O% @, U" m) u/ l, } for( int i = 0; i < MAX_SKILL_JOB; i++ ) * t% f( d' ] R. b# F4 E4 j
{ ; n9 E$ z. t4 i- D0 r- k
LPSKILL lpSkill = &(m_aJobSkill);: k0 c# Q* D; s4 g7 K
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ F+ \) O. H. v/ \7 ~( ] {
\% ^* G/ E( [# `6 ?& V# D ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 e* k8 E; E7 E, A if( pSkillProp == NULL )
+ Y# G5 a- z1 v# X. e continue;
0 P2 F, J4 {: E# k# e0 H% v: E3 a7 J- p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 B1 j( ]6 G& V! O2 s continue;
+ a, m3 i) P3 U9 s& ?$ D lpSkill->dwLevel = 5;
9 C0 W4 K$ {7 e# C- B }
+ U1 f( C4 ^6 x; \" ?, N1 B* _ }
( {1 j2 F" s- Z) [ P# {7 {7 x }6 j2 @" J! w, W( P; C
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( }: h$ f0 `' ^( r" T
if( bGamma )
- c: G* J# k. G' N6 Q) I' i* v {
/ z h4 Q; g1 C' c, ?4 S- j m_nExp1 = 0;
# q( _8 [2 |! C3 O6 g }/ y1 r) [" J+ q1 L/ r
3 g) p6 s ?* @8 ] ( (CUser*)this )->AddSetChangeJob( nJob );) M& I+ r. o/ A/ r) u
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; M9 ]7 M8 V- W1 }# B
) m. V$ K$ T8 B; u
6 X0 N" F8 q4 H: Z/ ^, N# O
#if __VER >= 11 // __SYS_PLAYER_DATA& T4 M& f) x. j3 ~ G
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 k* z2 }7 s4 @
#else // __SYS_PLAYER_DATA
" R$ E- O# t! w1 ~" z# C# \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" s# @8 m1 z4 a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( F6 E5 z. e/ a# t- p: i; O# B( g
if( m_idGuild != 0 )$ a7 Y4 P' I: \2 k7 ]
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 Q7 U5 D! Z2 g- ~; @#endif // __SYS_PLAYER_DATA
, ^6 _6 V3 K, [* C. I3 l SetHitPoint( GetMaxHitPoint() );
- @ ^3 l& V; R% v3 z u O SetManaPoint( GetMaxManaPoint() );+ P! }2 B) ]+ r+ [3 \
SetFatiguePoint( GetMaxFatiguePoint() );- Q6 x9 z0 H: q6 M
if( nJob >= 1 && nJob <= 4 )1 i3 R, N, y9 X7 W( m( x V! b
{
) t+ m8 c) T+ l. Z# j: M3 {; I m_nStr = m_nSta = m_nDex = m_nInt = 15;) y% K! o) f; \% ~1 h0 s9 h) x* I
m_nRemainGP = 28;
: ^/ J' ], _# N+ O; c }5 N% q" z8 I* u4 }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): v, B; X- `- e$ J. W3 |
{
3 F+ `5 b- E+ y: b8 f m_nRemainGP = 118;' W/ ]7 @( d2 x: e* G
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' _! w! Y- S9 a% M; L% F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 y* r. f, ^1 J }4 o2 @% n; _5 C
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 j8 x1 m' A" S# k3 t9 F
{* p- l) G. s& @ S6 E( d7 }& m( { [
CItemElem itemelem;1 w: |- N9 O/ L, G2 j2 z
itemelem.m_nItemNum = 1;
" j/ {# @( d+ v1 @. o itemelem.m_bCharged = TRUE;
* f9 B4 C9 c9 [) ` BYTE nID;
6 l/ N! q! Q# F: X9 e5 Z- p' d7 n# `! H% @. D3 `3 u! C
if( nJob == JOB_MENTALIST_HERO )
s8 {. S: o4 _' V! C itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 V; W' e. L- P if( nJob == JOB_FORCEMASTER_HERO )
) G' a1 s" E/ y( Z, A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! }* A( m7 y5 L' U& f# [% R! \. q0 t) i) W; V
( ( CUser*)this)->CreateItem( &itemelem, &nID );( z' S; f% Z7 T9 E
}, F. h6 G7 v! S6 _
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 z0 k" O. d+ i1 n, |2 h! I/ _. u+ t
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ P) k3 `, A- E2 R* l G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 l6 c) U) A$ b* V2 u1 y) j& N6 V /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );9 q: z4 ~7 c V. v0 P. G& |
( (CUser*)this )->AddTaskBar();*/
1 U' h/ {8 s/ F2 ` ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 b3 p& M1 D* y2 S3 W8 w, Y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
2 [3 N. q2 z# {' E( P ((CUser*)this)->CheckHonorStat();
2 |% x% d1 V/ s6 @ ((CUser*)this)->AddHonorListAck();
% M) O5 C. O9 ^ g_UserMng.AddHonorTitleChange( this, m_nHonor);
' U; e7 b& e) V3 }( Z" @3 j+ Z9 y, _#endif // __HONORABLE_TITLE // ′Tà?
: m. P* x8 W! [8 E/ X, b& Z; { }9 _* n1 s2 [1 V
#endif // __WORLDSERVER" j- E. \' Y6 b+ f/ P; E. M3 `
} 5 n+ T+ J, _! N1 U w: O* m. V% \/ Y
9 h1 _6 [! B) }
然后你进入functextcmd.cpp并添加以下8 F: E$ Z4 C* A; F+ r2 v ?
$ A8 {4 }! D5 u) X
代码:5 D ~. S; j# X% i/ X4 {# t
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )8 t W4 C$ J3 n
下面插入! c$ j* {' W! ?/ I8 N" Y( x
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, f/ a: A- i8 A1 U$ O' g2 x5 ^/ T$ ]% v: S0 A! q; p3 O
然后你去; T* x: w! x. x7 k5 D: k' y: x, A
% S, A& }5 S7 d4 N! @% }代码:
$ d/ o: P/ _2 I. @4 F U代码
+ |8 P7 |( Z) O8 U* o6 [5 o& oBOOL TextCmd_ClearPropose( CScanner & s )
$ X7 n! [4 ~- l& C" g{4 o- S1 X$ C; w' h- Y% F$ Z5 t
#ifdef __WORLDSERVER
! D( o+ u( U+ H: W% o0 N; ^- f CUser* pUser = (CUser*)s.dwValue;' W$ }4 {% |# V5 k5 ]- r. O
g_dpDBClient.SendClearPropose();
& [. T- O6 @8 @0 o* y#endif // __WORLDSERVER
E" C/ i$ ~* c0 L. `! D3 b return TRUE;
+ l' Z8 c$ I q' O2 a}9 H5 G; [* [2 j7 d9 m Q/ z5 \
下面插入& A" l6 j& [) t' l
BOOL TextCmd_rebirth( CScanner& scanner ). d) r$ M% x; W0 X
{
# n' ^9 P( q6 y! F: f6 v9 M/ d#ifdef __WORLDSERVER
& _4 |1 I. ^, @9 d& c' oCUser *pUser;
* i( {7 U8 ]" i. Y" vpUser = (CUser*)scanner.dwValue;( Z, b- [: C" q3 V/ P
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* O( w0 ^8 r5 g' K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 {3 D) y) ~0 O; Belse0 N. N. U& `+ m, x
pUser->AddText("你还未达到重生条件!");0 k' r% B% F1 x1 U. r, i
#endif
" z% }* P6 P" Z2 A% W1 p+ rreturn TRUE;
3 B& u5 {; B- b}
) s6 q( G& d0 b9 N5 a
) t3 Q6 d$ }/ d% m: a& p: f- N- z5 @0 U( |. p; W) D
9 A8 i8 j4 Z/ {, D1 ^4 ]/ D8 K
5 E9 A+ l& e' _, ?0 {5 F+ n |
|