|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 Y$ z( V3 N G6 f+ j
k% X1 x. Z5 |: Q
Mover.h( J$ ^+ _5 {1 G& n/ ~
代码:; R) ~4 o8 r& n0 |1 I; i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 V( l) N6 O* C) S/ G
- `( N9 n i! O2 Q+ R2 B; D下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) r7 @$ |! Z/ u3 B9 A) z
9 b9 D$ q9 y+ K
然后你去mover.cpp添加6 h/ r& I# l G. \; R/ U% g
' V0 C! H, f3 `% h代码:
1 U/ b0 L5 T2 I: i* @) s: Gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 |1 _- i( `4 @0 i: ?- g8 d
{
, b; N/ O$ p0 Z" s+ U, p#ifdef __WORLDSERVER9 p/ L# i+ L; G* K' V
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 j- Z; x- ]3 @" u: R' j2 Y1 V MoverProp* pProp = GetProp();
( i6 ~' w0 C" }7 [4 K- u9 C# h if( pProp ) j/ K. }: A! T. t, L7 C" h
{7 q; ^% i! p3 y* o! U: ?7 [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
2 T5 ?6 q& |# J5 z {* @9 H& t/ b- F3 [& ?( e- @) n. z4 ~7 d$ F
AddChangeJob( nJob );+ P, L9 \7 [4 f2 _( s% ~
}else{
5 B c* E2 |! b) I1 K3 d return;
6 `5 S8 ~' z1 |9 I1 M) z" e }
3 E# Y, R' P9 P& c/ r4 ^9 C: t$ M( W int nPoint = 0;/ _% I+ G# C9 l1 s
if( m_nJob == JOB_MERCENARY )
" b# l4 v/ m1 P* n( d nPoint += 40;# y+ D j: T# X7 k% I& I8 T7 Y
else if( m_nJob == JOB_ACROBAT )
) r2 L9 E! z( Q6 |# H6 \ nPoint += 50;# K4 O- v) |% H+ ^' ^
else if( m_nJob == JOB_ASSIST )
) X2 u }/ P5 ]+ l) y {/ l nPoint += 60;/ G6 f1 J p% J& Y5 z0 }4 C s
else if( m_nJob == JOB_MAGICIAN )5 e. k% H1 s2 m1 L% T6 K4 j
nPoint += 90;
3 p6 |' U* q o# K3 l8 {% g* O* H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )0 P' y9 v- F( ?
nPoint += 120;
4 R6 Y, f1 m+ u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )# ]* ?+ u/ x% E7 |8 d
nPoint += 150;
( h4 u6 j# A& ~5 s7 y- [7 u( F" s) U else if( m_nJob == JOB_RINGMASTER )
) e3 P8 b3 \$ Z$ L) k6 N* | nPoint += 160;& I2 u1 X" A0 C1 b7 [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& n) U" E/ I, a! R9 b* |, f4 ~
nPoint += 180;
6 c' R4 k! J, Z! R$ k else if( m_nJob == JOB_ELEMENTOR )* [- Y8 S! t: `+ m+ A, G
nPoint += 390;5 }' B# o2 V/ E; N( w, n0 b
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 g& H+ ?' `" [# { nPoint += 120;
% a! V3 ~3 A+ ^! w- ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ): i1 \* ~7 c. d9 a* }
nPoint += 150;
E2 l" W, V2 U else if( nJob == JOB_FLORIST_HERO )8 Y* w; e4 V6 b* \. S1 d; N% `; p
nPoint += 160;- Y+ F- f1 q- G9 Y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
# `% s! k0 Q( G) `& a4 E: `% i nPoint += 180;; |8 _' A+ ~$ k+ Q/ O* }
else if( nJob == JOB_ELEMENTORLORD_HERO )! y" C2 {5 G9 n# \/ E
nPoint += 390;
; C, y6 z6 Q* X# G* t4 v
7 @4 S1 U& ^- F; f+ J% { AddSkillPoint( nPoint );
0 G) [6 V1 e% x( m0 V# B# N8 \5 j m_nLevel = nLevel;
Y _7 s/ e5 h4 V, y* g8 E
% |( R8 `, ]4 h2 i/ R5 _) ` SetJobLevel( nLevel, nJob );
2 G% N- {4 Q$ ~2 Y; `/ k5 F9 f; p m_nDeathLevel = nLevel;
; Y, w% N: M' g0 ?' B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; T( e- V/ Q& T; B if(IsMaster())
( J9 V. A. f6 |! p2 O6 U4 N {) e o: h/ p' z- X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- ~! [ t; k, z& Z+ h$ J# Q
if( nLevel > 59 && nLevel < 72 ): f# i' P* Q8 z8 x# Z2 o0 O
dwTmpSkLevel = 1;
& t6 e# V9 |% J( W6 k [+ p' a/ O else if( nLevel > 71 && nLevel < 84 ): A1 k- D) R7 m H8 f0 `: \
dwTmpSkLevel = 2;
; \4 u! g0 @8 n1 o else if( nLevel > 83 && nLevel < 96 )5 u- P! j, z4 S: S7 k0 n0 b, l) F! G( x
dwTmpSkLevel = 3;, ^( ?- j- T# k- ]3 s$ O
else if( nLevel > 95 && nLevel < 108 )1 i$ l! {5 R/ T. {4 @# S. g
dwTmpSkLevel = 4;+ F6 t. p3 I3 S2 }- O/ z! X
else if( nLevel > 107 && nLevel < 120 ), |# \' y* ^% t
dwTmpSkLevel = 5;
9 H0 h: i; {2 ^' E5 [! @# C0 O for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ U4 d6 F* [ r0 S4 {/ K {
7 p0 |0 N2 `) [$ \& v$ p LPSKILL lpSkill = &(m_aJobSkill);
1 K' M6 O* {; d. D+ d if( lpSkill && lpSkill->dwSkill != NULL_ID )
) j7 D" B8 {+ X/ M2 j% [ {" |, H$ z3 a% O2 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! v- Y* {- T+ S+ K* J1 g
if( pSkillProp == NULL )9 |$ r& ~9 b$ h% Y( N
continue;& b& u+ m3 u4 `* z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 Q% j- u. ]5 z
continue;
/ l% a" o* c7 m0 Z, k. I0 S lpSkill->dwLevel = dwTmpSkLevel;5 @) A, U, m3 R- P. V3 K. t9 Y3 e
}
0 K1 Z) W8 }' H! S! K: w' _ }
# ? q3 q+ E2 l2 U1 f8 Z( q+ Q" N }9 ]5 P# G; @6 E9 F
else if(IsHero())3 u1 s$ w' p. o* e0 y: H
{4 Y9 a- j# |3 C) o5 h \( B
for( int i = 0; i < MAX_SKILL_JOB; i++ )
. B T6 x% ^1 V9 A" K { 4 W7 V& D4 E0 R0 ^/ p
LPSKILL lpSkill = &(m_aJobSkill);0 d( O/ M9 K3 n( t7 r! P- n, ^. a
if( lpSkill && lpSkill->dwSkill != NULL_ID ): s7 M6 f( N& E. C; C! {9 J
{: {! J& O( W; U% {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ m- T! h9 x5 l5 A3 L0 c( H+ [
if( pSkillProp == NULL )
* A% {; T, P9 z6 X; G* _, F continue;
; P7 A! f. s, I$ z& ^5 L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 J4 x! ^7 y% F. X
continue;5 V* N* S# O9 K, K
lpSkill->dwLevel = 5;
: s" h/ y9 Y7 d5 m9 ?* ?4 ]9 o/ J }- z( |2 o2 G% Y, [: U4 ~
}- m; R" i% F' c0 D
}
' V8 R) H: Z" L W2 u: g8 |6 O else if(IsLegendHero()) g, Z) t1 [4 }5 P8 L2 ]0 ~
{$ O$ T( \4 T8 f! |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 a/ u; e- d8 Y0 V! R
{
% l" Y. C- M! ~1 E* h LPSKILL lpSkill = &(m_aJobSkill);
0 k) v- Z' E7 w3 w if( lpSkill && lpSkill->dwSkill != NULL_ID )% F4 U- r6 H. {, w! p. f8 E- A( o
{
- U9 h" k, |& x) d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , H) M* K: i% B/ d9 k/ a# b# |6 F
if( pSkillProp == NULL )0 F$ n( q e7 s! ~, ]9 J3 R9 E5 x& e/ G
continue;
$ h! f/ z( k: s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 `( x' X& R0 y continue;6 Y( s a/ V% R( [/ E$ R! d0 z
lpSkill->dwLevel = 5;! B6 ?' j+ `7 p0 \1 |; M
}6 F$ k$ _9 ?* a# P0 D/ N- c8 F
}
- W& n- X5 Q. V. B) K7 k }( w; Y8 Y) d) Q f ?' g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) B3 F& i. _. _ if( bGamma )
% b% o2 Y4 c9 s7 v8 h6 r {- m; K" ?# h" O
m_nExp1 = 0;& l) q9 P: b2 x1 O( N. P- {
}& ?& E! W3 o! R8 T9 Q" H
) e6 _* h) X9 F6 L) h5 `+ P
( (CUser*)this )->AddSetChangeJob( nJob );. C0 U+ e! P4 G. H2 p9 z9 a7 G
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 \0 L. I5 X" B
9 H: F e5 |) {( \' S, j
$ c+ Z% g: R6 _' y% ~& Y#if __VER >= 11 // __SYS_PLAYER_DATA2 m8 b2 Z$ E- N3 G5 s
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 k% l. Y; \; n# U, T6 V" G#else // __SYS_PLAYER_DATA
8 u/ ^' d/ p! e/ } g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. k W$ E% v5 M& |1 R g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 v* f+ L; S' F$ q0 u& e7 ^ if( m_idGuild != 0 )' r( l: v- s( E% H O( K4 M0 F" `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );: d+ \; I, d# ~& A9 p4 b; t
#endif // __SYS_PLAYER_DATA7 L" k8 b# N. p4 u. s- w
SetHitPoint( GetMaxHitPoint() );, v+ U- n) C5 f- s& C
SetManaPoint( GetMaxManaPoint() );, J9 Y- r; e; u! f: W ]) p
SetFatiguePoint( GetMaxFatiguePoint() );: ?" k7 Q' V8 N
if( nJob >= 1 && nJob <= 4 )6 z+ N. Y# I# q$ n: H( N( ?
{
& [% H& t% i+ V+ [ m_nStr = m_nSta = m_nDex = m_nInt = 15;9 b3 }$ T( ?. I, l) Z
m_nRemainGP = 28;
% z. ?5 C1 y/ ^1 ^8 B4 R d }; W$ D$ F, e7 F; @. i
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- y5 ]6 a4 d& I0 S- j3 R {
) S7 X- G, B# ]" g m m_nRemainGP = 118;; i) K' k6 V6 x6 b" w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
2 ?5 [1 K, H- {' O1 R m_nStr = m_nSta = m_nDex = m_nInt = 15;
! q; _! ^( o0 R H. |* [ }
& u; `1 e) K$ E) s V! i. L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
; u; H3 q+ R( ~7 Q+ E! R. E {8 G$ i+ r8 i" J9 t8 S4 |+ l
CItemElem itemelem;
|: X7 _7 z/ w. l/ W* B3 Z itemelem.m_nItemNum = 1;
5 [ W; S; |( m! _& I! a: D( X& R itemelem.m_bCharged = TRUE; T* \5 W; ?5 N; W0 a. f: B7 \
BYTE nID;, v a/ g+ Z6 m% s) D
& ~. \9 C6 w6 U# F2 g if( nJob == JOB_MENTALIST_HERO )5 O5 [: m- q9 E8 @% S
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, `' v. a4 {; e" q& L if( nJob == JOB_FORCEMASTER_HERO )" d0 G, J: Z9 p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, Q( ^9 I. q! z5 W- q9 h( |" n
: i' H5 i& l# N
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 B g3 @- J+ e5 ]+ b2 ]+ O }
7 v4 C- _! X' C( R+ _7 y+ y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 g" u# R5 z$ d! h3 ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, F+ B* I3 r0 J! ^8 X/ l
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, W) x4 ^( d3 X+ t/ x8 h; m* w /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. \$ @$ t; b% Y p: Y
( (CUser*)this )->AddTaskBar();*/$ O& n. T, s5 A! i. P
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 q) h1 P/ w9 r2 {! w6 \* @
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- Y( V1 S5 F- v/ x2 K
((CUser*)this)->CheckHonorStat();
) L: p$ B6 }$ I6 q4 V2 I0 x ((CUser*)this)->AddHonorListAck();7 s' e# @. Y! s
g_UserMng.AddHonorTitleChange( this, m_nHonor);
" N# f2 c9 W, o* h#endif // __HONORABLE_TITLE // ′Tà?
3 z& T( \6 O; k: p9 B }; [7 Y. C% L: D7 u
#endif // __WORLDSERVER
2 f$ _7 X4 l2 B3 G: g) v3 o) T4 X}
7 u% x( u( T7 p8 q8 e, ^4 f# E5 B; p# @! M. q5 M3 g; ^/ z A
然后你进入functextcmd.cpp并添加以下
) v, r2 \; t' s0 I- S( G+ }% H9 B/ Z+ w
: ^: I. u. w0 f5 A% Y7 `代码:) x7 a* M S& \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) h9 w+ q/ }1 I下面插入
" Z1 A6 [) q6 {: i# T- kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . V5 A4 {/ [: A
V" h. b: F: M7 X
然后你去
) }" q5 s$ h' D/ o# }6 D
3 M0 o+ R; ~2 n# ]8 |* v$ s* i) R代码:# N+ s5 \- y, ?- z3 i2 {% [
代码
0 b+ @2 S. T: q" w( fBOOL TextCmd_ClearPropose( CScanner & s )
8 W# i' m0 q; g- Z, B{
% ?: ]) k6 N# Q4 I8 \! B#ifdef __WORLDSERVER+ O* b- Q) F$ u# v
CUser* pUser = (CUser*)s.dwValue;, ?7 m+ M) V( s% t
g_dpDBClient.SendClearPropose();
; N4 e8 [5 c& D- u/ F#endif // __WORLDSERVER6 g: I- r+ M4 _" }" C, n
return TRUE;% ~$ B6 V' F% ?; U* k' v
}
! }5 v$ p6 \$ ^% x0 {/ T下面插入
U4 f. r6 C0 s: z4 r& M a" W. fBOOL TextCmd_rebirth( CScanner& scanner ) t6 C$ A$ L5 m# M' M
{
# n* \8 b1 ?( d% h7 K#ifdef __WORLDSERVER
# v, H* K' n( b" F [CUser *pUser; @' s$ ~( Q3 e$ F3 X: B
pUser = (CUser*)scanner.dwValue; m$ k" H) E2 \; } J0 L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())/ H. Q3 d9 |9 C8 q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ s+ M$ ^- X0 P! ]5 R: belse' H) N" E# Z9 G8 s7 E) t
pUser->AddText("你还未达到重生条件!");' U5 O8 G+ j" g
#endif
# @. O# P% {3 @# i$ g( G1 creturn TRUE;
. Y; j9 b. p; @( k} + e& r) E/ W* V; [; S# k
2 l4 L% j0 }# J9 x6 o
9 T+ K% \* E, U1 [& ]3 [4 Z- S" ^8 q) j- L# k
6 \! i# J6 r, j+ V4 h: O |
|