|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 k% p# \+ ]/ _/ f$ U) d
1 T1 z9 ~- \/ y: F
Mover.h
/ E w8 \" i c/ s0 V! G代码:
$ o; c2 f8 z6 l+ Y7 s" U, f找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü0 o9 l0 K2 \+ L+ ?
: t3 M( J4 ~( Y9 {. Q" y. e3 M
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 R6 L* b+ N, `! z& u% `& Z5 C# E- t* @
然后你去mover.cpp添加
7 T; O, b! T2 n/ n
5 a/ K. {; C+ N5 j代码:5 v; ]' y- h% [5 L+ }4 t
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )3 Q' P3 K5 y/ |9 m& _, ?9 n1 h3 ]$ @
{
2 R- R1 h4 @; K+ P$ s# I* N#ifdef __WORLDSERVER9 ]/ t: G( q& k$ d8 {8 n
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 t% }6 d2 {! P+ H' a! S* b
MoverProp* pProp = GetProp();
9 d& V( I6 N- T8 d, E9 Q" L; k' k! T if( pProp )8 r* \8 D6 E5 B' i; L* w7 A, u
{
( w1 J, a% l1 \: J if( nJob > 0 && nJob < MAX_LEGEND_HERO )4 x4 P* N: O2 w" i D. a; v
{
( O8 I [2 }% K0 S8 N AddChangeJob( nJob );
: D' I/ X, y& \$ j- V4 S }else{
2 v" a5 e! f' W% z$ y& Z3 n return;! w2 P2 O4 n6 r, j! B6 V
}& e Y! d8 y& a0 l! C
int nPoint = 0;
0 N. ~. v! y5 m, s9 ` if( m_nJob == JOB_MERCENARY )
4 b, N( U+ L( I1 t+ |- c7 q nPoint += 40;
0 z/ \% ^3 p8 k* l& g& g% e7 Y else if( m_nJob == JOB_ACROBAT )( I( A7 b" D& H; q( }& T7 J* f
nPoint += 50;
6 a5 z9 X0 A7 |+ a6 b else if( m_nJob == JOB_ASSIST )+ z; ^3 L9 m: M, I: t+ K( g
nPoint += 60;/ e/ {+ `3 j/ H( ]
else if( m_nJob == JOB_MAGICIAN )5 ~2 t9 S! K' q
nPoint += 90;
) D+ f$ Y, @2 @ G) x) x- Y/ l) c else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. h4 \7 t) w. L) `: G z nPoint += 120;
7 T8 W6 h$ o n4 _9 M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )3 [) ~' \7 R* Q- s9 `* [) U4 ^
nPoint += 150;
' T/ g8 C2 q% J9 F: V1 X$ b/ N! g( O else if( m_nJob == JOB_RINGMASTER )
: i4 n, c1 i$ D2 E; I nPoint += 160;
( f Q7 g, i6 B" k) K H4 s s# N else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ g% t0 ~) I# a) X$ f5 z* u7 T
nPoint += 180;* Z0 _$ ~* p8 A4 L! j
else if( m_nJob == JOB_ELEMENTOR )0 N) I& T, q5 g9 Z' H/ H8 O0 j( S
nPoint += 390;$ p! e5 Y! Z; d5 A$ q
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): C6 q4 V2 u8 U$ t. Z' K
nPoint += 120;* n+ b- l1 K% }# l% n' ?3 @; D( q) N
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
r- |2 [+ P7 S7 k% h* `3 C nPoint += 150;
1 m; C/ b. y1 E R( J ] o+ h9 D; A else if( nJob == JOB_FLORIST_HERO )
) |7 R. Q, F1 B; W1 M1 R3 N- Q nPoint += 160;! D; Q/ X" |8 o2 x. ^7 @! _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) }, n- H: c( \$ d; g5 d8 G. \
nPoint += 180;, I# }8 j& L, N% }& t
else if( nJob == JOB_ELEMENTORLORD_HERO )
! U i( T- k: U/ ~ nPoint += 390;
6 J& j! _% Q$ a) X- s; \ r: Z( h) F! D5 j/ U8 i- ^
AddSkillPoint( nPoint );
2 Y( @6 z7 K5 I m_nLevel = nLevel;3 v2 N, h7 Y$ ]/ J6 W& w- e' O8 i+ o6 o
- ?" `* l2 A2 C, {% H SetJobLevel( nLevel, nJob );
( U+ g* k9 Q/ u2 k m_nDeathLevel = nLevel;
A) a/ I" Y; P" [+ X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) S) q. V* v4 J
if(IsMaster())9 n' t; z; l- W" c5 O0 m
{
U! _8 P6 W/ t( | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- s+ ?7 P8 F; k$ W! J! }* q if( nLevel > 59 && nLevel < 72 )2 P) E2 Q+ l: K! r7 F
dwTmpSkLevel = 1;
) s$ |4 e0 T$ v2 l3 Y5 ^. o7 c- b3 l else if( nLevel > 71 && nLevel < 84 )
# `- ^3 @+ U- ?8 H# f9 I0 L dwTmpSkLevel = 2;
5 a s) i& m/ H! u else if( nLevel > 83 && nLevel < 96 )7 G- b6 Q6 r, }8 r/ B* L
dwTmpSkLevel = 3;
+ v) ^! a! D$ k9 g I% B; T else if( nLevel > 95 && nLevel < 108 )
3 C+ A4 d9 b" p `' V dwTmpSkLevel = 4;( Y, r' e# [7 Y# l8 `
else if( nLevel > 107 && nLevel < 120 )1 c/ G% I, u8 Z B+ c
dwTmpSkLevel = 5;
) `) P; w5 I& e- x5 d2 Q, m for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ P+ R/ e4 W+ P5 H% \5 T0 w1 l" h
{ 6 C W9 X: ~6 ?% t
LPSKILL lpSkill = &(m_aJobSkill);1 r7 J- U8 O' f$ ]9 P% H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 \. c# P* r7 Z% l4 R( n+ j {
% l$ \5 j- ]5 _* w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( ^2 r+ p8 f; L$ c* d8 l; Y if( pSkillProp == NULL )2 t, @5 }" p6 a; q9 g. G
continue;
6 ?: w- F8 w/ T. O& z9 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% a% f' c; q4 f1 @1 B2 |2 o5 q
continue;- h" S- h. b5 |7 {2 b
lpSkill->dwLevel = dwTmpSkLevel;
1 [6 O% Q0 v6 b! W5 Z }
|8 B- }" t0 ^2 z }# p" \! a) j+ k; Y! f8 w0 m
}; w( \7 A/ S% K1 f8 A2 P+ U+ Y
else if(IsHero())( R4 o+ {! {6 U8 [
{5 e; n! D! D& `/ r5 {& }9 B; V. T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 ~* K3 S) L: s) t
{ . ]5 S: N- _* T& Y8 j" \8 D- o1 H: n
LPSKILL lpSkill = &(m_aJobSkill);
2 n, D4 C, G& t# H* y% T% I& C if( lpSkill && lpSkill->dwSkill != NULL_ID )" C* ^7 M! W% N+ }9 v
{# r" d, a5 X. t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 u- s* [8 Y, b" p1 w if( pSkillProp == NULL )
~$ |7 V# c, P continue; p" G3 Z q! v) K/ n8 O
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 Q" z. g1 q) u/ s! t( o continue;
& U4 |/ s) ~$ p5 C/ I lpSkill->dwLevel = 5;
5 W( b5 X# e- e' ?& l" v }( j+ }& X4 Z5 E: O
}
/ u8 ~4 S7 H8 ]" W4 E8 D0 m }
$ {+ V( }6 e6 c9 l& z0 {2 t5 ?2 {' X else if(IsLegendHero())
" U3 A8 y4 E/ g. q! x4 @$ v y4 ^5 W {8 d* T% i$ ~- `$ L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
* t( o& i: o: D( J. ^1 x1 i {
& K( C7 `0 v4 U' z8 ?" S* ` LPSKILL lpSkill = &(m_aJobSkill);
2 z; A C8 m$ a if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 {$ q3 C9 y; O6 n6 e7 { {
$ T, r. @1 X; c. \4 t! a+ _* Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / \$ r0 G8 @' T3 S/ N( q7 f
if( pSkillProp == NULL )
# x6 f( f' B8 M continue;
& l: S3 H; Z6 o" [2 \* g# u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% j ]! x/ w6 o" Z$ i
continue;" d4 o1 L5 y3 O7 _# h4 T l' E
lpSkill->dwLevel = 5;0 o0 r5 u; \+ I( O
}
0 W3 {; R9 C% }7 Y% U9 a$ t, o8 d# k }* J: O1 J. S- T3 k
}$ f2 F$ d* Y% c; H' z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 l1 f( `( Z( S& R
if( bGamma )2 J( Q3 h; _. b" t
{
8 M% i8 S& f9 S1 T; r& ~ m_nExp1 = 0;
3 A" f, k' S$ P; t( p! z- h }
9 e3 q4 N& y8 f7 I
" y. O' S1 O d! S) f ( (CUser*)this )->AddSetChangeJob( nJob );# t& K4 p0 U2 k7 K5 r
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 s' v6 I# h# w9 T8 C3 T1 v/ D1 |* w
3 b c& p9 D$ B$ z4 E' k+ P9 t# G9 m- L" S0 Q! H3 t
#if __VER >= 11 // __SYS_PLAYER_DATA
) @4 _) Z% {& y1 J! s$ w g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ n+ w/ |" W9 r- N1 @
#else // __SYS_PLAYER_DATA* k7 ~6 x' y6 g, n( E
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. L* ^* a1 e4 T3 R7 F, w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' u5 h$ ?5 {* a- V( n$ T
if( m_idGuild != 0 )! |# B. p, w8 M1 r( p% b6 i
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 [* G% ~8 @& N# Q; a#endif // __SYS_PLAYER_DATA* \/ `% C% B9 ]
SetHitPoint( GetMaxHitPoint() );( D$ \# P+ u7 z
SetManaPoint( GetMaxManaPoint() );$ H, [8 b7 E! Z2 B
SetFatiguePoint( GetMaxFatiguePoint() );* W8 |, Z/ [7 H% ^4 ~. J' k. `
if( nJob >= 1 && nJob <= 4 )3 Q5 G8 Z' F3 I+ K, F1 d2 I. |
{
) V' w4 _# A' A3 F( k: y( ] m_nStr = m_nSta = m_nDex = m_nInt = 15;4 D6 v. P4 p- U
m_nRemainGP = 28;& j) U8 K6 o8 b4 a
}
) n! X3 R5 g! W: d6 C( O( N6 w% w2 b* v if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ N3 \+ w+ k' e% n, p
{! q4 d# Z$ `8 x+ _ S9 r G
m_nRemainGP = 118;6 E. C$ L3 x8 m
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;. w" z6 n; X& D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 o2 o& v7 c7 W. u9 I+ X }
0 g* l6 ~" k1 c; E' W+ \% O4 i if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 X* Z2 ?$ V m( Z h4 U
{2 F) r+ x& l) i% A! m
CItemElem itemelem;. }, z( R) R2 n* {, [/ e
itemelem.m_nItemNum = 1;
2 D, v# w! b: ?' _' I' |( j$ ? itemelem.m_bCharged = TRUE;
+ ]) f) W4 g0 B3 e4 c4 f" t BYTE nID;7 D# J, B6 X& g8 W
5 J4 Z4 f3 O6 t) v3 B if( nJob == JOB_MENTALIST_HERO )) U" V- a, W6 K; L* O% |) [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- p1 r) h8 U# y- e' F
if( nJob == JOB_FORCEMASTER_HERO )
6 P+ [- I5 ~* k$ r+ B* @ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ ~' K4 u8 e% y- T) L/ I ?) }3 Z7 a, {( k
( ( CUser*)this)->CreateItem( &itemelem, &nID );- H. K1 o9 E- B6 j0 X0 v& {
}0 u r( }+ c; z# U" i" k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ X P% ?: M7 ^$ u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 r9 E/ G' [& s/ D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 S& x+ |* a1 Z- D9 u) _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 q& N# m# u, [7 R
( (CUser*)this )->AddTaskBar();*/
+ f3 { E! H( m( T5 Q0 k ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );7 a3 H% N% ?" }
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& j( W1 F2 Y7 s4 w! L0 | ((CUser*)this)->CheckHonorStat();
, S' g ^" a* w" a1 l8 a; M4 r5 d ((CUser*)this)->AddHonorListAck();
9 f+ t# L* b, |$ c g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 n4 f. B! x; M+ t a2 N5 Q5 t0 T, h#endif // __HONORABLE_TITLE // ′Tà?
% {/ _( y/ W5 Q8 }# ]9 w( l9 g3 w }6 }# K# ]) ~! u; L H
#endif // __WORLDSERVER; f% n7 i( j, e9 C: P. _/ Z' b; b- z
} ) V. v( U: A# ^- m& s1 Q+ U
6 C7 v& I; @8 f: K0 @. M$ m' i然后你进入functextcmd.cpp并添加以下
' ~' C# ~2 T5 j1 k. j2 U
+ l3 c/ L% B# ^# R+ ^: F9 [代码:
1 y% S9 F( I: k' N2 v* VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
, w1 q+ u# C9 o+ `8 f2 R- X7 J下面插入1 x- `: s4 b/ v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, v: i. k2 j1 P8 z1 l
0 q" u0 \# B. c; g8 a& }0 y然后你去, n/ q% s" g+ L9 K! b" |; L5 {
9 {% c! c) h, ^
代码:" e8 {/ ?+ h/ ~
代码
7 ~" n% R. X) z! B2 u8 MBOOL TextCmd_ClearPropose( CScanner & s )
0 ^0 D, Y: s( q! ?8 }{
) ~) I* l* L! I' ?# i% q3 M#ifdef __WORLDSERVER2 W9 ~/ M$ _2 r5 D/ [; O& ?
CUser* pUser = (CUser*)s.dwValue;
* v2 R: G+ ~+ K: |! n g_dpDBClient.SendClearPropose();
, b" g: B$ H L; Q#endif // __WORLDSERVER
% I! ?$ ^! M( X9 g. K/ T0 ] return TRUE;0 P$ `) y+ G, ?8 J
}" Q/ c0 v0 B2 @2 V
下面插入% c- {" ?4 S" j$ r" U/ ~4 F
BOOL TextCmd_rebirth( CScanner& scanner )8 v: k, y# h* M! m
{
, s/ A* `# e' q* t#ifdef __WORLDSERVER0 u$ U" @/ u* o5 |) [
CUser *pUser;
7 t' Y7 c$ Y& t* ?8 P1 Z* O9 Z/ lpUser = (CUser*)scanner.dwValue;9 j* {* X+ g# I& ^4 i9 M
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' v9 S- Y/ l" u8 d3 N) ~7 qpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
' V, c- j! A6 p$ E3 Zelse H$ \4 U0 }, }% T' z
pUser->AddText("你还未达到重生条件!");: ?5 j3 F* `4 l% ?2 f
#endif* a* ~ c% u. `: i1 N% e0 T
return TRUE;" m _ l }& y) u3 s" Q) }
} % Z: F; c7 V( ^5 J
; X5 N! m0 b4 ]4 H, I# [+ X& e3 j/ M
7 V" p) y1 p% R7 p' e3 |# z9 Y9 w- O$ E7 g. {- d
|
|