|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( F- ~9 j- n) u/ p( T0 y% Y
7 _( ~- @- `8 N8 YMover.h
& O8 N: ?1 |0 N5 G( i代码:
# H1 s" b/ y4 v/ v- u7 _找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' c9 G5 a! Z2 @$ T% u7 }' x
) i& F1 `5 c# z6 n% \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 m6 B; l4 ?3 g1 c5 t i4 L
9 F; H+ {# O2 c5 X然后你去mover.cpp添加
) n; m# Q) V/ F- B1 |; P& r& z$ W z" G7 g8 l! l7 A
代码:+ H9 U" n. h, [4 a1 ]% z2 Z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
/ @( N9 L1 m/ h3 W7 ~7 I4 z% d{
1 }- E2 s' E0 p2 y+ K& A#ifdef __WORLDSERVER5 }1 |$ W# A# q& n. l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 G+ `7 d$ U( J b: Y) _ MoverProp* pProp = GetProp();
) j$ P! w: b3 l# X- x6 D if( pProp )0 Y) I, O8 R) }. X
{* O! y# n+ H/ ^. C
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 E4 c8 o& z Y
{
. \: a% E+ B4 m, M AddChangeJob( nJob );& B/ l' w% [& z5 t
}else{$ Y; f5 z' R% l$ I2 s9 E5 v3 I0 d
return;
0 F0 n {# S3 L7 f* F9 I- K }6 b: m' a( |1 N R* _4 _, d
int nPoint = 0;
; z; R6 \5 z6 z0 L4 L if( m_nJob == JOB_MERCENARY )
1 R, a$ I7 f7 o, b; W nPoint += 40;0 _& j, U6 b* P- ^/ T9 B
else if( m_nJob == JOB_ACROBAT )
/ r z- k& c, _1 J$ O8 ?! a nPoint += 50;: J8 C% _* V! X/ F r6 j M" I/ \
else if( m_nJob == JOB_ASSIST )
7 o/ r4 ]/ \3 w& E h+ p nPoint += 60;8 k! `; V7 ?' X# y0 ^5 u) _
else if( m_nJob == JOB_MAGICIAN )
9 _8 x* n0 t6 A6 U) I3 F nPoint += 90; l+ J6 j y% i' k' |/ z, f) X! W: \
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 k# C8 M2 I1 g1 W
nPoint += 120;
' w- ?; T J" n% R0 G# g. B+ Z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, W; q' }3 N v C/ Z nPoint += 150;
0 ~1 {" L3 N7 O9 }7 ] else if( m_nJob == JOB_RINGMASTER )
4 x$ }2 O, T0 N nPoint += 160;
, ]' t9 Y$ |: h) Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 m! e& \9 D( i: n
nPoint += 180;
& r6 Q& U5 ~9 j8 W. X+ N5 E else if( m_nJob == JOB_ELEMENTOR )8 n) `0 h5 J! a
nPoint += 390;
; {! l/ ~6 B R+ X4 F* ` A% P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 [" T1 C7 [" I9 y& \ nPoint += 120;
" K* V- m& [3 W% p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
% w) F! u G8 {+ \4 q l7 A! ~# ~ nPoint += 150;. H+ I) i. O+ l+ J4 `5 y
else if( nJob == JOB_FLORIST_HERO )
4 E/ q6 H- V3 k8 x9 i( x$ ` nPoint += 160;
( J7 M7 H9 @1 ]% \% _: [/ e( q else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, m6 F7 M J$ E% H% D nPoint += 180;
8 d- r% x/ c# m' ^- d3 @ else if( nJob == JOB_ELEMENTORLORD_HERO ): b+ w* ^7 e9 l. \. t9 F8 L6 w
nPoint += 390;/ \- J* o/ c! D6 y. }$ M$ |
4 Z; `* [/ F4 z9 M' S0 n& z0 j: ]* ?
AddSkillPoint( nPoint );
& k( a4 V3 k9 b& b' ]& Z { m_nLevel = nLevel;$ W5 O) n2 u* `/ Z$ u Q3 h
- N: n3 {- D0 k
SetJobLevel( nLevel, nJob );
7 C1 z/ o# l7 }7 @# S m_nDeathLevel = nLevel;% `" Y' ?1 K) ?; A* U5 N8 J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ k& l/ i" s: D( c% ?9 l4 _ if(IsMaster())
0 \8 B) V P/ m O0 v( E6 I% X/ b {: B. I8 ^/ F& W, Y, {/ z4 J: M- G5 f
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 X" j& ^! h3 a& D
if( nLevel > 59 && nLevel < 72 )
3 H7 h( O7 U3 s dwTmpSkLevel = 1;9 D; v- T9 B; H: M. s
else if( nLevel > 71 && nLevel < 84 )
( P0 Z* g7 M1 h9 K. w- l dwTmpSkLevel = 2;) @3 z' K. j% h& n4 [0 b5 e
else if( nLevel > 83 && nLevel < 96 ); y. f3 {* ^2 h: Q4 p. Z' `8 o: O) V# h
dwTmpSkLevel = 3;
3 n! L0 l6 g) ^ r! _+ d else if( nLevel > 95 && nLevel < 108 )7 d3 _* _8 b/ V
dwTmpSkLevel = 4;
4 F" d# W- m/ X( l8 }- b% R3 X else if( nLevel > 107 && nLevel < 120 )
' t* |; c4 ]7 y6 @2 l dwTmpSkLevel = 5;3 h- V4 t4 q0 r0 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) \- ^+ [6 k! K# ]- ~2 F
{ 4 o- K7 u1 W ^
LPSKILL lpSkill = &(m_aJobSkill);
1 K0 z* {: t3 w% E' i if( lpSkill && lpSkill->dwSkill != NULL_ID ) ^* }2 c S" Y; a) e) l
{2 m0 O% r5 s, `7 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 `9 I9 x6 e0 a8 v4 s if( pSkillProp == NULL )' ^; ?( _, o7 ^7 t
continue;
* F# k8 b6 p7 Z3 [& V0 i% c' | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! z- V/ ~) {9 u
continue;
1 G1 C" z6 P8 q% L& O7 l lpSkill->dwLevel = dwTmpSkLevel;
8 b! u6 s' C& e: B- B1 x$ k }
8 g0 b! u# R3 a) P) _ }% s! I9 e/ u; I" a3 k9 {0 t% l
}
5 F: A P% Y( U# y% w/ i else if(IsHero())" x: d* v" E* |
{
+ J/ \5 l* h" ~) Z- q, e; Q, Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 P4 _; C' N E3 [
{ 0 t1 |' ~; q7 C# i$ N3 _
LPSKILL lpSkill = &(m_aJobSkill);
. t; I' V; V3 k3 `. C& o1 H if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 m$ K$ [( v* r: r7 ? {. J1 [& w8 u9 Z4 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 V- X# Y+ A$ b( i, B* b if( pSkillProp == NULL )
+ S& g- b g) m1 b continue;% _( U$ M0 a6 w7 N& Z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 z& b! W" N5 }) w7 s2 Q' h2 S
continue;
8 }& Z- Y; R& K# I1 \ lpSkill->dwLevel = 5;
V- j- F0 _# {' q }/ O% T8 j7 ]. X9 {" a' N- W' |2 o* ^
}+ t( H: G: t- x: P- Z
}+ L; N& F/ ?6 M# N
else if(IsLegendHero()), J; q) l& F ?8 J3 S, `) {
{
5 e' [/ d2 I% n" r. l% v* t for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 N0 K$ [2 Y0 ]/ J! A; f {
- m* O c1 [! q: [5 C, c LPSKILL lpSkill = &(m_aJobSkill);. Z8 Y/ z( W3 w0 X' X0 ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ w7 h- I3 W% z& ~ {
8 Q" s1 g/ b' d6 C" m8 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 D; g7 U6 ^, R% ?% U4 {6 @% g* w
if( pSkillProp == NULL )' Z6 E+ M+ C z
continue;
, X6 R+ T# C, |& b; E1 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 W4 x+ Z# O/ Q2 Z" T
continue;/ m6 L& O$ m% m& i# g
lpSkill->dwLevel = 5;: L1 q W! F# N. t
}
1 q$ Y; ]0 h+ B; [# k* a }
& A& h4 b5 _8 U6 Z5 N }3 q: H0 z+ T9 v5 K9 u4 H8 `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 e# W0 n$ b1 B! M if( bGamma )
: f% O" x2 R8 ]+ \0 W {
: D" O9 h4 @+ t0 X0 ~ m_nExp1 = 0;
& s! R0 c- J$ d/ D1 e }% K$ z2 g# @+ x5 z( \( u+ F
6 i' ?. B& L2 }: B4 h ( (CUser*)this )->AddSetChangeJob( nJob );$ x" o$ C: `' S* ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ u' o6 W0 P- {% C( U+ f# a
1 Y, y9 ^ x5 x9 i) [! H1 b5 m* M, k0 h$ o" H {' k
#if __VER >= 11 // __SYS_PLAYER_DATA$ C# l2 G) D* B! `/ o
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
" E4 m! j, \2 \, q: H9 L: s# _#else // __SYS_PLAYER_DATA2 c% I! O8 Y1 r9 C
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& x! W9 H2 X: ?, { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
/ A; M9 u# y, Q5 i if( m_idGuild != 0 )
5 ]" z: c7 @( e& a0 q& u! v g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; a0 B [; S$ D" a( f, {; U#endif // __SYS_PLAYER_DATA X& `4 |8 [ o8 X; U
SetHitPoint( GetMaxHitPoint() );) q8 h# o% }0 L. d+ W3 K% G5 D5 w
SetManaPoint( GetMaxManaPoint() );
/ H+ [8 v" V2 U0 e SetFatiguePoint( GetMaxFatiguePoint() );! Z& Q3 h8 H+ b9 I8 ^
if( nJob >= 1 && nJob <= 4 )9 k/ b7 U# G/ x b% ~2 Y
{3 S1 e; r7 Y( x) x! v/ l$ @
m_nStr = m_nSta = m_nDex = m_nInt = 15;5 g, c/ ^9 c( C6 W
m_nRemainGP = 28;
2 ?) a N" C) J% n0 | C3 A. F }* O- H1 P4 f1 o
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )- p4 ~4 N: g. F2 [% o( w9 u X7 D" V/ y
{5 O5 {% V: X3 k5 \7 B' r
m_nRemainGP = 118;
9 \ o+ o A2 M/ } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( O. M5 N$ h+ c8 X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% g& v. P' b7 q# d# X; O# X }3 l8 m0 i) V) t5 V5 x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* Y; n- H- r0 Y* {# ?7 d, q+ j
{
) S7 ], ?# k" g# X& q5 f) r. S, t* K CItemElem itemelem;
0 y, N% l& A8 x$ V3 V- _ itemelem.m_nItemNum = 1;; U6 Q4 }9 O* E" i
itemelem.m_bCharged = TRUE;
" J- U; N4 E0 g2 \, q/ z% V1 m BYTE nID;
3 R# S3 S8 T' O, Z
2 @; O3 h1 t3 Q, ]1 |- z if( nJob == JOB_MENTALIST_HERO )
3 r i& K9 y2 {5 Y( j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ S( I9 f5 T9 |. S7 P( l; C# G if( nJob == JOB_FORCEMASTER_HERO ); j) O1 n( J! _6 O+ D* O5 l7 o3 f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: n; i, F9 W" u
' s; _% _; Y' F4 @7 t1 [5 P ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 M+ R3 Z) @2 C0 e4 X# d }/ H! c* E' a* {4 F; G, e
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 ^! M$ y$ f% j( e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
4 z3 T. U4 J& n* ~ o. j8 l6 X7 H ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, A2 p, n+ }7 X! T) ^3 O/ C7 Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
, f& a! w R6 u) G! E ( (CUser*)this )->AddTaskBar();*/& e9 W; x* m2 B$ G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# F) @! V* C( C3 k# z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
% t3 o( [+ b8 K ((CUser*)this)->CheckHonorStat();
0 A! u; K3 d. T ((CUser*)this)->AddHonorListAck();4 ^7 K; @3 M' X+ a
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ N: u7 w2 [% ]1 Z9 e
#endif // __HONORABLE_TITLE // ′Tà?
1 k; H* e( u8 ^ }* _' {4 r' J4 w) C
#endif // __WORLDSERVER
" _: p& v; q: J} . \8 q7 D& x, S' Y& m
b3 p' o0 o/ A+ O然后你进入functextcmd.cpp并添加以下# a" w4 A& f3 j5 g! ~
- |8 d' D/ o" D$ C: L
代码:
% T6 s/ w$ Q% Z: LON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" H1 z7 j/ `( r/ c1 Z7 C- |$ g( p下面插入- f+ d$ a1 J& f/ O" e: T& G. v- I
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
5 ?0 V+ a/ [. i+ t, z8 H! i9 ?
! g/ x6 X3 j# C- a# `1 e X0 A" a' Q6 ]然后你去' u9 i/ R- |4 G; _( o9 J3 ~/ }& [2 {
6 p- p- U+ t2 T. W; E7 {6 g代码:
: ], e8 w* a8 K+ {代码! u; Q; J& U5 H$ d9 l2 L$ v
BOOL TextCmd_ClearPropose( CScanner & s )5 j% h' Y4 O1 r. h& ]
{+ m+ f9 Q* c7 v* A" h' z# \- B
#ifdef __WORLDSERVER
& T6 x7 z2 X$ c) `4 e( y CUser* pUser = (CUser*)s.dwValue;+ |. J" T1 T5 y' D' ^- D
g_dpDBClient.SendClearPropose();/ [2 F9 F1 O( u% x
#endif // __WORLDSERVER/ H1 I! |2 |% v3 X7 [5 `
return TRUE;
$ G! _* h3 C, e! \9 A6 A}- [, o% F9 \. j0 h
下面插入
2 W) @' b$ ?, }( n+ {BOOL TextCmd_rebirth( CScanner& scanner )
; i, U* Y1 B0 s! } w- q- j) T{
! R+ v* ~9 ~" `! h#ifdef __WORLDSERVER/ K$ p3 ]& R; S( R
CUser *pUser;. d3 J" g* `9 S) [
pUser = (CUser*)scanner.dwValue;0 J1 I/ m/ `$ [" m
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! p$ |% H8 h2 c6 P
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 U h6 c5 T6 _+ w. U1 |% O4 T
else1 Z3 {0 X# g/ J
pUser->AddText("你还未达到重生条件!");
O5 o. G; W: C1 j" O W3 H3 A#endif
# W$ b& E q0 X7 w$ s/ sreturn TRUE;% b/ O! @7 u5 P3 C8 G8 c
} ; {/ [5 K) O5 ]& E3 f" e9 u
q4 s5 [3 a: G3 y* h$ D8 M& t
$ o1 x" H7 s+ R* y6 j1 ?
: p3 o9 Y \( \
+ a) X7 p, N7 V2 o( K: V |
|