|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel/ g" x* E% S) {9 {
; D$ K1 i, B! P wMover.h" ~ b4 t/ `- I0 _% O
代码:: y: W" D0 v1 b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" T6 O) |8 G; ?+ ?( M- x, ^0 p" Q% g
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% o) R3 y9 ]! R
) B, ^# n1 I8 l+ F- P然后你去mover.cpp添加
& r* T; c5 j2 X: u% A' r$ @$ w
5 ^8 n7 h% L8 D$ a代码:3 e3 b! `% r& W" H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" v( z( C8 l6 }{
! ?7 x( U) y y7 F+ O#ifdef __WORLDSERVER
( |, D$ D: O$ l" k$ m // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. P5 W, J+ \8 Q* J- b5 ~5 _- c/ e MoverProp* pProp = GetProp();$ n4 f/ |& h5 N) S
if( pProp ): ?5 f7 q1 H) _! Y$ b
{) a+ y! \9 D& u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- D' N4 V+ ^6 [& L& R& H {, G! P1 a3 D) r4 z j
AddChangeJob( nJob );8 o( ]: D7 }7 r
}else{1 Q; a% d5 ?, B) O
return;
9 k4 [! x p5 H( A" B# u3 e7 w }7 j: w6 {% a" F. X/ Y
int nPoint = 0;
( u# n# |9 _0 }" A if( m_nJob == JOB_MERCENARY )
! R( x( n. o! R1 ? nPoint += 40;
" Y* W& T, v4 s/ k9 y v8 H1 @ else if( m_nJob == JOB_ACROBAT )
4 k. N, j! I. Q9 n. Y# Y$ Z$ k nPoint += 50;6 g7 j$ p% |3 v& Z5 s$ |" T% y
else if( m_nJob == JOB_ASSIST )
2 Y# }. N% w( R# Y! c* h L nPoint += 60;
* k# H7 p/ L, B2 x else if( m_nJob == JOB_MAGICIAN )' `4 F- A! u- X0 u1 F
nPoint += 90;6 P9 ?) z. _3 E" C: r* t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& h U' j7 h [% S nPoint += 120;
# ]3 m& @% g- e$ W0 ?! S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) A( m* ~/ a* |. W* I, ^# s8 Q
nPoint += 150;
6 z# L' n, I, g7 A, B else if( m_nJob == JOB_RINGMASTER )
; e5 L! u% l6 x nPoint += 160;1 t7 @- ^' c- N9 F
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 X+ J* _& A" P+ A" a
nPoint += 180;
2 [0 z: b! r0 t3 @ Q else if( m_nJob == JOB_ELEMENTOR ), X, \" X' x/ ]1 f f P% ^
nPoint += 390;
6 _6 Q! J! ?+ B else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
8 g" x6 N4 Z6 C# V* C5 t" B0 H; V nPoint += 120;$ [/ H/ v) k4 S) t+ _
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% Q0 i& a* h! p* R* L( }/ R
nPoint += 150;2 v4 q/ s9 Y3 z' W) }5 x
else if( nJob == JOB_FLORIST_HERO )) q3 V$ k6 h! f7 D+ u7 s& v. S
nPoint += 160;% n6 _: `( J* o6 w4 G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, I% j4 R$ p; |0 d! f% f ] nPoint += 180;
0 A6 @8 Y! V" p2 I( o else if( nJob == JOB_ELEMENTORLORD_HERO )
& G+ Q5 M8 m' J O nPoint += 390;
. e2 z8 g) {( S
. j( z% @8 M! k0 \4 y9 N AddSkillPoint( nPoint );
! m: Q+ m' J& C m_nLevel = nLevel;
2 i+ u5 q: Y" Q/ C' M s/ x$ p. Q& N* D( |: J
SetJobLevel( nLevel, nJob );/ z8 n" }% N/ M" j
m_nDeathLevel = nLevel;
( e5 N* Q$ S% ?' r, E a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) [2 ~$ `/ v8 z$ j Q6 _8 F
if(IsMaster())
) F( s& n. M$ o7 h+ J- U% ^8 I {2 @- S" n7 x) e$ ^1 C8 r8 @8 L
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 |+ H& B) Z$ U7 [; w! h
if( nLevel > 59 && nLevel < 72 )
" v0 ~9 U- P+ D1 F9 V dwTmpSkLevel = 1;2 Y& N+ N: W( k
else if( nLevel > 71 && nLevel < 84 )2 `; i3 G9 J, ~! u/ h, b4 X! ~* k1 O
dwTmpSkLevel = 2;2 f4 M# ]6 ^: }6 h3 d4 `
else if( nLevel > 83 && nLevel < 96 )
5 a0 V6 G, E9 O# Z3 `" B dwTmpSkLevel = 3;
1 E8 A( ^* [6 q& @" S else if( nLevel > 95 && nLevel < 108 )- ?2 g: m& Z x' z a
dwTmpSkLevel = 4;# D0 m, E. h( T
else if( nLevel > 107 && nLevel < 120 )
, `; H& _- |$ g2 U+ J dwTmpSkLevel = 5;$ {0 a$ T' @4 l- U* w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 [. i" Q9 M3 v7 O: V9 Q
{
0 k$ v' D% O# u1 g: D0 O' d LPSKILL lpSkill = &(m_aJobSkill);/ @% I5 I* S! q7 R' _, _* x
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 x2 [/ P7 T k/ y
{
9 ^# B9 S$ {+ O, a0 _3 L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 ?% w Z# O; y
if( pSkillProp == NULL )& l, x- L- i/ |
continue;4 p+ x6 i/ Y1 ^( S$ z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): g4 I* { v- n3 b
continue;& X+ F0 ?+ A0 H: i8 ]
lpSkill->dwLevel = dwTmpSkLevel;, y$ K, x9 r' y$ x- r! {
}
) i( L! T" B [* P" A7 a! w4 j9 C/ p }; y8 }: Y0 G0 `8 `- `" c& j0 `. p
}, l2 Z' ` w# k0 B" v C" f9 A
else if(IsHero())- f2 T, N1 {& b2 @# Y
{
. f1 q* V; r9 M for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ @! E3 O4 Y* E {
2 k* X8 H& x1 N LPSKILL lpSkill = &(m_aJobSkill);
! r, N9 r Q! z' M; G6 i: J if( lpSkill && lpSkill->dwSkill != NULL_ID )9 Q) \" x- a* ?7 I
{
, Q4 x: \- i/ L# ~ [$ w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 |8 A. K% i$ G
if( pSkillProp == NULL )) ?* x' l. V* t0 D2 y( h! m
continue;
3 u ^7 H3 m" ~* |) n6 q# n$ d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! s& y% w* R, }, D
continue;4 o, P f% ?& o5 X# R4 a: P
lpSkill->dwLevel = 5;/ h A8 d% Z. t3 u
}
6 d$ u# l+ z5 X }
! P4 t# P0 l4 @6 ]; M6 v) v# z! v }2 o; U. A9 K! G# k/ P% s+ E
else if(IsLegendHero())6 m$ j7 R' J4 J/ N' @- b# N3 s
{
3 z; T i6 d2 R8 B; ~' r/ e0 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 p; w4 m! k$ i { 6 `# F- E0 v" s8 t) \4 p3 J
LPSKILL lpSkill = &(m_aJobSkill);. p0 o, n4 X/ g# r0 m {
if( lpSkill && lpSkill->dwSkill != NULL_ID )- v9 E$ P; q3 ~$ S" i
{2 {, R) P \# I) c$ I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! {- ?; ~! @( \0 e if( pSkillProp == NULL )
t" K" D" h! @: ^# \3 _ continue;% Z/ L9 n$ \4 k) K3 L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) ^& r8 \& H5 ~$ H
continue;
% m* J4 c$ p+ C- s3 {2 Y lpSkill->dwLevel = 5;7 P' X1 _; a8 x- S; {. G
}
! O! c% }; e- h$ L: F5 x }- d+ H: M' T1 f
}! B0 @# m5 {1 W1 z h7 e O2 q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 u, x, j& z4 u7 f1 ]
if( bGamma )1 D: I1 E( f1 R8 i* t) I) P) j5 u
{; E0 |( C! ?: {0 h0 T e6 K$ }
m_nExp1 = 0;/ @$ u! M6 T; a
}
: p2 l1 q* V v) @ |4 h: ^% W2 ?
& ]& Q; L2 e. |7 w ( (CUser*)this )->AddSetChangeJob( nJob );3 ]" w0 O4 {; \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 s# T. g0 z4 I) i5 J
1 L! g) U# i0 W' h( j# `# @6 G4 `
# t8 B2 \! a1 T2 |' @8 @6 S2 U
#if __VER >= 11 // __SYS_PLAYER_DATA
+ c, h' d6 N4 h* y4 U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- V. [- r! ~! i) q5 l
#else // __SYS_PLAYER_DATA
* F5 `& N i" r8 {: o g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 @* Y& d, t& X+ C9 n) J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
0 J# @- j1 k- o" P/ D/ s5 P if( m_idGuild != 0 )
# E* `! Q/ `5 l$ a, q4 C g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
! p$ Z+ M5 ^( A y; S#endif // __SYS_PLAYER_DATA5 `4 c) k# \4 b) F4 ], X) H
SetHitPoint( GetMaxHitPoint() );
, J1 E: x" B5 ?1 j) p4 c7 T SetManaPoint( GetMaxManaPoint() );0 I3 l) m' R" h! m7 y1 c
SetFatiguePoint( GetMaxFatiguePoint() );7 A) `* v4 H2 p! D* B8 k
if( nJob >= 1 && nJob <= 4 )
7 M5 A$ Q" J7 S7 A, [$ t& K {7 |7 N& k% M9 T/ b# G8 B% J( e3 G
m_nStr = m_nSta = m_nDex = m_nInt = 15;- ^% {( q2 g! q% I! E
m_nRemainGP = 28;
- n( M; c2 Y( h2 E- q5 y }9 ]% r( O8 X$ y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. x" f5 ~$ B$ W0 o$ O {; @2 }/ D( z9 h, j/ C5 W& E; F, D
m_nRemainGP = 118;+ T1 L3 X: C1 Q- k
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 b; U7 A2 [* B7 s! ]" X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 q3 Y5 N* Z5 w, W+ t) t! I& G }& Z# X! R( F! _ s) {3 b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) V. ]" a0 p$ \+ ^" w* H2 \
{
' n3 y n8 C- Y; r; Y) o CItemElem itemelem;3 o" S9 V3 `$ [# } J" M% y
itemelem.m_nItemNum = 1;
4 {& d* Y- ]1 r n itemelem.m_bCharged = TRUE;! K- D( A8 a4 `2 P; v5 L
BYTE nID;
* g5 \5 E, q2 ?/ W/ ?6 ]9 D7 K z
' M) q, {( E' G if( nJob == JOB_MENTALIST_HERO )+ L& `' s( |8 T; K; C0 Q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 D# o; A. @6 ~) I& ] if( nJob == JOB_FORCEMASTER_HERO )
& v- L ^% R: L! M1 y. j& m$ A& p itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- m9 |. s+ a/ d$ w$ V" {+ E- B( L. D- d, g/ M) E* h
( ( CUser*)this)->CreateItem( &itemelem, &nID );* |- `1 C+ E0 i6 l0 F
}
. x) d0 V: R4 b, W g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. H8 V" S; x' y0 W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# t- t" Y! A4 B% Y3 y |# ]6 j ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );7 H9 N& W% y; r/ ]8 h
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" ?4 G3 E- _! m. \ ( (CUser*)this )->AddTaskBar();*/. e8 G$ ~* t0 ^6 a" w0 _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; m6 Q2 u1 y: a% {#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ D( V! M7 J6 D3 _4 Y ((CUser*)this)->CheckHonorStat();; a# u4 M. V- h" h
((CUser*)this)->AddHonorListAck();2 A7 k" f: O1 I k) z( o5 I
g_UserMng.AddHonorTitleChange( this, m_nHonor);" R1 Z" f7 _! ^1 k
#endif // __HONORABLE_TITLE // ′Tà?
) {- x! s% r6 p9 Z$ n1 u; u+ f% Y }
3 P8 ]8 q, o! _. X. M$ s( f1 Y#endif // __WORLDSERVER2 D* n# k; t' z/ D
}
1 g5 r# K1 w+ H% P, ?' W. q$ I, _5 p5 ^* X a, B3 {, G. w
然后你进入functextcmd.cpp并添加以下; p0 X+ J- X; C% N( K& v' m& X
' O/ ~1 Y$ F. j代码:9 _# c( I- X% R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& U) h( V9 N9 G# `1 Z" Z( R3 G" D
下面插入1 _# W( ] T, e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , ], c& \8 E* O2 O0 T. D" Q+ L
& n! X v5 P1 ^: B& `4 ]- g然后你去
5 ^% p4 |3 b+ ?4 v1 ~3 A% F7 }
2 x( J! ?6 F" @( f2 T) E* g代码:
3 U- ^8 A, N6 A4 Z; P2 I代码
9 {2 c, f+ w" K2 s( T5 kBOOL TextCmd_ClearPropose( CScanner & s )
2 `* D" X9 w4 w6 |4 `$ f{3 g. U5 U+ J3 f4 |
#ifdef __WORLDSERVER
& J9 T1 V5 s) Z( w9 h CUser* pUser = (CUser*)s.dwValue;, A1 ]- C3 n) Q/ e9 P% b0 {
g_dpDBClient.SendClearPropose();
; k6 _" K4 h s1 U#endif // __WORLDSERVER
4 l& ^+ M i( [2 R! L$ s# X return TRUE;( H- m2 O! V* P
}
- Q) X/ ` X( o8 o; l* E下面插入! q$ j$ P- X1 w U
BOOL TextCmd_rebirth( CScanner& scanner )
: s$ t& m6 F( P" w! O R{
% \: q9 s5 a1 U& b#ifdef __WORLDSERVER* {4 e' a/ s, p F. X7 s; `9 l
CUser *pUser;
Q1 A" @, A7 o; o7 G+ F0 N9 }pUser = (CUser*)scanner.dwValue;
+ h; a/ ]+ I8 I3 Q. `: y- {) f4 Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). H" A! G+ c* r N3 o; \
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 Y" C8 _$ F: W+ W" Celse5 W p- \- f4 e7 C$ s$ c1 N# c
pUser->AddText("你还未达到重生条件!");
2 u$ H4 u& t0 N( W#endif
0 T: ? K5 x" |# \return TRUE;
+ C, I! p: ^% B! y% f) a}
: D" L9 |7 r' a$ \0 K4 H9 ^! A) O, {0 C/ ^3 H0 j7 ~
8 o; N9 N: A, F$ N8 u! B
0 U% N5 f4 Y3 h+ [( z. g! S
; _, Y# U/ A5 u4 T8 o9 ] d |
|