|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 e! b+ D$ [1 a) o$ K0 p% Q" w
4 j0 @5 Z- J4 h2 G3 ]
Mover.h+ v0 [8 I2 \0 p' U% n8 ^
代码:
" [9 \5 B" T }0 g) r W找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 ~8 E3 [9 v1 B: C0 D& b' i
( ]9 K$ Z2 A. n2 K# S2 k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! v. A, e, P7 z n# q$ `) z6 b
$ j7 z" K3 q' R然后你去mover.cpp添加
. Z; z! e+ L; E0 g) B
% m+ m5 Y# N! U" e+ g3 H代码:+ _) a; r0 z- O0 s4 @, X# h
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 d" z/ k% ^% c8 D2 ~* l( L3 H{
1 i6 V) o Y0 m. c#ifdef __WORLDSERVER
2 k' H' f" q( C2 d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 L; z( z6 }! J
MoverProp* pProp = GetProp();
: h4 A1 S: ?/ S. W& U if( pProp )
8 S' K9 H9 V* z: M {2 y2 X9 ?$ z; e! s! w1 _5 ^5 f) @' f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )9 ~7 U& ]% o: e7 h. P* @- d( S" r
{
$ q+ g) H5 F6 r% c1 s5 V, O AddChangeJob( nJob );
2 `7 @" f5 l% H# H* b, p o }else{4 i5 }* g+ Y/ y, }# D2 \! B Q! h( Q
return;& g' L5 s; H# \$ }+ @4 Q' |8 F
}
5 i4 j; T. n; c4 J int nPoint = 0;
( S5 }3 v6 s# m8 C( B u2 H if( m_nJob == JOB_MERCENARY )/ o: a$ ^# ?# _
nPoint += 40;) Q9 J% F5 \: ^% b
else if( m_nJob == JOB_ACROBAT )4 q$ x2 [- l9 l
nPoint += 50;6 W4 ]0 R% v6 \* I- x
else if( m_nJob == JOB_ASSIST )+ _$ w' ^2 Y. _* G& n" m
nPoint += 60;
) t! K) f- G- l/ ~' J, f else if( m_nJob == JOB_MAGICIAN )
4 r/ ^2 H- S# N$ O/ F. e% ^' k5 G nPoint += 90;8 r/ [: f4 y8 F* @; a9 U: `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 _" i0 d6 V. q: q( y! T: I: U
nPoint += 120;3 I. ~, D8 z' F. |
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 X, c0 w! }- _) s6 U. i% t3 J nPoint += 150;
) j5 l1 J$ c2 D# w else if( m_nJob == JOB_RINGMASTER )
9 F$ h/ _/ g* e c: c) _. B nPoint += 160;
5 v8 i. y9 L4 w! z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ _* Y b% b: G1 G+ b9 P' { nPoint += 180;
( A2 l6 l) {0 @3 ~' u else if( m_nJob == JOB_ELEMENTOR ): W2 c$ j4 v- L: y9 ^" [. P
nPoint += 390;% x! R6 T8 @3 x. C1 ?6 X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' Z+ d l6 ?4 |: {( a" Y/ U nPoint += 120;0 D! H% J2 j% V
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; ? E% {/ O: T% j: H% I nPoint += 150;0 Y* B: ]" Q% J# ~
else if( nJob == JOB_FLORIST_HERO )
; t6 Z4 l8 ]' v6 Q2 c nPoint += 160;8 X& p* g% @7 _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; c9 | N5 ^' w3 c nPoint += 180;
7 n! s: b0 |% t; ^ else if( nJob == JOB_ELEMENTORLORD_HERO )5 L& y0 F( \: e. Z
nPoint += 390;
1 y6 z% `9 B l# E- T4 ^
/ z0 O0 Y" {% i8 @ AddSkillPoint( nPoint );
0 H S+ q& a. j- ?# i) _6 @ m_nLevel = nLevel; A' B2 S% \1 Y' I( W5 d2 j0 O0 s
5 X, _0 o' f8 h; r; w' b
SetJobLevel( nLevel, nJob );% e0 B8 z( D5 n- o3 r8 i
m_nDeathLevel = nLevel;
: D( L& W- a0 h6 m2 t ^% u' b#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 i0 @4 f7 a3 [5 w$ r% D1 p: Q
if(IsMaster())/ Z6 \5 e! v, ~2 H
{6 W% b; `9 G/ T0 I2 z, ^3 \9 d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% A8 l5 n9 ^! l' u0 I if( nLevel > 59 && nLevel < 72 )5 l- z5 o) o3 j& [% \7 z4 P
dwTmpSkLevel = 1;
7 [9 w8 T/ p8 M# `" O: R3 N& p5 E else if( nLevel > 71 && nLevel < 84 )
( D! v2 ^; y% b1 G* ` dwTmpSkLevel = 2;
- S1 h6 K8 i4 ?4 O$ w4 E0 F else if( nLevel > 83 && nLevel < 96 )
! s6 ?4 g, p+ ?# Y dwTmpSkLevel = 3;
1 u" m; n" ?9 H- [ else if( nLevel > 95 && nLevel < 108 )
L$ {( _3 C n1 r: _, p ] dwTmpSkLevel = 4;
# ?( _9 K& M. f) c# w' f else if( nLevel > 107 && nLevel < 120 )
( |, S4 _4 A K5 x3 ]. {, N dwTmpSkLevel = 5;( u H: T9 O6 J" Q, T8 k. n$ ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & F: l& G# y5 ~* \2 [1 }% M H
{
: Z c8 x, R4 x/ D9 ` LPSKILL lpSkill = &(m_aJobSkill);* {. e1 R% E6 [% S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" _9 N6 i7 v& Z4 {. N/ x {" I7 K# L* [3 X. |. N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 b0 m% G ]' R ^+ ? U- P if( pSkillProp == NULL )
9 e$ H4 q9 v, a2 ? t. J continue;
: H: d' [, s; a3 Z3 `8 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 J6 X: E% d( e% w7 S
continue;
8 L0 P8 S/ R# H+ Z& p lpSkill->dwLevel = dwTmpSkLevel;9 H8 G& O8 Q/ G* I+ N
}, X: T* y: p; w5 N7 e7 w7 ?
}& w4 c$ F# A- q8 C5 Q" v5 Q
}
2 t% F2 i/ a7 `% N K% S, G else if(IsHero())
# G# R. d% F, o O {
! n0 H b3 D/ C& }3 \8 S1 \( r for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 ~5 _ d8 X0 N5 L
{ - j" r2 X7 R4 B; S% j% f
LPSKILL lpSkill = &(m_aJobSkill);
4 ` e1 M4 v: |) | if( lpSkill && lpSkill->dwSkill != NULL_ID ); s) M# R6 }: h# W: Y; l! w) Y
{+ k8 M( L* w: q7 [! }: n, A- j7 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 w7 O" Z) B& E- x& u if( pSkillProp == NULL )1 `0 H. Y( G5 {1 g2 _* K
continue;7 V9 C0 u+ ^9 f, s. w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 Q: I; j7 _% A% v5 s continue;- D$ h9 x+ i4 C& P7 A
lpSkill->dwLevel = 5;
, ~ b) d, u S) i! y( s }
, ?- t/ o c# X# x7 Y6 w; J; F }) M4 V* x! c9 _
}& U* Z0 |6 d- g% E0 U: w* O. L, Z
else if(IsLegendHero())/ Y8 z3 V* t# X' D# \$ N9 N
{, G( q% v5 v0 q0 Y2 `) U9 v
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 l2 M9 K% o6 k Y- p( z1 ? { 4 j) U+ h2 E& ]& c, O
LPSKILL lpSkill = &(m_aJobSkill);
. ~! p0 {$ t/ ^# W$ J# h, n) f if( lpSkill && lpSkill->dwSkill != NULL_ID )2 E: D3 \5 `& i6 x) z: V
{
/ h1 c3 T- e4 a1 s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " D3 {5 I8 B7 z
if( pSkillProp == NULL )
* L- E' o4 r$ h$ B0 Q. U, _- |0 x' B; G continue;+ [/ }7 }: a6 K& S2 h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' Q, u+ J8 \4 f r7 r
continue;
' ~) N1 |4 E3 o; a lpSkill->dwLevel = 5;
5 c- H5 X5 \4 Z, ~2 b, k }9 ]: J6 d0 p" {) W& h
}# k" x/ K9 Z9 j8 v) D" N
}# z3 I( ], ]& X$ I; s1 b
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 F6 @* a& E& C d) ]& B/ O/ e+ h. T if( bGamma )
+ [8 L6 T2 H; f' S3 ?- e) v3 ?- c {6 ^4 N! j+ H$ M; v
m_nExp1 = 0;
3 @: Y7 Z! Z4 M0 Q) A3 R2 A- ~* Y& g5 E }% h) h H2 s- r9 I
$ Q7 E6 Z1 A& D5 N: i( A ( (CUser*)this )->AddSetChangeJob( nJob );
9 v/ B6 | T' k g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) j) g' x% E. @. p! V: K
/ y( J" a+ ^: E, @- y6 q6 Q" k# R& G# f6 G7 M
#if __VER >= 11 // __SYS_PLAYER_DATA8 }2 E/ J0 u# R3 a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! B9 b5 ~3 R2 B$ ?4 W" ~6 J#else // __SYS_PLAYER_DATA$ Y( H( Q3 V. ~. T V; ^
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: P( n1 m: I; w8 i* e g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ M* Z' |' C+ \, i
if( m_idGuild != 0 )6 q1 X; w6 e- ~7 k
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
3 ^ ?4 \: @3 m/ j) d5 W7 I" W0 d#endif // __SYS_PLAYER_DATA/ U1 i; N0 ~6 H6 b
SetHitPoint( GetMaxHitPoint() );0 x" V# ] G6 S( L9 ~
SetManaPoint( GetMaxManaPoint() );
" U) v& h$ z. E3 G- Z- V SetFatiguePoint( GetMaxFatiguePoint() );
# p, Z% b( o* m% M" C if( nJob >= 1 && nJob <= 4 )" c3 l) v$ I6 F3 @6 H
{
' r t. |" ]4 B5 e m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 L( K' R9 l6 Y8 v" a9 t m_nRemainGP = 28;2 X: i0 h- P# ~7 ]1 c: D
}
* l) H6 r' F- D0 \$ `7 j* L5 G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 Y+ y+ u- _& N F
{
2 Z' _! k5 s; ?* c; {3 ~* N9 L! ^ m_nRemainGP = 118;+ z% U; D" P7 q$ o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 G2 X) l: C7 ?% s9 M m_nStr = m_nSta = m_nDex = m_nInt = 15;9 \4 W/ Z; j) S$ Z
}: Z& q$ g" S+ v2 U! }5 x8 \1 g8 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 m$ Q0 J+ q# H n' p, n
{
; V+ n+ x! ~, ~2 e/ B- k6 `. O5 O CItemElem itemelem;. F# ?, S/ s$ i
itemelem.m_nItemNum = 1; P4 I- l0 o X' u
itemelem.m_bCharged = TRUE;+ U1 H& o8 V7 p$ ]4 v& B# Y
BYTE nID;8 E! ~2 R0 L; B
\( `" I% D5 e( E if( nJob == JOB_MENTALIST_HERO )
7 S+ L C6 Z" c0 ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 q, v6 O3 R' H: ?1 q7 p if( nJob == JOB_FORCEMASTER_HERO )
! P3 ]8 H2 s: y8 `7 k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
5 j& f+ X9 ]" S4 g+ Z: r% ?& s7 h! [% z. \" x! W( _
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 C) s5 E( n' A" v }
; @9 y# ^! Z7 u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 U9 S: {4 U4 L9 W$ C0 y G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( u" _2 Z- s3 k. ^7 J0 d9 b3 l0 s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# k& M2 X- g4 k# c
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% s* Y, r, L% k" V* N. j' D: m3 A- D( n
( (CUser*)this )->AddTaskBar();*/
* m. x8 l& l- u" H i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 j, \. I# G9 P! ^# X#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 r4 f1 T$ M; [. O* E+ k ((CUser*)this)->CheckHonorStat();) r2 J- a4 e! @3 y7 f
((CUser*)this)->AddHonorListAck();
) w% a, Y% O) U/ O5 { g_UserMng.AddHonorTitleChange( this, m_nHonor);
: o& f& m# S5 K* N( F#endif // __HONORABLE_TITLE // ′Tà?
8 b1 W& q) M3 s7 x }* t) V) _; g8 x5 c! Y1 ~" A/ A+ g
#endif // __WORLDSERVER5 R6 d. y0 c* \
}
2 v* e, K# t3 h5 b* t
7 R, g6 i) s8 z" m( E然后你进入functextcmd.cpp并添加以下
/ u7 W$ v$ ~2 N
; i) Z* I+ g3 I3 F代码:/ L% }# a; N. j$ u8 n" a1 F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); [3 N2 p* V0 ?% {) f. S9 N
下面插入+ p2 [2 x# `7 P5 Y( U
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 0 ^7 Q5 o, l8 h! p; c( W
" F8 i: |1 P$ [, |然后你去( e# [0 E& ^8 H* W1 |
P/ T# e$ @0 p9 N9 K( r) [9 s
代码:+ Z9 x: Y+ y1 W
代码
1 z9 g) z* f* g. D0 nBOOL TextCmd_ClearPropose( CScanner & s )4 I- k, b' T7 q4 O1 F/ B% E
{ y: w; j/ u$ ]% r
#ifdef __WORLDSERVER( O# t! [. e# U( ]
CUser* pUser = (CUser*)s.dwValue;, u2 q* G% n! V( ] k
g_dpDBClient.SendClearPropose();
% w- j o$ N, p5 j( e#endif // __WORLDSERVER2 `6 _3 C) }# M% y: u
return TRUE;
0 b/ W, [$ }9 W" ^( J}9 v, p8 {/ ]9 n% C0 R
下面插入7 Y% ^6 @$ D2 P* z6 o5 g
BOOL TextCmd_rebirth( CScanner& scanner )
/ h' j; g: _ f8 j+ b6 j{6 ]; Z o- A/ L" o0 i
#ifdef __WORLDSERVER0 W: H; ? V" n6 p
CUser *pUser;4 r, i8 j8 N9 Y- B8 J- W
pUser = (CUser*)scanner.dwValue;! l0 y } R" X* j5 n$ Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 r S# W* S2 b4 ?4 m ~pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 W$ ? t X8 ]; j! A
else
5 p$ J( a+ Y0 b4 @( B2 o C- A6 EpUser->AddText("你还未达到重生条件!");$ i5 ], _/ Z: L* M0 f' M
#endif
$ U! }: i9 Y" M, x& q6 }return TRUE;
9 P+ W9 y. L5 Q& M+ R} ) `/ n9 T2 a0 G, J8 i2 c: b7 A
+ S* `7 ?: k- b4 W5 S; r" D3 X, V! `; \
E, e7 w4 d' T( e, e
$ Z2 a: X# W. K. ~, T$ A
" W5 @7 ^8 O- @ W) n |
|