|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ E7 g. }4 L3 H! h
( L, d- j+ w- }2 B# C0 L/ OMover.h
! Y( C) T; E I7 u) Y" T代码:
% T% d) B4 a: b, Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü) s, q, K9 r5 H3 b' y. {- u; W
) w. B% }; i, n9 q" J% u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & Z: l. y& B. y/ v& x3 S9 y
- q z1 M" F# K' F然后你去mover.cpp添加# u6 P4 j2 V" D# D$ a/ u) B
/ F2 j7 ^, |1 n
代码:6 }% p- c2 }. s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: R2 O# [6 c4 g+ ~! c{
0 s2 S1 \& W0 ]/ y#ifdef __WORLDSERVER
, ~7 Q' q2 C9 l# V // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: N: O/ Q/ ^# T MoverProp* pProp = GetProp();
/ h2 Y4 I: N/ Y; s% z3 q# E6 x if( pProp )
" R$ J3 T2 r/ @) F9 n {. A6 ~, |% P3 Q8 l% D6 z* [9 X
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! d+ g# J) P" d/ B% [ {
1 |7 m) E9 [% u) N8 q AddChangeJob( nJob );# u4 [" i; D: h
}else{ g9 E; u; J- B1 H
return;
5 ]% J8 k* H: U2 E9 H }/ y5 h) m. K: H5 y8 m
int nPoint = 0;# {# r. f8 t. S6 B; j
if( m_nJob == JOB_MERCENARY ). B( k+ P) Z b. ]( J( `: a
nPoint += 40;* U* [, k7 v+ J9 U* n9 I
else if( m_nJob == JOB_ACROBAT )# P! o" O" B% y- Z9 }5 R
nPoint += 50;
. e; D \$ Z4 u2 p8 ^# Z) H else if( m_nJob == JOB_ASSIST ): j5 U7 y5 c n9 A" f
nPoint += 60;8 O. X4 o2 ~4 a4 v# W! G O _
else if( m_nJob == JOB_MAGICIAN ). G0 r& W R0 i2 z1 {6 @
nPoint += 90;* @$ Y' n; {/ b' J3 ]4 w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 k" m& W) C4 ~4 [
nPoint += 120;1 }( B& w" D: c! l }/ h! |1 u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 c) E \& A+ {; F. P% E& x
nPoint += 150;! b/ E% |$ V' ^# ]+ C2 Q, k
else if( m_nJob == JOB_RINGMASTER )
' `( w0 S( V3 Q9 a nPoint += 160;: a/ J% O f3 u
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ X& d+ a( [& j" T
nPoint += 180;' H$ G, V- ~, L q) ]3 u: S% d
else if( m_nJob == JOB_ELEMENTOR )
/ M6 t( Q$ ]4 F# C nPoint += 390;
* p* Y- l2 y6 q T+ j5 |: \ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 K! B" j' {8 |. R! V8 `
nPoint += 120;2 z7 v8 P0 L8 Y" V3 V0 M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! [. N* K# `) j5 [$ S: h
nPoint += 150;
- o- s7 |7 I7 L, r. O; V else if( nJob == JOB_FLORIST_HERO )
# c4 D% A( [' M: {8 ^0 X6 }) J1 j nPoint += 160;
6 G0 H' z3 s& h* Y- K) K) {. ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), h6 S6 x4 h( b7 o, C/ O
nPoint += 180;
% d( R* m. o9 D/ v1 Z else if( nJob == JOB_ELEMENTORLORD_HERO )
4 P y' S4 y/ c nPoint += 390;
6 y$ h8 t/ B& A- U; W) \2 }5 G- b
AddSkillPoint( nPoint );
8 E' ~. X0 z" R m_nLevel = nLevel;; G9 t9 ]9 |' N1 O: Z. J
1 A+ x/ ~" ~2 B8 \* H6 W
SetJobLevel( nLevel, nJob );
- Q# N) R5 p9 w! n, ~6 b- T m_nDeathLevel = nLevel;* j& J1 U8 }& b5 L) T' n6 {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ B. {! q' _) b if(IsMaster())
[, [9 D$ p. I {- E: g5 X' S8 L- m% B2 s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; Z& o' k1 O' ~
if( nLevel > 59 && nLevel < 72 )
& y5 \1 Z7 u! X dwTmpSkLevel = 1;
5 `/ d! d y) U; B else if( nLevel > 71 && nLevel < 84 ): v8 |3 L3 L3 _' Q$ S( x& B' R& w
dwTmpSkLevel = 2;2 |$ w) i1 X, R% V
else if( nLevel > 83 && nLevel < 96 )
8 V4 U9 k/ d) \$ b' G" |; B! N) Y dwTmpSkLevel = 3;
/ `7 O* m/ V7 V. V8 Z else if( nLevel > 95 && nLevel < 108 )$ p `/ w. ?. H9 r t! z
dwTmpSkLevel = 4;, |' C# y8 J! Y/ r8 Z
else if( nLevel > 107 && nLevel < 120 )) f' K! K: |7 i) E, V
dwTmpSkLevel = 5;. E6 H) k* W$ W8 o5 a; Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& v" D1 {( h$ I; r# H4 }0 Y/ S { 9 _9 r4 q- s( S1 j" M2 I
LPSKILL lpSkill = &(m_aJobSkill);9 U' e2 B4 B2 x* `# _4 L2 s; v, g( a
if( lpSkill && lpSkill->dwSkill != NULL_ID )( P$ h, D E. W
{0 N7 v- |' ~; L3 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 r, n" F3 d& G4 x" w$ y f3 E9 k if( pSkillProp == NULL )7 h* J9 C" D, ^ U( `- a/ h7 e
continue;' e$ F9 f Z8 }8 d, X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 e8 l* Q. @+ ?! X! E
continue;- i, T/ A+ [7 K2 q. D# G: S" D
lpSkill->dwLevel = dwTmpSkLevel;
( _/ s5 u. k0 I$ b7 x/ H/ T8 j }. ]0 \( K4 Y/ W' l
}) Y9 n9 y* D4 `8 o+ n
}' X! S. A6 S$ Z. k/ A
else if(IsHero())4 k$ s* v5 I$ r% Y" F! p
{5 R8 `' n: F# g4 G s
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ a% e, o# k- H3 C+ H8 }
{ 0 F% S/ E1 h) j/ n: ]8 g; [5 P
LPSKILL lpSkill = &(m_aJobSkill);6 a( t: [$ f6 k
if( lpSkill && lpSkill->dwSkill != NULL_ID )% m' @1 `. Q! P
{
5 r" f+ \/ q( d0 p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( n' o+ q4 R" B; y2 ?4 t" k if( pSkillProp == NULL )7 A- u, Q- ~) j$ F- K* }, K$ o5 v
continue;
k" R5 T7 J/ d% N6 z) ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 q; W4 k( P+ P# w
continue;$ M4 X1 M8 A1 B6 ?7 i9 ]
lpSkill->dwLevel = 5;
, j6 N3 g+ [* A2 a% W" x! a }! w- \ {" A; U$ C( ]
}4 [6 a r+ P9 K5 l6 ^
}
% Z% r" m. T7 D) D. D t. o3 r2 L else if(IsLegendHero())7 J% u$ w7 w. ~6 F1 d- X% J7 i% r
{2 H* v8 T. j0 I
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) h' V3 D( t% ~+ I4 I) n. ?
{ 8 I" d9 l& e$ m6 Y7 M" [
LPSKILL lpSkill = &(m_aJobSkill);
; c5 p4 P- u' `8 d/ b5 H" {7 E; l if( lpSkill && lpSkill->dwSkill != NULL_ID )1 d5 [/ V- v! X5 x, b
{
) X4 k% ?" J% }6 [ p+ I. ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ I4 \) H* @! f' J3 d if( pSkillProp == NULL )
8 ^3 S. m' N. b3 D continue;
: P! J, K0 D5 I& k* W( ?4 Z8 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ q2 O, X# v$ E$ j( g% T
continue;
, k& _. q/ H# s0 a5 o lpSkill->dwLevel = 5;
+ G3 i7 Q+ T5 E* f) k* D, o }
& i9 s4 _. M8 t0 D- y }
3 v- T: M& K/ W+ L% l) x! J. ] }3 |, j g4 C5 M8 o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 z* h l4 D1 F( `" Z if( bGamma ); [0 e# x8 o. M5 |
{
4 z+ a$ _- E0 q; d5 P( c m_nExp1 = 0;
* R, F& ]( h- q- D8 `% C }
7 k4 ]) ~1 Y" B8 m8 F+ e8 D/ n( ?0 a6 [# I% B( C8 G3 F, a& B' X
( (CUser*)this )->AddSetChangeJob( nJob );
! g% U6 ]; J2 Y8 h8 N g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- ?, M ^" ^: O* m
* Q2 ]5 R5 r# Q( ~- q- D% c5 B$ R+ B$ {' f
#if __VER >= 11 // __SYS_PLAYER_DATA
& _" s0 X) u' p5 d, r g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 d7 a6 ]& q7 H, f" K+ k2 A
#else // __SYS_PLAYER_DATA
! s/ q( q# N% W& D5 Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 s' d. J( c6 C* a9 q8 h g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
" _6 R7 k* Q% u if( m_idGuild != 0 ): n( d/ Q. X" ^6 |( @( b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 M+ @" r1 ?. s$ R# S% h4 a7 \#endif // __SYS_PLAYER_DATA
, c7 s+ X: F0 E6 y SetHitPoint( GetMaxHitPoint() );" S3 x$ C9 ]0 j4 A3 G; o9 I2 Z$ _3 f C
SetManaPoint( GetMaxManaPoint() );
4 F" R. f j9 n; h SetFatiguePoint( GetMaxFatiguePoint() );7 `" p3 I' ]9 ~- p% _# @
if( nJob >= 1 && nJob <= 4 )" p# v0 \4 z/ R! [6 y% _8 l
{
) ~0 N! l" x1 S* P, g/ M m_nStr = m_nSta = m_nDex = m_nInt = 15;4 \# I3 _4 `' S' S
m_nRemainGP = 28;
/ |. s7 S* S& b3 `7 E; R& | }5 e% d9 y( O! U# J& a- _9 b L9 E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ m3 h$ N0 m; {
{1 q) w# v" ~7 ?7 i# o1 e$ p
m_nRemainGP = 118;
! x$ t9 U) P5 Q8 f8 `4 L) S8 Z% ? //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
; M$ `4 w# I' _- ^5 J m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 z9 _# l5 \) T5 Q! w }3 y& ?4 p Y2 G5 m" s: Y8 y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ j' L' M5 c; ^; H {
# n# E8 R; B" I CItemElem itemelem;6 h; \, ?. e6 R6 r/ h+ g
itemelem.m_nItemNum = 1;1 P4 k/ D# e3 ~7 A2 x4 m0 v
itemelem.m_bCharged = TRUE;9 W& Z! |! J, ^+ o$ u& b2 K1 I* _0 B
BYTE nID;
: m \: s8 M% ^
/ d4 r; f& Z; l4 o4 c. I if( nJob == JOB_MENTALIST_HERO )
9 Z) w9 }% N/ X; m7 B3 Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! K/ ^$ P5 D# ^0 h if( nJob == JOB_FORCEMASTER_HERO )
, o% r! l" N2 W itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! u: q; }" o3 a% B
. T+ o3 _2 |% I* ^5 P, f
( ( CUser*)this)->CreateItem( &itemelem, &nID );
) e8 Z4 L8 {; [# ~0 o/ w }1 ?: n9 ]5 d( c. k3 a
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
0 {1 X# w3 y4 } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- K3 o v" K/ C4 ?0 [; ^
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 ^! U1 S" ]6 u Y$ V( v* d' O! y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ k9 e1 x0 L) A9 [. o" H( c+ c. @
( (CUser*)this )->AddTaskBar();*/2 C/ V6 w3 I7 ^/ A2 M# ^! I
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );5 d% G7 D) U6 W
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ r* S( \$ }# P/ } ((CUser*)this)->CheckHonorStat();
7 @9 O* y1 e' K0 z. @: V4 d/ z ((CUser*)this)->AddHonorListAck();
2 U$ y% d/ @9 |0 n g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ F/ b' g6 `7 x#endif // __HONORABLE_TITLE // ′Tà?7 D* z- Y5 `& H1 k# G
}
* m# d, B( A5 J8 r) h#endif // __WORLDSERVER# N3 c& i* u; L5 C
} & o' b: o4 K0 ~3 Z6 p
. h( ?* j: {+ V2 B& u
然后你进入functextcmd.cpp并添加以下
: C T" j+ R" R1 ?/ Y7 }# F
/ c9 v8 ?8 g: J' ?代码:' S: p+ t4 ]4 f' W
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )/ c& O- u' k& q" Z
下面插入
' i% x6 I, S2 X# H9 dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. i. I; Y9 _% _/ C- T# ]+ A4 s
* N5 i F6 p b0 i( Q1 T然后你去" K$ {" O% j" L; b& y, [
2 A* {; _! i! _3 Q5 c代码:
% U% m9 R; h3 B6 [7 {, ?代码; u! p/ S T- N: U
BOOL TextCmd_ClearPropose( CScanner & s )7 S, T% `8 M$ T# c( z
{
5 T s7 P# @/ [ T8 b; h#ifdef __WORLDSERVER
: U; J& n8 x. R/ R3 J/ o CUser* pUser = (CUser*)s.dwValue;
& I1 P3 a. `9 b" u, a g_dpDBClient.SendClearPropose();$ C* M& l6 B: f8 l. c }) z
#endif // __WORLDSERVER D4 t& ?2 T; M/ @; N& [/ q
return TRUE;
: E+ f1 v5 f" c2 K}3 y v- N, R7 l) x' B; Q
下面插入" A3 m! o4 r3 T9 v# n7 N T
BOOL TextCmd_rebirth( CScanner& scanner )' |; U' J/ X. A0 L/ t+ N/ }5 }$ z
{
^ v; N2 b% K+ f- E" G#ifdef __WORLDSERVER
& c: M1 f* y) N; b3 p1 V$ o& fCUser *pUser;
& o* h6 k& l+ P( A# h, B' s9 W b) spUser = (CUser*)scanner.dwValue;
# W* R; W K" g' Qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
v) O$ o9 }7 ]& ]6 J) PpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" Y1 r6 G9 j' m$ M0 w4 `: M
else2 g7 }6 [) a0 O7 f* M! b
pUser->AddText("你还未达到重生条件!");$ ?, s* F8 U# y9 _% {
#endif
9 X: I( n2 u. W5 l0 Freturn TRUE;
, @+ D ?9 g6 r/ s% p}
v0 p7 T( j. f+ s3 h# y& ]' \' m- ?2 X7 \# j, _; X2 B$ j' } R
. w# j M* M5 ]4 G% j: O: ?
2 K) P* ^4 _0 W m
3 z. a7 C1 g0 t$ M% B3 {
|
|