|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
* l4 d. D3 H! C/ A5 x& M+ a9 H+ | m: x4 [; r6 A
Mover.h+ m* G6 E- t- N* I
代码:- j& e+ r* T6 f, v
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- \) S" n) R, x+ z% P$ t* u
' U* X8 S. F1 g) g' w% u1 w下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 i# J d7 U8 w3 h
# y3 e6 R7 [2 N1 V; `) e2 d然后你去mover.cpp添加, D: l) k* n$ a% g, r ?# v
! F1 J/ i0 g8 Y4 I
代码:1 t% J9 s9 V5 k- V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) R! K/ C0 W# l2 Y
{
; S: u2 |6 W' ~: o6 s0 e" s, t; k#ifdef __WORLDSERVER1 t% q+ ~9 P0 B; }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
! [* L* J' o" U" h MoverProp* pProp = GetProp();
" k5 |/ n* [+ h! d6 b if( pProp )
5 x5 h& L9 G0 k {& n( c& V$ o1 P* V8 v& ]+ [ W
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 _5 n* Z6 i: |2 k: z1 o0 N! d
{! c7 t, W& s2 }- q
AddChangeJob( nJob );" V$ H; m+ \6 l. z0 C
}else{
; n/ f! `2 N' R6 C return;
1 J l6 F' W! }1 Q }( A, B! @+ a2 c, G& d" [$ V7 P* g
int nPoint = 0;+ f$ e7 A0 V* E" W
if( m_nJob == JOB_MERCENARY ) \' e( r( l( Z
nPoint += 40;
+ ?! W6 \! L' b2 B" }- H0 t- P6 | else if( m_nJob == JOB_ACROBAT )# _/ y! n0 H# y3 H X2 T7 j% b3 `7 O+ o
nPoint += 50;) ^. j7 _+ c2 T# b( P% W6 a/ P% L
else if( m_nJob == JOB_ASSIST )
1 P" r. i# u6 z. o6 Y/ Q nPoint += 60;, W/ V' M+ @7 y3 R% y/ _( Z$ R1 R
else if( m_nJob == JOB_MAGICIAN )2 M, A1 Z4 `; m; q
nPoint += 90;+ Y, g* ^; \3 N- Z$ \' R5 @
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. ^. g: d4 _4 Z8 ]. c( m! k nPoint += 120;7 G V( }3 o: h
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). C# U( `2 `( }% B& q6 p; \! e7 K
nPoint += 150;, } D; p% {7 o5 ` a
else if( m_nJob == JOB_RINGMASTER )5 _0 e6 V+ Z _7 F& t5 m2 y
nPoint += 160;
/ L; N1 i" e& z8 g# J else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ q$ V X1 ^" B* D% ]
nPoint += 180;" D4 _ `' F/ p- R( J5 F# _
else if( m_nJob == JOB_ELEMENTOR )
9 b+ v+ m1 _0 d8 p V" U. d8 q$ K nPoint += 390;2 ~3 Z$ s7 F- t
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 X4 B& j3 L. P, X nPoint += 120;
$ N" F8 t3 i4 }* A2 B else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! Z3 o1 ^1 ]4 ^+ O+ l& s nPoint += 150;+ @+ ?+ J5 u6 B, W! J, H
else if( nJob == JOB_FLORIST_HERO )
% \. E, C6 |. o+ h: m nPoint += 160;
. V' X/ ~" b) Y$ V) [8 Y9 `4 e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )+ t2 U- _. L9 M+ o- I2 u
nPoint += 180;
2 Y7 L& A& k2 } else if( nJob == JOB_ELEMENTORLORD_HERO )3 I# X! t4 z; m; X. O" a
nPoint += 390;: U, C7 S' [! ]+ {/ l& m) \
( M6 e' D4 L! k8 Q# m AddSkillPoint( nPoint );
3 C( C7 }. m* f; c/ l m_nLevel = nLevel;( o$ Z' ?% X. A" G H) @+ R( A
I$ u. n$ O8 t9 O$ J; a SetJobLevel( nLevel, nJob );
2 O' ?, X8 N2 X3 k( T% f- r+ T m_nDeathLevel = nLevel;7 d5 S5 i. ~- v$ Y( H$ p+ X5 x5 Z
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 _! i0 x- t" @ T3 W if(IsMaster())
7 U0 g3 U9 E. @+ t, e5 C {0 E. k8 V: A" s! W9 | d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! e$ d! l2 L: b* I5 s7 ]* i
if( nLevel > 59 && nLevel < 72 )7 U6 B( [8 m. A2 H6 F4 P+ d1 p
dwTmpSkLevel = 1;
2 G5 f) B) p) y else if( nLevel > 71 && nLevel < 84 )0 Q7 Q! o! `% {2 F. V& k2 j
dwTmpSkLevel = 2;
7 D0 {& G3 [4 A$ D, [9 Z8 I4 m9 Q- A else if( nLevel > 83 && nLevel < 96 )
* [ O. [" g* j" h8 `4 w# A dwTmpSkLevel = 3;4 \ w( H- G* E6 z( f
else if( nLevel > 95 && nLevel < 108 )( X5 q( m) m; Q5 _' o ^: c
dwTmpSkLevel = 4;4 b/ B p1 V' K; O7 n
else if( nLevel > 107 && nLevel < 120 )/ H, P* T: U' u2 i
dwTmpSkLevel = 5;
7 Z2 i1 r2 k% e/ n for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! h5 w" E3 S5 f3 h
{ ) ]9 A* b. _2 F0 d) w
LPSKILL lpSkill = &(m_aJobSkill);3 K5 C# L; o3 \" y' t/ X7 Q8 Y$ S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" v- F; w/ ]9 H) \, C9 |4 \' @ {
) A" Y) U B5 Z0 s8 x! G3 Q2 l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 u c$ M D! b) L' b! Q6 [
if( pSkillProp == NULL )
8 q- W7 V9 t8 U. E( x2 b6 l, ^- t2 V8 }! _ continue;8 a7 E9 W4 `- e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ r+ m2 N) L5 Y1 Z; X& p# \( { continue;
! n* Q, O1 Z/ J7 o$ \ lpSkill->dwLevel = dwTmpSkLevel;- r' Q" I: P7 h5 j, y
}- b; i8 s& \' S* C
}) o0 _. b' f% ]
}
) d" M* e: E1 ] else if(IsHero())% O; c+ g9 o0 s; N; z4 C; i) H
{, _& i3 [$ l1 Z0 ]" m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ N5 m8 I( `7 y8 @8 S { ; N1 b) D& `) D8 L9 O9 H
LPSKILL lpSkill = &(m_aJobSkill);) M" O2 k6 R( ^8 A- j
if( lpSkill && lpSkill->dwSkill != NULL_ID ); T; X% j C* F2 ]6 K+ t% l
{! O6 q+ r$ c v" g* E2 }" I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; G' t5 P3 ~; d9 L: o
if( pSkillProp == NULL )! U6 V$ I7 ?1 e g: m) W& s# d
continue;
; q- e7 H& h6 B! e6 U3 p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 y& T& @. Q1 Z8 n) `$ S& N
continue;
. w4 Z2 P7 t3 U; g b# Q- U1 G lpSkill->dwLevel = 5;1 p8 I9 A8 M& j# F
}
/ u6 O3 e8 g+ y2 J' C3 w0 O }
% i. O# q) x4 L/ Z }* L2 X; b4 Z g, R
else if(IsLegendHero())$ f( c! V K8 T' [2 S; A8 h& ?9 w
{
& k5 e0 t; B9 A$ D- D; q+ X# F for( int i = 0; i < MAX_SKILL_JOB; i++ ) . v% ]$ ~. }2 j Q' g9 o( q+ s e
{ 3 d' [( c1 G6 f. E8 h
LPSKILL lpSkill = &(m_aJobSkill);
9 L4 ]% P7 ?: u6 `1 R6 m if( lpSkill && lpSkill->dwSkill != NULL_ID )" H: ~, F B4 P' z! j" Y+ Q: G
{0 @4 l7 q) l% T$ [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 g! I& k6 Y& r5 S$ s# [ if( pSkillProp == NULL )+ S8 G; Q! v* N# W* Y
continue;
9 d% ]7 c& I7 g+ S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 e: o! O+ Q( A2 t" x continue;! |" Q& U. X" s. ?
lpSkill->dwLevel = 5;
9 T3 E. ?( z9 G; D# U+ C }
' F7 h- {. D! @# C9 U) W/ k }' T* a; s+ W- l; w' u( R
}( G, N+ L+ }5 f
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: A% X8 b/ B( Q' z7 A8 a w, D+ Q7 U
if( bGamma ), K$ U8 M3 B9 Z N
{
3 J) Q& n; O$ X/ T m_nExp1 = 0;
" f* O# g/ B7 {1 d }
- Z4 x" J q+ a- ^- [9 O# V, n
, [( s+ x7 ~( n9 t5 m9 D6 x, E+ k* @ ( (CUser*)this )->AddSetChangeJob( nJob );
7 @$ F" z7 j) } J' j" D g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- ?; e/ R- u6 R$ } ~
& O3 f4 s6 y0 P; K- w. \& \- W
5 \: o P- X6 g+ j" L, L
#if __VER >= 11 // __SYS_PLAYER_DATA- s/ F8 d9 \, d5 M. q
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: Q" q$ ~; o! l; M) O6 O
#else // __SYS_PLAYER_DATA/ y( h, Z" n' t- r8 A& ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& U1 S% y7 C( x7 h' P* k6 F* O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ @# h# a W8 ^
if( m_idGuild != 0 )9 X8 V) I( o, ?& L( e& p3 j+ v
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% t7 f7 f' p* a' Y- e( v
#endif // __SYS_PLAYER_DATA/ h4 i% `4 a1 O+ x4 B! J) E6 l
SetHitPoint( GetMaxHitPoint() );9 R) f2 ^9 m' N9 j
SetManaPoint( GetMaxManaPoint() );
; E, S5 j* {1 A+ z* d8 S" [6 h/ B( \ SetFatiguePoint( GetMaxFatiguePoint() );4 r+ p; T" ^# G# W
if( nJob >= 1 && nJob <= 4 )
2 E% Q# I3 _. K. |8 X7 H5 Z {$ C/ o$ Q/ {: B0 [1 v5 G
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' V/ `" O4 a' t# t m_nRemainGP = 28;
% h0 x2 _+ g2 ~8 F" G* y# B }" {; o7 k# \& X9 F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
5 n% z4 }4 Q5 K# Q. m' I {) o! M1 ^# M ]
m_nRemainGP = 118;/ S: \1 H. N/ Z( i
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; e0 [9 O4 C# O. V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: Q6 ~6 H7 Y. z: A& N }2 ~ v0 s% B7 N! ~: H3 l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 T7 @) G6 F( K {
2 @! q% Z9 D8 f+ l* m7 | CItemElem itemelem;
, P5 y6 }( p5 e; R8 C+ j- X itemelem.m_nItemNum = 1;
3 p+ s) f" e) H% ` q itemelem.m_bCharged = TRUE;
5 ?3 C$ W$ Q; s1 n2 N! c# ] BYTE nID;& ^. s5 ~8 J( e7 g. _
4 G/ n) k( ~5 \6 I8 k
if( nJob == JOB_MENTALIST_HERO )% E3 a& E( N" }, F8 R8 z S2 K0 p
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; x' G2 E" ~5 |0 w! @/ N; S
if( nJob == JOB_FORCEMASTER_HERO )$ C: X7 d U ^
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;- R3 W0 Q4 h' b* c6 b, {: y
5 i* W6 W& n% G7 } ( ( CUser*)this)->CreateItem( &itemelem, &nID );' H }7 {; J; p n1 {$ m) c1 d- C& x
}2 e- r! w8 t" u+ S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% b/ v) U4 _3 N8 i, J2 D ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; U3 r; E- q$ x1 @% O$ q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( \0 z5 D* W' p u /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ i. m# S5 z- X! j' ^
( (CUser*)this )->AddTaskBar();*/
4 T+ S9 t7 y: o! [5 |& z/ ?) e ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 O( O5 y! A3 ^5 z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 h" W) F# d9 k: y6 x( ]
((CUser*)this)->CheckHonorStat();3 d' a; W/ ^" P* \
((CUser*)this)->AddHonorListAck();
/ ~) R! z- R, V, u2 ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 Y1 i- ]3 t! [3 v1 Y' E#endif // __HONORABLE_TITLE // ′Tà?
- y. a$ C2 } u+ y t7 R7 K }
$ _6 j/ Y' T: c1 b( C/ V( N2 H#endif // __WORLDSERVER
7 y9 n/ n: I2 I; ~}
6 T) @3 u( a5 E1 B" v' z3 F
. S" G0 M H: r# [" C. c然后你进入functextcmd.cpp并添加以下
" I. A3 j# v' J \3 L; I& T* L5 j8 t4 l3 g
代码:6 Y4 z z$ n% L/ q% A, u
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: d7 V. R. m, a1 R& s下面插入
. l" G# @+ C0 N% RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ n( r0 Z1 n. @/ o# w( U. n4 Q- r
O7 n" P+ z1 a) G- {) D然后你去/ T3 V4 Z( [. h j5 g
2 t- X9 d. R x( J3 I3 c
代码:' t2 [1 L; U2 i6 L+ i2 l
代码. k% e+ H N) L( M8 O3 @! Q
BOOL TextCmd_ClearPropose( CScanner & s )
3 b0 C- o% Z+ M4 S) E# o. n{8 l4 Y2 W! J2 d2 h- z9 q! u
#ifdef __WORLDSERVER7 `! F3 i8 l$ b2 X
CUser* pUser = (CUser*)s.dwValue;# o* W1 v4 u( _& o. E
g_dpDBClient.SendClearPropose();
: C- o& U( L! J& J" o+ q7 T+ s/ ]#endif // __WORLDSERVER r# C2 l$ A) M& X6 L; W& H
return TRUE;
* U7 B9 q3 T# q/ `* A4 U}1 B/ _! P: {6 v* q" \+ B3 a
下面插入
8 t* u9 j" t- A1 @" [% WBOOL TextCmd_rebirth( CScanner& scanner ). G+ i! s L" ~" W: }1 p
{
- `5 W7 t E% ~' w6 W3 s- x#ifdef __WORLDSERVER9 j7 \$ ]; b$ E
CUser *pUser; T+ x4 V* s. P' c0 b! c) ]
pUser = (CUser*)scanner.dwValue;( n% x9 [+ |" q& ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 y0 h/ |* f1 s( V; _3 @' S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); h4 X& k+ o3 S- h8 X8 K
else5 L6 ]0 \3 L8 J8 p& R
pUser->AddText("你还未达到重生条件!");
( L. [6 e" I" Y' N0 m#endif
! d% e' x5 i7 }& L9 d, vreturn TRUE;* b" W+ D# ~& h% x$ X1 L2 m
} + Q, m i; A8 M: k
1 ~& c1 C# `; G9 C
2 I- K1 i s: g% I0 L; [$ d3 d8 y! {; e7 d, o8 ]
# S1 I' [4 N& w& {& p7 F
|
|