|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 y ^ y3 X3 t& y' r" {* J4 ]5 B6 T/ g( {
Mover.h! @. I8 B9 N: S/ @1 c0 r
代码:: u8 H( y& l8 O) p4 B) H3 Y
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# W) L P: Z* Z& t" \6 u
* ^! S" ?6 N( T- e. B1 }+ b下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 }+ y$ Z( V8 _0 T+ M, W. P: p
1 h0 c4 P! H* U8 g \& P- }
然后你去mover.cpp添加
7 I: d, r6 E: r0 u* G) K9 G7 x3 U) M& d; f" k) f
代码:" K$ E! M) a& h' b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )/ u) o' P1 `- I' v
{
' a- Y; z2 H7 @#ifdef __WORLDSERVER5 y( I3 H: c3 s% L0 M
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' H; h/ [& I" s, L% I
MoverProp* pProp = GetProp();
% n4 P* X* w& s. h m! c) m if( pProp )
" J/ v$ a. ?) X$ s1 K) ^ {0 }, `: p1 ~% Y+ i4 N
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" @, W# ?8 b) q+ t- _ {
: `2 ^' D- Z- u4 P7 [ AddChangeJob( nJob );- R0 k9 Z) a2 K: y; o
}else{9 l7 d' V9 t8 m! E2 \* i& `1 K& G1 V
return;
}! \ H z0 [2 j/ f8 Z9 k }/ B& ? Q- S) F( b* t! g& p, e9 h
int nPoint = 0;
+ O* Q( s- ~. b$ i9 J/ j if( m_nJob == JOB_MERCENARY )$ ~! h5 @, C3 \* |0 ?
nPoint += 40;
q% U* J/ S. c; J7 ~ else if( m_nJob == JOB_ACROBAT )4 S0 @- Z. }$ |" c" Q# U) U
nPoint += 50;
0 _/ d2 b6 w3 Z else if( m_nJob == JOB_ASSIST )6 H+ _% }) e% e! {" n# g# v5 L- p
nPoint += 60;! Q$ n7 G9 r& K3 N
else if( m_nJob == JOB_MAGICIAN )8 B" M! x0 j* ]6 F: q2 I+ m
nPoint += 90;
$ l4 B$ j5 a7 h else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 `+ H+ z+ M# B& ~3 J4 A% o6 ` nPoint += 120;
1 C, u3 x9 R0 q8 ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 B1 H Q+ G* m |5 p
nPoint += 150;* ~3 ]! ? H& k
else if( m_nJob == JOB_RINGMASTER )8 c! ]) G R) z
nPoint += 160;6 L/ R! S6 A; m* |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& z7 P" g/ ^" u* E5 V, k$ |) F
nPoint += 180;
/ k" D, p4 c3 _4 W) I/ g( ^ else if( m_nJob == JOB_ELEMENTOR )/ n& |5 d4 Z" K$ v! F
nPoint += 390;
, F, o" z7 K _ {: B9 y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ U2 a r" z# C# x7 A
nPoint += 120;+ I/ z; @9 c' I I: ^! t0 ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 F. f1 x3 X( A; @ nPoint += 150;
: d+ o! F! C* S2 q# | else if( nJob == JOB_FLORIST_HERO )
& |; ^8 z# d* t7 W ^) u0 p nPoint += 160;5 b) ?: ^5 O! L
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 s7 p6 D+ P j$ _2 R: F nPoint += 180;5 e6 a( _1 ?. m# |) o' \8 S
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 k/ V$ E. Y5 R nPoint += 390;: ?. }4 {" V& l8 N: I* v7 t. p$ T
9 y6 T1 w" @; ]- e
AddSkillPoint( nPoint );
( p, ]- o4 p8 B5 K: p0 S m_nLevel = nLevel;' [. y& _9 ]2 v% r
" X+ s0 }9 }- u" _5 Q. X
SetJobLevel( nLevel, nJob );
& m/ ^3 i8 W( m m_nDeathLevel = nLevel;
. ~$ }1 {1 R$ l! E" M#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" k" U: v7 I' d& E e2 `* ?
if(IsMaster())
$ X' ], A9 R U. h Y- C {
" S' Q; v4 e0 S6 y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& A$ B6 t3 d" A. Z: S
if( nLevel > 59 && nLevel < 72 )
( H: N f6 }6 S9 y dwTmpSkLevel = 1;8 A2 \$ n& u* L3 ?9 j
else if( nLevel > 71 && nLevel < 84 )
0 t, [# x8 G$ i% Z2 e" [$ I* ^8 C dwTmpSkLevel = 2;3 a% J, g0 W( d% [) ?9 U
else if( nLevel > 83 && nLevel < 96 )
. k5 b3 L. U( ^ s dwTmpSkLevel = 3;! t4 g) e7 J- W, }9 V
else if( nLevel > 95 && nLevel < 108 )
& z2 h/ L. }7 x* D# ~$ n+ d dwTmpSkLevel = 4;! E4 _4 q4 w/ X
else if( nLevel > 107 && nLevel < 120 )
& H# |2 F! J2 `3 S/ J dwTmpSkLevel = 5;
6 \$ P( O( A4 o* f3 R/ M for( int i = 0; i < MAX_SKILL_JOB; i++ ) & K2 ^' N& n) p- c
{ # Y, V$ F$ V8 q
LPSKILL lpSkill = &(m_aJobSkill);3 @& M/ ]. J |5 M& {2 P9 S% h" q% O
if( lpSkill && lpSkill->dwSkill != NULL_ID )! h( F8 k5 Z! A8 ^) X* n
{
" d: A9 p! M( a4 u8 ^8 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- C! C7 d9 H8 X( K; \ if( pSkillProp == NULL )
4 D: _& L# E Y+ J+ Z continue;' p7 w4 m1 C5 k9 W2 O, v) @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# Y! m1 A: e6 a$ U& k) _6 l. G0 E
continue;
4 r( m5 p3 n9 s" Z3 G3 j h" X lpSkill->dwLevel = dwTmpSkLevel;# A+ K# M# m# b S
}
1 L6 R9 ^) R. e0 C, z' F& d# q }
) L7 o2 ]- q: F8 N( [. b }
+ m5 E3 ], Q7 Y0 V! H8 t1 C else if(IsHero())
4 U+ D# e7 P# R3 X; I {7 b9 x7 k7 X2 C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, O) }$ m2 ~1 {3 Z { ( i6 x q9 R3 H, ^
LPSKILL lpSkill = &(m_aJobSkill);
3 u9 e2 h3 F% }1 S R+ O! E% n if( lpSkill && lpSkill->dwSkill != NULL_ID ). C6 i# w; O% B2 z5 O
{$ N. ?& i5 }( ?1 ~
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 f* ~4 ~+ \; b4 n) R7 G2 ]
if( pSkillProp == NULL )
A. Q, Q- h; P3 C# n continue;5 W# B& `6 d: u0 D9 M6 d4 e/ @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 N) i* C6 {3 W! ^: W A continue;
- i+ }2 L6 q5 v/ M; z" @/ P lpSkill->dwLevel = 5;$ g. M! }5 X# n2 q) P
}
1 t4 G6 Z5 I6 d1 v+ _ } O: Z4 e7 R) T
}
V' V$ u" |. e4 E) G0 p else if(IsLegendHero())3 o3 i! J5 t: V# r# n
{# j% q7 n! f* B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + H) Q: b T# l, g& p6 S
{
; U/ M/ e; f+ W LPSKILL lpSkill = &(m_aJobSkill);
3 y% p3 o: z4 ]# @ if( lpSkill && lpSkill->dwSkill != NULL_ID )8 M4 }/ ?3 `/ |8 F: k( \6 w
{6 G6 T; w( B) d( _, ~& f
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 i, [& I! {) K! w
if( pSkillProp == NULL )
4 H2 y! M; t. N; X7 W! n continue;4 }' n# n: m3 ^% e( k% k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( M, I A8 q8 w- ]
continue;
1 Q% R# y3 m: N8 D0 l) g n: f lpSkill->dwLevel = 5;9 n0 R! U2 p: M( ~, Z% h; O
}
4 v6 p+ s1 v- p# Z- A D }
# c. e s! l. c }
% A# n% H0 [2 F% W/ ]#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 K; ]# o* h2 i2 C
if( bGamma )
. q2 m/ c; S' r q+ ~5 v8 a% O {8 O7 @8 B9 I$ _! a7 D3 ~
m_nExp1 = 0;
+ E6 K/ [0 z, _$ p* U, C" ~. ` ?% I }9 q: i* ?( x; w0 z& {4 b( v$ e# T7 j9 V8 D
5 \* u/ ^! r/ ^" K( T
( (CUser*)this )->AddSetChangeJob( nJob );
3 N( e( ~! x s6 k1 q- \8 } g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 L- q& W3 n+ Q% q8 j" `+ d/ J2 P- h
) Z- W& B+ q4 d. D7 y
+ K2 O5 E2 h# K7 S6 A' t" a#if __VER >= 11 // __SYS_PLAYER_DATA% ~/ h8 P- _' G% _8 u0 o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& ^- f+ A; \ R; @7 h8 d% P& ^#else // __SYS_PLAYER_DATA
; ^# T: a7 x$ G; v$ h B9 e- K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 z" Q7 J( H, i; p: ]2 ?, J g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; C. H+ R, E5 @6 T
if( m_idGuild != 0 ), {; l/ ^2 b7 O; m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# @" ]% r& {/ m1 ?" C0 |
#endif // __SYS_PLAYER_DATA
# e1 I' v- `7 P& q SetHitPoint( GetMaxHitPoint() );3 M" h) q5 M9 w- R0 _5 z
SetManaPoint( GetMaxManaPoint() );2 }' P9 P: y1 K/ X% O
SetFatiguePoint( GetMaxFatiguePoint() );% [- W. I8 q6 N$ y, ^2 O. ~8 e0 x: h
if( nJob >= 1 && nJob <= 4 )6 q$ b1 c$ W* r& s
{
: I: |% X. s+ }0 |- u W m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ h3 k+ U0 ~8 u0 z+ ?* _7 G m_nRemainGP = 28;! r& M/ G6 a& Q& M- ~/ z
}
3 K* O' |1 I; R! E m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ r& K. ?6 N! Q5 L5 ? O! I { {. s0 G2 R7 Q2 G! J8 O
m_nRemainGP = 118;6 u: C1 |- ` ?2 Z2 E9 j% x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- E8 y [* P4 @ V% a9 _2 q& C m_nStr = m_nSta = m_nDex = m_nInt = 15;
) ~* ?: g9 j7 k: @7 X: ~ }
4 L. t7 V( H& {: K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 `4 r; i4 k/ g8 J {6 ?+ R4 U: m3 z2 H
CItemElem itemelem;# F* m- Q9 K0 N. d% u
itemelem.m_nItemNum = 1;
5 l" J" J# K- O5 T& R$ e. |! U itemelem.m_bCharged = TRUE;- j% p3 o- H$ t% Q' l% g
BYTE nID;
% U. L/ x. E- ~8 \% t2 H8 l
- O8 _) W6 X q& S: ?1 z M; n if( nJob == JOB_MENTALIST_HERO )6 b9 {# K2 {' K+ Y/ f7 s- i( f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( m8 y; Z) O( N4 ~* H if( nJob == JOB_FORCEMASTER_HERO )1 q5 M4 h% v, k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 D7 O4 X; s+ h4 p8 C3 S2 F
( Y! \) h7 ]& ~9 a$ a1 ~# l3 j* k/ j ( ( CUser*)this)->CreateItem( &itemelem, &nID );* U+ Z7 |2 A1 Z) t8 S/ v
}
2 m4 H( ?4 Z# w+ ^9 X g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& {$ T7 ?5 e+ V ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );/ p. Y+ W& L1 u+ b! Y4 a; X! W$ q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 X8 @: ?. @7 x; H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ d! ?8 M' O. O D ( (CUser*)this )->AddTaskBar();*/
4 [+ E$ n2 M9 ^; d% c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# O- N+ N' N0 p. P" l% Q$ i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 H, x3 S% d, _# M$ G/ `6 F# |2 @
((CUser*)this)->CheckHonorStat();
; q X7 Q5 C7 @2 u; \, V8 _4 E ((CUser*)this)->AddHonorListAck();
2 z& @ l. V! w4 I ? g_UserMng.AddHonorTitleChange( this, m_nHonor);
# t" [6 b- u5 R# I# s#endif // __HONORABLE_TITLE // ′Tà?
8 W7 I# A. q. i. L( ] }( z1 ?* s. x6 _8 Y( w% Y/ B
#endif // __WORLDSERVER) \6 L1 D$ N6 u) K& V' a: ^' B, B( i
}
' L" L$ [7 b9 m3 }) j8 C! ?- t# ?" ?
然后你进入functextcmd.cpp并添加以下- J/ a" j7 s2 G+ I" z- v
2 |4 t9 ^8 _, o: m" u" y( f2 @
代码:' g! D" t2 f! @0 }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& D& M4 x1 E9 g5 y
下面插入
& M+ m; s: x8 t! M7 |3 d8 d4 O( l5 wON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ J# Z. x8 C- |9 T, j: I
; F. w% ^( t5 N! h1 j然后你去
7 H1 O: t" y3 o! |; C- H- O Z. E4 h/ B+ l( g: F4 p2 r- J! Y
代码:
$ `/ q/ p3 {9 T9 T5 t- a' W代码
& |! }& i) u. J8 b5 x7 i. dBOOL TextCmd_ClearPropose( CScanner & s )3 W. X% I$ @! y& f" p; N
{5 t+ h5 u9 L5 R- O+ T
#ifdef __WORLDSERVER2 E2 `8 p$ g8 H, O1 r, t2 M8 A
CUser* pUser = (CUser*)s.dwValue;0 ?% h& A" s5 o
g_dpDBClient.SendClearPropose();
! `7 Q, k) X; I1 h6 ?#endif // __WORLDSERVER
1 i" L- z# |$ Z/ H1 H" Y0 t return TRUE;6 I' s" ]+ G% @
}/ k; c+ m+ q" U# v; l. ~
下面插入, F7 u0 d9 V2 a2 s9 G
BOOL TextCmd_rebirth( CScanner& scanner )
1 @3 P9 G$ v! e4 ]3 @' @{
8 \ Z) H2 z, `7 H8 }; l* @8 q#ifdef __WORLDSERVER. s# n$ L7 X1 C# H! O' D
CUser *pUser;
, F; g, j- b; u: d+ W6 L2 rpUser = (CUser*)scanner.dwValue;% V5 b( v, W2 s q/ R
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, k3 h ]9 ]0 k; }* T, SpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);, d2 V6 x3 P: _& Q
else
" s/ r% I7 q3 z# C% ?pUser->AddText("你还未达到重生条件!");1 A. p2 g6 m% e; m( ^
#endif. x6 |2 g2 J2 Z L. O* x0 r
return TRUE;# Y3 y7 D/ U2 L1 a' w
}
3 R; [# Y# r+ w; d e5 k
# b$ ~4 }1 O: Y/ a e4 H' I8 |" T9 _8 e8 d# u, y
! ^" h, R% ]6 N8 N4 A
- P! V S8 a! y8 t
|
|