|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; Z; g- @2 A, a- j) S4 `- v& }) L# \
: J4 d% [9 ]; g: W3 V8 Y) r. CMover.h
1 j: F* |" r1 {( O+ W3 O. e# c+ g代码:
8 b: A% [3 C5 j/ ~3 P# s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 E: B3 H! B$ N9 O& F
/ q2 Q1 J9 j6 L. Q D1 [. i% D, h5 V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + R! d6 f! ~5 D& Z6 T0 s$ e. N0 \
3 S9 J* Q" a# N$ @7 U# w然后你去mover.cpp添加% f' z9 o0 B- P/ X% p
+ x6 i+ K4 A4 R1 B9 n! t& T& N2 o4 ~代码:6 d; {0 Y$ P8 E6 l8 e- |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 J* _& s! k2 ?1 s6 D* b( T
{
( l5 `: |- F* _$ A#ifdef __WORLDSERVER# R: F6 ~* j: f7 j" i
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. |/ i# g3 w/ H+ S6 r/ i MoverProp* pProp = GetProp();/ A+ i7 Q4 [1 M! ]& ]+ q
if( pProp )$ w5 i G3 y" m! f5 f2 P
{
% C& d$ M4 P$ X+ g7 q if( nJob > 0 && nJob < MAX_LEGEND_HERO )# K7 d2 \2 K8 R/ [( x4 n" v4 v- m
{
5 K* ?7 j) k4 s/ K AddChangeJob( nJob );
3 Y6 S( I7 d4 F( _8 W6 q& _ }else{
* d: f' Y& V$ e. U; J( E return;' f ?! M+ c, a, E- _- X7 N
}
) m3 {( x3 f. _ int nPoint = 0;; J" t; H& ?2 r& L% M1 p
if( m_nJob == JOB_MERCENARY )% l3 i! u' A% r+ R) Z* `
nPoint += 40;- u8 y2 ^. y5 D4 c# ^9 P
else if( m_nJob == JOB_ACROBAT )6 [; ~2 X9 c, c, P# m, P3 ]8 N! q! ~/ m
nPoint += 50;# H, U9 [' [* I; O* z) Q
else if( m_nJob == JOB_ASSIST )$ ?' @; P* R ]' k
nPoint += 60;
2 ~7 R& k( x) S r+ h ], j else if( m_nJob == JOB_MAGICIAN )
7 X' I$ z8 @9 F nPoint += 90;0 o! L8 k5 |& B8 K7 y h; V2 m$ u
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 E9 k& U/ G" L. t+ z; i9 b. K nPoint += 120;9 |) p. b; O9 k6 P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& b! v, G, D0 {/ P) a' e6 A' G nPoint += 150;, z, C9 M U0 Y0 H! m# a" i+ ^
else if( m_nJob == JOB_RINGMASTER )0 c+ v$ o8 [. W4 }0 ]1 `
nPoint += 160;9 F1 b4 ?; f" `! x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 J# U* G) i# G5 m; F- q nPoint += 180;1 G9 m t1 a$ c8 p3 W! ?
else if( m_nJob == JOB_ELEMENTOR )
- x9 X; `3 s, Y8 Y2 R+ r' z0 ? nPoint += 390;, o: F( J2 ?, c% Y$ G
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* B Y& S8 F" `" i6 r
nPoint += 120;2 X* m: p' \7 h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" {5 f/ o7 }, t/ [/ g L
nPoint += 150;
5 u; n' [& P/ y else if( nJob == JOB_FLORIST_HERO )8 x' o/ p. v* x7 q5 c, f" R
nPoint += 160;; @. ~/ j3 {# \) D1 m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ k+ z, E) o4 i! W0 Z% ?
nPoint += 180;5 I& s0 X' z' t, j6 }
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 v; R% ^; X* R; \+ _! R nPoint += 390;" @' }+ M. @& C9 t p
! D) e5 [ q) c& l9 H$ z& a+ {
AddSkillPoint( nPoint );
' k* u. b' h) a; r9 {' a m_nLevel = nLevel;
+ z" v# j& Z, w5 K' p" t% F& ]! Q+ W8 D y% w# \5 J. z! L) ?+ a9 h
SetJobLevel( nLevel, nJob );! h6 _8 b" D- O- {& Y" R! D5 Q
m_nDeathLevel = nLevel;
& W& x) b% F. @4 _9 W$ v$ I! n4 J1 ~; R#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( E, Y, X" d; i" L$ i V& o if(IsMaster())
; P' F; }0 X9 f/ ~& S. I& | {
1 K) [' I( q: z$ r/ F8 c int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ o0 M6 b% `. t4 t6 `" @ if( nLevel > 59 && nLevel < 72 ); D0 x, g+ ^. U
dwTmpSkLevel = 1; d* P) ~4 t# z5 h
else if( nLevel > 71 && nLevel < 84 )
9 F J) K0 [5 |! i1 ~# {! P dwTmpSkLevel = 2;6 e* f$ _$ V8 q! w! H
else if( nLevel > 83 && nLevel < 96 )
7 Y$ C/ B& M( q dwTmpSkLevel = 3;8 J- x$ v1 Y; e2 C* T' i
else if( nLevel > 95 && nLevel < 108 )
1 W! H# ]% b6 N9 Y6 d( ` dwTmpSkLevel = 4;$ c. g* H; t; i c2 j- c! x
else if( nLevel > 107 && nLevel < 120 )& T2 `$ g; K: N, E- N$ n
dwTmpSkLevel = 5;
r2 C! r9 G3 A; v9 X6 c, Q for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 k- P, D& _% b& i* h {
* \7 X( U( w* w4 { LPSKILL lpSkill = &(m_aJobSkill);9 b4 y; F2 _( ?& B. C! e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 r/ ?+ p J" `3 K( J {- F3 O( @5 V9 ~. N* w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
U9 o+ T7 U# O. l0 ^ if( pSkillProp == NULL )4 z% t: P( t$ S
continue;
$ d& l/ c9 A- O$ |4 Z+ ~ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& L& {8 j: t4 K3 S5 n& m8 T& d continue;3 q R% w; K! {2 i
lpSkill->dwLevel = dwTmpSkLevel;
/ ?& z" I# c9 K8 }$ X2 V0 N& q- e }1 }/ m P; Y* C4 O
}
+ j/ r; E& V) | C* T2 Y) _5 Q }
( J, ^% p5 M: ? else if(IsHero())
. {+ u/ O+ ~) z) m3 `! J( G {) n9 _" \ _: E5 V) o/ h# Z. L* e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- F0 E& N+ P9 Q) g/ i {
3 M9 l4 o9 g1 z LPSKILL lpSkill = &(m_aJobSkill);. E. x. p6 S* a: W K" b# _
if( lpSkill && lpSkill->dwSkill != NULL_ID )' u+ e, I& b {6 Z) k8 E
{3 `/ ]& x/ G2 L! q+ @5 l4 |" C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' P3 `" j( \# c5 B& G( u. }' K if( pSkillProp == NULL )" e) {+ K6 p- z6 d/ ^
continue;
! B& `* g) S" V. \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ c' v; N' ^4 }. R8 v/ m2 Y
continue;; H( T) ^- V5 X1 y/ x1 F
lpSkill->dwLevel = 5;, J* \' N2 o: ^5 A5 W
}
% t5 V2 s, E! ~8 q7 G; a/ |/ | }* ~6 z% A- j# _' J2 h- b0 n0 Y7 d
}
1 j# u9 \% w0 c' @( y, g4 Z ^ else if(IsLegendHero())
# Q+ R7 @( B" j& g {4 l- u7 |9 N/ v) s% l1 s& `. C3 d' T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ Q3 ` u. ~5 l
{ ! ] w, P9 x. h$ t2 C- R w! T5 J
LPSKILL lpSkill = &(m_aJobSkill);
: R% v& Q0 C* x* Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
: x4 W( W0 P% ? ^- }5 P+ U9 j {
# q, a4 {% W8 f( T A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & S, P* n7 ]$ ]3 v, E0 k/ F
if( pSkillProp == NULL )
. C: H) J$ c- u t( ?0 ^ continue;
* u% c- _ Y. U: x: Q" p( Y6 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 l( w% d) V& Q. a) _$ \8 f0 N9 U
continue;
: v; y* K- C N lpSkill->dwLevel = 5;
* \1 K; k% t2 h6 C) D3 ~9 m }
: X; Y- S6 U" n$ M+ e }& o2 D5 X( O6 P7 p
}
/ d0 R" k! J4 b9 y# H5 Z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 A) F3 r7 h# q5 b5 b0 x) O9 D
if( bGamma )7 a( v+ l a0 I7 ^% k
{0 A" ?+ b- X6 d3 o1 a
m_nExp1 = 0;
6 R+ x. L( Q0 |+ o7 i: L }$ C6 P: P7 |& z# v5 O, R! M# z
1 N t3 T0 q0 z8 n5 J' W ( (CUser*)this )->AddSetChangeJob( nJob );
! M9 J+ M; G/ S% k+ z g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 Q. q- K2 y9 `9 t+ l6 ~
, w+ _' H& \! t2 s7 F; k
( c! G0 j: {" k* ^% c#if __VER >= 11 // __SYS_PLAYER_DATA
8 ?2 i6 @0 V: X+ i! f g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' F' L/ P7 U, } k% i
#else // __SYS_PLAYER_DATA
( Z+ J1 x0 [- p6 W% x- G) i/ S g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
' F) P3 ?( w: B& M5 H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% E+ _0 G [+ m5 v6 x if( m_idGuild != 0 )( B7 R0 n8 c8 }/ i- ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 Q$ [, d z4 Q* e$ O: F7 ~#endif // __SYS_PLAYER_DATA
% g8 d1 [. X" F& P( h SetHitPoint( GetMaxHitPoint() );
1 L- S5 P# U% b$ e" b SetManaPoint( GetMaxManaPoint() );
1 v" _* { K' ^# M9 n/ z SetFatiguePoint( GetMaxFatiguePoint() );
. C, _1 O; @& C' m0 G if( nJob >= 1 && nJob <= 4 )1 x7 I7 P0 m3 R$ c% y1 r; ]
{# o& X8 `, j. ^/ o+ Q; \
m_nStr = m_nSta = m_nDex = m_nInt = 15;; t( o+ c$ v. E p: T
m_nRemainGP = 28;/ I; X7 G9 Y" y0 ~1 o
}
/ S( ?6 ^& T( g" F% o9 K8 s+ o$ y5 Q if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), c6 g0 c$ ^7 a
{
5 ]4 K7 p' P: f* p m_nRemainGP = 118;
0 {. _. L/ ?" s" T9 d& [ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ u9 M% Z7 m$ l, v* \" |( v- p' `1 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% ]7 E' m$ Q2 M4 u% J }
: u: T) Z0 C! t5 y& S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 x! o2 l. g/ J' h# u6 B+ _$ Y2 i- }: { {
4 P3 g5 c' K$ i+ Y7 U. G! `5 O CItemElem itemelem;- W# \% y3 f6 f) G& p9 L
itemelem.m_nItemNum = 1;
3 T+ h7 w5 ~! J* k& B itemelem.m_bCharged = TRUE;7 e6 v& D% f5 `3 i8 r8 ?9 Z- D; ~
BYTE nID;
6 t# }- r3 p( l9 `. S# S0 L7 \1 z# [3 `0 B3 g' ?
if( nJob == JOB_MENTALIST_HERO )8 f0 e7 d [% I4 N9 l
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 Q; U5 t0 T! T
if( nJob == JOB_FORCEMASTER_HERO )
: [3 d3 E a8 q( r itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. k+ M" W+ o& k/ U7 d7 M. E+ {5 f# ^
2 Q- e* B) ]( n2 p) \, U" W* n4 _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# k3 O7 k4 ~3 q1 G- u0 a( k }
- v. i, L6 L( c g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" r9 a; T( _; B9 H- s
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );4 F: B- D8 `0 C1 }9 P
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! D+ ?. ]7 q7 u* k6 G /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; m$ c' R3 o' a( w2 J1 b' }$ W. I& m* ^ ( (CUser*)this )->AddTaskBar();*/9 S! s7 B. H' Z3 B
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 Q9 l7 O2 q0 M#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: q7 X+ v0 D3 L' C
((CUser*)this)->CheckHonorStat();
% E* i8 h9 n- w. M% U9 V: V& R ((CUser*)this)->AddHonorListAck();5 [! E- @4 W' b- J/ Z' o/ T0 h0 G, P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
, h3 h8 M3 g6 ?4 s, d6 b* L8 u! ]#endif // __HONORABLE_TITLE // ′Tà?. k$ C" G% x }) x
}7 ?0 d& l9 u3 g0 @7 e; [2 R8 P
#endif // __WORLDSERVER
; h" J) S) f$ v- j1 g& x} 5 W, l) q& L6 }; N! o' x0 T
3 t8 Q' Y* s% c9 s9 Q0 e
然后你进入functextcmd.cpp并添加以下+ F1 i6 r6 n$ D! o) I
6 {& ~9 d1 J s) h. n代码:* y# j. u8 b' w) X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
0 E* j( c) c3 l- a下面插入$ Q* k5 R4 F4 h/ l- Q/ U, W& T7 Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / u+ U; o5 _* ]: _
5 r; R2 b2 K7 |9 s+ s然后你去
. m, `! ?$ f# C l* ?0 D: p* c( z8 H D: c2 v* p
代码:
4 W! o- D i2 T代码
0 A+ L$ j, X7 k+ s* w o6 KBOOL TextCmd_ClearPropose( CScanner & s )5 S# o! v! _9 z% U
{# r7 C4 X& Y6 e& o k
#ifdef __WORLDSERVER6 z" Y! W- d) O/ `, `: X
CUser* pUser = (CUser*)s.dwValue;
$ z2 N$ e y7 S g_dpDBClient.SendClearPropose();
& _( j) [7 e, o" S0 c2 ^#endif // __WORLDSERVER
/ y4 q) _4 c/ H& f' ? return TRUE;
0 f) Y+ ]) y4 b% Y6 B" a}# g1 `7 d% C- O5 o: q
下面插入
, Y- O. ]9 [' Z8 J1 | sBOOL TextCmd_rebirth( CScanner& scanner )
. W1 R$ t h* [{
6 p1 j( G5 p& |3 |4 ?/ G#ifdef __WORLDSERVER0 q, e: R; `' `7 y
CUser *pUser;1 u! I- L4 |, q7 h" b# K4 m
pUser = (CUser*)scanner.dwValue;
6 f, F' i5 `$ P Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); p! v' }! ]6 t% R `% p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: V, f) B% b7 [2 i/ Y
else. V0 Y: k6 ]: W/ [/ L. f
pUser->AddText("你还未达到重生条件!");
1 ?# H! J% F: j% E7 g. S% L! x#endif
H$ w) [/ w: G2 i1 U& a& Sreturn TRUE;
' I0 f8 t8 o* g9 {( n! l9 ]% C% {} 0 M* a, |. ^$ t
) u7 A d0 ?1 v+ r- m+ ~9 p
+ E: T5 c% O: b' e
1 {5 P: V5 ^9 p- B% \" a
3 b4 ^ t% Y- k0 c1 k; B) @ |
|