|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- X% z2 ~7 l* g- }# Y
0 A5 ~0 L6 R, @# i* S) P" lMover.h. |! H( O, i+ {6 h/ @& e) D
代码:
% Y+ \0 t1 n1 e% m, K找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü( u( A/ Q2 l" x% D. m" E
+ w1 E4 L6 X+ s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 S% L( J. Q( f) T# L
* D# d* H3 D" q: W( t. k( S: r然后你去mover.cpp添加& e3 s3 B$ O" D
6 l: ?& ~+ X3 p0 f2 |代码:( W; U) Y9 l! U5 J: ^& }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 ]9 N3 o7 L, R+ r/ R) q
{6 S3 Z/ T7 g8 j. {4 f" ^2 d, Y5 z
#ifdef __WORLDSERVER4 e1 v1 N8 x0 E8 W# u4 k: v' _
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
7 B1 v. U7 L2 D% @8 g4 q L* Y MoverProp* pProp = GetProp();
5 d$ u Y7 D% J1 r: T- x if( pProp )
) O: p9 i& v: c6 h8 c: z {3 b: d* P( E! ]: Q9 B, x3 _5 }
if( nJob > 0 && nJob < MAX_LEGEND_HERO )- ^1 h: g* J1 d
{# A% b- I8 O9 C: U# d0 Z2 p
AddChangeJob( nJob );
5 B% g O" S5 G- a. {. m, s$ D }else{
6 K- U2 q7 v/ U0 |4 F! Y$ }& j4 ^ return; f; T' C: d4 k# y1 u, d3 m
}
& J% f* R( y4 E0 u3 W/ t+ J/ i int nPoint = 0;0 R% H5 h+ g! V, J9 I- \% A: F4 t: B
if( m_nJob == JOB_MERCENARY )) F I+ H$ z8 A; ?
nPoint += 40;+ r) X/ u/ [8 [1 N+ f- b" S, _/ P5 Y
else if( m_nJob == JOB_ACROBAT )
9 a8 ^1 p4 R$ G5 q5 D: f nPoint += 50;- U; g3 |. a$ w! f4 S1 T
else if( m_nJob == JOB_ASSIST )
) ~( R# w7 f! Y7 Q* y2 X nPoint += 60;' E* O6 E. E3 E3 C4 g
else if( m_nJob == JOB_MAGICIAN )
# Q; Q/ p) L) r/ t x+ j nPoint += 90;
4 l- `. \1 w- }" K! H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
- W* t% Y: t3 f) V6 O# y nPoint += 120;! \* T) I. f2 I. W% |6 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* ], C9 c% V8 ~ nPoint += 150;
) U2 V6 s; z; P# N/ t1 r else if( m_nJob == JOB_RINGMASTER )# z* W; b" R' I* j1 A7 k; q
nPoint += 160;6 }- }6 I1 Y$ g
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) `0 }% m. |; ?3 K0 J. Z nPoint += 180;
* j8 t# C% o, K) q else if( m_nJob == JOB_ELEMENTOR )9 G! b" j9 d$ C
nPoint += 390;* X& J8 o2 r: L! @3 f; L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) `: I. u" ?2 f( f+ q4 K& N nPoint += 120;
8 ?. ?# n6 F. P; U) b& H# H else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )- X9 I1 p; @, Q5 o8 Q( R
nPoint += 150;3 T( W4 u" ^; Y) K
else if( nJob == JOB_FLORIST_HERO )
7 ^! Z/ p8 V! c nPoint += 160;
0 D8 k N- [. y9 V) {. A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- `& q+ o* v4 }( p! Y6 { nPoint += 180;4 `4 L& ~0 x8 ~9 o" _
else if( nJob == JOB_ELEMENTORLORD_HERO )! C# o$ _' J5 s( t
nPoint += 390;& i: [! U; }6 |2 \
- V) |5 O* r" z9 w9 K# K
AddSkillPoint( nPoint );2 U/ z( J# Q% H( l: A5 U
m_nLevel = nLevel;; l/ K& D' [, Q0 ]
: O L, _1 y! J8 E6 d! ` SetJobLevel( nLevel, nJob );
7 ?' r& o! g4 ^' g6 W% z/ V m_nDeathLevel = nLevel;7 ~& g6 `8 {4 z6 X @9 _" u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# j: W# Q6 |% F
if(IsMaster())
9 F( e8 v' h/ p. H+ L {% y9 S5 ]/ J/ k
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 q. u- _# {0 j3 s2 E! O. U9 @) w
if( nLevel > 59 && nLevel < 72 )* v& W+ u5 z8 _- o: j% Y- \* f
dwTmpSkLevel = 1;: f5 o! u" @3 C( S8 u
else if( nLevel > 71 && nLevel < 84 )1 z1 H; `' j' X) o
dwTmpSkLevel = 2;( @2 k- P3 R u' F+ V
else if( nLevel > 83 && nLevel < 96 )
% _6 d' J6 k/ V2 J2 [ dwTmpSkLevel = 3;6 j0 b' p/ V- K4 H0 ]* M' k, e( R z
else if( nLevel > 95 && nLevel < 108 )+ I3 o/ e- D, M( L" c/ ~
dwTmpSkLevel = 4;
% V' v. v3 L1 e4 [, _) F# t0 z else if( nLevel > 107 && nLevel < 120 )7 [! [0 f* F, `7 t) R. w
dwTmpSkLevel = 5;" L9 A. [* \, s2 g8 S6 O# L9 d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 H4 X7 a0 k: e* G) y: b, J
{
- ?3 N1 b7 l Q! I. x5 z& p6 d LPSKILL lpSkill = &(m_aJobSkill);
; P# d' v0 Q# k if( lpSkill && lpSkill->dwSkill != NULL_ID )7 j5 i4 Y* m5 g M* \6 p; l
{/ v" K; G; d: p- F# p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # G3 h$ D" _# L
if( pSkillProp == NULL ). S3 u7 s* V* Q
continue;* Y# _+ [5 Y) ]6 G* {) b, U( S* }+ r
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: D \ u0 H1 a0 J8 X0 U, r$ x' W continue;
. r. N% o2 \4 c" S% C9 c lpSkill->dwLevel = dwTmpSkLevel;/ C" n# D6 v5 b: y+ A* ~
}9 b% Q+ W1 X( P. U/ E
}# J+ J/ n! k6 w1 [
}0 f! s3 O% T* t& u- X4 l$ v
else if(IsHero())- u) F. S" |- @' W% u9 B
{" ^' y/ o) T/ i" G
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& G- j7 s( L+ h/ f8 E { ' o" d. m. i0 T
LPSKILL lpSkill = &(m_aJobSkill);/ ?3 _: Z* `4 B! _
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 N# G2 Q1 H; s
{
0 @+ L! G5 j/ p7 Z& j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( @$ v/ s+ r2 t5 }9 \2 Q8 c
if( pSkillProp == NULL )
* U; V+ V+ S0 q continue;
5 y1 r" D. U4 ~& X( o8 ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ S: N; P; x9 P
continue;
- v' J2 S6 ^1 [2 Z lpSkill->dwLevel = 5;
8 D2 W) Q, |/ I8 \' a }9 V5 h$ I9 d8 B0 p3 W
}, r: c- v' |) W3 P
}
9 W' n- h% @5 s: O# h else if(IsLegendHero())' M' o8 _1 E0 B7 B+ s" R2 {
{& Q, X$ C) b9 l( S) Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 W2 I" j& {1 h6 ^2 j0 O
{
3 m/ i" W1 p( p3 W5 |; u LPSKILL lpSkill = &(m_aJobSkill);% V0 M$ E4 A& a5 R8 j
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 X# A7 y4 |* u2 m* H/ A6 P {
! B/ v. R8 X6 \0 O& e8 ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! z; D* J' ~3 `* X4 c& a if( pSkillProp == NULL )0 w2 Q) F0 J4 d
continue;$ A/ S4 M- t2 d, O7 F# z4 ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 }2 s4 L' J7 F; X1 ^ continue;- k8 j" T9 Z4 M+ i3 j0 i& Y* E
lpSkill->dwLevel = 5;
9 p2 V6 E* J3 n9 h9 b9 T1 |' g" t3 G }
! X' P& l( p9 n" D }/ u2 n I a0 _
}
1 X8 w# m: \' X. X#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- \1 v0 r" e3 k8 x( Z7 } if( bGamma )3 @6 H7 S$ O$ T. K4 m. h8 r/ x! z
{
* T8 U* a1 T* G0 A( u8 d m_nExp1 = 0;! c, X9 t+ f: \7 }. o
}2 l9 P X. J0 g
; l% S Q! \1 X ( (CUser*)this )->AddSetChangeJob( nJob );# A! u/ S1 y U( O( Q! r, c6 M
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ A' }# W: z' y g+ N
8 q# y0 Z& H& ?
; j- R. k. ^+ O9 B
#if __VER >= 11 // __SYS_PLAYER_DATA% O3 Y+ ] D4 M/ r
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) t c( c( E2 E
#else // __SYS_PLAYER_DATA6 W9 o, j5 V/ s% {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- H+ k6 G/ A9 I7 n( i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ ]% i6 i! d9 V* [" \: y/ D
if( m_idGuild != 0 )# `: s9 O! a+ Z' q4 v, i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 l" g3 i$ g. H, p% j2 G#endif // __SYS_PLAYER_DATA3 J* A8 z* ^( Q0 l; R2 g
SetHitPoint( GetMaxHitPoint() );
9 d1 x$ k: m1 }: c- T; k V8 o# | SetManaPoint( GetMaxManaPoint() );
5 @2 J3 V& t: ? SetFatiguePoint( GetMaxFatiguePoint() );& N7 J3 N- i1 ?8 z5 A
if( nJob >= 1 && nJob <= 4 )
. r! m3 i0 s( M( W {0 ^6 O; Z" ^5 b* G( |
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 y' }- q& H: E% r$ |: c# w3 L m_nRemainGP = 28;
! e$ t% r! x5 w7 `' I! B) T }
. [! {6 O* W1 p) j1 ^ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ {/ L2 i( ^; s: G
{; N) I3 `; n* b6 Y( V2 q
m_nRemainGP = 118;
M3 c! T! \4 P e' t1 V //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 C6 j* A3 H& l7 ~- O1 | m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ T4 X/ l- Q( M+ w% D }
: s6 U. v/ N# a; M$ W7 D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )! ], b9 F# H2 M
{% w. o8 W& E# O6 M2 w7 v
CItemElem itemelem;) b( V* A& g, [2 G
itemelem.m_nItemNum = 1;7 r4 N$ Y/ s9 C3 Z2 U3 x) p
itemelem.m_bCharged = TRUE;# S- [' d, I. _* c
BYTE nID; y/ e6 B4 h" |: m% k1 G
0 l& R ~8 X' f) R* O+ U, U if( nJob == JOB_MENTALIST_HERO )
; L9 j$ @0 f, d9 Z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% a9 A1 z0 X% j& ~
if( nJob == JOB_FORCEMASTER_HERO ) G! g" D$ o8 | g9 u% J
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: f4 [$ s* Z6 z, a
1 J( Q2 L' X* ~8 ] ( ( CUser*)this)->CreateItem( &itemelem, &nID );
: `; x) E" Z6 v6 e2 ]! i }
' |; ^4 u& r/ ~1 N- R6 V0 g2 x( o) J( T g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 R: w L5 k' U5 L B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ N+ f: r! h Q7 N ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 W6 W' X5 B% V- g/ g
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ G+ h* b. j# f5 }- j/ U3 F ( (CUser*)this )->AddTaskBar();*/) V. r8 x m0 O9 H6 |
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
0 F) B" V* Q4 m4 W#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?' u, O" b* C! Q5 t& u, K
((CUser*)this)->CheckHonorStat();$ y3 J E1 `' A$ f2 t; a; y
((CUser*)this)->AddHonorListAck();* u1 b# i! v$ |; Q( m M
g_UserMng.AddHonorTitleChange( this, m_nHonor);
! m9 z/ \* m- r. D! C, g b' x#endif // __HONORABLE_TITLE // ′Tà?( f% u, }' l! }7 }, R1 m" A
}
5 [9 C5 B9 N0 G q, Y#endif // __WORLDSERVER; j; q# o' ?8 d% C
} 2 l; E8 Z8 {1 c% b6 V
6 E3 j4 n, v8 U& x$ c# O然后你进入functextcmd.cpp并添加以下
- W# ]! [7 H J
/ I% S$ R+ G; v5 q3 _6 n代码:
( x( B: B& e# x% h, @+ NON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 h' k+ c q3 f, G/ r% Z下面插入
6 b) e- N4 E' d( R: I& kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ [* \' A: I' D& @* \
, }( |- f8 [8 m然后你去- t; F. @6 S& d: v, @2 M4 o
" B: D# r: C/ q) d' @
代码:, o4 ~8 N/ h+ o+ ]+ P
代码
* `: t& p% ~5 u5 k1 Z7 n( t/ c- jBOOL TextCmd_ClearPropose( CScanner & s )
* W5 L: {0 G* `9 `7 n: p{
8 m. ^& f: m& p: n8 x9 B" k6 k3 n#ifdef __WORLDSERVER
% q( |& z. u4 P CUser* pUser = (CUser*)s.dwValue;. k5 ~/ ^( f: q4 [
g_dpDBClient.SendClearPropose();
0 {5 ]7 Z8 S5 u, X& T6 o#endif // __WORLDSERVER6 M7 ~+ g- S5 a6 a' g( u+ v
return TRUE;
3 C* M! {6 x. ?! Q4 c}
0 c+ c; h) q/ x o/ b# k下面插入
4 R6 P* d" k9 ]) t. ?& W6 L5 VBOOL TextCmd_rebirth( CScanner& scanner )! [. `+ x, f8 o" p1 r- H' o- N
{ W, w1 n7 U* A6 U9 d: b/ c0 E
#ifdef __WORLDSERVER
! ?- n, z! Q3 z, E3 |$ x/ ACUser *pUser;
0 _% m! t( L: l0 j3 R) \pUser = (CUser*)scanner.dwValue;
# |' C1 B0 D& w& A% N" F, x+ Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ B" \3 ?2 g/ ]9 Z" e G
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! \( @* y9 k" K
else
; A3 t6 A' ?: Y: q: _5 m9 d5 MpUser->AddText("你还未达到重生条件!");
. X; d9 V; f" A# G#endif
$ D# `% Q9 L3 T ^+ x) u6 \5 Kreturn TRUE;$ w7 d+ B0 O$ G" K2 |
}
" A( y5 x. B# E
+ r! A" C& E d& S1 h
6 O0 G4 ]2 J0 E' k6 \1 s k0 s
2 W9 ?1 y! {4 Q, b4 |$ w7 w8 Q, A. d4 T( ]! f7 b2 x2 i% D
|
|