|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, T+ P2 @3 M0 w3 o3 P8 ]
/ {4 s! z0 u+ Q& r3 G$ k9 QMover.h
! b( J- X/ u: b5 M2 o( W代码:
) ]- f3 m% h# ?4 n9 K1 f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 V- y( C0 l' c0 R0 d6 _0 a( f1 ^7 C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 \% V) I' ?# j% r, N7 ^& o0 h; R% H. _* w$ g0 p8 ]" Y
然后你去mover.cpp添加: ?/ C8 ?9 A% S! N1 P2 q& l6 k
d8 x0 E+ v- h6 B$ Z0 G* m# L
代码:
; O) R& @3 A, M7 T2 Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( P* i" J" P% C0 e) J{. B7 {* t$ m7 q a
#ifdef __WORLDSERVER7 K% r1 d7 c- M9 T% @. \
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( r D2 G2 U \( E' `! a MoverProp* pProp = GetProp();
+ W/ A* l+ \( e if( pProp )
' z6 ?. @7 {8 S# j {: t- k, c; c( s- l: ^. ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
& ~9 U, v/ E5 a {
3 ?: H" d+ F3 S% I3 {8 J' h6 o: d AddChangeJob( nJob );
+ M8 }- z7 o4 n# E9 f }else{( k7 V* Z7 F6 C/ G- B& y( h
return;
, F$ }7 o$ h' g3 @# \* N }$ ^/ t) O% P4 ^, P3 v- |0 W
int nPoint = 0;
1 \% X2 @' |2 A+ ? if( m_nJob == JOB_MERCENARY )) j! [$ }+ y f3 A
nPoint += 40;: J& Q3 t# L# n8 s: ?$ J
else if( m_nJob == JOB_ACROBAT )
7 [( W& v1 y- d" @9 g5 O6 t7 Z nPoint += 50;
! G7 U# ^/ D* Z: o( O else if( m_nJob == JOB_ASSIST )
9 Z: b" m& ^0 P nPoint += 60;
* }! u. g/ ?, g! T/ V9 b+ `) j else if( m_nJob == JOB_MAGICIAN )) \7 z+ U0 V, [' b* E5 K2 X) s6 s
nPoint += 90;7 [9 t& ?5 `& |& L: M" F8 [
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 v6 f$ [/ T, M& z+ g9 [1 J
nPoint += 120;: y& S! h) w6 c* T
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 s) Z6 O. y" Y7 i$ ~ c; i# V: L
nPoint += 150;1 B; F" t. _& P; o1 W2 d
else if( m_nJob == JOB_RINGMASTER )
, R2 O% T2 w! Z4 Q, f nPoint += 160;
6 D/ A7 W# V1 M- y x( z' t0 B else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 O. l4 {. d" f, X' |7 Y% x4 E4 @6 \
nPoint += 180;) v9 M8 _: n/ S0 z1 }, a
else if( m_nJob == JOB_ELEMENTOR )
$ i" J0 q! k0 G) e% w% r& ~9 ?' U$ w nPoint += 390;
3 E( o& d4 K: G( F' k$ [ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 C3 w0 g; w+ d0 ?
nPoint += 120;$ A- d$ m0 \7 q0 A, e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 Y; n0 R I7 M. E nPoint += 150; e6 N4 I' e2 W3 P9 w5 v6 m' }
else if( nJob == JOB_FLORIST_HERO )
T$ h3 v h! p7 |9 K$ K3 l nPoint += 160;1 P% N2 I/ _8 H- T& R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
8 Q3 K2 K% I9 Y5 y% _ j6 W* R/ s9 Z nPoint += 180;" V1 C' A1 F) d) c( ]1 |5 B/ W& e
else if( nJob == JOB_ELEMENTORLORD_HERO )' e" a0 K3 A* m6 E- m1 T& `
nPoint += 390;+ d' z, b2 l! o2 x3 x6 a* V
S8 ]5 q5 }9 q" z( v AddSkillPoint( nPoint );
- Z8 s& {- |& q8 _+ _ m_nLevel = nLevel;1 c; U# ^* f8 I. x2 t
; X7 }' I* d- T v SetJobLevel( nLevel, nJob );
& E3 d) X" d6 L0 c- q m_nDeathLevel = nLevel;+ d- |2 s3 \7 J E: q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, J7 O; A. _8 w- b$ i% g6 n if(IsMaster())
3 E7 w1 k3 ?8 K9 q4 e1 `- I {
+ e6 K+ L b% N& d! v/ R J3 {) s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; O2 u$ Q3 v7 l* u if( nLevel > 59 && nLevel < 72 )
& M( e7 @2 Q$ S$ u! R9 K dwTmpSkLevel = 1;
( o7 q1 R/ N6 b& m8 X else if( nLevel > 71 && nLevel < 84 )! m3 |1 Q! U+ p, f
dwTmpSkLevel = 2;6 g8 m8 C' _9 d( e. @
else if( nLevel > 83 && nLevel < 96 )
& u+ U' v! d. i: v) T1 f5 f dwTmpSkLevel = 3;5 T+ [0 x1 ^2 U7 R% S- T/ p
else if( nLevel > 95 && nLevel < 108 )
8 M' f+ N' n4 h# m9 ^; Y# f6 N. o dwTmpSkLevel = 4;
+ _, P& u! R/ y9 ?# w2 n, Y else if( nLevel > 107 && nLevel < 120 )# J% w: n( W& G( ?' i% ?
dwTmpSkLevel = 5;$ _! q% A6 s4 W* E$ e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ d$ m0 F1 s o$ J3 o( k {
3 i& d% H7 l) ]0 @ LPSKILL lpSkill = &(m_aJobSkill);
2 P! X0 ^1 A0 m: G* _. g if( lpSkill && lpSkill->dwSkill != NULL_ID )% b+ J* C) i3 Q7 r4 e
{" y7 e/ y/ d/ p$ Z$ _0 |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 M- S. I0 t- \/ ]& U/ ^3 {( Z2 ` if( pSkillProp == NULL )
# S" T" `% k$ w4 y continue;
/ j' |; V% K# G1 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' @% N8 u8 }0 S) s" p& v, t
continue;
; e6 Z! y- N% q2 w; j lpSkill->dwLevel = dwTmpSkLevel;
8 s8 D. p3 I/ Z B2 f! p0 E }
3 |, _! b* m* V2 U2 R }- A' k6 r- a3 C0 `% Q3 y
}4 F+ m* }5 y! S1 q$ T
else if(IsHero())6 B7 N" {0 x7 m' k
{ q: |+ P7 _) v3 d' b$ M% M0 S, ]; V# p
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; r# o) F" c8 c5 v: z; U {
, A$ J6 C. P( B( R$ e) {5 t LPSKILL lpSkill = &(m_aJobSkill);7 X- s9 B+ u; e, c' ]2 @$ i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 U/ X/ r8 r! r; V) p5 D& H {/ T) M1 v: z% ], b0 N1 D* k2 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * ]) B9 `( _, F
if( pSkillProp == NULL )
7 Y1 H2 L1 _/ l) `3 |' ~: r continue;- m& y( B' i+ G& y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 t. y( R: z: S L q3 [7 \
continue;, U5 i5 K7 w7 B' A
lpSkill->dwLevel = 5;/ M: o# r. t) g/ l
}
! D. `4 D1 w/ n" W; Q# | }
- x2 U3 [. j% }0 S+ z2 [( z9 g } S, r- O' w$ a
else if(IsLegendHero())) `, M- T! K Y& k( @
{
j# M9 l1 B# w5 a- Y! G. q for( int i = 0; i < MAX_SKILL_JOB; i++ )
% m% d9 r/ _4 S {
' n, `1 L+ A) D" q' q" O( o LPSKILL lpSkill = &(m_aJobSkill);
9 W( X% D- f8 t+ h. w if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 j: T# |3 R) ^ {2 |7 g Y; e0 h& {' Y" K" g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 [3 S+ }8 u0 s4 ^/ Y
if( pSkillProp == NULL )
, g0 G- D8 A& v, r6 k5 H& ? continue;- R+ o+ D3 {; }; V2 F7 ?$ W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! c: ^8 Q+ `; A0 U1 _0 { continue;
' b! r% V) r- q4 g lpSkill->dwLevel = 5;& ?' M: b8 L! d
}
- z# j! |2 B$ T6 w }
' @, M: N- Z+ L: T1 d5 C% g }
, M0 J4 b+ [7 a#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" {" `' z$ E* }7 s
if( bGamma )
( Z& H! M) y' p+ _) |* Q {' h5 }, [" v9 Z6 o0 v M3 M8 L
m_nExp1 = 0;
% d3 N _/ f& h& i! w7 e" ^ }: [: ]: ]; ` o) S1 H/ D, S
C* O3 p7 w7 |) M ( (CUser*)this )->AddSetChangeJob( nJob );
, m* x) L6 E3 k) e% u w/ F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( J8 d+ L n$ ]; N+ N. h
& X2 W6 C( J" R8 C! }1 ^/ P Z/ e P2 x$ P2 B
#if __VER >= 11 // __SYS_PLAYER_DATA
4 _1 v7 x/ v8 @; W$ h( b( `6 W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) A3 x9 M% |* j4 u& v. }1 E& G) \2 H
#else // __SYS_PLAYER_DATA
9 C+ O/ q4 B5 d: G% L4 n g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& E3 a- e0 L( O" w# t/ @1 c* a g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 h# `' A& R: o( L if( m_idGuild != 0 )
, Y! z# [4 m8 R9 h) P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
, P. \% A& v% C5 c, P#endif // __SYS_PLAYER_DATA
' m! W3 \3 v$ K! {* h& Y! k SetHitPoint( GetMaxHitPoint() );
% J' W, G" z5 A2 d) z& _ SetManaPoint( GetMaxManaPoint() );7 Y! H( s1 q9 A+ m* ]1 n
SetFatiguePoint( GetMaxFatiguePoint() );! V2 S5 I1 H. p' F9 j
if( nJob >= 1 && nJob <= 4 )
& w+ @, x( K! o! \ {4 G8 ]" n5 R2 g6 N5 c! y
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ ~! |7 i% r% u+ I( i
m_nRemainGP = 28;
# l- F; h" u: G( k& A! [6 C8 g }7 V3 V" E- C1 ^
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" y* `8 s8 R# w) q8 @ {8 O4 o0 J: [/ Q, g5 X
m_nRemainGP = 118;
" ^# N }# t2 w' H- a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; | b. r, K; e$ i m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 L) W% Z/ c: h }0 E, E5 {) Y/ B1 k" h/ s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) z4 Z6 K+ d( r% ]6 Z( y {! B% Y% Y* A, D+ l) j7 G! P1 f' f
CItemElem itemelem;2 N9 s& G- F# Q6 w
itemelem.m_nItemNum = 1;) m& I. |6 q; K# W- q r P" v5 [
itemelem.m_bCharged = TRUE;( v* M6 r7 [& J, r. J$ j! Q
BYTE nID;, x" V, r; V: h6 K' c
[1 K2 V$ f7 B' W if( nJob == JOB_MENTALIST_HERO )7 H7 F) c3 e/ H8 N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 }- ?# D* ^, ?4 E- l
if( nJob == JOB_FORCEMASTER_HERO )
' a/ ^5 j# |# g# R itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* K- k4 h; V! E) X& X( f
2 x. }0 ?1 X+ }6 S3 Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );; J0 F2 V2 {* \' e9 W9 l. ^: H* M! t
}
* b: T: k8 p7 d g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 G" `# J) v' H" g
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& G" H: s3 M; o7 }+ v% y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 M* L- r: o4 |, {' ^ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( w1 N: ]( O/ }( y% s; l
( (CUser*)this )->AddTaskBar();*/8 H: Z# r; Y/ |" B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' A& e$ c; T7 u7 c7 @& T% v9 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* S3 a6 N1 R: a0 q; t8 R, M ((CUser*)this)->CheckHonorStat();
# R( j8 J' Y# I+ `; N: z ((CUser*)this)->AddHonorListAck();
- |8 G. b& e& A' n" p g_UserMng.AddHonorTitleChange( this, m_nHonor);) ]; J' f* h( p" p& F
#endif // __HONORABLE_TITLE // ′Tà?
/ v( v- g- }! L# I& x/ N }
% f2 }. q% R5 F# T2 B#endif // __WORLDSERVER: d/ N8 C5 i3 A4 f9 [
} Z6 M& o# u; _. N6 X
) ]2 P; j/ [% V; r, Q- T' ~然后你进入functextcmd.cpp并添加以下. m7 l6 v3 m- D% V) `, g) p+ Z8 R+ B, b
, N# A d( W, w7 r, m' C代码:
, S7 g8 T9 t4 x: X7 B' z& XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 F3 o, M6 S" B$ M$ G7 F
下面插入
! c5 b% J9 p' l+ ZON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 s" e; z9 m$ \/ K) S
+ u! u7 ^* W# c! K. Y m) ~$ f; e然后你去
: ~9 y/ n8 @- z4 g9 U. P' L4 t4 U3 G
代码:
( y3 M. }- a, U% U代码2 C0 X: i! u; J# }4 L' o
BOOL TextCmd_ClearPropose( CScanner & s )
2 a: n* j. I# T{
9 d4 ~# m1 e6 y1 ^1 I2 {( ?#ifdef __WORLDSERVER
0 Y% ]1 ?5 }0 S CUser* pUser = (CUser*)s.dwValue;, T, K* ]! v+ n9 `% Y2 d$ } ~
g_dpDBClient.SendClearPropose();
$ O. x7 L* n" L9 a) H5 g8 x#endif // __WORLDSERVER
" I# g/ G* u- d: c return TRUE;; Y/ C/ y6 x5 f7 v9 ^
}& r+ V& }; n! n
下面插入' `% X/ _% D; Q' l; p
BOOL TextCmd_rebirth( CScanner& scanner )1 |$ r$ z. b( Y2 i
{
6 f7 ^& U" [, a#ifdef __WORLDSERVER* v9 ^1 U1 i7 y# \ N+ N9 u
CUser *pUser;
) H' t# j5 Y0 E" Z: i* H, NpUser = (CUser*)scanner.dwValue;
1 f: w1 f3 i; [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 w* i7 w1 c8 D, j# I# W; H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# z( A, |7 F, h9 w0 N
else
) b; Z& Q0 a/ }+ k; X* Z. Z0 WpUser->AddText("你还未达到重生条件!");
& X' P- D2 ~7 ~! s, t#endif$ I4 ?# ^9 N1 L( o* h( x
return TRUE;
% y8 b9 @/ D/ R7 [* L}
5 z0 O4 f9 h* {. u' ]2 b' a8 J. v4 w7 s( m* o
e% m5 n, c1 e& C# G: R% w" K
# E4 m9 V, D2 b' k d/ u8 J4 `, u1 B' a S, J/ _: ?, B& M
|
|