|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. U* K% t" q5 }1 ~8 i9 y) _& Z) s( ~, W7 [! k, _
Mover.h& ^( z' g. N! v: m1 F. p1 x4 g
代码:# v- k: b3 y$ C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
z% ~5 c3 b6 B: m% X e0 z, `- F& R) m( k6 z: u. w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 x4 Z# w4 ~' z$ `. a( b3 H$ w: w0 ?. [, Y6 A8 k# n2 C- }
然后你去mover.cpp添加
! U- B4 U& M5 b0 ]7 z5 d% x
% O( x; n/ y" K8 g; j* N代码:8 z' ]" h& e }% O- |) `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- {, ~9 T- k( A
{
% A5 S5 n: e: [: {# Z$ G#ifdef __WORLDSERVER6 Y' [+ r0 ]$ D9 g- ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; s0 s' u) C0 P$ r6 B' |& j2 N
MoverProp* pProp = GetProp();
5 Q, @! T& K0 d! u if( pProp )
+ I; Y5 G' K! p# i {
7 u; n' i& u1 J O: q if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. t. k- a: c y* k% o( \: Y {. S2 W; a: e7 [8 d) ?
AddChangeJob( nJob );5 c% c/ b! Y) B. c; l
}else{
* c2 b8 j3 d' P L return;
+ Q, G7 v; ^0 H/ i; }0 Z4 ` }4 `" {& m3 q: \
int nPoint = 0;
7 Y9 N. n( }$ m, k if( m_nJob == JOB_MERCENARY )6 `1 ~) O+ v6 H' i9 e9 k$ d% q
nPoint += 40;
$ k5 X2 ]+ R0 j R/ T else if( m_nJob == JOB_ACROBAT )" d" k! l6 T" r
nPoint += 50;
, `9 t, ~, r( j7 y$ v4 R else if( m_nJob == JOB_ASSIST )9 r; H2 x/ ~. S& N/ P. N7 ?
nPoint += 60;
1 m+ ]- e p5 f: y" W% T, w0 P else if( m_nJob == JOB_MAGICIAN )
' N( p' H: k: ?2 ~% n0 k( s nPoint += 90;
6 F4 l A M, M9 L" J else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 J; V8 d$ R) S5 u$ g2 q
nPoint += 120;
1 G2 `% p$ K3 U9 \! o( a else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% L5 v. i g: u: R5 u5 o2 O nPoint += 150;
. T" X% L4 H1 [' s! W# k3 q else if( m_nJob == JOB_RINGMASTER )
" S" G$ @( e7 ~1 h nPoint += 160;
, H3 H1 G( s% i9 r9 r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! o2 [1 a1 z8 ^8 V l/ H9 y nPoint += 180;: J$ t" _ j3 f' \0 [) B
else if( m_nJob == JOB_ELEMENTOR )( R: I+ ]: I0 i4 N
nPoint += 390;: V$ w; p. d/ w& n: g
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 P# @! L4 I ^$ |3 A nPoint += 120;3 u. G. G; E# t0 u3 Y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! V% r+ b. _# c: f; b
nPoint += 150;; _1 h' v' l0 }5 w- X
else if( nJob == JOB_FLORIST_HERO ); K8 x0 [9 i1 x) E* {6 Y
nPoint += 160;. X8 X% ^$ \! o; Q( ^. ^: H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. x, N! a+ Y7 X nPoint += 180;( Q1 V) b2 U+ M8 C! H& n
else if( nJob == JOB_ELEMENTORLORD_HERO )3 A9 @0 |" _$ Q. L9 X i
nPoint += 390;& f; q* S& B( P( [) |; \& K6 a
! a5 R3 f p: ?9 N2 v/ U6 D9 e
AddSkillPoint( nPoint );0 I8 m) d1 T4 c$ t
m_nLevel = nLevel;0 Q, w2 k7 K# [4 m% ^8 Z- a
" R* m$ t8 f- g# P: I+ \8 X
SetJobLevel( nLevel, nJob );
2 ^: i( M: C0 L8 F m_nDeathLevel = nLevel;# B ~5 k* k8 K5 L" t4 J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" j- l2 r d. P- u0 w) a1 M- f if(IsMaster())
2 _$ W) T7 J. R' |2 {" u {
( Y' q7 R; l9 k& j- i1 k. n: d( S int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
1 p# k ~" j. k U if( nLevel > 59 && nLevel < 72 )2 L+ C( F4 F8 w& t
dwTmpSkLevel = 1;
( W) N& [7 c, b/ c* Z else if( nLevel > 71 && nLevel < 84 )% S' l* u! m0 Z- A" [4 \6 v
dwTmpSkLevel = 2;
8 M0 O; w# V. b6 g else if( nLevel > 83 && nLevel < 96 )
& l3 h6 E, {" _8 h dwTmpSkLevel = 3;8 h5 K ~, f6 U- H# p& u& K4 g
else if( nLevel > 95 && nLevel < 108 )
/ }) |- q+ }6 [+ h. @, s dwTmpSkLevel = 4;5 |: n, i3 v5 c( F- t6 K% A v8 l
else if( nLevel > 107 && nLevel < 120 )
! w) s; E6 v6 z' ?% _( I dwTmpSkLevel = 5;
1 ]# p6 ^& q! i! j/ O- ~ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 N3 S- g9 F- p7 r, @2 F
{ 6 N+ t" A4 L- D' `' M+ n
LPSKILL lpSkill = &(m_aJobSkill);
; E9 s' g& D) y; E; `2 h9 z+ q( j if( lpSkill && lpSkill->dwSkill != NULL_ID )( M# Y1 `/ k! S' j( N1 \
{& b5 @/ J( `* g& s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ P g1 n2 l; O# l# C7 J if( pSkillProp == NULL )
5 w4 n. ]4 N( E- s7 P( K0 L0 n continue;
- A& C( o3 j! O9 e4 o if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 n! A' b3 d7 c* r3 c) r
continue;9 Z! o0 k4 T! s N: S
lpSkill->dwLevel = dwTmpSkLevel;
9 V! ], Y3 u; X' C0 E+ S } }4 D( w# J2 P- A
}
6 ^$ K; _- X2 I8 Y/ ~ }. A' g) }9 }5 m. }' Z+ r) n
else if(IsHero())
- @2 P0 w1 o3 g* G- v {6 n" y; E9 J/ p7 m
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 u- \ r" Q) n- d( x3 h9 c { " X* D$ P, G! o5 z! D
LPSKILL lpSkill = &(m_aJobSkill);
}* h% u7 s$ E8 S+ m- U \ if( lpSkill && lpSkill->dwSkill != NULL_ID )) l1 M- N4 m4 f2 o* s' s
{
0 m8 H% Q+ A1 T0 t/ e6 y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& }1 M/ `7 ~2 c- d& Q' h* x if( pSkillProp == NULL )
6 b; M2 w; q v1 ?/ t continue;5 f _2 r3 f, ?3 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 w0 @ Y9 l7 i; \0 c continue;/ |2 e- s0 x. h+ ~! P
lpSkill->dwLevel = 5;0 I4 ~3 R3 q' B. I$ z. N
}
5 c o% @: o) ~ }
9 G! @% ]9 q* V0 w# u) ~( a }
/ U, V) z$ a4 ~/ J& C% r2 C3 d else if(IsLegendHero())5 D# Y1 S0 q# t" \2 M
{
. t( p: n( k$ R0 j. n' l for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 S( }4 ~* I) T% V: v8 g/ O
{
/ m. D/ D6 n' a LPSKILL lpSkill = &(m_aJobSkill);- m" x D; h' Z5 f
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 o0 R. W! S/ q4 }
{3 U4 ]# E% J) c( {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 [) C5 }9 S L- B! h. k" o' [1 Z$ k8 |
if( pSkillProp == NULL )) E% v1 ], o: _5 {8 L
continue;2 k+ x7 S2 n: G' f
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ a1 T0 T7 ?- S continue;
5 R `. k/ n7 }& }9 p lpSkill->dwLevel = 5;
* q; p1 \) M! r4 s' j }8 {8 R, l$ S" ~2 L8 d3 Z
}) ^- B: p4 f, q
}
; e) _* |7 s2 @( l' f#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
G1 H! E' K" P( P. e# z% m if( bGamma )
, F! `2 _" D+ H! Q* Y {
% K# z& B! C* _+ _5 p A9 P m_nExp1 = 0;3 R/ A; a9 l- ~: y. o
}
5 H- l% U( W8 N- J$ h* }$ Z: p5 j# y1 ?2 }
( (CUser*)this )->AddSetChangeJob( nJob );5 \( {0 x3 Y5 [2 X% F
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 J) B, R6 x9 k
* l1 J8 C$ g3 r3 c! C$ b. n+ `/ }
0 E& q4 H2 |& d! E1 B9 }% ?
#if __VER >= 11 // __SYS_PLAYER_DATA) i/ u7 j" g6 c8 K9 n1 t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
z5 \7 d% I( j3 k#else // __SYS_PLAYER_DATA
1 G3 B1 Y( ]- N" M% g0 } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: g: t! t# K" ]3 \$ t. _ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 u6 K6 h4 w$ r, [( S) N& | if( m_idGuild != 0 )) S# D$ `, _ c0 W* w0 B
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
7 z+ U: R1 B. R0 M#endif // __SYS_PLAYER_DATA
$ z& e7 W% b2 J SetHitPoint( GetMaxHitPoint() );$ T8 Y- S" |0 X1 E
SetManaPoint( GetMaxManaPoint() );$ ~+ K0 @6 A% `* L8 H
SetFatiguePoint( GetMaxFatiguePoint() );
, N% [7 H0 b* g$ ?7 S7 ^ if( nJob >= 1 && nJob <= 4 )
: f [2 S8 G4 _7 o: R4 q& o2 n* ^. j {
" L7 [7 y& A1 [ m_nStr = m_nSta = m_nDex = m_nInt = 15;; A" E6 l9 }+ q. ~/ _8 ~9 b
m_nRemainGP = 28;2 F9 g. d+ c0 w
}* z* I: e2 l8 U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 R/ Z- T3 ^9 Q7 ?. s
{2 q! P% ~% F. X7 a
m_nRemainGP = 118;
8 d K/ H! r( k4 o+ w //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( Y" e% J/ ?( H, l0 `9 Z: ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;( u- z; _3 p0 H/ K: v5 G# \- f" \
}3 q, x6 q1 e& ^/ e
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( ?! n7 C" Z# T3 N S/ [( l { M/ A# B# c& g5 {! |1 E
CItemElem itemelem;3 k9 G% U r8 ~$ |6 h
itemelem.m_nItemNum = 1;9 y6 @3 ^. T* i$ ~7 h5 _. v% d0 y
itemelem.m_bCharged = TRUE;
$ F: T" V* `; B$ o6 O' P BYTE nID;- X5 \" C3 }. Z
+ u( ^( M6 c, r! s
if( nJob == JOB_MENTALIST_HERO )6 L, N8 j) i2 n+ W
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) u. o5 i+ u/ f7 R. ?8 t
if( nJob == JOB_FORCEMASTER_HERO )
4 m; j' d; n7 d7 e# V( R itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;7 D9 g6 p1 |, |+ e/ B( N z
* N, h5 J& _% H0 m3 J
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! D. k b. r. w! ]' j }
' }/ P4 o7 S* [! E4 e g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 U. H( S; {) C ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ f R1 O8 H* z. x i" c# c ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) \$ e6 b! \# Q# x; E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
$ g0 b' S( E& F7 ^ @ ( (CUser*)this )->AddTaskBar();*/: G& c1 C3 ~$ r- f3 i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 P1 F, `2 y4 Z( i1 ~& s u#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" n4 p+ @" ~2 c3 F1 o8 B
((CUser*)this)->CheckHonorStat();
' Z7 y1 z4 i/ i9 v u ((CUser*)this)->AddHonorListAck();
8 F* E- G$ ~2 F9 d6 K g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 i9 K5 N: l) Q; q#endif // __HONORABLE_TITLE // ′Tà?
7 j0 r; a" V0 @% Y" {; D }
3 Y; ~0 O5 {& ~#endif // __WORLDSERVER
" g) @7 F" s2 [$ }( k% t" n} I5 c* i8 a$ Y/ `6 P+ J6 u5 |
3 Y9 t$ d5 U3 V4 { S* O9 \
然后你进入functextcmd.cpp并添加以下
8 W7 }' c1 E& ]0 Z" k: q. N& U1 N3 q m
代码:
1 g1 m! z8 ~5 KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ k9 c8 o2 ]; X+ P( ~. H3 s下面插入" {# _" R4 f, S+ V" E0 F3 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * w/ \( b; |' c
# S+ V) Q! ?, ^5 m& n% l然后你去+ [- L2 T4 W' C D7 T# Z
/ b2 ?$ y, h% e1 T; F
代码:
: i1 P0 M, v' { Y) `$ r D代码' u4 |: n) k1 i* l2 T
BOOL TextCmd_ClearPropose( CScanner & s )
6 h( d! K& K3 D' W# w, _{9 k% A8 w3 M6 n$ }6 O7 ]$ p
#ifdef __WORLDSERVER! o' [+ H, ]' x! l6 g/ z( k$ C# _
CUser* pUser = (CUser*)s.dwValue;* u" G3 k3 |, C4 h! `% d
g_dpDBClient.SendClearPropose();
" g: ]1 a: J6 Y. ]* }#endif // __WORLDSERVER
$ m( V8 P8 X+ L7 R Q return TRUE;
% ]; e2 c1 ]# f, E) d}# T3 _& h" _1 o/ r! U* ], F
下面插入7 t6 W$ M7 C; ]+ e/ x4 @
BOOL TextCmd_rebirth( CScanner& scanner )+ H2 o0 i. \; ~ t3 k% U+ [
{
) A9 j. S9 O; h& Z( Y" a#ifdef __WORLDSERVER1 O( T$ T8 ]: Q7 x
CUser *pUser;% w) N/ |9 t) ?1 A/ E# L; ~" Z/ c
pUser = (CUser*)scanner.dwValue;
/ ~5 n& A. Y: ?6 _! N9 S1 P0 i: Rif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& u) I6 X# U; T) n( a. m. S
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' b4 t1 i6 l+ j/ e) Oelse+ J, G' R. C, n% a. |
pUser->AddText("你还未达到重生条件!");, H, ?/ \* Z( F8 ?+ F
#endif" |5 f$ _; T9 C) E! k- r; D
return TRUE;4 \2 a1 E& j' t' B4 v
}
, L# R* P8 m4 B& x5 Q- i4 ~- R: W6 H' _2 O
. D7 J t5 ^+ O: e$ z1 { E3 W! z! p" n
4 a/ U( A; t6 M) h( ^ |
|