|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, [' h5 l# k$ T6 ^
" Z- \3 ^! \6 o" H4 s; E* X& Y
Mover.h% c, V' p+ h7 y
代码:$ m1 j8 _5 n3 [4 A
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) C( ?/ B" m& ^' @4 ?. }9 T0 {
5 g/ ?3 Q" F7 r! W' w; T: C下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 j8 [0 G' n* O! }0 @
G7 |6 w' V3 K5 |- o+ R3 C& O然后你去mover.cpp添加$ u1 I) ]% n: D* W1 g L
3 j0 s9 M9 R, }) F7 i: U4 f代码:
1 q8 Y6 g, Z/ @2 B# E) fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
I! ~9 i) O+ N$ ~! w" s{4 x6 u% {' l5 ?1 U' O
#ifdef __WORLDSERVER
( K" m+ f$ C2 M; }2 e8 {: \ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! y8 U4 ?" T1 g! W
MoverProp* pProp = GetProp();6 Q% j# U: w! V
if( pProp )
2 R' H4 B7 w0 T; k d& m$ U1 m {
) y: B( W1 r( w& L if( nJob > 0 && nJob < MAX_LEGEND_HERO )# _! Y5 v" t" T( H& W
{8 r( E5 n( W* S6 r9 r
AddChangeJob( nJob );
* z7 J- j5 U0 B/ a& U7 R# Y2 ? }else{; t% N5 z8 x C; m' k
return;" p4 d9 Z l9 j7 [
}* T; H5 `" W. `: D$ }9 ~
int nPoint = 0;+ u+ K5 U' G Q# y2 D& S5 L
if( m_nJob == JOB_MERCENARY )
& H$ h4 q* j% B$ n7 g. [$ w nPoint += 40;
1 f0 E1 [" ~6 l* b else if( m_nJob == JOB_ACROBAT )
- L" ]4 u$ B: ]2 s7 C nPoint += 50;7 y! z3 T- _; R3 w
else if( m_nJob == JOB_ASSIST )9 D& M' E. L8 @8 b$ W8 y% I' D
nPoint += 60;! O0 ?+ o3 D0 Z( x5 t
else if( m_nJob == JOB_MAGICIAN )- T/ o/ k# |) i
nPoint += 90;7 @& a8 x7 a C$ l1 v3 q% l' _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) p' F) \! H: Y; Y nPoint += 120;
( c* Y+ b3 l) z2 w) _ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
0 w6 d% s* {) l1 s' U nPoint += 150;/ ]+ y/ k/ p9 ^' X9 |
else if( m_nJob == JOB_RINGMASTER )
# u6 G5 x4 f% p+ E nPoint += 160;
$ Y8 p% s% Z- R# K) } else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
' O- F/ a% x# I2 g nPoint += 180;3 h& c+ D7 K, J7 D* Z0 ]7 I% }: T
else if( m_nJob == JOB_ELEMENTOR )
2 M/ j- N- F2 v3 u1 J7 ~ nPoint += 390;, _1 O. p! U2 y. C3 d- d
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 _. q( A0 W4 h nPoint += 120;" g# m* u; P" D- ~7 l- o% X
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 w/ `) D" ~+ K, w8 m. B
nPoint += 150;
0 f) `$ o8 ]* w8 A% K( z E+ ` else if( nJob == JOB_FLORIST_HERO )
3 q# A( `# g; C& `. ] nPoint += 160;- J+ c2 W# C$ d# s# U' ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- ^( F% m, c3 t" ?0 m4 J
nPoint += 180;
. r9 U+ `! X0 N! o3 |/ ^ else if( nJob == JOB_ELEMENTORLORD_HERO )6 q; L' ?# w$ M% j: b; x9 i8 w
nPoint += 390;
) s& M8 ^4 X- ~" q& U
7 h( T% |. [' a5 w. ] AddSkillPoint( nPoint );
, _, U$ r1 O. ?$ C( u& p4 W9 \ m_nLevel = nLevel;
7 W9 e2 h8 J, y6 C* n I7 q8 F7 P
& i# t, t7 l- u' h SetJobLevel( nLevel, nJob );$ {' Z5 H4 [! F8 {1 i
m_nDeathLevel = nLevel;5 e6 o5 Y; k6 X1 m- G, E+ w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' M- S' ]! [: ]0 y& F M' G if(IsMaster()). J9 J3 w1 o, f8 |$ ?9 a
{
: r4 x8 M; G; @5 ~5 G' \; c- [ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 v6 z3 }" ^& C4 B5 E if( nLevel > 59 && nLevel < 72 )5 z% @/ E- ~3 |0 p
dwTmpSkLevel = 1;
5 D) q' v5 b- ?: N else if( nLevel > 71 && nLevel < 84 )( Y- u4 K2 @, H! H% Z( k0 m- @
dwTmpSkLevel = 2;1 H- d7 W& X1 j/ C5 \
else if( nLevel > 83 && nLevel < 96 ): `+ y- l- U# \
dwTmpSkLevel = 3;
' j# W. }, q9 ` g/ S else if( nLevel > 95 && nLevel < 108 )0 B4 X! r( u, w" Z# H @
dwTmpSkLevel = 4;1 i+ e1 x) I& D. U6 X
else if( nLevel > 107 && nLevel < 120 )8 |$ p: J5 {3 O' w
dwTmpSkLevel = 5;, d2 g" ~" s. S4 T2 S0 A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' m2 T" S, G4 z$ c# z {
, |! m& q/ U0 C' s LPSKILL lpSkill = &(m_aJobSkill);! D: i9 n' k8 z/ N# O
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 J9 `# ^- v: j/ `& z9 H1 F% B, x
{$ u$ P/ N& f( {' s0 V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; Y5 G2 b F @$ Z% W* I/ o1 m
if( pSkillProp == NULL )
# |) r# D& c' M+ J6 D2 K: C# e continue;. C [$ c6 h' U- G1 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 X9 y; _0 Y: E% i+ N continue;
9 X' a- ~+ A0 U- Z$ z- s6 j* w4 F% C" B lpSkill->dwLevel = dwTmpSkLevel;
5 o$ a- P1 D0 r }
- M! t: n2 W" T }
: X, H$ o$ ]" V& k1 k' c }- f+ P+ @( ]; K: \4 b+ C" T% Z) _) u
else if(IsHero())
. F0 ]% q: f( x9 K$ N, w1 f( e {! D" d+ f$ I8 O6 R" i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; \) S% z; @4 C: w8 R% H {
' P- [1 G, r! X LPSKILL lpSkill = &(m_aJobSkill);
- n* v7 A, |5 z2 p) F if( lpSkill && lpSkill->dwSkill != NULL_ID )
" w0 F4 @( W% [' V3 X# P {
! q8 T' X3 a& L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 @6 Q+ x9 m5 g. m2 s5 o# J' o
if( pSkillProp == NULL )
2 r4 e: J$ c/ ]0 r1 Y" M$ p continue;
9 g$ ~ P* [* ^2 W) b0 p. m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# r7 ^4 b) ]$ L4 e) G: Q3 w! K F
continue;2 n: U& s& `+ e
lpSkill->dwLevel = 5;
s( @ u$ a9 m }
6 U, E. ]* X2 v0 [+ I }. { M8 N, }: g5 X+ r) e
}5 |4 p$ R8 M5 P5 s
else if(IsLegendHero())
$ l' f3 z( G# q! z9 f# @6 { {
" e; `; s; ~1 J; Q$ T' D9 S for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; a" m( |" M) W2 S' h. F* N
{
0 O! I& O, c; O6 H3 C4 I. B LPSKILL lpSkill = &(m_aJobSkill);
* o M4 ?% b1 _ if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 z% z. I9 a( G {
$ `8 n: V0 W8 i( w! Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ f S/ A" C$ Y6 y; V if( pSkillProp == NULL )
F% w6 Q. w: f6 V6 H continue;
+ W# d9 B8 L; O) L: Q3 U: @6 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 ^1 J( E- U3 n& T continue;
; O u7 ]6 N; D! N j lpSkill->dwLevel = 5;
9 C/ v# L9 k% ~ V0 @: @0 a }8 y- k# {/ U# U F& Q3 V! p
}
$ j# I- f! b- h; b0 x7 ^8 n1 l }
) W' } E/ l+ ~1 ^1 r' |2 B2 Z& L#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* \5 V$ R3 ?- e/ {
if( bGamma )
B B( u* m$ T {5 y8 |; l* x& q3 I3 f
m_nExp1 = 0;8 m, o$ q! a, v4 r% E$ d
}
0 K2 T% h3 _! M. {
* |+ G" h! w6 P ( (CUser*)this )->AddSetChangeJob( nJob );
9 F, m1 m; ]( \& L% Q g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" y: L3 J; D% s: X6 F' b5 N: B* [; V- r
0 j4 x) _2 ], E
#if __VER >= 11 // __SYS_PLAYER_DATA5 C b: _- O* E. r* t# v6 h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: _, |# [: F K* o; ]
#else // __SYS_PLAYER_DATA
/ C; N; k2 V) G* q7 F( W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* ]: P( p1 d9 C) v4 e5 ]# K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" }6 ]% p3 U( } w# l# r5 i
if( m_idGuild != 0 )
$ n/ w- T* M, K5 _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );5 J; _7 ^5 H2 n+ G
#endif // __SYS_PLAYER_DATA
) Q0 m* j# |; Q* x7 Q SetHitPoint( GetMaxHitPoint() );
2 ~9 `- Y+ x- f% W6 @1 V SetManaPoint( GetMaxManaPoint() );
8 P7 a" z) R: v" q SetFatiguePoint( GetMaxFatiguePoint() );
/ e! F) i$ Z8 m9 U& t) g if( nJob >= 1 && nJob <= 4 )7 R* ~3 }( ^& L0 p& p9 F- x, N
{
6 R# |- Z2 m" z; \0 d/ }0 G t m_nStr = m_nSta = m_nDex = m_nInt = 15;% {. `6 N7 S! I
m_nRemainGP = 28;2 m+ f; C( U2 x5 ? r1 z g) v
}
: M7 k4 E3 D+ L7 e: j if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 ~1 `; T0 c d+ |
{
. v) z! W" r! \0 D; T; O5 Z m_nRemainGP = 118;! [$ ?* @4 `6 P; D3 l7 w
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# \* v8 U% x5 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( R8 F' {. M3 h8 j1 |# B }
4 \" z8 O) E3 A7 F) [ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- ~# X8 H1 I6 f2 }
{
, R/ \/ I/ |5 I# `; i* D2 d CItemElem itemelem;! f8 g, ^; m% j' R) H8 d+ W
itemelem.m_nItemNum = 1;
. \# Y0 X! y( k; e itemelem.m_bCharged = TRUE;
0 d' n5 g- e. G# M1 v: d BYTE nID;
+ B2 R8 m7 g9 G, e& }
. l$ C$ K: l7 Z5 h* \; Z D1 m if( nJob == JOB_MENTALIST_HERO )! b$ ], q d6 _8 u! \" y4 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) o9 S" u! _* X5 J! R0 j
if( nJob == JOB_FORCEMASTER_HERO )2 v* d# W. p4 {- z, D! x- k' l
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 a, L6 F4 m* E! f& Z! F
/ D$ ]: N3 m3 J/ ]/ N2 Z/ N5 [
( ( CUser*)this)->CreateItem( &itemelem, &nID );. K' J% l3 F2 f# n* d- v' s
}
( ^; R/ g3 i+ M g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 m0 ^2 h* {' t! y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ A, P: p% q4 C( P& K0 b1 F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );$ _! |* h$ ?7 Q2 m4 H
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 h, K* g2 p/ w, f9 p! {& V
( (CUser*)this )->AddTaskBar();*/
, L& H7 x( G9 q' Z' q" O, k9 T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% K6 _6 z- U0 f; ]9 o
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ A7 y# ^ D/ M) a* I9 k ]
((CUser*)this)->CheckHonorStat();
8 G; F/ _1 r Z8 s ((CUser*)this)->AddHonorListAck();* A. c* I& J, I! a; S- D) r U
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ K* O, @5 j; S
#endif // __HONORABLE_TITLE // ′Tà?
. F# y. A+ {' z; m+ G& K" ~ }
& I5 Z. M0 u8 T#endif // __WORLDSERVER
0 C: f/ ]+ l* T- a0 V% @# L} " D& ?0 {1 F1 r: R
a9 S1 H6 S+ v. j/ u N5 f
然后你进入functextcmd.cpp并添加以下
, J/ G! M: j9 T/ f7 `' Q+ |
: g5 g4 q2 J5 a4 _; F9 q3 R! S代码:
! Z; ] Y" r+ L8 x PON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
V$ A* A: O1 n4 R0 u! T+ K0 u6 B. a下面插入
& A S& R9 Q4 ^5 P* `& X+ jON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
" A6 u, S1 O( S# w
3 R0 k- F4 Y" i! i- \" W然后你去' Y! X; V! a$ ?) Q7 g b
' Y1 b6 C; @/ O代码:
- Q# |0 H/ L8 Q& S代码, a7 {+ o+ J: b
BOOL TextCmd_ClearPropose( CScanner & s )
3 ~3 M# q' y! N" b/ T{
. j. ?8 F M: W% K: F0 n& X#ifdef __WORLDSERVER
. n- T" d% E3 z! n( F$ Y* i CUser* pUser = (CUser*)s.dwValue;. F4 C) Q1 o5 V1 {, ]1 i
g_dpDBClient.SendClearPropose();
C5 g1 {9 P- }) ^+ _#endif // __WORLDSERVER( l$ J- Z, s' l
return TRUE;
1 o" c- o7 P7 x2 v4 {# r% Y, n}
, j7 J5 H: d8 S下面插入, B9 Z. L" W2 c. j
BOOL TextCmd_rebirth( CScanner& scanner )4 N6 k: M$ D. L- t7 e. h
{9 I& @1 @2 [/ b) o# `- m
#ifdef __WORLDSERVER
; ?$ o0 Y8 u. @2 \+ }CUser *pUser;
# U* E. U9 d& k8 p0 I9 cpUser = (CUser*)scanner.dwValue;
. I/ u' o) o7 @5 R, ^if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' R$ v+ I! U: w% fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& G; [9 J( O+ ?) Z9 U
else ~8 K0 K* m) R' V5 C+ t$ ^ [
pUser->AddText("你还未达到重生条件!");
! M/ F$ J1 U, o#endif# ?: F& o& q" i
return TRUE;
' X1 N1 V6 P9 D( ?} 4 R; Z1 `7 U, _% Q/ V) p b
3 V8 M+ Y. i8 z3 t
/ c5 q$ C! ]9 q7 E( ~8 R1 v1 u0 ]$ {: t
) v' h9 ^" k: [. W" p
|
|