|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel. ?* \0 f0 Q# I m9 R* E8 |: ~
; f z1 R* V5 ^3 c8 r( b2 ?- aMover.h
9 q( n6 g. K9 T. p代码:6 ~5 v, n/ y0 U' _5 C6 M. h4 V0 m
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# I. T U7 ], ?4 Y K6 g) x: w: g& @5 I" I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" a# J. U1 @9 Y) ?2 |
9 s" {9 l9 l( e0 X- i- i: v然后你去mover.cpp添加; V, y b# d0 Y6 Z. v3 v" u2 T
, \) {1 ^" \; c. U9 J8 k代码:9 g& |, q# P# j0 |; M
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 g. E1 D: v) A5 U6 i& R
{/ S. l- c" v5 q) P0 f
#ifdef __WORLDSERVER
+ S- n" X, i% a, r" \6 {" _' A // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 \0 p3 m( U# x- ^/ q: }; G MoverProp* pProp = GetProp();6 G/ P% g, ~5 `( ^5 r0 A$ a% x
if( pProp )
. {2 @( x/ X. D1 g( S8 j2 { {
8 _, t6 ~! _2 Z$ \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 L: {1 `( T* i' @7 i) i5 O8 ?: c5 m {
% w8 f6 l" N+ v! q) F# [ AddChangeJob( nJob );
+ c+ X+ G8 Y1 T, r# b5 H }else{9 U6 T) s3 c& ^" s: ?0 h1 G% d
return;$ F. L/ f' a* v. ?% N
}
* Y! @& F: P, B n int nPoint = 0;
7 Q; B j6 a' T4 e if( m_nJob == JOB_MERCENARY )
, m% H& B9 J4 r" G2 w, w0 v3 t nPoint += 40;
: f3 k5 p( M2 ]; O9 v else if( m_nJob == JOB_ACROBAT )" o; y( b' O: O# P: y0 E
nPoint += 50;
) b' A$ u/ v6 G0 G else if( m_nJob == JOB_ASSIST ); {/ P1 z/ `* M+ O/ c4 t5 |
nPoint += 60;
3 \# c* F' q& {% j7 f) ]$ K else if( m_nJob == JOB_MAGICIAN )
6 ?+ I- ?+ t' F6 F6 C nPoint += 90;& u' ^7 l7 E- S% C3 I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( _$ T4 _* B# z# C4 ~' C1 H nPoint += 120;
4 Z2 c b. v; V: i" b$ L2 M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )" S2 K" a$ r. ~% @" S( I: D3 i- c/ a
nPoint += 150;
6 G4 c$ w# D' \6 @, X/ c else if( m_nJob == JOB_RINGMASTER )
3 e6 Z5 h: k5 B& X5 p nPoint += 160; u3 h/ F& J% f# u) C$ [
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ v3 u$ `: w' L nPoint += 180;
7 a d' y& m' C3 @& o) { else if( m_nJob == JOB_ELEMENTOR )
5 ~- o0 I. q1 y- G) o- ~ nPoint += 390;
7 f/ E1 }; l) T7 a b; O+ } else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ X( g" O/ B! M, |) r
nPoint += 120;
7 k) O1 p+ J/ @5 A! z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 X& F3 C9 K3 Y( E/ x2 O nPoint += 150;
4 m, U# V& Y( ~7 R4 v4 R else if( nJob == JOB_FLORIST_HERO )1 [; @( M4 Y7 t: c |# e, j
nPoint += 160;% V1 u2 b' [% \7 w' [: U# Z) C( Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )4 T: V& A5 \' `% Z5 n9 r: Y
nPoint += 180;
6 W! a8 E. b' e* x- s) X else if( nJob == JOB_ELEMENTORLORD_HERO )
' [& l( z4 w% n2 o, C# ~# J nPoint += 390;
/ K! u$ b" r) P& m) q
x5 I3 U6 f% U2 ]" E# Z AddSkillPoint( nPoint );2 v5 C. }, b" ^! L1 X
m_nLevel = nLevel;
3 d: h: q9 t( ?& [ E' C y0 I8 U, S3 [
SetJobLevel( nLevel, nJob );
8 H8 G @$ y) k9 ~1 X3 `: ~. b m_nDeathLevel = nLevel;6 w0 ]7 }( P" ]0 E) C" X) p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
; F0 @6 T5 ~3 T+ ]+ _; h q if(IsMaster()). Y) t) O, N6 [2 [! h$ |2 Q
{
( x. F8 Q7 ?4 p5 ~# N9 u4 k' f5 } int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
; S& Y! m) W$ h# q$ ^8 g' K6 z4 m if( nLevel > 59 && nLevel < 72 ): {6 C' v1 K4 Y' ~' H/ [7 `
dwTmpSkLevel = 1;
( a3 f8 A0 p3 S' G else if( nLevel > 71 && nLevel < 84 )7 q; |0 D" r2 s; s, D
dwTmpSkLevel = 2;4 p0 u0 [/ y2 k* X( |$ t
else if( nLevel > 83 && nLevel < 96 )
9 d8 e( b3 V" Q+ n) l! ]# z' B" s' V: N0 L dwTmpSkLevel = 3;
: D3 S/ l, _' o M9 @% G* ~* C else if( nLevel > 95 && nLevel < 108 )
( _; G" f$ c8 l3 R+ q- W8 A) R6 o dwTmpSkLevel = 4;
2 M' `$ J" F2 R/ O% y I! { else if( nLevel > 107 && nLevel < 120 )0 z2 S! Q% i* D7 b
dwTmpSkLevel = 5;
- ^9 ^. ~3 H9 R: [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
* h( @3 W2 B! |# E% n { + B1 A3 k0 @; i6 {2 n
LPSKILL lpSkill = &(m_aJobSkill);1 V% U* V- Q! \* a8 X4 g% N& M+ g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
o% }5 E# i6 Y0 e& V {$ g6 m, P( \, C. a" V6 j/ ^' u3 I) g! P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 u) h5 R$ r$ |: S if( pSkillProp == NULL )
4 }" q5 W' ]- u: ^/ ] continue;; g$ |$ I: V5 }, i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) Y3 p# b; e1 R& p$ X continue;
7 r" n0 I- b1 @! R& r% c lpSkill->dwLevel = dwTmpSkLevel;5 M& S* U" q0 F: F, x
}/ j& h! j3 z: o" X: S0 I
}4 u& a4 W, O1 [# t0 v
}
0 _$ x+ e0 o3 k9 {8 b, S0 F E" U else if(IsHero())8 o- S* ?0 B' Z8 Q
{; b% x6 U$ K U, W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ]2 H5 { Z- W1 \; T { $ y1 v* K- Z. c& I' q
LPSKILL lpSkill = &(m_aJobSkill);
) @6 b/ u `4 l3 L if( lpSkill && lpSkill->dwSkill != NULL_ID )# p3 {% T' N } w
{ v# u: q) {- [. t4 g/ z& N5 q% u, D% l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, j2 U' u) B/ f9 w0 i( j! ?1 Q if( pSkillProp == NULL )0 U5 |* R- K, Y
continue;
4 a; p/ c2 R- K$ n+ w/ E6 j$ ?% H( y if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 q) L% Y, a: |4 M' S- w8 Y continue;5 s1 t) B% R6 y* t! k' c
lpSkill->dwLevel = 5;
/ ` V2 o! K' i1 }* P }9 e8 a1 z& |% n9 \; W4 K7 f; }" ~
}
4 C" T. ?% W+ \% G) u6 h$ F }
2 i) n' }6 p% i* N else if(IsLegendHero())
, [& X+ D Y# m+ @- d. E) u2 ~1 C {
7 ?' E& B8 R1 C8 n3 Y1 d for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 O1 i5 p; F: `: R. Y# H
{
; \; k3 R; f& u9 m LPSKILL lpSkill = &(m_aJobSkill);. R+ e& f. H+ ]- {! s" x0 d
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 y: v: |! z0 O; X: F
{
5 q! s' B! c" F) I5 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 Q2 e! W: Z" q f if( pSkillProp == NULL ): k/ I0 C6 s" g$ q d1 P1 P
continue;1 k0 C( ^) q' }! ]) N6 I. E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 B' y. k9 c' p: S: E6 ` continue;
3 L# r, b6 W6 R) [5 W6 ?4 Y lpSkill->dwLevel = 5;
3 ] d7 n6 K7 f/ b } h y+ ?+ d* S: V1 j' j; A7 m
}
$ C/ N+ y. A. K9 \ }2 A- w, I8 S0 ^6 P& r1 o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) n" _. V+ Z% _: {& c
if( bGamma )
! D6 |1 u- v$ X+ e7 U# Q( k ?- x {; @0 B8 n' U: f0 r0 T( t- j& l6 }7 x
m_nExp1 = 0;1 e! A! H7 q) h$ r: f
}* y. h+ B, Z7 p$ z& D% e F- m
* P d3 e0 h2 P: D& U! |! Y5 J& ~0 N; R
( (CUser*)this )->AddSetChangeJob( nJob );! i$ N& z* y0 c7 {- L n; W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) u) R2 Y* L+ \; Z7 m( a7 b0 R: U
. n$ z. |0 x( E% ]
3 x; X* D/ V! Q, {
#if __VER >= 11 // __SYS_PLAYER_DATA. \1 Q/ K+ Q8 |6 f' c7 V' a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );2 w+ H8 |" o) j0 `
#else // __SYS_PLAYER_DATA
% F; Z8 s7 r7 I; S6 j! V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! G# R D& K2 h8 {/ R3 P3 e: d g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
: Z4 d: R) u3 J) d! o4 r8 ~ if( m_idGuild != 0 )$ L9 s E8 Q6 f0 z2 t
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 u3 `4 a n. U7 j' B" n3 q; `#endif // __SYS_PLAYER_DATA
# G6 @0 o2 u3 d- b SetHitPoint( GetMaxHitPoint() );" ~1 `; J) y! \0 F5 b! `0 u
SetManaPoint( GetMaxManaPoint() );
2 v. Y, K% ^, ] SetFatiguePoint( GetMaxFatiguePoint() );" }6 M% O* F7 h" u5 P
if( nJob >= 1 && nJob <= 4 )
2 P T7 _, r( b* j1 n0 G {& P# E+ i2 Q6 L& v) N3 Q5 U
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( e$ n1 p' y- r# F- G! c0 m+ x m_nRemainGP = 28;2 `* p( J+ [5 \, }5 X' C6 y. d
}' y$ T9 w) T6 |* k
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( J% v$ y5 n8 v* S {
( l' F5 u% h( v m_nRemainGP = 118;& A% w+ ~' \; @5 {& f/ M1 C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 f) l/ H5 w0 |" k m_nStr = m_nSta = m_nDex = m_nInt = 15;/ T0 z$ [! `; ~" c" `* o- y* Z) g
}
0 v$ s( }! x* J7 q4 A if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) I. s/ p% X3 T& v# R8 c! T
{
7 ^! B7 \7 ?% I) r+ K CItemElem itemelem; c2 N. J- I9 ~# m& ?4 j
itemelem.m_nItemNum = 1;
, q- v; }# f/ [! ]1 O5 b itemelem.m_bCharged = TRUE;0 K, G4 [$ x' l3 g; ~3 b( `- Z
BYTE nID;7 b O0 o/ \6 d ?: Q
3 y0 @! J6 i3 K/ A if( nJob == JOB_MENTALIST_HERO )
. b- Z4 g% n! n3 B9 r- `7 c itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 {3 W; A7 E5 P+ {
if( nJob == JOB_FORCEMASTER_HERO )# I6 q! V" F, K' c& {) j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ n2 M: u3 v8 @6 d6 K' D" Z) \8 S7 ?4 @( _$ n6 l. A: Y" s
( ( CUser*)this)->CreateItem( &itemelem, &nID );
/ ]' j, ~: C% K. @- _2 E' E }
- U5 B; A' [. v. T0 u g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 O# d- [+ i2 h: {+ |5 {: ~% U: T ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- w5 A- T7 V/ l) T j3 l ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
" a. z: }0 P R$ K6 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. F/ k9 K# u- R1 I% Q; d
( (CUser*)this )->AddTaskBar();*/
- M7 M* `, b+ ] ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" p" `& O, W( f$ d3 d5 o4 p" j& k, o
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 b" i& W& P; s$ j
((CUser*)this)->CheckHonorStat();
+ q, c8 y- b" \! Z ((CUser*)this)->AddHonorListAck();0 y: i5 j; t/ j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 ~& O4 w: k$ F: C M7 |. F0 E( Y#endif // __HONORABLE_TITLE // ′Tà? h+ h! }* o3 E7 \0 L5 L
}
& Z4 R# _/ Z+ @1 i" B/ z#endif // __WORLDSERVER
( r; l# Z# K% z4 W} 3 g: \& [) j- \, E6 |. \
! g/ F( F% W6 a; f! [ R然后你进入functextcmd.cpp并添加以下2 ^. o( U! i& t6 W
5 t E. M& s! R% Y+ t
代码:
# z$ D6 n/ h/ K7 q3 p1 _6 }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# k& w; A; V' m5 [ k下面插入
. E" d3 s' @9 N1 Z( TON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 9 { F9 T4 G2 x9 {6 {1 q6 o
% U8 N: U8 F+ M6 g
然后你去' a* R" b+ D- A' I8 ]1 f# f% `
+ ~; V. o0 T! c- k8 @0 U% B0 X4 @! r4 I$ Y代码:2 r9 l0 u4 T& c" H% A
代码
9 s! Z: y' n' a8 J. ~2 fBOOL TextCmd_ClearPropose( CScanner & s )
6 e6 u& n3 h; x{+ A7 i& p8 P: ?6 y
#ifdef __WORLDSERVER
: ]: R' ~: W, a( P CUser* pUser = (CUser*)s.dwValue;6 r% s8 R0 C. t# w
g_dpDBClient.SendClearPropose();
! Y$ t0 M# D l4 J- g$ @9 }. B#endif // __WORLDSERVER. W: |0 Q/ z/ t! Z0 M( h* I& E
return TRUE;
/ a/ H) p2 a X7 z( n5 m}
6 B9 j/ I3 {6 z% O2 R下面插入: x$ k7 k3 t I) c2 G& \ q
BOOL TextCmd_rebirth( CScanner& scanner )
% X! W. L/ _& u9 b" J{8 W; d( Y4 d9 u/ C7 r7 E3 P
#ifdef __WORLDSERVER6 ]6 t' o; Z' z0 ^
CUser *pUser;
: v6 ^" h- T7 [1 ]pUser = (CUser*)scanner.dwValue;7 ` G! D% Y4 o6 ^. _* T$ {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). W% i) a+ Z6 y0 B
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 X5 s0 f4 q+ H R# c5 q/ O' `# e7 s
else3 R2 e9 r( A! r0 p% o- g* w
pUser->AddText("你还未达到重生条件!");
) l: Y. N. _7 N; {#endif
6 L$ d- N- D: B# ~* P, \return TRUE;
) Z m5 v8 e; }}
8 j! h8 J+ J; W Q/ L2 x
1 R4 v/ l$ ~& P1 n; q8 T) J
/ E a- W, [# Z+ B' c/ ` p
5 i' Y: C# @& \ _% H5 B3 D2 X) g: ~+ m$ R0 M- ?0 N( _
|
|