|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ v3 X8 \( l3 Y& v* O# l
0 m9 y. P( Z. ^2 ?* L- eMover.h1 |& U8 e3 I* U5 K
代码:
' T; n. v8 w1 K1 S C! Q0 r9 r3 s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
, J: n% b' h" m: l# t! u" U7 w! h5 |: h" T6 c9 Q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 m3 W' a5 n1 j# v! L6 a" I2 @: t7 L5 c Y q# R$ c
然后你去mover.cpp添加
; x+ G2 r# d) ] s3 F, ^
" S, j [( R4 g4 z9 v& [代码:+ e4 x; w% y% ~7 V8 W) T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' }) A6 n# ?9 W% O5 h1 k5 G
{- ?1 u( O$ M6 a8 Q+ ^- V
#ifdef __WORLDSERVER
% q4 }9 G) b8 V6 P! K // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% ~3 e( }) E% u7 I
MoverProp* pProp = GetProp();
7 w8 ~- g! p! ` if( pProp )9 d8 v( W. I$ K% V. ~" o$ P
{
; m! H! ~( M h( m: o, v if( nJob > 0 && nJob < MAX_LEGEND_HERO )# v- u6 g# }* }; L; }
{& u- U4 B- o4 S& k* |' l
AddChangeJob( nJob );
& G \$ r$ I' H }else{
% k3 h7 l* L: M0 y+ e9 u return;
2 f2 |/ q+ P0 J1 Z } n6 u- ?( T) W l+ `
int nPoint = 0;
$ i7 ~* Z: b7 i if( m_nJob == JOB_MERCENARY )+ I" i. Y/ Y- h2 x: W- E
nPoint += 40;
% F9 `) P( b# T. D" h5 v: V: v- b0 [: V5 I else if( m_nJob == JOB_ACROBAT )
& n3 l% ^$ L( b7 z% P0 }) d nPoint += 50;
; M+ p) p' H4 _) T$ {* k else if( m_nJob == JOB_ASSIST )/ ]. d( v, B5 c/ J, O
nPoint += 60;
, a$ ~1 n- B {' y) @2 g9 p' g else if( m_nJob == JOB_MAGICIAN )& Z3 _1 f/ N$ X- F) U( Q: l. J
nPoint += 90;6 N* l+ P( v- ]
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
% C" H7 }" ]+ ?+ J. j nPoint += 120;' T- Z0 |5 o0 d+ ^& s3 k
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 U7 S$ A/ \; h) `" ] nPoint += 150;
( }/ u/ A2 D! s5 R else if( m_nJob == JOB_RINGMASTER )& C9 F' m7 s/ c% c1 h9 e) m* V
nPoint += 160;2 T( k* J9 [9 `$ i
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 g9 F9 G! c5 ~$ o+ a' U3 T7 D nPoint += 180;
$ i' s$ {. P4 N. `8 O/ n+ j- ~ else if( m_nJob == JOB_ELEMENTOR )( w1 V8 |; h4 x# T
nPoint += 390;
c# f8 N$ [! Y2 n( A% K8 h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# S6 t) g5 T0 c nPoint += 120;3 W( b7 H' w6 [: X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 h. U+ Q* J; h: c+ k) S. \% X# J. B7 F
nPoint += 150;4 b$ c7 A+ N, B. |9 e
else if( nJob == JOB_FLORIST_HERO )
; N7 C" b- J1 s1 M$ B& D9 U/ X* ]$ d nPoint += 160;
( a! c( S- }# u: @ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 x6 r9 X1 z, W( ?% F: @: F. H nPoint += 180;9 v$ _3 n n d! T. |
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 X4 Y. H2 J- h: O nPoint += 390;
5 d! o- M ~+ Z% q: s: A% m* o2 m) H
' Y' @; m0 K1 _& y9 }) g9 M AddSkillPoint( nPoint );
3 j; b6 X) Q0 o5 U( w- [9 j m_nLevel = nLevel;
) b4 W4 R) @% g5 _7 w0 E. C. c+ u5 R+ Y* A
SetJobLevel( nLevel, nJob );; b! i, n: r1 I# Z4 b6 o) t
m_nDeathLevel = nLevel;
" p/ D1 m! C! ~" h#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- ]$ J' ^! N/ ? if(IsMaster()), Y7 c( e& q+ B/ |1 G3 F
{9 A; b7 k( @1 R2 j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: X9 x T" K; u9 E% B- l
if( nLevel > 59 && nLevel < 72 ), Z$ r& y( V6 y- \' ]. n! t# |9 ?
dwTmpSkLevel = 1;/ U: e! B& V' J/ A) H) D% I% {' r
else if( nLevel > 71 && nLevel < 84 )
. J% n9 p- I I4 Z0 t dwTmpSkLevel = 2;. S- A- V0 J% u3 B# v, S
else if( nLevel > 83 && nLevel < 96 ) e/ L9 V3 K; W6 r( L* a
dwTmpSkLevel = 3;4 ?) i/ T1 Y3 c: g
else if( nLevel > 95 && nLevel < 108 )
% \: G$ n- w+ J) [) P( b9 d# ~6 B dwTmpSkLevel = 4;) A2 R! e+ o( ^$ ^
else if( nLevel > 107 && nLevel < 120 )% S+ C6 T& L/ P4 F) Y- s
dwTmpSkLevel = 5;" E+ Q' N" K: L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
Y W' c: u; q) c0 n {
' a2 H4 z$ p! s7 D" J- G6 t/ c LPSKILL lpSkill = &(m_aJobSkill);6 l0 V4 t8 ]3 i& q
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ C7 P: R9 G6 f% g- z
{
( P/ {: l6 U a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
x, s! V4 D/ ^ if( pSkillProp == NULL )2 \8 z9 v' c* r9 D8 y. F7 @$ D
continue;+ s7 u/ W* P" C0 S4 `
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 Y- Q& D/ h0 a
continue;0 t6 n; b9 k0 f% k. I- q6 c
lpSkill->dwLevel = dwTmpSkLevel;, w$ N- J- `6 O8 L" w
}
! b7 V8 V, l v* K }6 c& q; Q& ~. ?
}+ v! O4 @0 w4 {8 C M7 k
else if(IsHero()). ^7 ~/ N! B) Q( G r+ ]8 ], P
{4 c8 G1 `* {. H( Q2 T
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: M# m$ M' E" T3 A, p8 b& O2 ^ { 0 N; H, Y0 {8 S
LPSKILL lpSkill = &(m_aJobSkill);
, @) ^; L+ Q( k5 z( j, w if( lpSkill && lpSkill->dwSkill != NULL_ID )
( ?5 u- c, [3 e! S0 @2 \ ~+ E {
: T6 F- B) m& K+ |" ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 ?) A% `' y3 H) K0 u1 N
if( pSkillProp == NULL )
. S2 {1 k5 G7 |" D! v" ^9 ]3 b continue;
7 i! v8 G8 y/ a5 Q/ Z @ _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% V* o6 h3 r g% S- y2 t continue;
' p: K+ r9 E8 R$ N$ v5 }! [) r% I3 n lpSkill->dwLevel = 5;
, f. f) n: f8 p7 n0 j, d8 b2 U }: E% p4 M7 n& ^ i/ V7 S. G3 ?) j/ J, l
}
( @; J/ V4 n6 {/ V5 l9 }. @ }; }% ]/ V7 T9 w G$ T: F
else if(IsLegendHero())
; Z$ s9 C' Z& O0 p" D {" T8 m9 M6 Y2 u# p/ n7 K& o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # m8 t$ V1 c! s* i" X3 g# L: U6 y
{ 3 B2 {. x# ?; M
LPSKILL lpSkill = &(m_aJobSkill);$ ^. ~6 P/ s: W
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ i0 @5 e: n4 p! Q' M
{
7 V, V4 K; h. z8 ]8 X+ g! j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! a' r# S3 Q! Q( x4 T; P
if( pSkillProp == NULL )
4 i# B, z( D! G9 w$ P! i continue;
" P+ t/ D$ s( z* V7 T* { if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) q1 R! A* C+ o5 Q continue;& x/ S9 D% E* G5 n; |" o# r0 E
lpSkill->dwLevel = 5;
8 j; V& z2 T% @$ q- r/ | }' C) g+ e6 p' I8 u- K5 o
}
S) y! t6 U' ]8 C5 {: z }# p* W l: t3 J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 l9 |# s" g L0 P, c$ G0 w0 o if( bGamma )1 x5 L0 [8 a5 |: I; Q
{
8 d3 G; b. q9 v( p: w9 j m_nExp1 = 0;
* _6 _4 O+ m3 r. L3 W3 K& T }
4 o5 j4 [/ G& q* M5 E& a* m: z8 B+ j9 M5 ]7 a8 G
( (CUser*)this )->AddSetChangeJob( nJob );
6 j, `: v" T, h$ Y7 y: T/ q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# u a8 S- U6 \( H1 z$ O+ w( ]
# s$ d+ n! P& F9 S/ `8 L
# a2 R1 K# j* {# S5 ~0 w7 S7 l z#if __VER >= 11 // __SYS_PLAYER_DATA
/ T; C+ D( b4 f W- ^ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );/ G- y. E a/ J$ A0 Q0 X
#else // __SYS_PLAYER_DATA
* E7 h+ a& z0 [3 O$ U' y2 h g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# c" H; l$ Y$ [" g# k4 H0 k% v j
g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); W) s' }. S4 I3 ^4 V$ a' [* F" T7 r
if( m_idGuild != 0 ): ?$ s6 |$ n2 F- ~. r7 V
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 f# I3 ~) k. ]) r#endif // __SYS_PLAYER_DATA9 A6 T. ?, _! |; ^5 Q( x
SetHitPoint( GetMaxHitPoint() );
7 E% {8 C* U5 {9 I8 w SetManaPoint( GetMaxManaPoint() );
2 l: i) d# n- ?2 b' _5 A" P; }' d& k SetFatiguePoint( GetMaxFatiguePoint() );! N- C' H6 `- P& {
if( nJob >= 1 && nJob <= 4 )! E! e$ {/ W5 {( i" W/ Q
{
' T" x+ v& r0 a% K/ `, G0 K m_nStr = m_nSta = m_nDex = m_nInt = 15;1 r) w/ A5 E- Z
m_nRemainGP = 28;& h: [0 d. L" z& l4 z H) q
}4 W8 ?5 e( S: v+ w, [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
r4 Y7 |4 s( A* n& M {
; U0 z1 Z! E, a: g7 O* ]% ] m_nRemainGP = 118;7 N/ y# c' b2 h& b( N+ e* l5 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; [. [9 K' t1 E3 }9 D: x7 l0 _ m_nStr = m_nSta = m_nDex = m_nInt = 15;& I' e. d; l# }9 o
}# h3 N0 C% M, O; H( Y( t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
m( X/ {% L- @$ D( ^ {4 c& Y' k5 ]" j% T! h7 n. e
CItemElem itemelem;
! S7 M+ C1 h8 ^6 }7 Y itemelem.m_nItemNum = 1;# C' t1 L; X3 r. b% f* U1 i
itemelem.m_bCharged = TRUE;
5 k3 c' D. V) p/ n. Z BYTE nID;5 T& r& o% C. O! s: w% d# Q& G
9 s9 A- u3 F: s0 B( q- Q1 v t+ t0 r if( nJob == JOB_MENTALIST_HERO ) P# Q! F% G/ x. M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 m7 z9 A L7 M8 l3 ^
if( nJob == JOB_FORCEMASTER_HERO )
2 }4 B) i" j/ t itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& `4 C- ]- w1 {! G# a: o
/ u/ m( q6 i" a" D1 z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
* t' d( h. Z8 n) [0 F% S) } }
3 U7 l' e) q$ e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- p, c0 |! C: N9 @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 a; A( r1 y' u& Y
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ Z7 o* {* C' W6 n6 m8 K
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* l* O! A5 c' S. z5 o. D ( (CUser*)this )->AddTaskBar();*/
# j- N+ d# K3 ~+ V$ y ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );& _% P1 S0 U+ A" h! H! O- F
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- T' _9 b$ R2 g9 D% D
((CUser*)this)->CheckHonorStat();5 _# T" ~" c Q1 h1 _
((CUser*)this)->AddHonorListAck();
5 X9 W2 g+ R1 p g_UserMng.AddHonorTitleChange( this, m_nHonor);
' X. W6 N2 P! L) T5 z* H7 V#endif // __HONORABLE_TITLE // ′Tà?
$ r2 K7 U) x8 ? }
- g( t/ ?* @0 k/ o* _- p#endif // __WORLDSERVER) H' y* _" B. l/ _0 O8 {& D
} $ t3 |/ K, A/ Q0 m
' k) c9 z2 r! j3 y然后你进入functextcmd.cpp并添加以下
9 b& W$ u% X3 }" w/ H* ^, _
! B. p M7 S; u+ V, L6 k代码:/ V F4 L0 e8 x4 G# ]& X
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 @) N9 }+ i! ]4 `; v1 _
下面插入0 `, b+ s' @2 ~' j2 R2 q8 E- H
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) : C4 o' x. E q3 g) E
) \- \9 }1 M* T y- ^
然后你去1 b5 c- o4 Z" s4 R
" W, X9 [2 W4 E0 b+ X; M5 Y9 X
代码:* {4 R6 f+ h4 s
代码( T0 A1 I! }8 P5 @9 S, G4 t3 q
BOOL TextCmd_ClearPropose( CScanner & s )5 y: d8 n' U* a7 S8 g
{
2 N2 h. } }8 h' m$ F#ifdef __WORLDSERVER1 f' d; k5 K* {1 j, V4 r. K
CUser* pUser = (CUser*)s.dwValue;
% Y, a$ Y" n4 C: P5 F g_dpDBClient.SendClearPropose(); x* `" X8 W- c* B- d0 D
#endif // __WORLDSERVER
$ O* ]! a4 X7 g' b. M M8 }3 f return TRUE;
! ^$ X) S3 x b% r" {0 H}
" G, c8 t* U4 H1 R/ ^2 S6 F. O' @' y下面插入
. S6 K; M+ Q. NBOOL TextCmd_rebirth( CScanner& scanner )
" V+ y+ S8 V7 M' C{, U4 u* z, f7 ]0 l! J' `2 I# ]
#ifdef __WORLDSERVER% H# `8 i/ K( J1 z
CUser *pUser;4 i" n3 E% N, M U8 {' o+ p. u$ ^
pUser = (CUser*)scanner.dwValue;% c2 i, S1 q9 p: s# _4 W/ p: |. S2 W& T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ {3 G9 q0 S9 J# n/ M8 l3 M( \pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 h# Z1 A0 {& P6 v+ ]else3 b8 Z9 f' D1 j# V+ @
pUser->AddText("你还未达到重生条件!");
! p4 A. T. X5 c#endif& L$ Z: D0 o7 _
return TRUE;: u' {1 k5 y) a$ I" g3 ^7 C! |4 M
} 2 `. H" E0 ]5 q! S9 H$ c
1 f, F) c' H# F. F* U( M
7 ?; J3 U, p& x- ` }, X7 v7 e9 X1 e0 y6 l2 g
8 `* b" G9 U# d1 h! z3 H
|
|