|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 P5 Q2 k3 l. W ]% X9 S* B
) m8 q, ^) o' y3 {7 l
Mover.h: {/ e! {" Q; O+ o p
代码:
. \! S2 y% g( a2 n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% n$ @( N+ D$ b& I
' y0 v {0 t4 E2 y6 P+ f$ [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 r8 U7 A1 S: d1 {: @3 A
+ y& n- @4 q" N然后你去mover.cpp添加6 }+ I }6 W! K- K
! Q% z) L5 i/ [1 g. R/ a代码:
5 U0 ]# w2 S& G! [8 A, s. zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' o8 A) i: [( ^# T; s
{
+ P7 e0 O/ f$ w+ D#ifdef __WORLDSERVER& r/ K7 j7 {* ?! L7 D0 x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó7 {/ }- {6 ~; l2 P5 {
MoverProp* pProp = GetProp();
$ s' E/ k1 f7 `% p if( pProp )* @3 J% e5 [9 s4 ^+ z; G: y( C1 T9 G
{$ v# x7 j7 o' L# `4 m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- Z9 K- q# G4 Q/ `
{) F. G' ]6 l& S+ D+ z& K9 r2 n
AddChangeJob( nJob );; P S/ v! N, [8 Y W
}else{/ F: ?# E5 j3 Q
return;0 n" t$ G9 \3 w
}
2 X9 X* O) x6 _( h) o/ j int nPoint = 0;
* w4 T, }7 T, m$ h8 Q5 { if( m_nJob == JOB_MERCENARY )
4 L' l, p+ f. R! j7 c nPoint += 40;
" y+ H* Q6 U2 _4 X: U1 |' x7 V( ? else if( m_nJob == JOB_ACROBAT )
, y" I" V- o7 m$ m& u2 B t nPoint += 50;9 A2 t" q; r; x( C% O( u; o% G+ O
else if( m_nJob == JOB_ASSIST )( M( j. B& T0 x" ] Z3 v. c A
nPoint += 60;
T* Q: ]# E! E7 J else if( m_nJob == JOB_MAGICIAN )$ s5 e+ K8 K' s* r# i- D! @
nPoint += 90;- s, `6 k4 o2 j6 u! N
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )1 M/ m9 N% V) `7 i8 C# j
nPoint += 120;
1 v/ x: N/ u' V( g9 W else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) r& y$ c) e% a3 b3 V; }/ i
nPoint += 150;
. X' Y/ n; W) k7 X# F. P. h, y else if( m_nJob == JOB_RINGMASTER )
2 }* L, m0 s0 G, U& Q! L nPoint += 160;6 b1 \1 v9 D5 W5 P: h2 O: s
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
# L- C+ Q: U. W nPoint += 180;
+ z1 Y2 x* r/ S else if( m_nJob == JOB_ELEMENTOR )
: ]: Y' h T$ ? z4 s nPoint += 390;
- p& c; x u& K- b, B: X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )' i5 G( Q9 W, }- X
nPoint += 120;+ l y6 J: @2 t7 E
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* e: [5 M0 W$ X4 W# R s% A
nPoint += 150;3 o7 @/ Z( p$ [) P, X9 ~
else if( nJob == JOB_FLORIST_HERO )7 y0 `. \& C! R5 |$ b, E* {4 P6 {
nPoint += 160;
6 e4 t: ]8 v! w3 @ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" @+ }9 g2 T) d! y9 C
nPoint += 180;9 J( x# v. v5 t' |0 T- }
else if( nJob == JOB_ELEMENTORLORD_HERO )) s3 B d' }# ^ k6 |/ Y. ^
nPoint += 390;% W* g: E3 X, ?3 w+ D
! Z/ s) t$ T; f. V9 y5 O0 W
AddSkillPoint( nPoint );
* ^ g0 d5 O5 a# _- p* E( N m_nLevel = nLevel;% R/ z3 T! g8 }3 ]8 X1 m# P
P8 @ L* y+ B( t
SetJobLevel( nLevel, nJob );
9 K7 W. c+ T+ X( {( b m_nDeathLevel = nLevel;
* h. K; u% I5 t) |4 l#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 G w9 ]+ V0 `# s6 @, d, y$ \
if(IsMaster())) a5 U2 ?/ O. U4 ~0 Z: R' y
{
3 ~3 {( f+ ]/ K, s9 N3 E! Q3 [8 b int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% N% l0 z, c8 I6 W$ g
if( nLevel > 59 && nLevel < 72 ): d' t: y( c" b, u" p4 S
dwTmpSkLevel = 1;7 X+ F P; W1 @* ]6 t
else if( nLevel > 71 && nLevel < 84 )" @* N. A( y2 R, w; z
dwTmpSkLevel = 2;+ S, h6 Y: G* B, J: j( g
else if( nLevel > 83 && nLevel < 96 )
2 B' B, ?0 k$ p9 o dwTmpSkLevel = 3;, {! _- w+ b/ o8 w
else if( nLevel > 95 && nLevel < 108 )
7 Y" ?% ~1 p$ n1 a+ S0 X! H dwTmpSkLevel = 4;
3 w4 R! y, I# e+ O: I9 ? else if( nLevel > 107 && nLevel < 120 )
9 H I5 y3 w$ w0 k f3 S dwTmpSkLevel = 5;
1 W) Q" I: T# I for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 B% {" ]4 p5 r1 |/ e) L
{
2 u3 ^+ N2 x" X# O+ n3 y, {' l2 r LPSKILL lpSkill = &(m_aJobSkill);
& Z9 I; i `8 X# J$ \ if( lpSkill && lpSkill->dwSkill != NULL_ID )0 P9 v9 \; c: r5 y5 v
{' B5 p" l. ^3 U( ?# b2 ^
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 d5 m" \! k G; g* I/ p; Z# n& B
if( pSkillProp == NULL )* q6 N4 `& M! U3 g$ _
continue;( Z7 m1 L& P) O: I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& s% w+ T# s- R3 j continue;
/ K; ~, U+ Z7 S4 j3 r/ c; Z lpSkill->dwLevel = dwTmpSkLevel;, I' p" w. s$ C2 ?
}
* C6 e5 J6 ~8 ?! [- Z5 @ }8 M* i% a! z; U( J
}
6 i0 L( ~6 h7 V; n% E, Z else if(IsHero())
3 G+ d* h( }( D2 ^9 x9 m9 r {: y- d. N- U6 @3 X6 b4 o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. B+ N; c9 m; t Y {
# s2 v" m5 X0 k& r( t LPSKILL lpSkill = &(m_aJobSkill);
- q9 c0 q3 [3 U7 e( j. _ if( lpSkill && lpSkill->dwSkill != NULL_ID )2 W" V+ H, e. ?2 ^$ f8 w
{
' P' e& N# R5 f' O5 x9 F! } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" J: O* X& M& D# t; [ if( pSkillProp == NULL )4 o2 p4 x1 m: I5 u; t5 q) _
continue;
" Y) b+ Y7 X7 k4 W, i9 O( u$ I& a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 Y6 i7 ^8 D5 x# ]9 f3 j! x: @6 m! @0 d
continue;) g+ S8 }0 d* r& b7 j" G, i G
lpSkill->dwLevel = 5;
0 d; B+ W0 F _) w) T }- L: a: O) A9 G. i( v } R
}: `' G0 j3 L6 U2 m
}
. S- T: `& E/ P9 q else if(IsLegendHero())- y+ j( f0 k+ ]1 x A
{" R- M+ C) O2 U6 `& g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / F/ u/ k3 Q/ y* @
{ 4 N, J4 x" m7 U" N# D j( R
LPSKILL lpSkill = &(m_aJobSkill);
1 N6 |! a( e3 w& o if( lpSkill && lpSkill->dwSkill != NULL_ID )$ k1 q, R8 t" J
{
1 m1 I) |# c6 p; K9 S) I( U2 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 V* r" }+ p0 O$ |( ? k if( pSkillProp == NULL )$ P0 Q0 ^; l. \: d4 @3 w/ Y% C
continue;
. l" X. E! h" T$ G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 C7 S( d K0 d5 L) x t2 Y e
continue;
& t" q- a M0 {+ F6 p* V lpSkill->dwLevel = 5;0 A+ N0 f' C+ b2 }
}
, V: B: ?+ f: N# b, n% g }
1 I6 q9 L# v( q }
' c* v2 O; z4 T; W/ E+ {#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# {+ L- Y, U5 \% z& y if( bGamma )
5 D6 h+ \$ G& H0 \8 I {! T! H. V, H6 e$ n4 g" r, ?: e
m_nExp1 = 0;
^! n- j6 L/ | }% R, @6 Q0 H* Z6 n5 }
6 I# L1 T X$ R; N$ x% Z
( (CUser*)this )->AddSetChangeJob( nJob ); y+ c2 ~- g( ^/ y. u) u8 b# n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
5 \. D- E8 U) ^/ ^, f6 F5 W/ h p* X0 a' c
* J/ \, P* I4 ^# D, }#if __VER >= 11 // __SYS_PLAYER_DATA
5 i+ f- E5 b* O1 N# F. o7 j g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
% s8 Y7 x! i5 X0 P- M3 n#else // __SYS_PLAYER_DATA+ d$ t0 j4 |1 g* h% T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
+ g% N0 V3 }/ v9 n! S( V1 U2 i g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# ]2 ^5 R: g, h if( m_idGuild != 0 ) k9 i$ M( l7 i2 b
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); N) V w* f) p P7 I. e
#endif // __SYS_PLAYER_DATA. Y+ a4 E& ?; r$ i0 v7 |
SetHitPoint( GetMaxHitPoint() );' |% Z% z- w1 Y
SetManaPoint( GetMaxManaPoint() );9 A, z- p0 q0 [
SetFatiguePoint( GetMaxFatiguePoint() );+ P9 @- w& ^( I2 v( p) G
if( nJob >= 1 && nJob <= 4 )" O' e v3 D; p' l, r9 H0 N
{
! g8 [2 a; R9 ]/ M( h+ z+ r m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 b9 m6 L5 D" ] m_nRemainGP = 28;
8 h! K2 ~, U8 ~/ v4 z }. z+ R4 d2 h1 D- P- X! V
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )9 A; E- L$ X: U1 X
{
- R& _0 ~0 n5 R: W+ X2 ] m_nRemainGP = 118;( h7 G5 p* Z4 E8 b: M7 e% g* R6 l
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; M# ]2 }2 Y/ z! U, T
m_nStr = m_nSta = m_nDex = m_nInt = 15;# D! u3 K8 R! u# P! w6 k" p
}
$ Z5 H3 i3 H, T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( n: G. ~ ^7 l u# t+ f/ p& _ {
. H! B. N7 H4 c: }, D2 z& F# ? CItemElem itemelem;- y( Z1 _% k6 k$ R
itemelem.m_nItemNum = 1;
5 S" ?) A- H! \" ?1 { itemelem.m_bCharged = TRUE;
6 W J7 Z* B1 ?3 ^ BYTE nID; ~ H9 ] N; d, x- \4 i2 o
# I6 l/ J& u% U, h4 U% u if( nJob == JOB_MENTALIST_HERO )
" ^5 x- z ` z6 x% `+ a4 z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' A# R* d2 m2 N* t2 T" F6 y' [ if( nJob == JOB_FORCEMASTER_HERO ): P5 Y. |; p( n" I3 r4 k
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 ^ f Y9 A5 s! x1 O: R5 g- e. I5 I% q0 w0 ^$ j
( ( CUser*)this)->CreateItem( &itemelem, &nID );
' R I; z3 d) l1 {$ [- P# V }' a" W* A1 j2 Z# v9 r
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 ~; N, K t+ [% Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );& [. O% @' X0 a5 \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! u: C( t$ `+ S- a6 s7 u
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
Z2 B3 g# W2 l, R ( (CUser*)this )->AddTaskBar();*/
3 }& C Z9 Y7 T% w' @- H ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); B1 J' D2 [- m6 C6 m6 J
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 \1 z" g7 ^$ B' T ((CUser*)this)->CheckHonorStat();
: n1 C9 c$ s/ k! p: g% p ((CUser*)this)->AddHonorListAck();6 d& g; H8 \% N, j0 G4 b
g_UserMng.AddHonorTitleChange( this, m_nHonor);/ J6 `$ t/ F% c4 I& o
#endif // __HONORABLE_TITLE // ′Tà?# w) u/ O2 S4 O( k
}
% t6 E1 K1 A. ^! Z8 |#endif // __WORLDSERVER; @8 S) u ~! Z
} A- d N4 T- P6 q# L5 Q* j
1 y6 U( H! s+ O; q t
然后你进入functextcmd.cpp并添加以下
! |' w e& p! e+ p5 m" M
( i6 ] `2 |8 q/ P" F代码:
; x1 U5 c& ?+ a l# pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 @, d; Z1 n$ w$ m' U; e, O3 k* m
下面插入1 u) Y) a1 h1 Z8 b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * M3 E* ^5 X8 l! ]: E9 K3 @
, x( R- J& X! p* e2 d$ ?然后你去" `+ |& ?$ m! E) I5 |1 }. T
6 W* ^2 P' v6 a& U& q# k ?' h1 R: m
代码:
& c9 T; N( p7 \5 I: H代码
+ W+ C5 u3 w4 v# J1 z' }: J1 [BOOL TextCmd_ClearPropose( CScanner & s )! T( Y4 B3 W2 K, a
{; W4 T; k) y" I, L* R
#ifdef __WORLDSERVER: M o, L/ O3 x0 U; _+ U" h# x/ A
CUser* pUser = (CUser*)s.dwValue;9 K( U3 r9 u. `) d( Q9 p8 \
g_dpDBClient.SendClearPropose();# _# ?6 H% J) `4 t
#endif // __WORLDSERVER
. v& L" A( S1 q return TRUE;
2 E \% x( R: O* z$ I}) f0 |' ^ N2 [ J+ ?3 r
下面插入
& G& Z: c5 I8 g* n% n) t* QBOOL TextCmd_rebirth( CScanner& scanner )
; |& p) L! [; p, U3 M8 z{
; q6 c$ F7 D( [; Z% y; v2 h3 C#ifdef __WORLDSERVER
( I; A( p0 S5 x; }( H' E7 M g' @CUser *pUser;
% B: k3 ~! ^8 j* m5 _" X4 x% apUser = (CUser*)scanner.dwValue;
7 _/ F& I, D# U& N* pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())" o; D3 h9 `$ C# L# v6 P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 B2 k/ ], J: P
else$ g4 c# F+ v% @$ ]( C+ f5 N5 j9 ?
pUser->AddText("你还未达到重生条件!");
' ?4 {( ~8 d, t% J# |$ k#endif
* l5 o- j7 R( ]return TRUE;2 {3 a d4 |3 D& H) I! \! }& G
}
- A/ w- i: M' b6 Z" h) C. F4 M
! D4 o$ G8 g# {7 w7 x! K
8 C9 q$ D" n$ J2 w" H4 F7 r. \0 C" S+ |. ]& \( C
1 x2 U: R4 V N |
|