|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel) C; m0 @* R. Q& W' R' k0 f
# v) ~: {$ l2 F* B; l4 aMover.h% n6 Z8 ?. p5 F9 T6 C
代码:1 E0 G0 w0 g) m9 X1 m- i' j3 [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" y$ X) |4 p) C U4 s# y
3 g6 [6 c7 a* I- {2 }! r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" [% C7 c7 H& _+ V1 u4 J |
' Y* g7 v4 X( u4 h# g然后你去mover.cpp添加
% g3 ?/ _+ E7 ~1 F) `
0 _. d# [; g" d$ _代码:1 _5 a" R- X3 w: e- s+ R5 B O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ T1 q2 y' @* ?3 R- M7 \' x
{
8 t- e/ `2 h$ X#ifdef __WORLDSERVER9 o( l5 T5 ~) D5 S: p$ e \, x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. ?9 s3 _: x+ N, ]
MoverProp* pProp = GetProp();8 V1 h5 P" Z+ H+ S/ ]' j
if( pProp )) p5 S. P& q: p$ D5 D% M: T6 ]
{
- {/ j+ g* x) ]2 y9 L if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, h' ^1 k3 `% i {
e4 e( ]& ?: G: Y8 F AddChangeJob( nJob );
7 f$ I* h# p1 T' O& j( y0 R5 ?! b, | }else{' N M! S5 l" n, A6 A5 [
return;5 N% O5 ^, f- R6 D! O. F2 m
}
+ d1 l/ C' Y6 n' y% n7 w% I9 `% F int nPoint = 0;
- b& f. _" x, t6 W if( m_nJob == JOB_MERCENARY )0 v* n" ~' F' k. G
nPoint += 40;) A) n4 F! J1 `9 M" k9 d c% i
else if( m_nJob == JOB_ACROBAT )
$ `; g$ P1 \! ` nPoint += 50;
( K# T8 `: q- M* @ else if( m_nJob == JOB_ASSIST )
- e+ ]9 f( `7 ?' e nPoint += 60;0 F) D* I" U; g
else if( m_nJob == JOB_MAGICIAN )8 _4 X: F% V+ f! P# }+ N6 h: N
nPoint += 90; Z# X; X9 M5 S3 N3 d9 e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 a3 h, K- M' ?* W: a) L9 y
nPoint += 120;
$ w9 W, ?9 W* X0 b7 q: s else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: ]# ]2 [) h9 z/ J' F nPoint += 150;* Q1 ~" @. v/ [% N% M* y3 f
else if( m_nJob == JOB_RINGMASTER )
' T. \1 w8 s. \; ^- r& @ nPoint += 160;3 i V% B, j' R8 U
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
8 o- ^+ b* v; N nPoint += 180;
4 i% k7 W/ `) i8 Z: m0 c! D0 I else if( m_nJob == JOB_ELEMENTOR )
- M) g: Z N9 z( I* r' `2 o nPoint += 390;
7 o7 T; p0 G7 a else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. w8 @3 \3 s! u2 d: P nPoint += 120;0 m4 x$ k" ?1 G* s$ W; N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% m: P- w/ Q/ ^4 V$ z. R nPoint += 150;5 C: M; R- w, G) U. n$ R1 T4 r: P
else if( nJob == JOB_FLORIST_HERO ); i0 Q; [5 ]" E" ]
nPoint += 160;
: K' R0 N9 N6 S" l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. H& n+ v: J0 \4 S* P% u nPoint += 180;
& f! E- M- d$ @$ Y! I else if( nJob == JOB_ELEMENTORLORD_HERO )
6 T5 n' r! c3 M nPoint += 390;
+ I9 Y# ` b$ l4 i i" m6 d, w3 m- B6 q" t" S# X# o
AddSkillPoint( nPoint );
6 P( y: L$ y5 d% f" \% W* ] m_nLevel = nLevel;2 o/ @8 k6 R- e7 l
8 Y7 `7 k( M2 _+ R
SetJobLevel( nLevel, nJob );
0 _) Z9 P1 L. { l T$ a& S+ u6 E( b m_nDeathLevel = nLevel;
q' Z; i: N& e7 F3 _$ o#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
a1 D0 k( ?; I' ` if(IsMaster())
: A' O4 P2 {5 u5 b0 @ {% v5 z9 W3 T" Y1 o1 E$ b
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 P& ]8 V6 i* d- h
if( nLevel > 59 && nLevel < 72 )
& A% }% s; ~' f9 e3 }( r dwTmpSkLevel = 1;
. L& Z" V! ^0 f1 _9 K9 f else if( nLevel > 71 && nLevel < 84 )
: V S& @: p9 E3 m dwTmpSkLevel = 2;& L5 m8 B$ J) ~
else if( nLevel > 83 && nLevel < 96 )
, q' L8 x% v( ?' k5 Q dwTmpSkLevel = 3;" p* T$ B' m2 M4 `3 @2 f. f
else if( nLevel > 95 && nLevel < 108 )+ t. Z& O8 E7 @. V( j
dwTmpSkLevel = 4;6 a& Q I, e- y! Y3 W
else if( nLevel > 107 && nLevel < 120 ); E$ i* w! F. H% k D" m
dwTmpSkLevel = 5;! R0 Q$ P* ~( K9 r4 `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , ^8 N6 I6 k# o$ E8 D
{
1 z) x7 h1 a s: n# m LPSKILL lpSkill = &(m_aJobSkill);+ [* u8 c* G5 ?8 L& x0 n. F4 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. W o* @1 d( G; b5 W9 N. W! ~ {: B$ q" ^) `) F' N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 E- }: s' m) J* ]: a if( pSkillProp == NULL )
* \0 k# ~* D2 O continue; m! N8 o( m' B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 j. M, h& A% _/ r, D0 V
continue;4 n( X: l* m+ e5 A4 o5 B1 X# z# P& J' p
lpSkill->dwLevel = dwTmpSkLevel;$ Q; C5 h' R, s* `/ E) ~5 S. I$ K+ e
}! D* ~3 K! V2 o9 m8 U& w: w
}6 b O- t/ o! u" O( j
}
+ v% w1 Y K1 i# P2 X: T else if(IsHero())( M7 D; {& x- h" [' _1 a, L- {
{
" V" y8 z- |! ^& c1 L for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 z& X# k& Q* K6 N0 K& W" J0 ^8 T
{
( X( E/ v: f$ L; m. h LPSKILL lpSkill = &(m_aJobSkill);
9 L1 y1 y, e& H: `( { if( lpSkill && lpSkill->dwSkill != NULL_ID )% O& y* ?: |+ z% L( _$ H/ z
{
- K7 k4 i$ k- H d( `5 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( a3 k: q0 d. g9 D4 K
if( pSkillProp == NULL ). O! k6 ?$ Q* D! [$ A7 V7 ^8 @4 ?7 I
continue;7 N' O4 A8 t8 q, N) k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 C% L: P( t8 Q1 L
continue;
- r& h+ ]' L7 }8 g4 o; P$ Q) ^ lpSkill->dwLevel = 5;
: s" P4 P; d, ]- U K }; z' B. A8 U6 P5 W P4 `( ^3 L
}, [& u3 h3 ]% k% o
}3 a5 ]! q/ }1 B. J3 o7 ~" \
else if(IsLegendHero())3 A0 S! W) B) r c$ i- [8 h/ O
{
, a1 r. u }. x+ u2 y7 \7 M for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ?( F. V; c/ C4 p$ C { + w4 |7 H! I; s. t) O
LPSKILL lpSkill = &(m_aJobSkill);
+ y/ ^) g% R) v4 T2 K2 V2 d9 m if( lpSkill && lpSkill->dwSkill != NULL_ID )
. v2 K3 O }5 s {" ^" J$ B3 y" ^/ y* _5 ~% _: Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 V+ d% z, I3 L3 t) y if( pSkillProp == NULL )
" m' J/ d# |# ]- ? continue;
% j) E& p, L# }0 y8 {' | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 Z# i( X/ u8 x( U. k' j
continue;
) ^; I! B& o5 ` lpSkill->dwLevel = 5;- A5 ?% k" U4 S
}
* k# v- _( ^% v$ R: ?/ k } j( L2 W% W' d! {. p
}
) T% I/ o7 H. h* V( C#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ B( ]8 h& b4 i! c$ m8 ]
if( bGamma )" E3 t; x. {! G: _
{! ~+ _4 q6 b/ I- T T: n
m_nExp1 = 0;
' w4 m! B/ W) c7 N }2 T5 E4 f: U9 A z l* ~
% U5 R5 L- L% x ( (CUser*)this )->AddSetChangeJob( nJob );
* _% v+ e# q, B' j& d4 Q6 N/ N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ Z6 }; F! b; \
4 L. |; \% E4 q* F' r0 b% _9 p, F6 r F+ ]: ?. _9 q$ a
#if __VER >= 11 // __SYS_PLAYER_DATA! z+ Y5 |! g# _' K$ k6 l6 D& a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 h0 v. Q9 f9 M' V#else // __SYS_PLAYER_DATA$ J: X; _+ Z# e( _, I9 C$ V
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" e4 Z8 \( v7 c9 x g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# Q& D& N: r. }+ k if( m_idGuild != 0 )0 b0 T, c8 F7 S6 N- a/ R/ t" u& u; V
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& g+ D/ U0 x. X. Q: g0 \& u& Z; Z! B
#endif // __SYS_PLAYER_DATA1 q& E8 E6 ]+ D2 F
SetHitPoint( GetMaxHitPoint() );
1 m( y# E9 j+ P7 ~8 P) q SetManaPoint( GetMaxManaPoint() );" w( e( r3 M6 a3 Y. h
SetFatiguePoint( GetMaxFatiguePoint() );
4 N- G1 w5 K( T& V6 k. s. } if( nJob >= 1 && nJob <= 4 )& f. v- `) U2 K, A/ b j) ?
{
0 L/ [8 f& V s m_nStr = m_nSta = m_nDex = m_nInt = 15;5 M, ]: E3 F; [+ e% \6 Z9 m2 d1 c
m_nRemainGP = 28;3 b% ^/ n' P# G8 o4 Z+ b1 O% |
}( |% p% ^! C$ @) ?- b( M
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' I z0 F& K, _- p/ v/ \7 k {
# ?' r/ f, k/ |. ? m_nRemainGP = 118;* U, c" R7 k5 ^2 |. }
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 P3 V, S3 J/ }! c+ O m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 v- }: O5 _7 G- d }3 g; O% m6 I' w7 a& o7 [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 b2 z( a- W% k) w9 ~5 }2 A {" }; S- L2 W) a( A
CItemElem itemelem;! H: k U# {4 ~3 A
itemelem.m_nItemNum = 1;
& ]0 x/ S% t1 T' {' O5 p6 _ itemelem.m_bCharged = TRUE;
$ W T U8 {: c BYTE nID;
% p2 L# K }0 E" F+ m G! J1 R% Q: s% |; U% n: b
if( nJob == JOB_MENTALIST_HERO )
2 a8 ^8 D% @/ J% D0 F itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 e5 j/ L4 z: |' K2 B1 _8 ^ if( nJob == JOB_FORCEMASTER_HERO )
. u) M5 H S" ?, g8 O( E itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. K7 U; {* |& _6 |6 S5 u9 x
+ f: J3 K# l! B2 {" p ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# ^, \. I1 T8 R: [- ^8 s+ O' F" W' l! D }( R' W: \" M- [& ?8 A) U
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& `2 T. C7 l c- T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' o4 u; p& ~% }1 h( j* ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# z' L7 Q* C# L2 g- R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 R7 r) U% F# g+ {5 R* } ( (CUser*)this )->AddTaskBar();*/
* y7 ]* h- b7 n8 I- [ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ e4 x) T R- c7 {& X* U' S. y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& ~3 t, T, U* {! {- I$ E% u
((CUser*)this)->CheckHonorStat();& q0 }* Y' X5 o8 z
((CUser*)this)->AddHonorListAck();
( I# U$ t0 |" Y7 ^* o g_UserMng.AddHonorTitleChange( this, m_nHonor);
9 P2 i O' b! G8 K0 H#endif // __HONORABLE_TITLE // ′Tà?5 I! O ~* u0 `$ t0 N
}
. N; X2 ]+ ?* `: S# m3 \#endif // __WORLDSERVER0 k) c! k2 i7 R2 H7 r; j1 F X
}
( h- r0 N; Z$ y2 N7 C/ W3 Q# r" p# X/ a' k. e p5 y
然后你进入functextcmd.cpp并添加以下* g: R; C1 x+ ~4 h
' z/ n8 p7 {2 m
代码:
. ]: [$ k3 { fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
2 h4 A5 F! y [5 I% ?: i下面插入- ]9 r- w7 I7 b" C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
& [5 U( Q9 X) P$ m5 v4 U" c! t0 P
, L& S: ?/ E4 H1 d然后你去
8 N W' N! M% I; K1 H. o& t* H J0 y
代码:- c- y3 d4 c* @4 T
代码+ {. m3 ~5 V3 z4 {+ {+ y% g- h0 X% R
BOOL TextCmd_ClearPropose( CScanner & s )
- I& |+ r/ [8 D' s( a. I{
4 \8 E6 `4 R9 w* o+ q/ p#ifdef __WORLDSERVER% v1 B$ }, Y, k {; U: T
CUser* pUser = (CUser*)s.dwValue;! J4 }& a& @' W) U8 @5 H! U
g_dpDBClient.SendClearPropose();2 J3 G3 D2 r- D, y+ I
#endif // __WORLDSERVER
- n" [* K. j$ j# `0 Z return TRUE;9 i$ j1 }& M1 Q. d& W" ~- g5 e
}- k3 P4 Q& o9 X
下面插入+ N" s. p+ s$ j Z
BOOL TextCmd_rebirth( CScanner& scanner )
6 d2 Z( L8 W% x: k q9 Y{; |" s' Y; l! _) }- |( V
#ifdef __WORLDSERVER
$ l6 z4 _3 w* o) LCUser *pUser;
3 j8 ^, n( I! M! W' I% y' |pUser = (CUser*)scanner.dwValue;
1 P: p& A- h1 k* L. P. uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! l5 K0 [5 ^) g# S6 k
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);5 P, a0 W5 v8 U/ f! V8 `4 \( R# F1 h
else% O- r/ l1 s' |9 P
pUser->AddText("你还未达到重生条件!");
) {) k% {4 E# E1 T- ^#endif
+ d" k4 C* p$ W; B0 Xreturn TRUE;
) _. y: K4 K0 y, Z0 ~$ e9 P} : Y, P {) I& k
3 F5 ^/ ]" q B4 l( u, ?8 Q
' }/ i; A u2 T# o" Z
1 z8 V6 E' `) S0 P
6 e9 h/ ~$ ?" f% [5 d: b& w- j; M
|
|