|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' d E/ e3 K, w
0 M1 E& z( c6 _4 j. @; A; _
Mover.h" X* m" K5 Q+ w/ W/ m( h
代码:
6 `6 i. S' F0 Q; P4 V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! o2 T* Q8 w& X* Y8 l P; w
+ G; Z) r0 E* W3 R( y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + s' X/ W6 u8 u
4 G, _ u) m: O然后你去mover.cpp添加8 h2 y. b0 Y. c7 b W9 n
: y- Q: @1 R2 q* [+ g
代码:
0 z! B) V/ q. Y: P4 X* V. h' l* ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )0 o7 O; o4 N+ g0 q0 k# @9 L7 Z
{
) U( A! h, ^% r+ ^, X/ b; F( A#ifdef __WORLDSERVER
/ B" K7 ?6 ~& a) }: Z4 ?, y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
0 z4 g2 q; o- t# } MoverProp* pProp = GetProp();
& ^2 _: {; m" P( m" H4 G" P5 X if( pProp )
# {3 N6 U8 h: S4 I8 z {
; D: O1 [; t9 D$ e if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 R( k! @* J, K7 ^8 Q5 J# i# m0 {6 @
{
0 ?5 s( O+ s Y+ R AddChangeJob( nJob );, u; X* {4 y0 G$ B
}else{1 F* k+ h, X) p. O) v
return;
% ~2 \6 N, I6 q* H3 n }
a8 c9 u# `% p7 p int nPoint = 0;
9 N5 X5 H$ t9 N8 {( m$ P if( m_nJob == JOB_MERCENARY )
/ e" u" X* m$ J9 b9 o: I nPoint += 40;
! ^% B. m9 s" ^; H4 d5 E: a else if( m_nJob == JOB_ACROBAT )
* ~4 D0 V3 \* t. X# X+ L nPoint += 50;
0 C# y) W, k) K6 ] else if( m_nJob == JOB_ASSIST )2 ]8 W* _0 B- X8 C
nPoint += 60;. c1 Y9 R; @" j6 u* i8 O# |
else if( m_nJob == JOB_MAGICIAN )% R) ^+ |# z ~8 j- \2 R7 |
nPoint += 90;
- T6 x9 y/ V2 O) N/ { else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! ?, Z6 _! F+ V# F1 r3 r nPoint += 120;
( p6 r# r* b' R# H9 o5 d' { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 e2 o3 r5 {% A# l nPoint += 150;
+ d/ {$ Y+ Q0 R' {: _$ t else if( m_nJob == JOB_RINGMASTER )
I m% J/ V# t0 |8 A4 c2 [4 J nPoint += 160;& C0 H$ i# ^2 ?. Y9 S
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* I# s) h, d5 a; X5 M
nPoint += 180;
5 o; S" v. Y5 N5 b' c else if( m_nJob == JOB_ELEMENTOR )- t: Z# Y$ z+ S, J' L
nPoint += 390;
3 q1 ]) L8 b) B else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ H7 V. }" q4 f5 k: F nPoint += 120;7 l/ `9 B/ s$ ]# k* \. u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! }9 h' K. @7 r2 ]
nPoint += 150;
; }" d6 U! V( V% H* I else if( nJob == JOB_FLORIST_HERO )
! k/ l4 I" n8 a$ A- A2 O5 @0 C; Y% Y$ s nPoint += 160;
+ }5 U" E, g& \: L/ T( ] else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 K0 F; I; X/ a8 L& m& w nPoint += 180;
. H: T+ t3 f' O else if( nJob == JOB_ELEMENTORLORD_HERO )! I) f# p& Q9 H# f1 w# O' O. K* G' O
nPoint += 390;( f, i$ ], K" i; _8 q! \7 f
1 h8 j# b8 C& }
AddSkillPoint( nPoint );9 l: A$ W1 m0 a0 p
m_nLevel = nLevel;4 E' R/ c% E' m- B, b8 [" C: \
; W1 y2 \" w; V* p9 H/ w6 i B6 T$ \ SetJobLevel( nLevel, nJob );* ?/ L- `" h: _8 z6 E0 W
m_nDeathLevel = nLevel;$ V) e; O6 [6 M! R- p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( a# L( D& B% Z; \' t
if(IsMaster())5 c# C( ?6 }/ o
{1 f \! }8 E! r0 `# v4 X
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1082 K# b z" c- f% t" h, V' O
if( nLevel > 59 && nLevel < 72 )6 U# O5 [* ]1 ~- @% K5 ^5 S
dwTmpSkLevel = 1;( _& j/ ~/ p8 ]2 _3 D; C% W
else if( nLevel > 71 && nLevel < 84 )0 r; a. r2 g+ x; f0 `6 |' g! c
dwTmpSkLevel = 2;- C: B+ Q% X- y3 W& h
else if( nLevel > 83 && nLevel < 96 )3 `" L5 Q, W3 D
dwTmpSkLevel = 3;
# K0 ?5 x3 C" u- q6 _ p" Z else if( nLevel > 95 && nLevel < 108 )$ y, Y0 J! i3 S7 ?0 Y, @% z7 M: g
dwTmpSkLevel = 4;) C4 N% y) Q/ N' T" y1 X, G
else if( nLevel > 107 && nLevel < 120 )
3 G# G+ ?$ M" U7 d$ x dwTmpSkLevel = 5;
7 c$ P9 w; h+ _7 D: ? for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 h0 t% Z! D3 [8 e' z; |5 z
{
{* D4 R; X3 A- {3 w ~* P# e LPSKILL lpSkill = &(m_aJobSkill);5 e# T, S( w, z- L
if( lpSkill && lpSkill->dwSkill != NULL_ID )( a3 [! x% Y* s9 n- Y7 |) d4 G
{
- [" X& F8 g2 u& S' M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! L5 y, ^$ {8 B+ _
if( pSkillProp == NULL )- d5 }2 g) u0 c" A1 T0 Q% A
continue;" u N! M- h' W/ ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 f1 b( I+ [. W" X
continue;
, k1 e: h! c( F/ x$ G7 N5 A+ n lpSkill->dwLevel = dwTmpSkLevel;" }7 Q' {! C5 g2 j* I G. v, K
}4 V1 a& o( u6 m% ], ]( A6 R
}
! K7 \9 Q# ~2 Q" y1 L }7 {# U- S4 c) V G
else if(IsHero())' c+ ^; M& X# g$ K" k
{1 c" g& V" X& a* `& K2 s$ K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 v+ E2 K9 r- k8 b2 X8 w3 }. e { W4 _' k) X# G4 r# ^8 E
LPSKILL lpSkill = &(m_aJobSkill);3 \6 g, r% s" `, u) `- ~! C2 H8 V
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, a3 r7 r6 P ]- k( {2 `) ~2 y {6 \1 H. P: C: A) [/ [5 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & ]1 k5 `' A$ S& \
if( pSkillProp == NULL )) U7 f% O7 ~( v! W' B9 b
continue;' T1 M- t, J: v" U: A7 @3 \7 N9 J
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" w& j5 D7 y# f. K; k; o* ?
continue;
: R0 Q. }, ^6 S, w3 u lpSkill->dwLevel = 5;
$ G' n9 z' W0 a' x. X) G! C }
9 t( W8 H/ x8 l/ ? }7 P. O. Y# Q9 X2 S; S
}% l, {8 v: v% b6 R4 h
else if(IsLegendHero())* }1 Z8 w, z3 V- v+ d
{7 }9 C1 w( ]7 q/ |, E- h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & d$ `3 y5 X. V# i7 i. U
{
' ?* |3 J5 M6 J ? `9 D! L C3 |: d LPSKILL lpSkill = &(m_aJobSkill);$ }. G* \( d5 b
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ s/ v, H: f7 K3 U, T Y {
( x3 g3 [( V+ z. r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 l% b3 Z, W. L if( pSkillProp == NULL )
7 b8 r4 ?* C/ ~" W1 F% m continue;
% ]8 q$ D! F* d' L; |, l1 d) |! @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
B) T! R$ @6 W/ w4 H; M' q" A continue;
, p1 s" V) q/ ?1 W$ Q) g) R lpSkill->dwLevel = 5;& \4 s: l+ U- ]0 @$ Z! q0 \& d, s
}
) O$ B- F* H$ U- K }
, o" y. W& I' Q0 h5 X& T4 [. J% Y' q }
g# v" i- R9 S5 v: r# X# R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
}- t* @; V7 w5 I9 _$ Y if( bGamma )
7 j" o$ Q5 @: v) b4 d& L- _ {
/ ~9 Y5 }; H0 l0 X, A$ Y5 [ m_nExp1 = 0;
5 I7 M; B) t8 `; n }6 W" P1 j; a0 x; J- n; `9 i
5 I" O7 d4 ?8 u$ l0 D+ U. K ( (CUser*)this )->AddSetChangeJob( nJob );
2 R. @5 g1 E% }2 Z* r5 Y; f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. D3 |% |$ E4 r7 r
1 n% O& e9 M* |' z
1 o1 g; {# C! M/ m7 x#if __VER >= 11 // __SYS_PLAYER_DATA {! V3 N" S2 W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );4 ^+ D+ F% E/ v5 r; o! P5 W
#else // __SYS_PLAYER_DATA
9 S: D2 p7 T9 S% X* K g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; N, B+ [3 o' P* `+ `
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- }& C- A% f8 N' z if( m_idGuild != 0 )
j" A, M+ @5 o7 p& \7 b" q% H/ k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );& Q* Q' f1 w7 ^8 l" S! f$ R
#endif // __SYS_PLAYER_DATA: |3 l# [# e+ I! i# U; g3 N" E9 o/ m
SetHitPoint( GetMaxHitPoint() );9 i' j# G% H' _) s
SetManaPoint( GetMaxManaPoint() );
+ o" V! t. x! t/ o SetFatiguePoint( GetMaxFatiguePoint() );
9 s# x9 ^& Z9 u6 o' h if( nJob >= 1 && nJob <= 4 )
% t- f8 x9 B/ }2 T {" H8 }% D& l! P
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( x; W/ S7 W4 _1 ], W3 S* V3 T m_nRemainGP = 28;3 r, f7 U5 K2 G2 n# K: u6 h5 [
}! D8 c) H7 P1 c/ J# E+ m4 G
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): T j1 Q/ g( Y+ X2 n
{$ p# l8 |. F. \, {* n$ m
m_nRemainGP = 118;/ m: d7 w ^$ K( p. P- R
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 X$ d2 X' v9 Z3 ]! O2 A7 v: F m_nStr = m_nSta = m_nDex = m_nInt = 15;! ?/ Y" y, x/ @7 J( N( @
}
+ M# I2 [7 J4 O, V if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! ?- q' A8 @& R1 J- E. m5 r4 d {/ \/ N, B0 p) J
CItemElem itemelem;
( T: v* x2 M$ i5 B itemelem.m_nItemNum = 1;
3 N: }0 K! n( `1 R, q itemelem.m_bCharged = TRUE;
0 m+ _1 g2 K! I/ i7 s' V: G- d BYTE nID;
+ D6 |8 r& {3 o$ X9 X4 X- s5 ^( g: ?2 C/ g) F: H( v) U d1 f
if( nJob == JOB_MENTALIST_HERO )
3 |, x4 y$ d" [; l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; M4 z$ R0 _/ R! j
if( nJob == JOB_FORCEMASTER_HERO )# L2 y. b* @$ y& `. ]
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, G" e, b* f7 x9 t" `3 ~+ b/ Q/ H+ i2 f) I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- `' t& m' [7 k# t( Q5 t }5 K3 N' T: v/ B- p* m) U: h+ `
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 e2 v2 b7 E: t) E+ x/ a! }, ^( G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. {. \, D* d; f* A% h
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );1 x7 I! v' k1 C" d# m) |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 n( K3 K; A! R% A, U
( (CUser*)this )->AddTaskBar();*/
/ x% ~. j: p) k0 A# ~& c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" ^8 q+ a, A. R- s5 ~
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ i m7 L1 s& S1 e, f2 t
((CUser*)this)->CheckHonorStat();. ` D2 ]& D" d
((CUser*)this)->AddHonorListAck();
2 n1 m2 A; ~( b& J( T- ` G/ T g_UserMng.AddHonorTitleChange( this, m_nHonor);2 Z# v5 b6 F! y0 |1 j
#endif // __HONORABLE_TITLE // ′Tà?
: z7 V* U: s) @/ h }* w+ s, j) B8 @8 b
#endif // __WORLDSERVER
- D6 E9 ]+ M0 k, s! s}
! w e5 A5 E7 F8 S, R; O
1 t) p% P T- A6 M" k8 R: `" }然后你进入functextcmd.cpp并添加以下) L- j: L0 R1 ^$ ?# U) D2 f" \
, Q2 x9 V. z& q4 i! r" E4 U代码:
8 A% d: s, C( ]- ]* b/ X6 n: XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# c1 D# t4 n3 X
下面插入
' h6 ~( U5 q8 _. qON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, T9 i2 q3 c" o" p3 T' E4 [1 Q1 @0 Q& d7 g, ` H
然后你去
9 `9 {8 ^0 F+ j/ J. t: J5 }
2 [! I6 p* W5 v3 t0 \8 S代码:
* m# V) I Q- Q2 g9 R$ d8 T代码
% P; I' ? K0 @BOOL TextCmd_ClearPropose( CScanner & s )) _, d: B; E( X& N
{* U- @! u8 D" r. A5 z' o _
#ifdef __WORLDSERVER
3 f0 z; ?" t' ~' A9 N' W CUser* pUser = (CUser*)s.dwValue;
! q: K2 Y0 a9 k- _! p$ H g_dpDBClient.SendClearPropose();
2 e0 b+ t) O1 b: Q#endif // __WORLDSERVER
y9 L& F$ j; ~& e+ V( B. \" x return TRUE;! w" r; @' n; |2 e! M& v
}
; P1 u& B" g8 v) j2 ]下面插入
* `# G0 m3 l! p% N0 ~BOOL TextCmd_rebirth( CScanner& scanner )3 y; e# Z6 B* _
{- i- W3 o$ d/ x8 z9 N# E9 U8 p
#ifdef __WORLDSERVER q6 x: @9 ~, o2 ^. P) m% h% G; j S
CUser *pUser;, r$ W/ Z$ S9 |! l$ c: M
pUser = (CUser*)scanner.dwValue;- D5 W, P+ r5 N9 g) E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* o8 j; B1 k8 ?9 ^, m/ g1 g$ l$ l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);$ D* {: j' ^) m0 W6 [* z' A
else7 a8 _+ ^) n# y5 j4 m' t) z2 \- Q7 T
pUser->AddText("你还未达到重生条件!");
3 Y' L0 K1 N/ j* F& q4 a#endif
E8 j! h7 |! S8 [5 i* K M& Sreturn TRUE;
( o# Z+ j* I0 V6 U/ l* d6 _}
3 J6 X/ K( o3 [, r1 v, z& i; A z
3 q/ O0 h% a9 p5 {
" S9 L1 \# l; ?& m& L6 {
F* v# R _8 L
. t$ G) S7 z* Z& x9 M8 M5 _% g |
|