|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. U0 Q: D* X J; C$ s" n. ]# A
: t' O8 `- e- R! n' ?
Mover.h
8 |+ h5 Z, \& w! f% f7 f代码:) s! n) `* l! q! s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) N% {1 n5 x, L& U# S: n. \6 j$ z2 ~# C" _; F8 G8 k/ G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 g( L$ i0 n2 u- A1 q
P3 f! \' S" @# M然后你去mover.cpp添加" s: D, i% P3 s8 t) j: ~% O
! `8 i5 p# F$ b7 n代码:: \& N( V1 _- l% b, g# {; b( `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): Z2 h6 z* _7 |+ M. @! z) z
{7 @6 H- ?* l, x" I4 c; c
#ifdef __WORLDSERVER$ {" t8 F# @4 @" P, ?% s
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% u O; O; W! p( [. I
MoverProp* pProp = GetProp();7 G2 Z( M& b- Q9 ~7 k: j
if( pProp )9 i m4 Z4 p3 N+ |
{1 W7 i" A) r. |& d' C0 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 P' |) [* J5 C0 s9 \ v$ ^; G {% k; Y% H0 k4 s( |% B
AddChangeJob( nJob );# d3 {5 C# p b; }+ \
}else{
* ^! _' a9 i- X: U return;
9 _/ T B# t: G! D$ U j, ^2 L }$ M! b% Z" q" @. C6 f
int nPoint = 0;) Z3 l; d0 u9 S; y, l2 J( I) n/ s
if( m_nJob == JOB_MERCENARY ), G0 Q% \# o% `2 u" x8 p
nPoint += 40;: I. [3 {5 }8 `4 A
else if( m_nJob == JOB_ACROBAT ), m; z- r# [, `% K& p+ E
nPoint += 50;. V0 W7 i) Z# Q; F7 Z$ e
else if( m_nJob == JOB_ASSIST )" H8 p8 M$ _- x: n& L
nPoint += 60;
5 v# u8 B4 \% G" e2 ? else if( m_nJob == JOB_MAGICIAN )
4 J! \0 {0 j) c, z0 u3 ` nPoint += 90;+ L' A1 {$ i! c2 N) H3 N) U. M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). S2 e$ v! l3 p
nPoint += 120;1 i! h" n. m0 S/ i
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ); O* o- ^5 L M- D* U5 l3 `4 c/ v
nPoint += 150;
. j) \6 [, g f: _9 D& }' y else if( m_nJob == JOB_RINGMASTER )
' l* a# |5 w# E) Z$ t' Y9 J nPoint += 160;$ j! `' P1 j: ^1 j7 r* @
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( W$ [2 y! W8 s, R8 x2 ?: O nPoint += 180;
2 H' x5 u) X% P0 u; j- T9 k# V V else if( m_nJob == JOB_ELEMENTOR )
$ `. I" S" k( a0 P- o3 o6 P! M" _1 q( q nPoint += 390;
' G3 p# J6 |+ f2 W& Q& U else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ j3 G B" ^. V/ D4 `* [$ Q; S nPoint += 120;
: b- o2 D0 a; W$ v7 I* \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# M; w; U- G, M0 g; Q
nPoint += 150;
5 u3 g7 v" V5 e" _4 n# j else if( nJob == JOB_FLORIST_HERO )0 t2 ?/ r4 w4 _6 }! R4 x9 d# B, `3 {
nPoint += 160;1 d# R3 |+ S7 @0 J1 R4 F. d8 l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, r4 }. {; j# ~3 V# J nPoint += 180;3 D9 d' P( B! z0 d9 {5 x
else if( nJob == JOB_ELEMENTORLORD_HERO )" R3 E8 {, @8 O
nPoint += 390;
# ?' q) }: t2 J+ n' `0 e+ a" o8 J
AddSkillPoint( nPoint );& _# D) l- J4 H5 E' u
m_nLevel = nLevel;
, h: u0 |) k( x7 K2 ^8 t. ~" n0 z2 U8 E
SetJobLevel( nLevel, nJob );* \, w+ t$ _& w9 h/ ]4 A. \7 C' {
m_nDeathLevel = nLevel;2 y& u0 U9 y. W" b
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 m( @3 z! r/ K8 d# K- Y if(IsMaster())
7 R* g5 `' X- O& P/ t8 O9 Z0 q {
! B: O- z, _& J7 d q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- \+ U9 G# e) A7 g6 o6 [# P3 { if( nLevel > 59 && nLevel < 72 ). _2 g& l* C2 s( K4 T
dwTmpSkLevel = 1;/ V' P3 c& O2 T& W+ I
else if( nLevel > 71 && nLevel < 84 )
1 X9 f) D5 M: n" v M; z- p dwTmpSkLevel = 2;1 h) W6 x' \; n
else if( nLevel > 83 && nLevel < 96 )
! S- U- C6 y1 p( Q- t dwTmpSkLevel = 3;
) e; X; N' s+ Y, G$ k else if( nLevel > 95 && nLevel < 108 )
' M% K3 j- w% ? x0 H% O dwTmpSkLevel = 4;. K+ ?+ [& l! U) N. p* i _8 _+ `
else if( nLevel > 107 && nLevel < 120 ). t9 i& P- L& a7 k, s# Y
dwTmpSkLevel = 5;
5 y1 ?! @3 G2 m! d! U for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' I6 b& J! X- C
{
8 z" U& a' i; [ N: I LPSKILL lpSkill = &(m_aJobSkill);
* Z: J8 M) G6 q0 m if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 L5 R4 T5 Z: C. O {0 M6 M0 u7 W, M( h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ Q7 _7 I) m5 p: ^: X. | if( pSkillProp == NULL )
6 z) I2 O$ U7 q continue;' }" y! J3 J# m' a' @7 Q* {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& i; U* [* U. n1 e, f continue;+ D' f g+ H) q& P
lpSkill->dwLevel = dwTmpSkLevel;
0 C4 s7 T( k/ s9 x; H# L8 [ }
/ P8 i! d7 R4 {# M6 E/ L8 p8 w0 U4 r }
7 ?# a) T( M6 @ } [; z* y9 C: u( v+ C y, \/ n0 @) D
else if(IsHero())8 ^& [; Q0 `) D* m7 h3 C+ a
{9 h& [$ k: t7 |6 G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ M( W: Y, l" k { 8 _6 Y5 F5 M' Z) z
LPSKILL lpSkill = &(m_aJobSkill);$ C9 X0 u9 i+ {& ]9 J; D/ H0 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )" P& w; ]% C9 X- i2 z0 M/ s+ c3 P
{
4 c5 M4 m0 G1 {9 o6 w9 I7 Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% }$ G5 v W( L* | if( pSkillProp == NULL )
n7 ~ `7 C( `0 L; Y continue;
9 Q k9 w9 c6 x( J. C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% U5 W |: G. `/ O continue;
& G4 B. i8 Y5 q" W: b5 T# @: Z lpSkill->dwLevel = 5;6 w! m& m! x+ }7 l" V( z8 z
}
2 r( @6 c: P6 E) v$ t6 \- r }
" w+ k; b- C$ Y; ]# g- e; ^ }
7 f: Y! n+ e* @: W: c& k else if(IsLegendHero())
; r! y. j1 B e( N9 M! ? {
1 Z( m% A8 W9 K6 m: k/ s6 a Q for( int i = 0; i < MAX_SKILL_JOB; i++ ) - Q4 _; P/ c. F/ c
{ * U9 @2 E7 A& b5 n
LPSKILL lpSkill = &(m_aJobSkill);
, R( X% ~8 T5 T3 n+ U9 s if( lpSkill && lpSkill->dwSkill != NULL_ID )+ S7 |% T% r. ^4 C. t1 y, r& o
{
9 o( X' D# Q% Q _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 `( w) n5 p0 a: x7 l7 r if( pSkillProp == NULL )
" }3 A# \% H/ m, X' M2 X7 C s continue;! @- {' k4 s$ j2 T5 a" p* V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 l! a3 W. e3 H/ _0 v' J
continue;% l% j! r: d3 j( S5 z
lpSkill->dwLevel = 5;' q1 C8 C1 P, a; Y; h' t" c6 Q
}
: S8 M; U) k9 R+ j. w' N/ r8 N }
0 V) ^, w8 H' m2 S, \2 v }
2 L7 R; {; Z% h1 A; H3 w#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
* N D- @. u! u- n$ V if( bGamma )
0 z4 p: m8 q: _6 y" g1 n3 N& a {
1 r# ]0 v0 z7 ? B+ [8 z m_nExp1 = 0;
) Y1 f! O- @* Z2 G }0 n7 N$ U( q5 c1 [. O3 W, E
: ^# i1 ?2 g; D0 j m
( (CUser*)this )->AddSetChangeJob( nJob );7 W6 g* l# s& \( B
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ X- E5 S) E i5 g# M: T
, G, c: \5 Z$ p, D- X3 i9 W
8 V: ~$ E9 i7 O6 E" W- d
#if __VER >= 11 // __SYS_PLAYER_DATA1 S" Z9 {0 Q' I2 b0 `3 x! n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 @4 k% t# o7 F/ |; j
#else // __SYS_PLAYER_DATA
. N7 ]. |& V$ ]* y7 ] V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );, l* M8 m" w0 `6 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) n; X& ?/ }: w! W- W" d# y( _ if( m_idGuild != 0 )3 o( P! ~5 k8 d2 K8 l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );/ h9 n" _; W' ]7 X; U2 \$ \
#endif // __SYS_PLAYER_DATA
1 Z' F& C/ g. P) n' S SetHitPoint( GetMaxHitPoint() );- E( X" E5 h% U/ f. a; G
SetManaPoint( GetMaxManaPoint() );
3 u2 [0 s+ e, H: ^# R9 z SetFatiguePoint( GetMaxFatiguePoint() );
$ b4 s T/ L- @6 D# ] if( nJob >= 1 && nJob <= 4 ) ^. x3 L' J# {' E' [- ^# E
{+ U" p+ u! m7 g9 O/ {- a3 K
m_nStr = m_nSta = m_nDex = m_nInt = 15;) Y4 x: j7 g6 o: r3 O
m_nRemainGP = 28;% f' f: y& e; L5 X% J
}6 R! W$ x9 e. y; \, x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 Q+ p2 f6 F6 B {
/ b" t s2 ~% Q8 R7 d m_nRemainGP = 118;) s# d' _( N( @( C: x E @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
" H% z- W& F% V# ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;
# s; P3 ]7 L# a* ?! F' G0 J }
! i0 [4 q. N$ C/ f9 r if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 J5 N d# d/ q% q2 N8 T3 X
{; A- c2 ?8 z+ f
CItemElem itemelem;
% ^- @& G& I# ^( }7 L! M itemelem.m_nItemNum = 1;+ Y. ?/ l8 S: q' ]4 y6 r% q- n( z/ h
itemelem.m_bCharged = TRUE;8 Q7 q# d- q9 @3 s/ b6 W" ~, D
BYTE nID;$ R2 ^8 K1 \, e% O' x9 s/ v2 m
5 p. E! |! \ D3 V/ e' i if( nJob == JOB_MENTALIST_HERO )
5 p$ t3 v- s9 _4 n, H; l, e& {# S itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
! U4 s8 ^& V7 W% T& n- d" j2 Q if( nJob == JOB_FORCEMASTER_HERO )5 Q! a/ \1 L7 H0 x a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 c+ C x5 n& P7 x. s" B# K4 n3 c' V0 B1 X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 V9 R/ }# v: e; c }8 V# f6 C/ y* T
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ E6 r1 s- @- V& H5 L' G: p8 y* D+ _9 {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); S6 w4 X9 T% P4 R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# u5 E M9 e' f7 c! A /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ L% D U1 T# k+ |) i% G1 a- u k, D
( (CUser*)this )->AddTaskBar();*/
: b8 D/ s0 \( z0 m, d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# j0 @7 B9 p; t7 K* `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% t e- j8 O0 i! J; V5 m F ((CUser*)this)->CheckHonorStat();
7 K5 i4 r8 } ]% c" |+ v ((CUser*)this)->AddHonorListAck();3 [2 O2 B' S, R6 F W% A" L
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( l5 c+ E0 ~9 u$ s#endif // __HONORABLE_TITLE // ′Tà?
# r3 g! `: B/ n- o5 B }
7 o9 x! E' {& h7 \ n% }#endif // __WORLDSERVER5 t2 M( d: r, K9 `8 W; H$ M
}
! m' d% L. m' `- |! l
* c4 ~5 g0 i8 n然后你进入functextcmd.cpp并添加以下( D) r* \0 i/ Y. B
5 K; B2 S( {* Q! W* a. S2 g' a7 R代码:( n- T# _& i# S' {) N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# b" H- A0 t/ |5 K
下面插入) b& n0 g) g8 c# f9 H* d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ V7 u, q* u. a4 u! |5 B% k
. d, b0 K6 Y9 K6 p然后你去
3 H. L2 W, b, P; N0 x( J
% G8 H# N5 {' A/ E* M% z1 m/ d代码:2 z u6 u5 ~/ ]2 |. c+ M) |
代码 O3 J7 ]3 @+ P& ^/ Y# R
BOOL TextCmd_ClearPropose( CScanner & s )
* Z# m* ^- F, l9 J, a: X{' n) T. G- q G j6 t: A! {% T
#ifdef __WORLDSERVER
& w2 r) F! F0 I/ V# ~$ K7 M9 x CUser* pUser = (CUser*)s.dwValue; H& Q# Y' {; a, ^5 e: K& ]
g_dpDBClient.SendClearPropose();! f( [. c2 G, G7 i
#endif // __WORLDSERVER
1 s. e2 d9 x0 o8 B: C; Z return TRUE;
" i6 [2 f9 |- p+ B U2 s- E}
8 V7 Z8 p9 W9 w: p& }3 E* Y下面插入
* |( d$ s% n4 F- @BOOL TextCmd_rebirth( CScanner& scanner )
: @* k2 S/ `0 B$ ~( d{' n3 c& b) X) }
#ifdef __WORLDSERVER8 h ^% H, {' J* F3 F1 d
CUser *pUser;
# A3 M' l ?7 N+ p# hpUser = (CUser*)scanner.dwValue;" B, F% |, C) s7 T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 L0 Q1 r- T( M2 N
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) |8 p( M0 L; b5 e$ u, I( D9 b
else
: H. L' }9 N3 R% X2 e) L4 BpUser->AddText("你还未达到重生条件!");4 L2 N( r% }* g8 {1 K
#endif
9 h _, ?0 I9 N$ @$ Q6 O" freturn TRUE;, q" j. K3 t4 m, ?8 Y
} 9 x# E0 x# y* N1 ~ w' h* }( Z' f
) G8 i1 F: ^! \: I1 h8 S5 }
; L8 a7 f7 H5 K
) b2 D' [$ B/ [/ w) y$ F6 i! h" x7 K+ {
|
|