|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 i$ ?* s4 h E/ O
1 w# Z6 n5 [% l" q4 b4 \) T8 ^
Mover.h
7 j( Q7 i! h1 w5 R; \代码:
8 p. A+ t1 D7 g% V- B8 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 a# }+ z4 h$ `5 k0 Q$ M. ?- S5 Q% [- ^6 L6 r7 U
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # y7 S7 a6 T% g
! _' D# l9 d' i然后你去mover.cpp添加
( J) ] s6 s# R3 g( T1 z+ P5 \* u. T
代码:
: U7 p6 x* H' O# Y6 i' ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; Q7 e1 ?0 W7 S( }{
% {; `: b g7 X" ^#ifdef __WORLDSERVER3 z2 d) C# ^9 o5 @
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& q5 C3 U& p4 X9 R' v MoverProp* pProp = GetProp();. s; n0 x# y. s1 z
if( pProp )
( J$ Q \- h: j# e2 v* z! Y4 G {; r! L5 `7 @9 }3 R2 N7 P9 ^/ Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 k( x# O4 B& S& A! i {
, S0 [5 V# a8 \: c! K$ b AddChangeJob( nJob );
2 m9 v8 g& e" @2 i* W' e7 a }else{; _( C8 u( @- M0 a, o
return;
1 G7 _- [# C1 V" Q$ _ }. l R3 H0 E9 Q
int nPoint = 0;8 }8 y( v( B# Z4 N2 T7 @
if( m_nJob == JOB_MERCENARY )0 w( G6 ^8 p5 g0 t: D0 t4 I
nPoint += 40;" T4 O" S$ W! g
else if( m_nJob == JOB_ACROBAT )
# h/ g% J8 @ H- V* j! d0 W. s nPoint += 50;
H3 n/ b0 e, V4 d) V else if( m_nJob == JOB_ASSIST )* M: k) A; W" p7 L( Y2 \' b" b, k
nPoint += 60;
0 n4 M0 u/ N9 x) L8 }0 ^ `# i else if( m_nJob == JOB_MAGICIAN ): F$ M/ M# i) [, F% w, E4 a
nPoint += 90;
* e. j. F. l6 }" N+ E/ o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )- g' P* o; z$ h2 ^9 b# E6 s
nPoint += 120;
, } t% X3 r/ B, O7 Z h, `! c else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
8 t- p6 Z4 H! x+ D8 O/ T$ w7 y nPoint += 150;( }* |3 N, ~: l e
else if( m_nJob == JOB_RINGMASTER )* m) h) J1 t& P# c6 L
nPoint += 160;# p ?( P- V- c6 z* \" n; m+ v; l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
, k# r: k% @) ~) b/ \ nPoint += 180;8 _: L/ S3 W: Q# v2 v6 ?
else if( m_nJob == JOB_ELEMENTOR )
7 P! r% X+ B. T/ C( b, n5 V n4 c nPoint += 390;
8 ^; j& b% M6 B8 u0 I# ^ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
4 i) p: i2 J k) y' r# v nPoint += 120;. K- Y. H X5 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )& Q: T3 V. ^* E; b6 e) i/ ~
nPoint += 150;
9 K( A1 C: n! X! R else if( nJob == JOB_FLORIST_HERO )
, e5 k! x @: t+ n nPoint += 160;
0 n, k* r* e6 N* d9 |! P) | else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 ~9 p7 Z; p$ q
nPoint += 180;
! W4 v3 R$ z8 \' Q* s3 V# g( f else if( nJob == JOB_ELEMENTORLORD_HERO )
5 t) [9 D% n, P# e nPoint += 390;$ Q: p8 b) V$ K- ]
; b/ f: H' G9 f: q; o# V
AddSkillPoint( nPoint );
5 k* x8 I p$ {. e% | m_nLevel = nLevel;$ _$ i5 g0 z4 ^& H. ^1 Z E
% p" D3 b" j, R8 s- B
SetJobLevel( nLevel, nJob );
' X; e4 u( o" }8 g5 M m_nDeathLevel = nLevel;
' l* }& c6 j1 t6 T1 N' n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 \: K# u6 a5 [7 a& U' c6 j; U
if(IsMaster())# H5 z0 L" h- k/ y: C
{ n: o2 ^- b; a" I0 G6 o* e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- ~4 o9 s3 j" W# B2 ?
if( nLevel > 59 && nLevel < 72 )' v' C6 i, D; _
dwTmpSkLevel = 1;
) Q+ r! j8 { J2 @) r. U6 O else if( nLevel > 71 && nLevel < 84 )+ [9 z7 H# ]1 v& n
dwTmpSkLevel = 2;0 ?" T( L& g' p
else if( nLevel > 83 && nLevel < 96 )1 C) ~, Y: U0 g
dwTmpSkLevel = 3;
5 V" ? D7 ^% j( Z6 r) C else if( nLevel > 95 && nLevel < 108 )
2 g8 s, B" }0 V0 V* E dwTmpSkLevel = 4;* \1 z6 y3 U h1 B/ ^+ o, Z% H
else if( nLevel > 107 && nLevel < 120 )
4 S& m' |" H% L5 e- i dwTmpSkLevel = 5;
4 D2 G2 ^/ x5 X4 W4 }% x for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' w+ k* y& a4 D
{
# \- D! @+ T3 `. o LPSKILL lpSkill = &(m_aJobSkill);
0 F e7 h% q) n' X# X4 S# [6 j if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 }4 M: p8 j6 K( |9 @+ a {9 A& t+ Z2 c" w: v2 C: j; N: F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 @) c2 w ?% ^/ r* e' T4 S2 z! k
if( pSkillProp == NULL )
0 `" h9 K- B( q' ]. \+ I continue;1 O% N, N/ }* ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); s& ]% h2 J* G4 ^6 D: g
continue;. M" W/ ~& }8 Q, Y% s& V
lpSkill->dwLevel = dwTmpSkLevel;& ^8 x# R% S- l( z: y) K
}
2 F% D- Q0 h' w: e! Y/ U }& c6 r' R9 S" F
}2 e- W, P: j1 d: c- Z
else if(IsHero())
- o8 P1 I4 G, a# q {! O; s% t- R/ K* k9 s% a5 \
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 Z: Y" z9 s4 F$ n8 O: j4 F {
% @0 K- W4 \: r6 {" U' h LPSKILL lpSkill = &(m_aJobSkill);
. O) d7 `9 Q1 @' {7 H, a8 L if( lpSkill && lpSkill->dwSkill != NULL_ID )+ c0 n. P( O I$ ?- X* g* t1 y$ t2 v* @
{
- {/ c* R. R; l. ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " z) ?% n1 \7 o' n, A* l0 @ G" i
if( pSkillProp == NULL )& @+ q) h: X7 ]7 R
continue;0 F5 X- u) Q5 G" n6 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
u: h$ _0 b k continue;8 s( a' c, T2 X- b# P5 ~
lpSkill->dwLevel = 5;5 t& [! ~2 E* ^- w3 x6 J+ f; k2 w
}
% [8 `8 J' l2 y% D }
* \2 I& V& X# N j. k }& Q3 B G% b# Z7 [( q
else if(IsLegendHero())' h; i1 P7 `6 r/ |! h& E
{) J% J _- y0 y7 e0 `* g+ a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ], m0 w& G+ f7 X. t5 }$ | { 9 d; h' m/ J# u" h9 f
LPSKILL lpSkill = &(m_aJobSkill);
; p* n. Q$ m3 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ c* }3 f" p+ B+ z: p+ ] {5 _: W8 b6 v9 R6 t. E" ^( L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 }) Q' c0 `! q) N, A
if( pSkillProp == NULL )% D7 y8 d* `) t7 \: l$ {3 p
continue;
+ A/ k' Z% ~6 K; `' \# m! [& y( H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 R; s& y- O2 T5 Y$ d2 c, m% R continue;
) L* \) r2 Q" ? lpSkill->dwLevel = 5;. U7 j% ~* S2 _: P& z
}
% i" V5 T8 u9 M1 e }; |/ M G+ B' T; B) z( S
}
! |# M8 j0 C% b$ i#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) c" U& u' R( F- U
if( bGamma ); h& r, a6 |6 {
{
9 W1 {" l) i7 |/ \2 |' E m_nExp1 = 0;7 Y G4 w! `! z/ ^# L! @ G' l
}
. M! O8 P- F0 f4 o* C% R S: `2 |
9 H9 y2 g6 R& a( P( {6 S ( (CUser*)this )->AddSetChangeJob( nJob );- r! Y( P l) m/ \0 Y) I
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 h# U5 }/ D# ~5 T( o7 x5 a
0 m4 k# T* K- S1 x+ k1 ^
3 ?$ o2 t* e& T7 }
#if __VER >= 11 // __SYS_PLAYER_DATA5 P% M7 K4 t0 w3 J6 P& U7 j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ X, w- \1 X g( M: \
#else // __SYS_PLAYER_DATA
* V4 l) i! T+ {% \ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );/ j- C$ C) [: i
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# m9 t& |% s+ c, Y( _$ ~ if( m_idGuild != 0 )
! j. j+ c# W2 {) Y, A4 O9 D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );7 V) P" r2 G& T! C2 I8 r
#endif // __SYS_PLAYER_DATA
2 v5 s! H4 Z& }; p$ o- J SetHitPoint( GetMaxHitPoint() );, G7 T0 l; ^+ A. o# a0 n
SetManaPoint( GetMaxManaPoint() );
9 `+ n. `/ G- }6 |2 l+ R SetFatiguePoint( GetMaxFatiguePoint() );2 y; F# b" j0 l
if( nJob >= 1 && nJob <= 4 )* R' x0 ^$ S3 O5 m8 v
{
5 `" O$ e" t; I7 W4 ] l m_nStr = m_nSta = m_nDex = m_nInt = 15;3 _3 ^& r+ M" M
m_nRemainGP = 28;
/ T3 n5 |8 U" \) N' y( I$ B }- F2 k7 k/ w5 l7 ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% z4 ]& F! K/ c3 c: f# o& \ {9 w p: n) J$ Y- Y& p5 j% |
m_nRemainGP = 118;
, D. B, x7 P/ r( G: y/ h- T //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ I% ]+ w, b$ `' Q1 M+ k m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 g+ ?- z% l$ p- P }% Z4 s! t) b g/ U9 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )* D n" |1 b9 l' U6 g
{
: c3 Y; a7 W1 ^2 Z2 T3 a CItemElem itemelem;
/ r+ J3 W5 _" {" A# y itemelem.m_nItemNum = 1;; f3 R/ R" |6 f- i! J: p6 U R
itemelem.m_bCharged = TRUE;/ \& E2 h# V2 g
BYTE nID;
6 E/ s1 S R. p+ L9 | W! M
, `* \# u" O' J# a- P if( nJob == JOB_MENTALIST_HERO )" ~4 F0 I2 ^/ V
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 o, x# k; J$ h4 ^) W" D
if( nJob == JOB_FORCEMASTER_HERO )' ]- l9 C2 o( e8 @" Z
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" R* A/ f+ _+ Q" U0 k
1 q4 X% k, [& F7 A9 W v
( ( CUser*)this)->CreateItem( &itemelem, &nID );
( U/ s0 D1 F% c$ S3 W8 i# g; D }2 d1 V$ W9 R# D
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 h& \. ]/ e4 |( t, p: s ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! c; V2 g! A2 e4 a; i1 N- g ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. i! p# R4 R$ f! O& |3 r% @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 T" I6 F/ r7 p# n3 {! A ( (CUser*)this )->AddTaskBar();*/, q& z4 a- E' e1 {8 f
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& L( [+ ^, i. C O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ W u; Z |/ U- q" m
((CUser*)this)->CheckHonorStat();0 m5 g7 M' n( _: P" [! x
((CUser*)this)->AddHonorListAck();
, b% h, h0 w/ o$ e' Z g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 f+ Q7 ~7 [" v2 X8 W, I2 Y#endif // __HONORABLE_TITLE // ′Tà?# }! Y8 p4 C5 j8 W
}
5 r. a; G# B( { e/ f# z$ J#endif // __WORLDSERVER; @5 R; B1 \& e" f5 ~+ A9 G
}
3 ~1 F$ W. o4 Y. ~
" L) \: P* S4 z; \* Z# _" C然后你进入functextcmd.cpp并添加以下
, @0 W1 o* M, i* i7 p& U0 U8 G
. i& Y4 Y* @2 Y; ~代码:/ N8 u' `% X8 }" z- i
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
t& Q' F, X5 z" l下面插入) P' w+ _$ j$ g$ ]: [' [
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
V; ^3 k2 x" U. v# B: h& z
$ E* ]$ D' q" v3 e' c+ J然后你去9 K' [. _3 C$ ?$ P, A- s
6 U6 j: t* k. Q. V6 z
代码:5 ?2 ]% n. d% O+ J
代码
: A6 G8 {4 O; F) C+ X7 LBOOL TextCmd_ClearPropose( CScanner & s )2 n0 t$ F! q1 {* ^$ p0 H0 J
{) Y M' e- n' p: u: l! _
#ifdef __WORLDSERVER+ _+ |) j) b8 P
CUser* pUser = (CUser*)s.dwValue;
) s, R' ], N' r; C" o; H( J/ N1 V g_dpDBClient.SendClearPropose();
2 u( A. M: e+ |/ s1 ?8 g n#endif // __WORLDSERVER
, f* z) O2 Y. O return TRUE;3 |4 c* n. m8 E6 r7 M
}! A7 T' G$ p6 f4 Q* y, V
下面插入
; `2 C2 I) `* eBOOL TextCmd_rebirth( CScanner& scanner )/ j& x2 Q2 y! x: H1 k9 _. }
{
) g3 S6 G% ?0 R3 U- j$ q a#ifdef __WORLDSERVER
$ A9 `& C, Y. y. M3 [# q J% I" aCUser *pUser;
# ?0 b' P6 Z$ P" ?- n2 F4 m& _* gpUser = (CUser*)scanner.dwValue;' ]8 H; A* X0 q5 z0 e; T
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 Q; q- V( |' _* x+ kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 ^+ w7 M) T. b# {. F
else
7 X& V8 E+ r: H3 rpUser->AddText("你还未达到重生条件!");& |% i6 E) O% V$ u
#endif
/ r; I- W( s8 K) @4 o( F# ], H/ \) greturn TRUE;3 ~& e6 ^4 Y: Y$ b9 Y
}
* ^ P6 I. i( _8 y p( N1 U
$ S v% A2 E- E" e% ?7 n% ^# `
/ h8 y- i5 e! U, p& ]7 m' b
! F" u( `% [1 _+ O6 U" u' P8 q$ i' J2 b% t
|
|