|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! C- C7 A7 h4 c7 S! _) e
. d) E" e: z- t3 a2 @Mover.h
% G4 X$ h3 @: c* `; h6 l代码:
5 o7 o- V! o# V9 N找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; p; ^" G% R. l$ a% x6 u
+ H: J- |/ Z" ~
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
( x8 g, V" b8 D, N1 }' R) r6 s6 c" R3 H) c
然后你去mover.cpp添加: |- A2 c7 X4 `2 ~( [! X1 n- Z
/ {6 x* b& O# e$ k) |代码:( c! X- A& g0 q9 ~" B3 A* Y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
2 o2 a# b, o* i' @{
1 t* S4 W# t+ K; |1 y6 J: o' Z6 y#ifdef __WORLDSERVER
/ D6 o5 ^& Q O4 q1 [ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- O4 }$ }" @2 y2 ?3 s0 j
MoverProp* pProp = GetProp();. V3 G2 v3 ]/ t. y+ o
if( pProp )
) c2 e( l8 z' {1 \2 [1 |% b: B {
) B7 `( F) F! i* ]# e7 r- x4 A } if( nJob > 0 && nJob < MAX_LEGEND_HERO )/ ]7 f+ H$ O7 s
{
; |9 q# T, k; |. |. v; c$ @ AddChangeJob( nJob );
/ z% M% f& W' Y& S/ o' @1 M }else{
0 ]7 M; y% U9 A" u. k return;- Z9 W! b h1 H
}+ w6 D+ j+ w5 ~( F
int nPoint = 0;! k7 @6 [7 b% Z- @' L
if( m_nJob == JOB_MERCENARY )6 |$ Y! p' Y T
nPoint += 40;
" A; r# V3 n7 p+ R* E |, v else if( m_nJob == JOB_ACROBAT )
X1 _4 s- P% y1 ]6 P nPoint += 50;
5 g1 O( A6 j. v( n else if( m_nJob == JOB_ASSIST )
. P8 |0 q% J8 O' T nPoint += 60;. `0 ~0 Z& i- m
else if( m_nJob == JOB_MAGICIAN ); K! r& c1 O; J* V1 d4 F
nPoint += 90;
2 K. u+ M/ H3 @7 |% v+ |* [, y/ \% i else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& w0 h9 @6 r- p7 O nPoint += 120;6 |6 [# V! V% Z, t
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 K, V4 J( X' c" _ nPoint += 150;
# T; u- C" n: r6 ]( d" b( S% c& P else if( m_nJob == JOB_RINGMASTER )( g$ Q" Q3 T6 a) L) l1 J
nPoint += 160;
# K0 ]7 j. z" {$ |. R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ): o, F! i6 E4 v( O1 w
nPoint += 180;
- |& @5 _ T2 h8 ~ else if( m_nJob == JOB_ELEMENTOR )! d; Y1 R- ]. j C. G
nPoint += 390;
6 ~5 _( ^- J' p0 d* J) Z( } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )5 ~/ X$ u1 b! S. E/ B4 I' G
nPoint += 120;, y* U! b/ a6 |6 @7 a2 b
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
# J' w) @* c$ h) N8 U( s0 J nPoint += 150;0 s4 s7 K4 U9 S* o& T* W: ?0 P8 ~
else if( nJob == JOB_FLORIST_HERO )
) Y+ a% t$ s9 U% X& ^# U0 q nPoint += 160;
% X* E- j2 i: m8 D4 ]0 e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 n! z3 c% X& E/ r
nPoint += 180;6 n6 B+ e9 J- n, M
else if( nJob == JOB_ELEMENTORLORD_HERO )) y5 ?& p# a. R' T8 |# F7 K. y
nPoint += 390;
# N4 S+ `* Z; ~1 ] O& F; k* i. G
AddSkillPoint( nPoint );
8 }( H' _( B; J2 D m_nLevel = nLevel;
4 ]; Y2 Z, Z7 I( t. C; }
% @' f& ^" r* \+ n SetJobLevel( nLevel, nJob ); S% k( E! |( C# |& J! J
m_nDeathLevel = nLevel;
+ f3 o/ I' N- E/ _9 t4 v#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 w$ g0 [1 r0 `/ e if(IsMaster())% W0 \2 @& ] ?1 q' _5 |" f
{; _( R5 V& x* N; {! C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( t1 X7 f& |4 ]- _/ g) ^
if( nLevel > 59 && nLevel < 72 )
* i3 ?+ K* O, h: v) Q4 y" @ dwTmpSkLevel = 1;/ L: \6 z& R8 {: d# E
else if( nLevel > 71 && nLevel < 84 )
( o6 i2 `) ?( v% O# z( F dwTmpSkLevel = 2;
+ C5 W9 e3 Q, v) {5 R& W else if( nLevel > 83 && nLevel < 96 )' {+ B' p: C* @( z4 x# m9 c* h
dwTmpSkLevel = 3;
, \$ Y. N* S) L5 I/ _( _ else if( nLevel > 95 && nLevel < 108 )3 T; n4 u; _" b+ m1 ~% m' I" X5 E
dwTmpSkLevel = 4;
- X3 I2 | V8 K8 _: F T1 g0 U2 k else if( nLevel > 107 && nLevel < 120 )
) c k/ t4 {8 I' I& f dwTmpSkLevel = 5;
- s M* ?. p% J4 \! s& k+ \ for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' t# Q! o# d! `9 f! r6 L9 r
{ 8 [( S& w; o2 _1 E8 r. C6 m
LPSKILL lpSkill = &(m_aJobSkill);
) r- ~; p6 M, B# C# T& O# H5 D- E: m if( lpSkill && lpSkill->dwSkill != NULL_ID )" }8 R" r8 w& {' w
{
$ y( O R+ W$ I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # d9 K% N% Y. {! X$ K. ~+ z
if( pSkillProp == NULL )
, X" I. s" q* t2 ]9 o; a continue;1 a9 T. e( Z5 Q0 `& i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, X# f7 Y S% c; k: o o) C6 \ continue;
' g9 c% P, T5 x4 _9 G lpSkill->dwLevel = dwTmpSkLevel;0 w6 }2 \. U& t- j; l0 a
}
. B0 ~9 C& M/ q, O }
" C6 a9 U1 ]& U, w* l9 N: W }
$ [$ e9 M, C/ s# I else if(IsHero())
6 r* G0 ~3 I3 ?' P9 u( B* g {
' T% n' H& m0 k0 S: Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
' x t) ]" k; e' [/ q/ v {
3 J5 }. o0 h, {5 ?* q6 e% f LPSKILL lpSkill = &(m_aJobSkill);1 ?, W: m0 W* ]% b( H6 S: I! p% g
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ i( u! O: `0 U9 L3 y# M
{
( p. Y3 a6 F3 v8 u% P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& m5 g% Q! S4 C8 O3 @* m+ Q) ~ if( pSkillProp == NULL )
2 @+ B9 d$ w9 m3 n, ^ continue;+ q# O) i! o. {, ?, l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% g+ X( \/ i. w* {* X continue;9 S3 B- `) R3 D
lpSkill->dwLevel = 5;" L5 B. d6 R; b$ x p6 {
}
t: Y7 j; N3 x ^3 V5 @+ p, X }! ~, g: @7 n$ K! k- F
}
4 l% W, k$ J6 @3 e else if(IsLegendHero())
1 h/ k, e1 H. v. p {$ V' q& g* z; e! V) r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 D9 g( F, H; s
{
8 A) ]5 \1 M" ~/ h- F# k LPSKILL lpSkill = &(m_aJobSkill);
/ @; `, Z3 [" g& B! m if( lpSkill && lpSkill->dwSkill != NULL_ID )7 H% K( ?: _1 m
{" E0 w2 U6 ^8 S! r, M8 n; X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 k( }! {5 [) A' Q if( pSkillProp == NULL )
- j8 \1 N) G' u: u continue;
" @" t" x2 y3 Z) m4 Q$ w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 C! w1 S1 I, X! g9 \0 \
continue;, O3 l5 l3 q4 K" |+ x; [
lpSkill->dwLevel = 5;
, u( `5 N% p' u2 r2 ]7 I }
; F) y( A1 T- X7 K }* _' a3 M7 Q3 w G7 g' M
}, d7 o9 j% {% `5 ]$ u
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' [! V3 _/ j$ E: T" p
if( bGamma ): l% q T: r9 q
{. ^$ R7 G. J& Y9 _0 T' A
m_nExp1 = 0;
+ D0 I3 e- B7 Z6 { }
4 g. U- r2 \6 ^7 v6 D& ?0 H/ X2 @2 L2 a2 Z! E1 D4 p9 n: _
( (CUser*)this )->AddSetChangeJob( nJob );
+ F$ L+ J7 G q3 j g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );7 l" `$ E$ Q4 S) `& w: ~/ d
3 p: V t7 O! U$ W
- s. z' h$ @, c% d) ]# ~ ^: ^#if __VER >= 11 // __SYS_PLAYER_DATA
+ b8 `1 G; Q3 V* W4 C0 j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );, x O; ^5 c+ K7 E
#else // __SYS_PLAYER_DATA
" g# X( @; k! a g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 E, B" n* c' h+ F: T0 |, m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 Q- t9 x' J* c, [/ G; ? if( m_idGuild != 0 )
5 i1 p3 N$ |, |/ |5 Y; l0 f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
2 P- r+ R# L; Y4 G6 u" K$ f#endif // __SYS_PLAYER_DATA
' c4 w+ `9 y, p3 y/ o SetHitPoint( GetMaxHitPoint() );' c* [1 ?9 s5 I" }: D
SetManaPoint( GetMaxManaPoint() );4 l5 S: |. \! q: c4 ~& E
SetFatiguePoint( GetMaxFatiguePoint() );5 ~' A' G# `( z1 x# [' d
if( nJob >= 1 && nJob <= 4 )2 ~$ A- g6 v8 ^/ X& k! O5 V
{2 u( v' Y, r+ o
m_nStr = m_nSta = m_nDex = m_nInt = 15;* h6 @: ]$ A/ n
m_nRemainGP = 28;
4 g& n+ G" u H5 j }
/ b7 E+ ]! l1 b$ V9 h1 t% L* G; n h% i if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 }7 d0 n+ q" R4 u1 `
{& o/ ^1 T# u4 W6 d& e/ F' Q8 @9 t
m_nRemainGP = 118;( q' n- r2 R. }' T- ~ ?' V- ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- W% k; K0 D+ h1 ~$ F m_nStr = m_nSta = m_nDex = m_nInt = 15;9 [) O* r0 q5 T$ j/ {% b7 Q* ~( Y
}. @8 j I( q- A+ V
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ ~ J5 r2 H- z3 B {. @# u$ L% Y" g" o" F
CItemElem itemelem;/ r1 b5 W* G; {' t
itemelem.m_nItemNum = 1;
5 b0 U7 T) y% R6 R" o/ j- E! A& | itemelem.m_bCharged = TRUE;6 B& I, i: R" y. f
BYTE nID;8 l( n1 i2 F$ m# t) G5 J$ d' ^
7 i B! N9 p; S5 G8 ]7 S9 Y3 p1 X if( nJob == JOB_MENTALIST_HERO )
1 O% F$ m$ S9 i3 ^- E1 V itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ R1 g6 M3 V4 O if( nJob == JOB_FORCEMASTER_HERO )6 C" p3 B& R1 K& [4 O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;5 j2 K( V* T. e' X
% h; C! E9 B6 B9 U# U. H ( ( CUser*)this)->CreateItem( &itemelem, &nID );5 ^- o5 ?+ M; ]$ ?: L8 F
}. g9 a* n W( j. w
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );( @8 d; n* K! j" ]& V! K
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 u1 q: x/ A7 R/ A6 q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );0 i; x4 E# M8 E; }$ N
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" ^% L# q' S; i+ f" Q5 f ( (CUser*)this )->AddTaskBar();*/) b! N: d o* l% h8 j$ Z
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& @2 F! X0 ^! B( h8 T, f$ q9 J) [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( {" J8 ~4 c5 g3 Z8 n( Y
((CUser*)this)->CheckHonorStat();
* H% U9 q( E" O; I2 D) b8 x ((CUser*)this)->AddHonorListAck();/ `2 h# N U: Y0 `1 O8 K. j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 ?2 Y, \6 b! Y1 ] L#endif // __HONORABLE_TITLE // ′Tà?6 y0 H" Q# c: G9 @; @% s
}
3 ]$ R: \2 h4 q$ P6 {#endif // __WORLDSERVER) H9 \- C8 K/ m0 s/ U; P
}
7 C! u/ |: w) X0 A
9 `" [: M6 K1 q- ?9 C+ x然后你进入functextcmd.cpp并添加以下
, i* i0 W4 S& U6 i: u7 q) P0 D. K5 ^# {9 ?6 r/ m" f2 I9 [; \2 o. H$ f
代码:* W" h Z3 a' C* n8 a) s; T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' E; _9 ?4 c/ @. x1 U" |) q下面插入
3 p* d$ B7 s% e9 a4 tON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
3 X; i8 F+ K1 P6 t7 N, j4 e( E: }1 t* S( m
然后你去
0 m) n2 W8 s, R
2 p. e9 C0 J) |8 d) M' ~代码:1 X4 ?: x# i( ~5 W( i: p
代码7 m" J, a: g2 x Q9 \' h9 h7 _
BOOL TextCmd_ClearPropose( CScanner & s )
$ F% M% [8 f, q0 F: e{9 Z' Z) _! R9 d6 b3 R7 A1 F2 _
#ifdef __WORLDSERVER. ^/ C/ }, ~: t# y1 [' Q6 b
CUser* pUser = (CUser*)s.dwValue;
8 ~' O$ x' r) c; Z5 F4 F g_dpDBClient.SendClearPropose();
7 B7 ^# b6 I" A4 @#endif // __WORLDSERVER
; B% I1 s6 a/ ?. q. T$ [& `* [1 F8 v return TRUE;1 _- h: S! v) V/ ^/ `; V' J3 [
}
; g2 L: {; ]6 q" o下面插入
# \; r( Q8 h: m o# A; PBOOL TextCmd_rebirth( CScanner& scanner )
( S5 x. J2 l( b( [9 ^, K4 j! @{" O6 Q# R$ k3 J6 @
#ifdef __WORLDSERVER6 O) h9 H8 P5 ^' n0 @2 E
CUser *pUser;) j4 P) ^! M0 a1 o1 d8 }0 t
pUser = (CUser*)scanner.dwValue;
$ Y, p& ]% G1 J6 s9 ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, v* `) k( v8 p7 L+ vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 Z$ e) c$ e& P4 v. ^9 E
else/ X! @" E9 K4 C, v, ` g( E
pUser->AddText("你还未达到重生条件!");, f) n- q" t/ R% w
#endif
% U. e" {7 O; s5 Kreturn TRUE;) R/ y, E& s. {0 [( A$ E9 A6 v
}
8 k2 U+ K, j1 |( o. e/ u" @* m1 `! S: N* K1 z
F+ y! Y9 n$ R6 v
! p$ j8 f; ?8 P. m- k
/ U5 X0 I0 W: H9 \2 ]5 ^9 ?6 i& ]9 x Q |
|