|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- c5 G' S$ C$ D' s; ^
& C) t" d+ g! @
Mover.h$ p3 _5 H) E" q# v/ Z" b$ |6 _
代码:
# H- X/ D7 { d& N2 e找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) Z- y+ l3 Z' Z" r5 L' V8 D/ v) i- P+ k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 2 ?* j" q/ C. i
0 \. y' x( V, c% D3 w; N) X然后你去mover.cpp添加& T) G+ ? ]( r3 V; Z r' N
4 L2 J* e0 O) _/ u代码:) E9 I" Y1 g; N- X, [- T, p
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 L! Y7 c2 M$ l9 F9 R{
, v+ V* u1 z2 t2 \#ifdef __WORLDSERVER
! `4 C# e7 s) \8 v) r // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% m. u; X; }, j, j& h1 m
MoverProp* pProp = GetProp();0 f$ n3 O% n! A/ U/ b# a2 @
if( pProp )
- \+ N) k, ]9 q7 t {
/ N: Q$ W7 Z) y) U' d if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 k5 p/ g/ S, Z* d7 ?
{
2 V6 @9 D, E x, x9 e AddChangeJob( nJob );
6 ^1 w4 e3 }( {. i" _2 k. t }else{: q' w) z' K2 y; k" z8 S
return;- I) l/ U& p1 m$ G7 y8 r9 X& c
}
: g0 E" g+ R. L) X$ W6 U2 E int nPoint = 0;7 P- @5 O# S; {3 N. c& L0 o
if( m_nJob == JOB_MERCENARY )$ G; W* i9 C7 g! ^0 y$ j- G# b) \
nPoint += 40;
) A8 V+ }; Y( H* s else if( m_nJob == JOB_ACROBAT )
0 e( m3 X) d X( {8 A, s4 N& \ nPoint += 50;
3 H4 u/ h+ f p$ q+ b else if( m_nJob == JOB_ASSIST )/ E# [, J* q1 I
nPoint += 60;) t; z# I, g. g. c x& |" R
else if( m_nJob == JOB_MAGICIAN )
0 r Z) Z8 d: t0 g9 \ nPoint += 90;* g, y- p( }. p! V
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
/ y' z8 U7 A. `% t1 M nPoint += 120;9 V8 Z, r, W( {0 v& I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% z. u) w9 N$ D6 q9 j# ?: N
nPoint += 150;9 n1 O: `3 y3 ~+ s* S7 c' D
else if( m_nJob == JOB_RINGMASTER )
. m. ` d8 d$ b. j nPoint += 160;
* Q% M! f. ?$ |, R: v. \/ V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 U. l9 g4 E } nPoint += 180;; u' v; ]8 w7 }( W8 G. u C5 Y; P
else if( m_nJob == JOB_ELEMENTOR )
# X5 K. ?" Y& i. p, U' P( z$ A+ x nPoint += 390; c5 `. I+ O1 V' C
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ p1 I! g0 ^ C" r nPoint += 120;& D0 K0 d+ U* J8 y* v
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 L6 G1 T9 r. K7 g8 R* K nPoint += 150;
; b& S# r* @9 v- o- i: h2 O z( M else if( nJob == JOB_FLORIST_HERO )
: s4 t4 {/ F7 m) I nPoint += 160;7 C: W1 v' Y$ H/ a. s
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 w1 n5 Y/ @/ h, Q: p8 i/ f( W1 c
nPoint += 180;/ j6 N7 R" [, y0 ?5 y( D( W) R
else if( nJob == JOB_ELEMENTORLORD_HERO )6 O" D" x; k9 A4 f- t! _- I4 O+ p% Z4 v
nPoint += 390;; ?5 r# ~. ?8 R. T1 Y
7 r( I( }8 v6 n- p) Z8 ` AddSkillPoint( nPoint );* a" {3 q$ }8 j$ t* S3 T
m_nLevel = nLevel;" ?6 A# p) I4 S
! {2 }- ~7 K) s6 P SetJobLevel( nLevel, nJob );" K" h! V U. O. O$ i
m_nDeathLevel = nLevel;% p5 b/ `: n# n' ~& w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- b! W+ Q0 [/ @/ I, C, S) q9 E if(IsMaster())5 { o. `5 X1 c
{
. j9 I0 [& l! ?& z! z# L b: n int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 Q" o% y+ z* Q9 R2 W1 C* x- \ if( nLevel > 59 && nLevel < 72 )9 S1 g" F }1 V6 s; T) [
dwTmpSkLevel = 1;
2 p- d/ p; t! G% d* U# j else if( nLevel > 71 && nLevel < 84 )
u! o& k" |1 X% W8 r: }# @8 H3 ~ dwTmpSkLevel = 2;) z: f% q' B0 {6 @/ J5 }
else if( nLevel > 83 && nLevel < 96 )' E3 l. p$ U6 S' U2 H; G
dwTmpSkLevel = 3;
; S* F- Z- T: \6 ?. ]5 V7 x8 { else if( nLevel > 95 && nLevel < 108 )
~/ m* i8 {+ J( d. N dwTmpSkLevel = 4;2 S# K& A0 t7 B! _" n6 G k' f, _
else if( nLevel > 107 && nLevel < 120 )
+ ~% A9 i7 Z4 I: S% ~ ?. J% B dwTmpSkLevel = 5;" S. J- F% m; _: ?
for( int i = 0; i < MAX_SKILL_JOB; i++ ) m) _0 s4 F. b6 J$ j' \
{
2 i; _ l( q" }% P( v' X) k+ F LPSKILL lpSkill = &(m_aJobSkill);0 x+ r; J4 Y9 a } j5 L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; O" n& z! m5 ^( c* M+ n {( }4 L7 m- r, [$ Y' w) V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * |/ o! E6 t; v5 p7 x; C
if( pSkillProp == NULL )& r+ y" c' {" X2 @+ N
continue;
& g/ d9 `+ @5 [( y% L if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 `0 F) K: d+ T( m
continue;
2 G' |& e# D6 a+ ^; {8 S8 f lpSkill->dwLevel = dwTmpSkLevel;
2 o# D0 W6 U+ U3 C/ e$ W0 g1 n }
( |5 B$ u& D- o& S% m1 L5 B0 ? }
5 z, Y) |6 g1 w6 Y, _1 a9 e }
9 f ?+ E# X: o else if(IsHero())! a0 e% G4 ^3 K' D
{; Q9 `" J- _+ H9 C$ x( j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ m. d/ E7 d) B8 X- z { 4 E3 P6 h/ ^5 r" r$ h
LPSKILL lpSkill = &(m_aJobSkill);1 _2 M: J1 A6 X2 G' U5 B! x
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ ?4 x% m1 ^9 N5 f) t' A: i' \
{
; Y# Q* B# I- G3 w; { ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; C* P% E! e/ h; g R3 V8 r if( pSkillProp == NULL )
" J, N2 G2 K0 _2 Q% L continue;# g2 o1 U3 O" l, w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 Z) ]8 |3 H# U4 R# m. t# D: I
continue;( `. M0 J6 y$ {; s% y( K" {
lpSkill->dwLevel = 5;1 H/ `3 J/ U0 k) [& {
}. m3 P# w" n! @4 ^6 r' l
}
0 m t1 k j& A }! r8 a4 ^ i) H @! `" {
else if(IsLegendHero())
" R# c" ?; W( _; s: t {
8 r9 a! p$ g ~* x8 [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
& X) I; ~6 Z" Z8 n {
* O# ]0 ~! K7 P# A: T LPSKILL lpSkill = &(m_aJobSkill);
) J3 V" x5 W$ ~, K/ Q! q. e if( lpSkill && lpSkill->dwSkill != NULL_ID )0 S2 U4 W: L2 p$ P2 G2 a |4 h
{
: X; a: ~+ p) U3 x1 @) z* [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 q0 T0 [% J8 e: b" Z if( pSkillProp == NULL )
' W( M7 y1 h+ q5 M) ~0 c8 X# L continue;
( }$ e1 H! ]" k+ s if( pSkillProp->dwItemKind1 != JTYPE_MASTER) {7 p" O5 y" Q& u4 e% n( l
continue;
! J" | O/ |- d! A+ z4 }5 e+ J2 D+ T lpSkill->dwLevel = 5;4 m% a$ g8 o" e4 [) H# d, C
}
( N1 U5 J e& r* J! x! c }, m3 d3 K, u; w+ u* t
}/ R, Z7 c) e" O
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. Y( Z5 Z, B& t4 a0 |* T) m
if( bGamma )
' I5 P7 ]* z5 N; ` {0 x; n3 q- p. y2 p/ u. D+ s
m_nExp1 = 0;
' L9 D9 M: [# M9 f, m0 C }
# w+ t/ G1 B* d" m U2 ?" p. F+ R; q+ U7 b+ @
( (CUser*)this )->AddSetChangeJob( nJob );
% ?' P6 m; }% J. R+ I g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 a- G. O# _' H; g6 E1 O
; Y" h/ |4 @9 m0 T! W+ x2 X3 Q
; I& |6 N7 t2 J4 \#if __VER >= 11 // __SYS_PLAYER_DATA6 l9 Q$ Q& Q# o) f
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 V, t1 S4 o" Q5 U& A7 D1 |#else // __SYS_PLAYER_DATA
2 t1 R c4 a, p( U2 @% f g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
7 G$ u& w8 c# v% y% p. S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 U6 W& @% \2 R1 j& X if( m_idGuild != 0 ): {/ V# R( l7 ~$ }; Y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 D( D1 R% g$ F2 d8 t#endif // __SYS_PLAYER_DATA7 U; g) l. E) w: k8 M* Z
SetHitPoint( GetMaxHitPoint() );4 m9 @8 l# a6 @* `/ Y. u* @# l
SetManaPoint( GetMaxManaPoint() );
. F1 M, A8 o8 `0 W! Z) @+ Y* X SetFatiguePoint( GetMaxFatiguePoint() );
$ R$ ]2 {/ E6 r if( nJob >= 1 && nJob <= 4 )
/ ^9 |9 I( i7 L& T' Y: a6 ^3 ^5 ` {3 h& G# e2 Z: _+ z4 e5 g1 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;* B- h y; ~: s- X( o$ a/ E. F
m_nRemainGP = 28;2 H# K- _" k% E) _
}, ?6 p3 v# l- j' w8 m
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )4 {4 `* c+ h8 X
{$ P( r/ Y2 s3 p
m_nRemainGP = 118;
2 @- x2 F9 @& u0 f* ~) a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 }5 A, b/ z2 x6 n3 V2 ^9 }3 B0 F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 n4 u( ?3 Q: K, y! ~' m }/ p$ R8 G7 W5 _% f- W
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
( m1 G0 e' H; w4 u0 z \; b/ g {
c& _9 U9 ~+ x3 E L CItemElem itemelem;
% f D% ^/ C! S$ l; k2 L7 H! v itemelem.m_nItemNum = 1;
) q3 n. ~+ Z3 U, `$ @* Z' w itemelem.m_bCharged = TRUE;
?1 y7 a7 ]$ s( G3 a3 W BYTE nID;
5 h; z; p4 @8 t; s1 N
* w( ]- v, @; T% ` [0 w$ G2 G if( nJob == JOB_MENTALIST_HERO )
( C6 M% C0 Z8 J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;' r' b- L( T& F3 s; z
if( nJob == JOB_FORCEMASTER_HERO )2 T, j3 C- i! X$ R- x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, }+ r9 g. Y/ C: n
( U, x8 L9 {8 k& _+ s8 p! [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
" u9 D0 w7 ^) a$ Y; ^ }
1 c6 N5 q: l1 Z6 C% f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 n9 A3 R5 i: r$ Q ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 _/ O- d I) t7 ~% U i; Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 r7 {8 E! W) K# k( A$ ] /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );) y0 k' k; V; W/ ?: Q% f
( (CUser*)this )->AddTaskBar();*/
; f2 {! {/ F- W! W8 N* s' d ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# x. Q5 C0 A3 ?- L' x6 K& m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 u" j0 M( `8 P( C$ F1 J
((CUser*)this)->CheckHonorStat();+ ^& {9 A6 M2 ^9 {- X# G
((CUser*)this)->AddHonorListAck(); \- m* C% J$ m4 r0 d0 |7 \6 ]
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& c. L- a' T* S, J! _#endif // __HONORABLE_TITLE // ′Tà?
* _/ f/ l+ y& h. N }: I" m: S* \0 U0 t8 | f
#endif // __WORLDSERVER, j& V+ K4 f# h9 h+ v! L& ]
} 6 d, |9 L. v3 x. o7 p& n9 x
, A' B6 e5 F0 D5 _0 C然后你进入functextcmd.cpp并添加以下
6 G. U0 I5 m% J) n+ B
, |: L: r, w0 d- ^代码:
6 @ Z, h( }# N8 JON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) w7 _4 i* n$ q5 \$ p% e0 r, V* i
下面插入# J1 {6 a/ N0 Q, _8 j
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
% W1 R" v! d& |% y- r$ }8 [% Y2 c, ^6 h
然后你去9 e ?& m, H' I% U* W% K: g
; ?* C4 \3 Q- J3 B
代码:
4 t1 t* @) D; b& R代码9 U# ?% K. k' }1 k, r5 k" n
BOOL TextCmd_ClearPropose( CScanner & s )$ p, d7 g& G; U3 e# t) l2 J9 Y
{) n- [2 J2 ~! h( }0 f! ]% t
#ifdef __WORLDSERVER
/ n" z/ ]& o" S, w5 P j CUser* pUser = (CUser*)s.dwValue;
6 W8 P( g& o; q4 R5 X2 d6 T7 N g_dpDBClient.SendClearPropose();9 ~, c% m" }% R5 K
#endif // __WORLDSERVER/ B4 D5 M, }+ n' g- o/ Y
return TRUE;
) U. X6 X7 }4 }4 J/ o. ~}6 |3 T5 M' D2 b) O3 Y( } S( z
下面插入
, L( H" |: A0 j0 ^" EBOOL TextCmd_rebirth( CScanner& scanner )
4 i1 O V# g; n/ j# ?/ `! ^{
. J+ P: l# U7 `2 [, p. F p0 ]) Q' |#ifdef __WORLDSERVER
! H0 R D9 s6 i' n' {" n6 I3 g5 f3 fCUser *pUser;
2 U: I# m0 t! o/ _; a# k: IpUser = (CUser*)scanner.dwValue;
- Z U' C, {; a9 |! T0 W* T4 ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ R5 ]# i4 j% B+ @3 b: }2 J6 u5 q( hpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 n) M; a; D3 |3 Y5 I0 [! kelse& ~! B: i7 t7 q6 W8 ?3 t% v* F
pUser->AddText("你还未达到重生条件!");
- P3 P* B# l2 s+ W# k3 V#endif
L# O1 }1 N# H9 _% L; L, y H7 freturn TRUE;
+ ]! i# D4 ? P1 J" a0 T5 e. w} 9 U& @" g, V, P1 h
, L1 X: q5 c& f( }. K( [
c# S& T" X# F/ }, D* A
& q$ g1 O( [$ {# j" @- J
' i1 o/ M0 I; D- |' ?4 V |
|