|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
2 V- W4 [0 Z& M) l% b6 u9 X7 a$ F6 n5 h' v6 o+ h
Mover.h
; W* x- w# T/ J& v# D代码:
: l" r2 t1 b8 Y* V; u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ g/ S9 S9 C3 W% A0 _
; i+ u3 Y( p2 M% r# e5 A: G4 Y
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 6 h/ }; P$ W+ l: t
$ Z& Y4 G' C3 G z5 V5 I, Z然后你去mover.cpp添加7 O# @7 l o# a0 Y
$ U: H o8 c* J) h/ `代码:9 U8 P8 u5 X; \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* _6 x" B h% I# }{
% G& G8 B. h- N; B#ifdef __WORLDSERVER/ T7 |3 h7 C! r& [! _ ` p, m0 b
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" ]; b. ^0 ~+ }* x4 m: M$ k MoverProp* pProp = GetProp();
/ r! s( b" @' D/ a% G7 L4 L( T if( pProp )( Z& {; z) u# s w* ], @
{
1 |1 q' @, k5 X! ~' { if( nJob > 0 && nJob < MAX_LEGEND_HERO ): h9 ^4 N0 X2 F, Z5 U- y3 ]
{
o, M+ A3 w- p* j0 g AddChangeJob( nJob );
. u6 Y9 {7 d z4 Z3 r) e }else{. W# ?) ~( k! K- X, ~: e
return;. d2 E- f2 N% y& ~ Y! P
}
% h$ K0 c2 O$ J P4 f' E3 K! W int nPoint = 0;. S7 \8 s4 g8 ?1 f. m
if( m_nJob == JOB_MERCENARY )% W- l9 p! S6 }: g8 M+ f. N9 f
nPoint += 40;( ~$ ?7 O# j: I' N
else if( m_nJob == JOB_ACROBAT )6 w! P4 U6 N. V4 g
nPoint += 50;' U2 p7 d1 L8 ?! A
else if( m_nJob == JOB_ASSIST )
2 m( N$ d! p6 Z6 W& N7 o. i nPoint += 60;& q: J) b7 X5 N: Q2 U4 z J
else if( m_nJob == JOB_MAGICIAN ); i0 [( x5 N @, s; g( {2 T
nPoint += 90;& @, x7 R# m: B/ F. h* a
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 @5 C3 g6 _% B: ~0 g! q nPoint += 120;" t4 c3 J( U$ z7 G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( m% u: t ~) R3 e6 V+ Z0 e$ J
nPoint += 150;
" N9 r8 ^, q/ s4 T6 t3 a- J else if( m_nJob == JOB_RINGMASTER )
$ b/ `$ ~2 `0 J% s. p+ D nPoint += 160;; e. y! t- t3 B% o; W, A+ _2 }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% o7 x& j+ R, z nPoint += 180;, v% `' a, \3 q
else if( m_nJob == JOB_ELEMENTOR )
5 y' A' _. q; L& |3 p# E5 R nPoint += 390;! X L0 z& E5 q8 A' R2 n
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )! S' f8 Y, u) p& n" Y* }- E, a
nPoint += 120;
7 R- L: _0 Y' ? L& S else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
, G+ N8 W* n5 W4 a- b nPoint += 150;" M: m! T( b4 S6 q- }
else if( nJob == JOB_FLORIST_HERO )
+ c; a2 [+ z9 D. x! B nPoint += 160;
" ]. {6 `9 h4 m" l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" H3 @( i/ q9 w nPoint += 180;& S& T3 |) p: G3 [, A6 C
else if( nJob == JOB_ELEMENTORLORD_HERO )
3 I! J7 X3 |+ r$ A4 h" `$ d nPoint += 390;" e% r) a P- P# v! x6 U
. b0 O, v9 z& u1 e3 q4 |3 d7 V AddSkillPoint( nPoint );
) h5 N: i1 L: s7 G8 ]4 }+ ` m_nLevel = nLevel;& m( b: h7 ] ^4 o
& ?5 u1 i9 o8 c SetJobLevel( nLevel, nJob ); P: a" a7 R# ^3 j
m_nDeathLevel = nLevel;; f" u7 b* K! `7 V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% E1 b9 g1 A1 _9 P if(IsMaster())! M- g; C# g, O, r( M5 R F. U; J
{
% p2 h0 d! X5 s4 V int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 x8 w7 k0 P. e. S1 ]. K' ?! V
if( nLevel > 59 && nLevel < 72 )
1 _2 z/ I0 z0 \9 \0 C" C) ] dwTmpSkLevel = 1;6 G( c4 V- c C
else if( nLevel > 71 && nLevel < 84 ): `! t. d& ]% j" \# Y4 A
dwTmpSkLevel = 2;
! ?7 W5 f, [ `% O+ a7 v else if( nLevel > 83 && nLevel < 96 )7 @3 U& x. e* v5 r7 J
dwTmpSkLevel = 3;* c2 Y( [ d! q3 X7 {* {
else if( nLevel > 95 && nLevel < 108 )3 W f+ [0 G+ R! u& P# s6 j. g. [
dwTmpSkLevel = 4;0 s$ R; A/ u& c: j& M
else if( nLevel > 107 && nLevel < 120 )' v4 d. U/ N" f3 D3 b7 I
dwTmpSkLevel = 5;
( z. h6 q7 n% k; G/ m for( int i = 0; i < MAX_SKILL_JOB; i++ ) # P. c; I% v: {# N
{
~+ |% M% g2 R! {6 j% ~; c LPSKILL lpSkill = &(m_aJobSkill);. Z( K6 f& e6 W
if( lpSkill && lpSkill->dwSkill != NULL_ID )# y8 u) Q2 U T# l; D
{
@+ K2 l- W$ k! D* ~2 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. q! ?5 Y0 K1 @2 g) r3 A& @ if( pSkillProp == NULL )
* m- @3 O/ R" x1 V8 O( H continue;) w) S' K# O3 `1 v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 t* d, T& Z1 E# [% x) @1 e& P. Y
continue;$ W- P+ W E% E* l& n
lpSkill->dwLevel = dwTmpSkLevel;* O! y- B2 |8 M. M/ b6 u6 q
}, y% i5 z5 C" s2 b
}
7 G0 u e# z$ a7 |2 [/ g) T8 U- M }+ k3 C# y, }5 a7 g9 h6 l1 @- j; }1 @
else if(IsHero()); `# g( B0 a% ^, P8 ?, r$ t
{
8 r% X+ e3 i2 A1 q5 [" s( l. Y for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 I/ x' K9 Q$ h7 |1 w/ |
{
2 c3 O7 z- O) K4 d) g1 d- j( I LPSKILL lpSkill = &(m_aJobSkill); t& S2 D0 V: H2 f0 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 k" d# n% v5 y* P
{
8 u, ]* O; R0 ] ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 [5 x Y6 G9 [$ I, D7 g/ w
if( pSkillProp == NULL )4 G D, {* D! j. X
continue;
! t- s6 L$ b# |3 _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 [7 \ z! F2 s3 k. D
continue;4 Y( h3 f: J" }7 L
lpSkill->dwLevel = 5;
0 [( I- _% l1 s6 k% x# u }3 V1 Q2 w- ?0 T- o% t# F
}
$ y& h9 B5 W8 E E } R! Q0 J; q1 G% x/ V% c2 z6 y
else if(IsLegendHero())+ l$ Z/ k/ r- }
{
8 w, u1 e' P5 w. G5 V for( int i = 0; i < MAX_SKILL_JOB; i++ ) & |1 T& v: ?& @+ @9 o* Z H' S/ d, g+ A
{ C% F3 C( g/ f# w# X
LPSKILL lpSkill = &(m_aJobSkill);# x6 T/ i( p0 t
if( lpSkill && lpSkill->dwSkill != NULL_ID ) ~2 Z2 E/ s) G7 r/ m' o. f u. @
{
/ P M9 Z4 A; Z1 ]& Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 k1 q. K# ]# T: }1 N# J+ o P n3 m if( pSkillProp == NULL )
0 X5 |6 Y) F4 t6 y: x! T% ?- g continue;
. s2 u. S% I) ^. z) G' M; | if( pSkillProp->dwItemKind1 != JTYPE_MASTER). c$ P9 E& \! c# Q" d" h
continue;
/ l! k- l! E1 p4 g% l5 N& H lpSkill->dwLevel = 5;$ ~& w# x9 A9 ?# ^- m! C
}
6 f7 T2 O, P4 Q& j3 p. p }4 e1 t% q/ _ }+ l$ c" r$ u
}
+ t) R' ^( E! `; S- U2 O/ V#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% U: k6 ?% p* n( H6 B! K! h* s
if( bGamma )8 }) r) B! g+ O$ j4 ?
{: z% E) v1 H* F4 ^
m_nExp1 = 0;
3 f r: s1 c8 \. _ }
2 e/ C/ j# }+ Y
; X1 E" l! I# \& P4 W( t* Q ( (CUser*)this )->AddSetChangeJob( nJob );" p+ l) n( f9 M Z3 r) k, n+ G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- h/ G g; e+ X/ h5 g, ^# F3 M
3 j6 [9 N9 E. @' ~& x1 @9 _$ q0 O9 n* h7 x
#if __VER >= 11 // __SYS_PLAYER_DATA/ \4 V. k; ]& S/ D
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- S+ r. E/ {8 Z" t#else // __SYS_PLAYER_DATA
; J8 p0 T# B& E5 ~# a g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# c8 y# T" B7 Z6 X, \2 B' {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ I7 z& w, W: V3 X
if( m_idGuild != 0 )2 W8 F: w: z6 Y' J8 L6 `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 G0 O4 \: D4 k
#endif // __SYS_PLAYER_DATA( q0 B- f& Z2 l. {0 S3 h1 Y
SetHitPoint( GetMaxHitPoint() );2 @% v$ ]7 K6 a8 V$ `: K7 u3 C7 e
SetManaPoint( GetMaxManaPoint() );6 M3 ~% S3 H+ @9 B3 ]& H: u
SetFatiguePoint( GetMaxFatiguePoint() );& T$ L( P% k) P# F8 D u0 i
if( nJob >= 1 && nJob <= 4 )+ S: a, W: }6 A2 O+ M
{
/ ^" U" T+ d. T" f m_nStr = m_nSta = m_nDex = m_nInt = 15;4 W6 M5 W) F) m+ c; j. V
m_nRemainGP = 28;6 N* u7 w6 d4 z
}
# X2 }; `, s: e1 I+ m if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 n9 k# }5 s! w/ A$ M4 A' y
{
W: C& ^3 O6 i) u( x6 H m_nRemainGP = 118;! u$ | c- i1 Z1 r8 i
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, c# n3 Y& L9 b- R3 `8 d5 T
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 R" M1 H/ e: x }
- M# d/ B4 t; d& j3 H0 K if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- i0 G+ [& j6 V3 U
{7 v2 L% }3 e$ p* w' z6 z3 I
CItemElem itemelem;
5 K4 |0 F0 w* K1 S) B! l itemelem.m_nItemNum = 1;, h2 X0 g0 i3 ^
itemelem.m_bCharged = TRUE;
- ^/ r) g5 Q+ i5 {/ y BYTE nID;- w8 L3 J/ Y/ n
3 [) f) t; t0 h6 B/ y
if( nJob == JOB_MENTALIST_HERO )
; _+ y3 ]2 B' g6 v itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! I- F( R! Q6 ^$ |; x4 r5 W- c2 ] if( nJob == JOB_FORCEMASTER_HERO )
9 n5 g' f3 n9 S+ Z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. u$ W+ w, p, x" n. F1 ?& W$ ], t4 t) x/ b
( ( CUser*)this)->CreateItem( &itemelem, &nID );& N& B7 _6 o7 a* n# U+ J
}( j! j6 B( u7 `! Z) a: _7 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) A: s4 I+ J# E$ P4 g ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 `5 L& ?) S: }' M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, A/ c; l# Y, A+ A& q' \* ~ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, P' j5 i1 A( {4 x/ F
( (CUser*)this )->AddTaskBar();*/
3 n1 `/ [2 p# h ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 G: X6 E* E5 @* }1 R$ {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ q: m! K& ~5 y. j: ~% C$ { ((CUser*)this)->CheckHonorStat();
/ v# @5 X6 |- m8 k: _. E ((CUser*)this)->AddHonorListAck();
# w, a8 |* g7 \7 M8 o7 {9 `% @5 G- h g_UserMng.AddHonorTitleChange( this, m_nHonor);8 K% p2 n2 ]& ]" L* U
#endif // __HONORABLE_TITLE // ′Tà?- T3 Y# E& t' f1 Y9 r- {
}
3 _3 C3 Z4 N# _2 O4 v#endif // __WORLDSERVER0 {! [+ b( @& |/ [( o
} 2 t/ ^9 k& G& Q$ z3 c
* R: o$ K3 m- H0 _. T2 U
然后你进入functextcmd.cpp并添加以下$ _+ b1 x$ P% C8 F7 N$ R2 S
4 J5 k3 o% M+ H& h' p" J' l
代码:
+ h H% P a2 P+ j" s( n6 iON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 G7 a$ T s, m% j0 u下面插入9 O8 F+ ]7 l. B% [# x$ F3 C7 i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
9 l. O; v' R6 O5 o! F
8 z8 \5 ^( Q7 I( G' t然后你去# j P; b; u0 W- u$ I, C3 S
7 n! q3 N: f& E1 n% B" n( g
代码:
, f9 w8 \8 a! f$ w0 F9 h- c( H代码6 {7 v/ e; q: n
BOOL TextCmd_ClearPropose( CScanner & s )
: W9 F) [6 d9 C+ `& g# J# F( v3 b{
- F/ k* k) J3 s9 ~! u+ X0 e, c" u) |#ifdef __WORLDSERVER: N& E7 \8 p- H8 @4 Z
CUser* pUser = (CUser*)s.dwValue;+ H5 X# `5 P3 l: J6 G
g_dpDBClient.SendClearPropose();! ~' Q- m: F8 G: S- L+ a/ B1 H6 s# E
#endif // __WORLDSERVER! ], C$ |; A- q, J# [) V- K
return TRUE;
2 k+ @- v# m8 P. e+ A1 g3 Y" U) z}
4 F, ^ X* T6 o9 e4 n$ F( m下面插入0 W% o! x2 o0 u
BOOL TextCmd_rebirth( CScanner& scanner )$ p: M l7 p/ B4 T, [" X
{
% g6 k' T3 X( [' d#ifdef __WORLDSERVER0 g3 k3 w/ w( y+ ?
CUser *pUser;4 Y- h6 ]8 y# `' |! x' _
pUser = (CUser*)scanner.dwValue;
3 X' |8 C" q% {5 a) Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 C& @/ C: U/ P8 `5 fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( W: _7 o& J' O/ J7 j$ f. Aelse
3 S) k/ C+ a! I7 VpUser->AddText("你还未达到重生条件!");
5 F; S. S% J$ u% Q#endif
- |$ ^6 _4 g1 p- R( Ureturn TRUE;7 ~/ w4 Z3 M* R
}
- S$ i* ^9 s6 D/ @% i# n* H
; W( ^, T: O2 @& i' J" c- Z5 U! P q$ z7 z
* d, w3 M2 h% @: B4 e
1 K! x7 C5 W2 l! f* W3 \8 o( V& L |
|