|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; h5 g' i$ q. U3 D W3 _, A
% K3 Z; y0 ?" r* ]. qMover.h
# H/ _$ w9 O1 w/ m- ^: U代码:
8 v) \/ c$ C/ v9 T; \9 I1 N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
6 I, T1 i$ {4 F+ l( s4 U0 J) r" [% I: V4 }7 L- ?
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' ^$ V& A7 ?% w
4 g: E0 f9 p" O然后你去mover.cpp添加! O- W0 U, w) n# }1 C
5 o$ |! Q5 {% T4 e
代码:! O+ F! Y) u; }* V `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 b: L" Z% P! G2 b; i% z3 M% d
{& y7 }% m3 T0 @% R) u
#ifdef __WORLDSERVER6 m: F5 T' Z+ d; S% R- Q$ d
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- n0 J- _# R% V( @( S) L" b' J. _
MoverProp* pProp = GetProp();
# L* z, S1 b) ^+ G) m$ W, O if( pProp ), _ s: v. L0 W4 S
{
5 b2 g: d9 [6 C0 j/ t; l if( nJob > 0 && nJob < MAX_LEGEND_HERO ): R/ m' |, I, I7 S% ^
{
: z4 g) V m* [8 ?$ D/ i0 { AddChangeJob( nJob );
3 M8 `/ f7 A0 \* r9 G% @ }else{
" k& @ o; e, n1 W; h* b return;9 W* q7 } _( ~1 a3 r/ ?/ H
}0 a* @5 b+ F! `5 D5 @0 ~
int nPoint = 0;: ~* N- C, E# R) ^/ m8 C5 c5 `
if( m_nJob == JOB_MERCENARY )
, W7 w; M$ T6 B* R; M nPoint += 40;2 [4 I# _! w3 y- m! a* J
else if( m_nJob == JOB_ACROBAT )
7 }7 m2 m0 q8 f- A% z4 y nPoint += 50;4 G0 O8 I5 n1 |* M9 ?3 L' I& _
else if( m_nJob == JOB_ASSIST )
; F5 _+ y" `( y9 l2 I1 T% ? nPoint += 60;
; v0 h. k$ z; o- |# V3 M else if( m_nJob == JOB_MAGICIAN )) b1 H3 C# I5 y. b! t
nPoint += 90;
7 _! K% A% ?) w8 Z; t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 r9 z" S+ L0 Z! B0 w' h1 w nPoint += 120;
" Y; Q- s! \* e' ^. \8 d else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 H! v# D$ D* t/ S' ^ u nPoint += 150;7 i7 o* x9 w% \# y5 o
else if( m_nJob == JOB_RINGMASTER )
5 c& {: A; m0 I! F nPoint += 160;2 U! p2 `" B- Y; `0 K
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% `9 b: _: Z* m8 E2 K% ?8 S
nPoint += 180;
: F" `# v. N( \1 Z else if( m_nJob == JOB_ELEMENTOR )1 G* J+ ~# X9 x2 C" ?" m
nPoint += 390;, ?' {) U" e, T! T/ u
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* E2 V# f. q4 f( p, D. _
nPoint += 120;3 h3 Z9 |8 q+ T( L8 r6 x1 C& I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 s4 c% O: M3 _, x V2 J" K
nPoint += 150;9 D3 G. P1 w+ ?: S& R' t$ V( J
else if( nJob == JOB_FLORIST_HERO )
/ A& R6 k4 B& k0 ~. n) C3 X nPoint += 160;
& O+ X! v/ \3 ? else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 t' c& s# H! i, z nPoint += 180;, ?! i* { e0 x6 V1 s0 j: j! d
else if( nJob == JOB_ELEMENTORLORD_HERO )1 w8 d' t8 M, }8 ~4 E8 y
nPoint += 390;/ M1 Z% D/ B% G$ I1 D3 P6 A
8 w B- ?# [- b- k
AddSkillPoint( nPoint );! s5 a9 a7 W- f. P2 s$ z
m_nLevel = nLevel;9 D: j+ V+ Q: H# j' o' g
. i" i" X, i+ `6 Q" U) Y SetJobLevel( nLevel, nJob );/ u+ w) |. ?! j0 F2 ?: N
m_nDeathLevel = nLevel;' ]3 X; a/ B c3 S& a# U" j9 @' l+ d
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 B& z2 E" ]; ^) z# c; a$ r if(IsMaster())
1 P" T/ E! J- j: }" {& l {% J+ g5 p! `4 i1 C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: `. q3 R* Q- k, w8 Y. C
if( nLevel > 59 && nLevel < 72 )) g# f9 o5 c; k( I: b4 t% l( n0 w; ?
dwTmpSkLevel = 1;8 x! t/ v9 B9 H5 D7 h. W. _
else if( nLevel > 71 && nLevel < 84 )
6 O! {' t6 H* @- D1 h7 K0 o& t. Y dwTmpSkLevel = 2;
# `5 [: {% L" o! a! y* i3 B else if( nLevel > 83 && nLevel < 96 )- ?/ [- c5 F. M* a" Y/ G9 E
dwTmpSkLevel = 3;" f1 g' ]8 y0 ~9 w! \
else if( nLevel > 95 && nLevel < 108 )5 [! S& j% i. y4 j' X
dwTmpSkLevel = 4;- p+ W" R5 h* j7 H3 C9 |7 n3 m
else if( nLevel > 107 && nLevel < 120 )
+ A L" r2 G- I: t$ G! D5 [ dwTmpSkLevel = 5; n7 h! S. r- Z$ m, E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 Q# }& V. H# E
{ ( a8 {& a6 u' \# b# Z2 L* ?
LPSKILL lpSkill = &(m_aJobSkill);5 }7 l5 R9 c+ {: V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 ?8 F/ g" B5 j T" U$ e {0 k5 g0 Q+ ^- D0 Z B$ i+ H
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 n; u0 u/ O/ ?! P
if( pSkillProp == NULL )
! Q) J/ q( C1 o! a7 T* `+ w continue;' K' e' D! m1 ]% l' I% e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 ^0 O+ Y- `3 o continue; M: B* T4 F9 x) h$ V* @! r
lpSkill->dwLevel = dwTmpSkLevel;
) T! T# X0 z$ F8 B$ @+ w }
6 {0 C5 D, o5 U$ \2 _ }
J9 C( o5 @1 U- N& X }
, q! X: L( e/ j- ^& V& ` else if(IsHero())& v; g S' {+ F+ Z+ o& G: x
{0 S2 X. G$ X1 Z1 }7 t4 c: t$ u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, p+ |3 I' z& h/ l% Z( _ Z. [ {
, v- D- r! r7 g LPSKILL lpSkill = &(m_aJobSkill);
0 h/ K2 P- {# h' c& k3 z( C if( lpSkill && lpSkill->dwSkill != NULL_ID ): e0 S' M1 f$ ]: r G+ H& ]$ M
{
- ~$ w# ~& @, }" G& J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 F- `* `9 `4 C1 s8 B6 z
if( pSkillProp == NULL )6 a2 u* p0 f0 S% x( B& I
continue;
5 _& L# J! k, r" c* }1 z6 Y7 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 J7 A4 {8 q! |3 ]+ Z. `- r
continue;7 U% R: M' V K* r. \5 {% F% D
lpSkill->dwLevel = 5;( @4 T% L* n8 e! D+ m- H6 @& C
}, ~7 e$ x4 `2 @
}
% |# s# C( D" Z: m( E }* B3 I* I F5 F7 f$ ?' n
else if(IsLegendHero())1 \( ]8 x/ y }) Y9 a4 q8 h
{
: i. z0 W" i4 O! H. X- [- R for( int i = 0; i < MAX_SKILL_JOB; i++ ) - @( k: P$ F6 q$ B
{
- L9 t+ T' Z! I3 R! J7 y6 O+ N; c LPSKILL lpSkill = &(m_aJobSkill);* \) X% C& X+ W) f1 E% \. @+ J
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, D( I5 }# M/ { {% s) t3 [ P" e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 \3 H7 h% H8 x e1 N- q& _
if( pSkillProp == NULL )
8 p/ k W' {- u- A4 j1 s continue;- L5 ?( }6 R. f6 E+ [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) Y) u. y* a8 v7 t1 i% z$ @/ ~
continue;+ B2 e1 ^9 a# {8 a
lpSkill->dwLevel = 5;
/ o6 I( C' X+ ^1 I) a }5 \ {) [6 G0 ~. p% [
}- {1 v# \5 u$ g3 T4 i/ b: \& V
}
. |: L. h$ w) c+ E& ~. n#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans t6 O) J0 n* \- c& S
if( bGamma )
2 l6 v: e+ e' x8 i3 ~! H0 c: t {+ F0 \$ @8 w3 J. M1 i4 W
m_nExp1 = 0;/ m& q% s8 ^, x/ e) v( u6 |
}: f9 B! {! E( j* H+ e
4 x e9 r; V$ X: }, a# F
( (CUser*)this )->AddSetChangeJob( nJob );/ E; Y! Q5 B/ ?" J: [% |& ?
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- n; I9 g: \# s9 O' u) ?
. x: J7 \- u3 a& V
1 F, U; t' Q' Q! ]" d
#if __VER >= 11 // __SYS_PLAYER_DATA- e, h1 X% M& X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );! C# s5 R3 Q% i4 Z5 u
#else // __SYS_PLAYER_DATA
2 O1 h6 a. d6 t1 D* L% h$ d g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# W$ ]# d) R3 k6 c g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- `! K k' H6 I" d" Q$ Q if( m_idGuild != 0 )" M0 o+ j4 g. `7 T: I# Z
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) ?& h* `8 k- U8 l2 t$ I- f+ o$ K# ]#endif // __SYS_PLAYER_DATA
: f {& b: f9 ^: H8 T l SetHitPoint( GetMaxHitPoint() );2 d; @: |6 j' N3 u) Y) U
SetManaPoint( GetMaxManaPoint() );
( U2 }. i+ o9 i7 `4 K5 v/ m1 ?5 l SetFatiguePoint( GetMaxFatiguePoint() );
' \# p5 h! A5 F& U" M/ q ]: n if( nJob >= 1 && nJob <= 4 )# {3 b2 Q. p1 i0 ~: C
{( N3 ^1 S2 ^$ K1 H6 R7 K" G# l
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ K; Q* `: Y4 E2 Z+ R; L
m_nRemainGP = 28;, W% X2 P. T. g4 U& R
}
* B: A, m! p' P, ]7 J* V1 U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# r. k& J5 d* m) L6 d( a3 g# O
{
4 O3 H4 }! |9 i, w `/ e' I0 t m_nRemainGP = 118;4 M- h$ L. {* W0 k: u1 Z! N
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
8 P- O1 m, B" x' c/ K; _* Q, b; R% R m_nStr = m_nSta = m_nDex = m_nInt = 15;
' l# \$ C' j2 q+ l O }
0 P$ h' n$ A0 D6 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). @6 ?) c H3 D$ W9 O
{
/ b3 L0 L+ S4 M2 x6 w CItemElem itemelem;
! l% V6 Q7 V9 ]$ F itemelem.m_nItemNum = 1;
7 h; k U0 T* [/ l itemelem.m_bCharged = TRUE;
0 n7 M2 T; F* z. E3 h BYTE nID;" H& c* ~9 D( q$ `) F
, w0 I3 `1 ^; j& E# ~ if( nJob == JOB_MENTALIST_HERO )
: M6 s" K( c. M+ D itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' E( a5 ]5 P2 ?3 R/ Z% s if( nJob == JOB_FORCEMASTER_HERO )' n5 ?$ n+ F5 Z$ l; V! [6 c
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. l/ S1 f, `$ y H3 v! c% L3 e2 r& q
( ( CUser*)this)->CreateItem( &itemelem, &nID );" T# O1 ~: t# K, Z4 i) B3 h
}
; C2 o; L* D/ `" a, R% y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* v8 J: L8 G# W8 u& J f ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, l! J% C2 R. @1 A+ ^' O ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );( M7 l; G5 p8 h" j, E& ~$ M0 Q& h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, Q) D$ n7 [8 I9 d: T ( (CUser*)this )->AddTaskBar();*/
( B; ~7 t) H" a% |2 o+ V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* G2 {) T5 {" G9 J q4 C- ~( q#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( w/ Y G. e9 [. U ((CUser*)this)->CheckHonorStat();; l, A/ r g! Q) ~- m
((CUser*)this)->AddHonorListAck();
9 }2 ?- q7 a V. q5 p g_UserMng.AddHonorTitleChange( this, m_nHonor);
8 I3 H8 V5 Q. j$ _4 ^% q9 ]#endif // __HONORABLE_TITLE // ′Tà?
% o7 _! r8 U! O }& k+ j A" v$ ]# j
#endif // __WORLDSERVER
" B: I& N" p! N* T: e7 O} 1 H3 V" U, X+ v" H
* z8 \; s9 R' O2 F, } X
然后你进入functextcmd.cpp并添加以下
8 D" q" L& n) H! b5 ], j r3 `" K$ N+ x
代码:& [! X, V1 P8 I* D7 p; T! N1 q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: r1 o- O" u, y7 y下面插入' S5 k/ H/ d1 |! C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" F, d6 }7 n! i$ ~, [# _5 d1 T
1 L- x8 n/ c2 ]% Z4 `3 [然后你去
8 O _! R9 W% o; n4 ^( s4 c/ Q. f) } O5 q, R: P
代码:: Q, d0 ~6 K2 @# l( L: U# J" l
代码
/ L! b8 U/ H: B" XBOOL TextCmd_ClearPropose( CScanner & s )! `7 D/ Y+ k! ?/ y- |
{/ Z7 M% f; ?1 i' c* }
#ifdef __WORLDSERVER
5 Z3 |% G) W$ @- l" U CUser* pUser = (CUser*)s.dwValue;
6 I; G" _0 c, Z! y+ z0 V9 [ g_dpDBClient.SendClearPropose();
" N8 ^# k9 T; z, v6 w% b& |2 d+ N' O#endif // __WORLDSERVER
/ D' _4 a/ k' H8 w p return TRUE;
8 r1 d2 n o& X% j+ W. u( D+ u}
" H. b# @5 ~9 _! ]9 t下面插入8 L! E7 t& V7 O* S" X
BOOL TextCmd_rebirth( CScanner& scanner )
9 Y( z. K6 u% {& @4 z! |" _+ S9 w9 u{) {) E u; N2 I$ A0 k$ D; I2 T
#ifdef __WORLDSERVER
3 [2 @0 w& y$ a, ?CUser *pUser;
/ j! t- O9 ?9 o7 PpUser = (CUser*)scanner.dwValue;
* X% y0 Z% G# D9 w8 W# {: oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
# X5 C7 v) n7 [+ b C- @* ~6 b* cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 p" t/ z F3 l: K& l) C! W+ D
else
6 m: j& U! O; i) q( `pUser->AddText("你还未达到重生条件!");. {# C% ^# A- N2 d" i' n, o
#endif
u4 Z5 v6 y4 F1 X! d. yreturn TRUE;6 O& G& Q5 H: z2 ~1 [( P. Q
} # F, L- Y3 X* Z! i, S8 |# x& b8 {2 J$ z
! I1 Q1 f' h! ~; F* ^
6 R- r v4 P# a! j7 ^
# {6 B7 c- f; t u) ]6 _4 J2 I
' ~& C* ~. S+ q% G+ r. ? |
|