|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' @" B% y$ T7 o P$ K" ^3 q" @8 U2 c9 y# F, q0 Y3 W
Mover.h
?' ]3 k& x/ d4 T4 P代码:1 Q: }' ~" |/ ]9 |+ c1 u
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 e& ?5 G8 k- A" o0 m' O, U2 U* {1 m& e4 C
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 c. W. n8 [* `0 Z- T
1 W0 g6 B' f1 y; P
然后你去mover.cpp添加5 a# `/ n# _. T' c; ^* _
0 P* }% e# o0 b$ r; w1 C. f代码:; J/ y' q3 N( ~! g! A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
, k2 h8 S; ~5 M- R6 i1 E. \{
% s! o/ }" o: w#ifdef __WORLDSERVER
& M. n! d5 T5 \$ \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, o5 }. e% l6 l7 }$ k7 ` MoverProp* pProp = GetProp();1 e3 g" E- ]( f2 I" n1 U: @8 C! a
if( pProp )3 j2 b+ q7 j0 M; k. O! f
{
5 K7 C% A: V o8 J7 t if( nJob > 0 && nJob < MAX_LEGEND_HERO ); i1 x* ?0 K) e1 `0 E( X- Y9 ]( W; [
{8 v0 O8 T8 ~( ~8 K( [+ d
AddChangeJob( nJob );
2 R- ^: R3 I9 B/ {: x" F% i }else{
8 r/ A1 q* s3 C5 h( Y return; a9 ?$ D* D! W0 n
}
& s& g: g* z# c* j9 | int nPoint = 0;2 f$ `0 c5 |$ I2 ?8 U
if( m_nJob == JOB_MERCENARY )
' j8 M% B! `! Q8 X0 j nPoint += 40;
7 O Q) w/ t' w( Y2 a+ n; m0 A else if( m_nJob == JOB_ACROBAT )5 y% [( @" e) G
nPoint += 50;: \6 ~0 N2 L" K) k; z' Y
else if( m_nJob == JOB_ASSIST )' b& A& @0 {# R+ \5 ?) R# ~" r
nPoint += 60;
1 s2 F0 z4 v; B* e4 K else if( m_nJob == JOB_MAGICIAN )
/ O8 c( g- o) M" R1 ^# y+ } nPoint += 90;3 b9 J5 w( U# {3 k" h5 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ L# H! W3 W9 h3 {6 Q nPoint += 120;* L0 o: H; a& s) n9 u
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 O: W' e5 r4 C- J, v5 j
nPoint += 150;
0 Y6 C8 ?' `1 `0 M4 N else if( m_nJob == JOB_RINGMASTER )" u9 @% _7 r9 t! U4 O
nPoint += 160;
( m, K/ [, A/ q# _. p9 Y0 A" b else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# ~( P0 y: M# \" S' O
nPoint += 180;
/ { P& _& M& q else if( m_nJob == JOB_ELEMENTOR )
: ~/ p i3 H+ J+ [* L nPoint += 390;' y1 W& f- X( M4 T9 ]: Z r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )" ^. H6 F6 v" o+ m' V
nPoint += 120;
( g1 r+ v) L8 ]3 @3 L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) I/ c9 Z' U. U! H( w7 ?# C" Z
nPoint += 150;: A7 \) S9 B) r/ n2 S, y
else if( nJob == JOB_FLORIST_HERO ): \9 n. `) k' i# k+ B
nPoint += 160;
Q& Q3 u+ d* |3 H6 |. ~ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
( n* N1 v% [$ h% A0 p/ V# I nPoint += 180;- j/ ]! a# x: \8 V
else if( nJob == JOB_ELEMENTORLORD_HERO )% y. q1 u4 V, [2 F( V7 D3 _6 V
nPoint += 390;
- U2 r/ z" J4 ` _3 Q/ F. p2 K, u* C" f7 W, W
AddSkillPoint( nPoint );
u# ~$ K5 u4 S+ ^5 `5 B: q m_nLevel = nLevel;
5 T2 r8 l% H4 ~& J, O4 `- w0 ~( T6 U* S( Z" n. K$ o! J8 W! o
SetJobLevel( nLevel, nJob );
" r! J% {0 G4 p+ \" A4 F m_nDeathLevel = nLevel;5 p2 w# | u5 a% I* M& p3 L( J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& T) n& A7 _& q. ]0 x. g
if(IsMaster())# E% W; r8 D+ v; W7 i. h+ z
{
% _6 `8 Z# t0 K" o, d& b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ L% f1 G& M) C7 |
if( nLevel > 59 && nLevel < 72 )
" i3 V& }0 `, y# C dwTmpSkLevel = 1;( |# x" l' Z! M8 Q
else if( nLevel > 71 && nLevel < 84 )
. o; F }0 j# m0 [) m; x dwTmpSkLevel = 2;
1 W8 l3 J7 g, i# V0 f else if( nLevel > 83 && nLevel < 96 ): {4 S/ O# ~0 O* d
dwTmpSkLevel = 3;6 J. \/ J& |; |$ N, b! ]3 B
else if( nLevel > 95 && nLevel < 108 )
* [ ~% A: @6 L+ c5 e6 g dwTmpSkLevel = 4;
) b$ G7 C$ C( b6 E else if( nLevel > 107 && nLevel < 120 )
7 ], `& U U ~3 w4 H+ x; c3 K dwTmpSkLevel = 5;& `& ]! I n+ T# B+ g" Z% x3 F
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # P7 e0 q& v8 H, L6 n
{
7 g N: S. [8 {3 H' D B6 X LPSKILL lpSkill = &(m_aJobSkill);+ [8 a/ t6 [& t; y) ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 q) o Q: y* S( i, f- S
{
1 _0 J! x" _1 M/ R. Q' b- j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 _: x/ [" d. A8 s; @! o5 u2 b1 n
if( pSkillProp == NULL )
( X" u9 S0 |! P+ k continue;
2 r u5 E7 A3 ]0 _* ` if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" s4 j# k$ P" u6 z! \; ~& M9 x- L continue;
3 \2 L* C0 `3 g lpSkill->dwLevel = dwTmpSkLevel;+ p# s2 E2 |4 @* v: H8 D
}
- ]# {. I% h( z" L1 \/ z }# q& n/ U. \5 ^; s* m
}
. L8 ]! o. g0 V5 A else if(IsHero())8 e3 @0 |9 @# \- O7 X2 h: J
{
- N. x: Q3 m9 a) j for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 e% E) G& j4 j% r
{ S: l5 p1 @: T4 |* f
LPSKILL lpSkill = &(m_aJobSkill);7 y& c m; y6 Q; I. C1 D \
if( lpSkill && lpSkill->dwSkill != NULL_ID )
B5 J2 Z- G) T+ U: @6 t {
+ ~; B( L1 Y1 X1 c8 _: n1 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : d4 n9 b, d% H8 \7 s6 ?4 R- p
if( pSkillProp == NULL )% r0 h3 V- O. D9 y) y1 ~ z8 d& _- \* A
continue;
~$ Q# f6 E' s: Q' t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* l4 h! |% M0 v4 E; m0 C& d" d
continue;2 |! `( ^9 g# C5 {4 Q, c; g6 x; h
lpSkill->dwLevel = 5;
: d# x" }6 u e/ r/ ^ }
- q( F" y$ S4 G: T! j( W }; S+ ]. b& |1 G- S
}4 d" I4 k0 l; h5 e$ g0 A
else if(IsLegendHero())4 o: n& w' c+ _" ^* O- t
{
! m3 S) _* B* h% W* C8 g for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 P/ t e; H- G3 J { , b, E9 I# G o# [9 K' e* [
LPSKILL lpSkill = &(m_aJobSkill);
7 ^% X h- t2 I$ B/ P- r* o: M' [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
, Z, L+ T( ?( A4 [1 ~% I1 o4 L {
* W) k- ?4 U5 z5 o7 K* P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 ^6 r9 g3 V2 a( a if( pSkillProp == NULL )
& d) W' s1 y) m- j- E$ c7 V continue;3 o3 X7 _" N: ^7 u' {, T) T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 m+ D9 {2 {; X9 b% ? continue;
& @: h& j0 b0 Y& l lpSkill->dwLevel = 5;
5 c2 ]' j2 M% R- x' d& K }+ T' Y+ Z& v& i& \! a3 R2 f
}1 Z) I5 ~% Q, b
}
. ^5 H% S/ E# B6 P& _4 X" t4 W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, G6 j; J5 G4 x" V if( bGamma )
9 ]( p" _ r& t8 m8 U" Y, y8 c% O {
& i; N$ h. |3 ~2 v9 f$ m- l m_nExp1 = 0;
# G* I; R# T# b. s6 U. i0 c }8 A1 M6 k: p( Y$ w6 }8 c
! y* W8 g# r( Q& }4 Q; I
( (CUser*)this )->AddSetChangeJob( nJob );
0 ?% T L8 m# p" G2 O. H g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );" Z0 i( d0 f/ b
/ U" t- ?* K, b8 Y. G! B
( n% F. X# f. C R#if __VER >= 11 // __SYS_PLAYER_DATA
|) C9 B9 n* b+ ~* j: S" O g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* }: V: ]6 z. [; N$ Q4 \% w
#else // __SYS_PLAYER_DATA
0 ]1 b. _8 i4 m( b% j3 h" @ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );3 m+ E. F4 ?( r7 b' d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' v( F% m; a% Q
if( m_idGuild != 0 )) e: ?: T, n! j V4 I f$ F6 t1 @
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 L3 ~' Q7 G5 I' k* {#endif // __SYS_PLAYER_DATA
0 ?7 Y" `- O1 u8 Z) G" D1 C6 r SetHitPoint( GetMaxHitPoint() );
+ S5 k# K0 F: Y$ I% Y! B SetManaPoint( GetMaxManaPoint() );5 A; v X/ B B5 ~
SetFatiguePoint( GetMaxFatiguePoint() );6 C/ \2 c& M; C
if( nJob >= 1 && nJob <= 4 ). c6 @. z, r- S
{' B* n* R$ x3 H) _- G1 k# i
m_nStr = m_nSta = m_nDex = m_nInt = 15; S9 Y4 b8 u5 s6 p* Y0 b, K
m_nRemainGP = 28; M" p# G: a( e# P" a5 _& n) Z
}. m3 l9 U* R5 C, D5 l1 c3 W
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 m' ^, S$ q e6 c! M
{7 M* T6 }) @9 X
m_nRemainGP = 118;
$ B5 j# m, }0 V //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
# `1 \7 n, M0 _ m_nStr = m_nSta = m_nDex = m_nInt = 15;7 I4 {' L0 D/ c. z ^7 x a
}
0 }. n$ q ]4 [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( `4 b; w/ A9 j: O- M: W {
" t3 d4 U* b b( D CItemElem itemelem;
. Q$ P) w" b% N, ]7 w itemelem.m_nItemNum = 1;3 K, _+ s1 H, H! i
itemelem.m_bCharged = TRUE;8 W" S9 A) X2 F" ?& {2 x
BYTE nID;
! s( R, n ?+ j. H, P: B# x, T3 l- _8 g2 }
if( nJob == JOB_MENTALIST_HERO )
, Y( K) n% J8 V) W5 i' g itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- H* \" Z# m1 ]8 @1 F
if( nJob == JOB_FORCEMASTER_HERO )
! f* b$ G& q5 F/ ] itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) n9 i0 U7 A7 P4 m
+ g3 Q8 X: f# n' v& O9 } ( ( CUser*)this)->CreateItem( &itemelem, &nID );& F- {$ t# p% s* d% o
}8 Q9 f# W# [/ T( }7 w
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- g+ {( M( f( h- Y/ n% u! x" V
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
0 m* k# ^& a, n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, z8 m/ \( `% C6 Y2 j /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- c1 y5 Z5 D" G- Y ( (CUser*)this )->AddTaskBar();*/
! O& i2 g, H4 X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
) Y6 X9 B. j5 c#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 ~$ b8 Z1 N& Q7 { ((CUser*)this)->CheckHonorStat();* W8 V5 X& i2 [! t/ f; `
((CUser*)this)->AddHonorListAck();' q/ S3 s+ |3 I1 O: X9 f
g_UserMng.AddHonorTitleChange( this, m_nHonor); p6 o, j2 F% z$ Z: V, S
#endif // __HONORABLE_TITLE // ′Tà?& ]% f, p/ X# w$ T
}6 w3 u+ p& W7 T- m8 R; |$ q; Y
#endif // __WORLDSERVER
v. b+ d. r- V& V}
9 { R4 u, w+ O4 F' L
- g% u( T4 p2 P9 @& k然后你进入functextcmd.cpp并添加以下
& K2 w1 p7 b X2 i) ]6 C G, R# o- v, {3 h' p* F
代码:6 x- ]" a' s% O! v6 y' B8 b$ ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 m. \ Z8 @# k8 I7 ]9 ]* P下面插入/ Y B6 i G5 Y8 Q$ z* A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 L$ m8 x: g O+ l7 f! M
6 X; }( d w9 ~9 _0 T2 y
然后你去
) t& _# K$ }" v% u0 o+ q# c; U1 o: _$ P* S4 |) h. B( T
代码:
& E+ T! j9 k& X5 @ H$ J, p* w代码
# _4 n( m- b$ y W8 _2 P, lBOOL TextCmd_ClearPropose( CScanner & s )
$ u, b: e/ ~! h1 o{
; u6 `1 [# x# t3 k! t' z1 c# d9 n, w#ifdef __WORLDSERVER; ~( n# s2 f0 M' m" H# Q
CUser* pUser = (CUser*)s.dwValue;
/ F7 G, g$ X8 U. h g_dpDBClient.SendClearPropose();3 ^4 B3 k) S. b1 b; F! _4 ?
#endif // __WORLDSERVER; y) J9 O3 {! s1 Z L% \
return TRUE;: N$ k, r' W; O
}" D3 |& ~7 M1 c) J/ h# `( u# S
下面插入
2 h+ M* v, h' ~2 y, f; xBOOL TextCmd_rebirth( CScanner& scanner )- S; T/ K( a3 K0 @7 ~7 E' Q
{
. Q' A2 v# H" B" h( J( j#ifdef __WORLDSERVER
2 M% ?4 o) g- a! }: ` _! nCUser *pUser;3 [ ~% k2 n1 g/ C4 C0 _; ]
pUser = (CUser*)scanner.dwValue;( t& k D- @' g
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& ]8 z7 e' T6 g0 r
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( s7 p2 q! r7 y8 v) r0 }) Xelse3 X8 `1 P+ F Z4 u/ H- H" j
pUser->AddText("你还未达到重生条件!");
8 [5 G, q0 t$ j#endif( P1 i) y# @+ c- A( l, q1 h! v8 [% Z% U
return TRUE;
2 p( ^8 B, t6 t}
; z7 L. T( c# W$ T0 o+ o r2 f
' I# @2 F0 l9 I3 q/ C$ s+ L
* q4 g, T$ S1 @8 h" d5 m' |) l) S1 s1 o0 _9 C1 c# A* X
1 O6 p7 i+ H; n8 B# I O* c+ z5 W
|
|