|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 y, o) W5 I+ M! y
# R; O2 n- b- Y+ o) Z9 v) q
Mover.h
! O9 X+ y4 `' D9 S# x代码:* d4 c& Y& h) q% e
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 x9 `6 {4 Q. H
x5 l0 k, Z+ \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! x7 `) b$ `1 w* N+ C0 s* S2 u! s, e( n; [8 U5 [
然后你去mover.cpp添加! x8 s2 E- z7 x! l+ P
3 e/ `! n- \% g9 W代码:$ e. Q+ s$ T q& u% S& X- i
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" Q6 `+ ~3 s* k
{
/ K& Z$ o) u" B* o#ifdef __WORLDSERVER
9 a4 K8 \) |7 z: Y- l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; P; Q# d5 t' c b* \
MoverProp* pProp = GetProp(); b6 }6 B/ y6 C1 T+ b2 _7 S7 A: H
if( pProp )2 ]9 w" M- H3 D! J# z+ E
{
* U$ g* e+ r% k if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 E3 A* n1 X6 \" |9 O- V, q
{
- D7 ^$ {* q2 P+ C: z X$ d) E ? AddChangeJob( nJob );
6 J) {. t* O5 _0 ]4 ^5 ^ }else{, ]% b$ g+ a+ N
return;
% B7 X+ k- u. @- `# Q& E% g4 `+ [5 u }$ y- g1 U8 T8 `( O; g; T, L+ C+ Q. ?
int nPoint = 0;
4 g% Z8 ~' p2 L8 h8 E& V: d3 L if( m_nJob == JOB_MERCENARY ). r- o2 \2 y( }4 x2 N8 e
nPoint += 40;' E0 h& t+ R! g6 u v
else if( m_nJob == JOB_ACROBAT )( B( D9 v1 r* D- R* f
nPoint += 50;
+ k4 P/ u+ H/ S: o/ E/ c7 P) G else if( m_nJob == JOB_ASSIST )
% p' |% [# M* m) B$ t nPoint += 60;, |1 `2 m% ~& l" d1 K$ C! x1 T
else if( m_nJob == JOB_MAGICIAN ) G& t- J$ b9 L
nPoint += 90;
, X8 ^- U( T6 ?" O- ~. ~, N else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 I7 w% n1 H5 t* C( Q
nPoint += 120;
" `. n" h0 s @7 i: J. p( | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ x0 \6 p I% b+ j; v! K
nPoint += 150;
% `: }' J) m" x) f) ~9 q( X5 K else if( m_nJob == JOB_RINGMASTER )3 }6 a7 f/ W; o/ X! h
nPoint += 160;
) V1 T5 k1 W9 z; X8 k1 ^ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 U* m/ S4 x5 t Q5 u- x
nPoint += 180;
' b; g5 ~" E2 I# k @8 y) I& M else if( m_nJob == JOB_ELEMENTOR )
2 g5 J$ x! P1 P9 k nPoint += 390;2 b' d. l) o% F* v7 l% a F8 o
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 _- h$ u M. K9 s/ R/ O/ M
nPoint += 120;
/ _& n2 X# c% n% x3 y& x! A/ \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) Z, h+ A3 c* e t! `
nPoint += 150;( s9 L$ y& x; L4 s, a9 l. m
else if( nJob == JOB_FLORIST_HERO ) U! h ^, x# |
nPoint += 160;* ^, W6 Y. {. z0 l+ S. X
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 M* D0 ^6 s' B) {/ Y7 d nPoint += 180;
$ G+ n$ F: _4 c3 j, q$ `( Q4 W else if( nJob == JOB_ELEMENTORLORD_HERO )
1 O* n [2 C3 A( v* C nPoint += 390;: l* O0 E# \- R
: w% m& p+ D t7 O; h4 l# t
AddSkillPoint( nPoint );
3 [" t) x* A) j m_nLevel = nLevel;5 R4 M* i* O! ]: F
4 v7 o* w* c4 ?' v( A SetJobLevel( nLevel, nJob );* j, O: i- ]0 i f4 p& p
m_nDeathLevel = nLevel;
9 ]8 t7 V2 R1 r! C' y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# w v/ O0 B* \4 D
if(IsMaster())! n! R2 @ \! w
{
8 E) c3 m6 Q6 }& {# |! m) | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
) @/ M% l3 m9 Q+ o, [' \ if( nLevel > 59 && nLevel < 72 )
3 g' r* }8 B* u G6 M1 a) h* K dwTmpSkLevel = 1;
1 G* @$ U- I1 f. g2 l else if( nLevel > 71 && nLevel < 84 )9 ?9 A& _" z/ j4 @( a% c9 Q, o
dwTmpSkLevel = 2;. k' d4 ~6 p" r" A/ @# X$ i T, b
else if( nLevel > 83 && nLevel < 96 )5 `% R+ _% j [( g: ]; @
dwTmpSkLevel = 3;) S- H7 y' l0 x8 O7 a6 U
else if( nLevel > 95 && nLevel < 108 )
9 ?. u7 r0 X+ J2 t4 h+ J dwTmpSkLevel = 4;9 D, `1 g6 ?! X+ |2 k! L
else if( nLevel > 107 && nLevel < 120 )
. O5 n0 L- B I+ K% O dwTmpSkLevel = 5;
) J9 e- l/ d2 q$ [0 R) Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
, X. O5 ]( k$ X4 r% e {
+ B, U- n% Z, m8 M0 y5 F& u9 T/ T LPSKILL lpSkill = &(m_aJobSkill);" F# Z1 D8 N/ `
if( lpSkill && lpSkill->dwSkill != NULL_ID )) h% w, L3 i" ?- {1 A- n: {; i9 e
{
& v9 c6 g& \( R- h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) z/ j( ?9 B0 z+ z: s if( pSkillProp == NULL )
' M8 |$ E$ o: Y+ @$ `. \- U continue;+ e6 M' {, l1 g8 N ~7 ]0 v$ L% \' N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. P- y. t5 z# @: y3 k continue;( c' X; `8 X4 D, N
lpSkill->dwLevel = dwTmpSkLevel;6 V4 t6 o r* {% _* S. V, Q
}
6 B0 `9 {( B" t b }
* t" A( z! n7 |0 `, Y/ G }
: y6 H' o5 k1 ~/ X1 G5 F else if(IsHero())
4 R; y* ?7 N% u/ K2 W# C! h6 R* D2 U8 f {' @% {" ` o X5 q8 r* h" {- K- j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) p; h* J( `. p
{ 3 `* f: |: C/ i+ x3 Z$ R+ [0 \2 @- N
LPSKILL lpSkill = &(m_aJobSkill);
, j8 N) K6 }$ \; [4 t l5 j if( lpSkill && lpSkill->dwSkill != NULL_ID )1 f% f) b6 u1 x4 X
{0 S3 g' N. C( V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) h$ |1 g2 ~$ A" ^% n! G* L
if( pSkillProp == NULL )
) D/ C# }6 Z" `# L1 _; Y/ ^6 \$ K continue;% r2 x o p6 U6 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" c* ~$ R, _9 u! ^* Q2 D% U2 J' r
continue;, V0 V3 @' v; P. y+ S
lpSkill->dwLevel = 5;
. N, V9 n2 @. U! W( V6 _ }& w: S; t# I& h4 ]: _
}8 E0 u3 a2 |4 |
}/ I. D6 G [0 o5 n% F
else if(IsLegendHero())0 ]/ [6 v! X& C/ l2 [
{
2 _( N9 \3 X0 z$ ?9 w0 R for( int i = 0; i < MAX_SKILL_JOB; i++ )
) e9 s X5 \- _, N- u' I {
8 l( Y( J9 r. W0 d, i5 j. t- s* F LPSKILL lpSkill = &(m_aJobSkill);
9 s; \+ P1 ], Y- L if( lpSkill && lpSkill->dwSkill != NULL_ID )5 y# _1 i* Y& @: i
{$ m4 V* _' k2 e4 d9 g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( _' X5 F' W) z* N
if( pSkillProp == NULL )6 _+ a+ v( |; I; p( e
continue;
# n4 t! ^ c! T# q' {; ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( x2 H; d4 G* C5 }) n continue;
+ l+ q* `+ S Y X' O lpSkill->dwLevel = 5;
4 P; a+ b5 A J- X0 P }8 @! o/ o* x* C
}5 m2 d3 H2 U" i" K& f: h
}! [8 H! R3 b) Z+ d- \9 _, ?
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' U9 ^' g' K" ~ if( bGamma )
: |5 k, n8 h3 g. q( @: b1 M9 } {! E g, q; D$ z0 X6 p
m_nExp1 = 0;& ?# V i0 H- R; z
}
$ m3 b& |4 [0 j( ^% B
1 A+ |6 N9 e3 @: z2 F ( (CUser*)this )->AddSetChangeJob( nJob );! `) y3 G' |# d7 P9 o: y
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 e5 z6 s! r) p8 W5 E" N1 D# t$ k7 ^ I' y8 S i- b! D! E- i0 N
8 D+ F$ J# K8 T: ^0 m# ^
#if __VER >= 11 // __SYS_PLAYER_DATA; u5 K5 c' l- c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- o# s) \& P" g8 k#else // __SYS_PLAYER_DATA$ G# @6 {# S# t2 C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. K7 d( |/ T! N& o g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
( `1 n/ _0 t+ F8 I if( m_idGuild != 0 )2 D) Z$ t1 ~5 h5 _' j; z/ P$ I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& e) f8 X* l, R. _% v3 e+ i#endif // __SYS_PLAYER_DATA3 {- G: F( T) a% e- V
SetHitPoint( GetMaxHitPoint() );( l I1 X# R# A Q' r- W7 P1 ^
SetManaPoint( GetMaxManaPoint() );
3 Q) D0 J) M/ \, i0 z SetFatiguePoint( GetMaxFatiguePoint() );
; Z i0 u$ s! b4 [6 g! u if( nJob >= 1 && nJob <= 4 )4 L6 w9 e- c$ H7 \) z
{
. U" G6 M5 p3 w4 [! \ m_nStr = m_nSta = m_nDex = m_nInt = 15;3 y1 W+ l8 p: j7 M; B i. \
m_nRemainGP = 28;
7 r* H, q+ Y6 I6 u }
6 Y+ @5 h( T4 t3 N if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )6 `& i* ]- g" g. `( ~0 P1 s8 _
{
& R8 t/ p4 g3 z" p$ J m_nRemainGP = 118;' @$ X0 {) A. ]0 c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 n; F; z8 e8 m: |6 t% K m_nStr = m_nSta = m_nDex = m_nInt = 15;' u Q5 t: ?; O/ {
}8 [8 _! \- E, Z _
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 N7 Q% P9 C. N L6 v* k$ ^
{
2 o8 P$ k# M+ v. w; | CItemElem itemelem;
% c- ?7 t6 C8 x; b9 e3 E) j) c) p5 Z itemelem.m_nItemNum = 1;
, M7 b6 k! p% i& Z- b itemelem.m_bCharged = TRUE;
& i3 C- K6 P. J BYTE nID;4 U$ a7 @% b( w8 A8 r6 ]4 T1 J/ h
0 ^: w5 i# W* R0 f2 i- U if( nJob == JOB_MENTALIST_HERO )! z! _2 B( M2 W# `# [' j% F
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* Q: b% @( l* r6 Q if( nJob == JOB_FORCEMASTER_HERO )
( D! a- l! s4 n$ O, j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, n# P* H5 ^0 {5 v
. \, t: \. n9 W# {# ]/ y$ }9 b
( ( CUser*)this)->CreateItem( &itemelem, &nID ); U+ R$ K5 }9 M; G
}- F2 W8 @1 c8 X! h
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& H/ K6 \, `' ^% b9 {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: k9 Y. e% l- b2 X: c# g/ O' x! @ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 a& J' `0 y, R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ l1 y _# k' y* b
( (CUser*)this )->AddTaskBar();*/1 U( s, g; Y" E/ w, q m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 b4 p- G) ?8 z+ Q- }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 J1 u8 a$ o6 X. h2 q; h
((CUser*)this)->CheckHonorStat();) N6 ?7 S5 Z6 c6 ]
((CUser*)this)->AddHonorListAck();
! x) m1 s/ y$ _' c7 z. }* ]% f g_UserMng.AddHonorTitleChange( this, m_nHonor);- x+ o2 R9 U6 J3 s: s
#endif // __HONORABLE_TITLE // ′Tà?/ [7 o$ t0 {8 k9 I
} ^& [+ Z8 m6 \
#endif // __WORLDSERVER& o- F% [8 h9 i/ b
}
$ ~3 N0 d8 L+ a; B& Y3 S1 o M& {
" X6 r5 d4 U6 h2 i' _$ }9 G0 ^然后你进入functextcmd.cpp并添加以下
* X) S# e1 E" k/ f7 B1 |
* j6 Y3 L; ]# k9 e0 l. V) v* v7 X代码:& x. g( V; ?* b9 v2 {+ z9 d9 a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& A7 S# P" {, I; S& y4 `
下面插入2 | K2 T0 J/ E0 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / y6 G8 d; V) _3 |
: K* Y. {" S; n2 x3 \' @然后你去$ \; ^- ]) s5 ]6 U: l2 x
- g1 e) i) g1 l, z3 f& t4 z代码:
p3 l/ G: i# p7 V代码8 B2 S( Y7 B0 X) b
BOOL TextCmd_ClearPropose( CScanner & s )! t+ l6 j5 u, o1 n) v7 K
{; R+ X7 T* C% E. m6 j/ }# L
#ifdef __WORLDSERVER5 r1 x7 `2 N0 C8 j' X8 C
CUser* pUser = (CUser*)s.dwValue;+ L* g4 I/ D2 c, L9 I
g_dpDBClient.SendClearPropose();
, L! k7 z2 Z, v$ {#endif // __WORLDSERVER( g: O( C, ?" }3 p9 h b; \# U
return TRUE;
# B! T* P8 ?/ f+ _}
# [/ v9 z6 v9 w; t" c- h下面插入
2 ?4 K: T/ d1 U. ~( y' ?- W! N" U& gBOOL TextCmd_rebirth( CScanner& scanner )4 H! ^+ V% q# I
{
5 O: v5 [. b2 I1 t7 E1 \#ifdef __WORLDSERVER u' j2 D1 t1 N
CUser *pUser;
. G: n* |3 t! \pUser = (CUser*)scanner.dwValue;
. g. I: D/ k0 F; p. \; A7 mif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())( I6 h- W0 t9 ?- m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
) Y: O$ s3 K D+ R5 }else! v) M, T5 Y7 y% n! \. i X: V
pUser->AddText("你还未达到重生条件!");
. t9 T+ B! V& m* M#endif _! M q* o& t( h1 l" R% i
return TRUE;: F& Q3 l2 H; I0 |: X" m. O2 e
}
# P' j; i: b: Q6 J( t
+ O7 X- O6 a: J, N* a$ L# }. L/ V1 [: s7 {) i7 f5 {/ ?
1 J4 X) Q7 \0 e6 Y# ?' N/ s) O9 R! z4 p
|
|