|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: Z M* N, p1 {9 W5 }% {8 L M: G- y. V. C6 |) ~# p/ F# f* F
Mover.h
% ]5 x$ T |: i" M代码:7 g3 V' F; i' P5 V9 e5 n' x- L5 t8 n6 h
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, g, s+ z( N6 B+ Q9 b0 S4 b
2 s: U t0 N. D$ g下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! ~& r3 N( |% H; X
7 S w3 Z9 z- p8 h然后你去mover.cpp添加9 }. B; C* w7 G% W" w
+ b& |+ Y) b+ L! j/ T3 C6 |+ \+ r) c% j
代码:6 z4 c8 c8 I$ L8 T' X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 B0 Y, A _+ n{4 m1 q9 D% A# B' C% |5 e1 o
#ifdef __WORLDSERVER
. L) y$ c) c6 T" Q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. p6 X7 ~; r8 {' H' w" @ MoverProp* pProp = GetProp();7 w- d$ R, Q9 [/ ^$ b- v; B
if( pProp )
( K. E& y- }% A0 r {# q. W4 O: }9 A. M
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
e& i# S; p8 K5 L+ ?; D% ] {
: m& a: }; l" C AddChangeJob( nJob );
+ p. g: M) h" ~+ f5 x8 g- b' f }else{
( P- q8 v; l( @! z& j. ]1 D0 O return;
$ ?0 E) D: u, [& ?2 D L }" B! ?/ x4 X1 n3 f5 m1 U1 E6 C
int nPoint = 0;% W$ X) U) e# y+ p; T$ _
if( m_nJob == JOB_MERCENARY )! M3 d! e \% ]+ |/ d
nPoint += 40;
W R2 `0 U# I- _0 w' o else if( m_nJob == JOB_ACROBAT ): Y! X" _! t4 N, B; v) o1 V
nPoint += 50;' b" U! V+ L; b5 w
else if( m_nJob == JOB_ASSIST )# E U1 Z: K( u+ w {! k
nPoint += 60;
- Y" `6 @+ h- p% _7 Y. m% K else if( m_nJob == JOB_MAGICIAN )
; q! a# B+ q4 z5 k5 b5 h' c _ nPoint += 90;; Y; c1 l7 ]+ o# x: K
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* H- t" z: k: W$ \' b# M
nPoint += 120;
2 y, D& F* k% x0 b+ a; T* d7 j. O/ X else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 P6 E& U$ W; F* g nPoint += 150;) q9 \+ p5 O$ M0 ], B, u4 [
else if( m_nJob == JOB_RINGMASTER )4 m$ R1 X# W/ ~ w9 i
nPoint += 160;
' p- P6 t. G, I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' E- q$ \$ k+ b2 L1 Q
nPoint += 180;
7 p6 L* a& d8 g" |, _) ^3 A else if( m_nJob == JOB_ELEMENTOR ). ?) n* v5 }" ]$ J
nPoint += 390;- ~6 _% G3 N. R; D& w7 q$ X7 M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- r6 H4 F& C8 u5 P/ m nPoint += 120;& G' {; y- k' L v
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 A. @* j& @- M, @, d: @, v
nPoint += 150;
. O# Q8 b4 | P `1 O5 i6 Y+ r else if( nJob == JOB_FLORIST_HERO ); U, O7 w2 T( a1 M% ]5 T
nPoint += 160;( D4 C3 v4 l! X3 k3 a! \
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )& v, _1 K- \! p2 q* m5 j; ^7 y
nPoint += 180;
6 B. t7 M/ ]9 \" \9 d- c" Q; ` else if( nJob == JOB_ELEMENTORLORD_HERO )
- }, d5 G3 v( N/ R. r) A nPoint += 390;
4 x) a# }( {9 T- E3 M( d" f9 k u9 x# `( Y0 f
AddSkillPoint( nPoint );
7 w& w& s5 Q& u+ J4 L1 T; f m_nLevel = nLevel;* i$ U0 a1 p/ l5 Q8 C W" I
$ g+ U6 c6 E; L+ |2 H) \ SetJobLevel( nLevel, nJob );4 h1 i; _4 y" L' w1 ~* G
m_nDeathLevel = nLevel;% K3 w3 v W! B- T2 ~
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) E9 Z) v, g( V/ v9 r2 d
if(IsMaster())
: Y7 o* p& L% z6 a; i1 M) a8 k { l( Z3 C$ R- y. w4 {; d8 n6 B
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
8 V7 f0 Y/ @! v if( nLevel > 59 && nLevel < 72 )
3 Y% I4 N, U) s! ~) D6 ~. |) v4 y dwTmpSkLevel = 1;
2 I2 Q: @3 n/ c$ A- P! b4 C/ W else if( nLevel > 71 && nLevel < 84 )9 I- H& G( b, j/ `6 `: P1 Y
dwTmpSkLevel = 2;
- Z1 E% E' F" q; N! j# b- B# S else if( nLevel > 83 && nLevel < 96 )
9 s Z K1 j" C9 r- \ dwTmpSkLevel = 3;
! y; m. t! E: D else if( nLevel > 95 && nLevel < 108 )$ W" n' |8 S6 I! ^: d
dwTmpSkLevel = 4;' S' [5 k6 \; N" B8 Z
else if( nLevel > 107 && nLevel < 120 )& Y' B8 g8 [% O3 w% e' S
dwTmpSkLevel = 5;
# U3 @6 c' U. K for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( Y0 i8 R+ G4 I$ a, q3 x% N
{ ! g# Z9 b! V: \. k! z3 P
LPSKILL lpSkill = &(m_aJobSkill);
( i* V, V* X5 o, w& ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 ^ a1 J; ]8 J, J+ a {' X* z$ j K% {% F+ B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- d; S1 C+ O8 f8 f4 V if( pSkillProp == NULL )
2 P. D5 u/ v9 N" p) l# t continue;; ?0 {4 ]8 h1 b" N0 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( { x+ F; s) m# c3 ` continue;
- z' z" [5 ~2 Q lpSkill->dwLevel = dwTmpSkLevel;3 A6 M+ L6 |3 O- _; K
}
7 g6 d. C- l4 _9 b1 a# s7 G2 p }7 R$ N" i6 `7 _4 E5 s
}( V: s4 Z+ T5 C; h
else if(IsHero())! L/ j" K; l( W7 f$ M Z/ c0 R
{2 Q {+ q9 m; G2 G; G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, p, v0 R8 }& v# L# H1 K {
' @% A: H( l3 U2 p: _5 ^ LPSKILL lpSkill = &(m_aJobSkill);
1 X7 W' ^: f: o# X7 d7 V- o& @ ` if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ k: N2 f0 m8 ^: h# W4 l {
) N6 K' n9 C7 ^% [5 b, j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 U8 E. r2 S! X% V, A
if( pSkillProp == NULL ), F7 v- [' E8 m. w) `1 u
continue;
" c1 D M ]4 e& S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# W" k3 y8 h! _# l
continue;
5 @! ~, T2 C+ s I" H, Q' o2 B. q lpSkill->dwLevel = 5;
. v) K+ O8 m* v! v4 d0 Q ^ }) o/ _7 F8 h: N( C% e
}
4 Z$ x# F A0 e( t' Z6 \+ G. U- f }
: a. Z; R$ e" H( c \4 `" X8 [& d else if(IsLegendHero())+ b [, e I- u5 w; q
{( T/ D( d9 h w# z! w/ @2 J
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 n8 r( B6 \( x8 p; Z) S0 Z) T
{ ' k: t# |; p: K2 L( O' L E
LPSKILL lpSkill = &(m_aJobSkill);
: c) y" D- j' j if( lpSkill && lpSkill->dwSkill != NULL_ID )4 U* m3 v! W8 w
{
# p9 o# X4 k, A- }9 j, Y5 u5 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 _6 R! v, i( V, D# m
if( pSkillProp == NULL )
/ q5 g# n+ o2 I" d continue;. ]) d: [2 B# ^8 S* J; s) a
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 f$ S; I& {' t# K- M
continue;& S# X. g9 H1 u% L
lpSkill->dwLevel = 5;0 h0 l1 C' `: j# X6 A* n
}
' x0 i, r; G$ h9 v# ~2 J$ x }
, p9 t+ o2 I- n( M7 o }
" F7 R: L! J9 M' G+ H, Y: w#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* [& o7 }2 g1 O$ V! q
if( bGamma )0 a- T" Y- [( e
{# t# P6 S& N7 F. s$ P. e+ X
m_nExp1 = 0;) v/ @! g1 m( C" e' Z e2 t$ B
}3 `: O/ ~9 P+ u4 j8 T, k! B
5 }1 ^' ^. X u
( (CUser*)this )->AddSetChangeJob( nJob );3 {" }. p3 p. t9 |/ @* N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, E+ R! x1 {8 W O
2 s4 {0 \5 X" J% Q9 b m N. A! C/ d$ S. b& l3 [. K
#if __VER >= 11 // __SYS_PLAYER_DATA
1 l" s" Q. x2 d- Q7 D6 m9 {3 W g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 l% |. @' N( _" v, P: |3 v
#else // __SYS_PLAYER_DATA
9 M' o( x' D# x) c' \& M; l# {' Y; e0 k g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 n! T! A% X. l* i+ x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& m: o! H! [" o) d6 x8 U$ ?# T if( m_idGuild != 0 )
; E3 l! a- ~5 _* B$ M- k0 A" X, a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* C. \1 _" \: x7 W; m
#endif // __SYS_PLAYER_DATA0 Y0 B/ O" g' ~! L# ~& x0 Q2 p
SetHitPoint( GetMaxHitPoint() );
7 B3 W9 b7 q4 h* h9 X, s% F' W: e SetManaPoint( GetMaxManaPoint() );
9 F+ T) L5 z% d9 ?1 o! E SetFatiguePoint( GetMaxFatiguePoint() );
5 ~8 a$ T. N2 V" s' D if( nJob >= 1 && nJob <= 4 )
[4 I) e7 c3 y! v6 z, o! A3 q {9 t" l S& c0 T" A* r
m_nStr = m_nSta = m_nDex = m_nInt = 15;. o/ T7 a7 c x, @- c& j
m_nRemainGP = 28;1 d/ m# j% o8 n* ^2 D) K
}, ]: P5 \% Y+ }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- y3 w1 e* F. T8 X {
# |& z5 {- t: d" V m_nRemainGP = 118;
, G: W- g7 t; g( y% F/ a; C4 s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, A! k8 F2 B$ U, K8 i- U
m_nStr = m_nSta = m_nDex = m_nInt = 15;( M# f! ]3 G) S6 @6 R
}$ G5 A7 P% M3 _# {2 L+ i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- O) H0 f% b, ?% {
{
5 |. R0 H. n% x- k- y! m7 a5 K CItemElem itemelem;
+ Z5 ^8 \7 Y. ~2 ^ itemelem.m_nItemNum = 1;
5 y* R& h: U; Y% F' s& g6 s% @ itemelem.m_bCharged = TRUE;
4 W" g2 X5 w& |7 v" j BYTE nID;- J; }5 S5 b' D+ e4 q% X3 \/ U
+ F9 f" s, ~# V6 M: @8 g' @ if( nJob == JOB_MENTALIST_HERO )
6 \( S! x& ]" }; m: Y. |2 U5 c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- t& n+ [' p' r; {/ u if( nJob == JOB_FORCEMASTER_HERO )
, o6 b& E) r3 q$ N; J2 O itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( \9 D m3 v& s* l
0 b7 B* E c& \# l, F6 L ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 ]; D! |" `. c8 }6 l9 \9 A }
4 z& D; C0 b8 r" a$ \1 w# P" v% P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* d& p4 }+ @+ E+ O# W- e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# _, l( X1 c! h- t( d* B: y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ Y3 A) {. \! i) S1 g" ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" p* h+ A+ ^9 I6 j S# d# \" p. E1 D) d ( (CUser*)this )->AddTaskBar();*/
9 C/ x4 W2 K6 e3 r. k# P1 d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
2 @. Q2 |8 z( O# n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
G3 O! k1 t2 K0 ` B' K. o( j ((CUser*)this)->CheckHonorStat();
" _! o. m- ]+ ]2 `6 l& Q ((CUser*)this)->AddHonorListAck();
) U/ }6 l) l8 S8 o g_UserMng.AddHonorTitleChange( this, m_nHonor);
; N: X9 D: x8 _/ w; @#endif // __HONORABLE_TITLE // ′Tà?
) ~6 W- G6 Q+ c, L( V }
; ]2 F8 ]' r! f# G; h Q2 I O#endif // __WORLDSERVER
2 X/ f% N% o, l} 0 z1 q- {- l' I/ n+ z) ?
# a- `$ W" U$ e2 f0 Y然后你进入functextcmd.cpp并添加以下8 h1 {, S: X* K+ s Y4 V2 ^" V& H
/ [- T$ o b7 V" i3 e, R, l, B. S代码:
/ B9 B" A' p& l# p: u% ]8 cON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) U9 Y0 {% e1 j6 \/ G# k* D7 @6 _) p
下面插入
. H4 x: Z" X/ d4 l& n4 P, C! g; ~! o! lON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ s ^7 K: D9 ~
; e0 F5 I( b: Z1 x! I4 ^8 F3 v然后你去9 B: X, B" Q8 Y5 D7 Y l
, h+ r. s7 o9 r4 R1 v代码:
# x! @' T0 X* W9 ~5 j6 G代码3 a3 x4 C$ `9 S8 z
BOOL TextCmd_ClearPropose( CScanner & s )
6 G9 B1 ]$ D" M8 c! H. I{' D+ y5 O6 ?3 X! y* O1 d& |2 G
#ifdef __WORLDSERVER
' S6 W" _- J8 ?: Y+ m! Y CUser* pUser = (CUser*)s.dwValue;
4 r; }& n5 z1 w! W: u5 { g_dpDBClient.SendClearPropose();
% I$ A2 N5 c8 C1 h/ R6 m+ p7 B#endif // __WORLDSERVER; d2 A6 A7 Q3 d0 m( T0 l) L
return TRUE;6 [$ ^) E4 s, g$ M$ H5 Q q
}4 g6 ?6 o) E, H, S- @4 z
下面插入
* N- Z+ y8 ~/ U2 K) XBOOL TextCmd_rebirth( CScanner& scanner )* @& w6 \( {1 J' k! r4 v
{
1 o$ }6 A0 }* z2 ?& G3 U* U/ _9 j#ifdef __WORLDSERVER
; n# t. S: R0 TCUser *pUser;
: G7 Z% M, X- m# z6 y) g: Q, S s/ WpUser = (CUser*)scanner.dwValue;
) p1 H" w3 \8 }# z: _0 rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())9 r. C/ `5 f6 j
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" j$ k* |8 }8 w; k
else
& m2 \: B/ l+ D( z8 K. _pUser->AddText("你还未达到重生条件!");0 `4 a* `' q0 T- w: e
#endif
2 B9 d2 v4 G# b: u, d7 ureturn TRUE;& _1 x# |5 s/ X+ @/ t: k
}
# d. R; d- M1 x; E9 r
$ x' }+ i: j C2 x" d
2 Z3 q% H; r; D% }6 |2 |% a
9 z' g4 q$ I! h3 W' h; {5 h
2 J$ j5 p! J7 R6 i$ }: t. \ |
|