|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; k: ?7 h# z+ G/ x
2 l+ p- V' H6 q8 T2 u5 X3 x% yMover.h
~% z& X9 u( t' T, |代码:
- J' G3 \/ ~8 ^5 B1 \( h5 C找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 H# t( x% J4 @
/ E. x+ Y- V3 B( j4 t% M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
, B3 s( Y# |# B& P% \- A+ Y/ t& U. C1 T# F8 t$ J/ d
然后你去mover.cpp添加% b2 ?: x! @( P. u( e
! e' h( n- i' m+ J* j) E
代码:
8 ~9 i0 t& C0 I5 K( s0 Lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 C1 K U) B0 f0 C- P
{8 M' j( z, J0 |6 P& m
#ifdef __WORLDSERVER
( a0 x( |* E1 S/ U8 ~& e5 ^, N. k2 ~ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) K4 D3 G7 q( P) Y MoverProp* pProp = GetProp();
, _/ C8 ]& `; @1 D; M- F' w if( pProp )
* ?& |; |" a* m {# _* k1 O ]+ R7 A: C6 S+ r4 e& ?
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ r9 |8 e5 U; B {
4 g# a# t" N8 r3 ?3 C5 _4 ]# g AddChangeJob( nJob );
% x1 l: b# |/ [0 \ M$ B }else{
& I5 ~3 d. k# T% G( d return;
* }8 z) }: Q$ a }" b: }- O( ]% a9 j4 ?) F
int nPoint = 0;
2 l, y. Y8 h3 e% ` if( m_nJob == JOB_MERCENARY ) \$ j( D+ d% }2 O
nPoint += 40;
& ]* [- O6 ]. ^7 U- Y, c else if( m_nJob == JOB_ACROBAT )' C% t: R$ x. l3 z: z( a+ L
nPoint += 50;
& S# g" p U3 i* f8 p/ y else if( m_nJob == JOB_ASSIST )
/ f) p* |( c2 U2 {' h8 r nPoint += 60;) }# c( d& g2 _9 z" K& \
else if( m_nJob == JOB_MAGICIAN )
+ [- x( V( c# s. g4 w nPoint += 90;3 W" S; M9 o4 E3 J p
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )5 l" ?) F8 E1 ^' w/ a
nPoint += 120;' |) x7 z' ?- {, s4 H, B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 H" g4 B; f9 ~: Y/ s nPoint += 150;5 @ N1 I N% |7 ^
else if( m_nJob == JOB_RINGMASTER )
' \7 k) a. ?" P+ E. J8 u nPoint += 160;
3 ?& Y4 R: c8 o/ O: K3 G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( V* y& `' I# d) G' v+ ? nPoint += 180;
7 K9 a! t! F' M/ a4 y; x$ m8 |7 B else if( m_nJob == JOB_ELEMENTOR )
% f& w0 Y# _. f! i% o/ o nPoint += 390;
* V( [. O! }# Z- j0 I else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( [ T$ H# d2 ]* K: U nPoint += 120;
; b# F! }9 k& L4 R" ` ^ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ v1 k0 t6 D/ h! L+ D. M nPoint += 150;
* E3 _3 u# x. P# f i% T3 J# S8 X0 y# l else if( nJob == JOB_FLORIST_HERO )1 z( T0 J$ ~, X% y" P$ u9 S: u
nPoint += 160;- v8 S2 W+ R; p: {; W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 m6 t4 \% R2 e9 D1 } nPoint += 180;
6 K( I! Z0 v2 o/ d else if( nJob == JOB_ELEMENTORLORD_HERO )
4 E! q8 B4 A. }! I5 u2 b8 F nPoint += 390;# ~) a& w" X- d u( A
* _& G( f' M u. j) O' t
AddSkillPoint( nPoint );7 C! G* P- L& A3 v- f" W9 w" S
m_nLevel = nLevel;
9 B' k& T; F8 n" u/ Z e+ |! C, R8 Z: x4 ~
SetJobLevel( nLevel, nJob );
& F, h1 X# X' \6 @" s, N m_nDeathLevel = nLevel;/ R2 U5 U2 p( [7 J/ [' T" c9 i
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 g, T# J- p* ~& c2 R* M
if(IsMaster())
2 L# z; I; H% Q2 o8 |$ Z. F {
& v" J. u, L8 c6 m int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# W5 Q3 t" \" |/ @
if( nLevel > 59 && nLevel < 72 )
: i8 r* ^! X+ Y dwTmpSkLevel = 1;8 E; X4 ^0 g5 e, e$ ]. m
else if( nLevel > 71 && nLevel < 84 )
- Q7 j7 Q% v3 U: Z% `- y dwTmpSkLevel = 2;
2 \0 j! t& _* E" z' f4 o else if( nLevel > 83 && nLevel < 96 )+ t$ o2 H: I9 X: E" g4 y2 C
dwTmpSkLevel = 3;
6 R8 g' L/ n, H" c- o( s; T else if( nLevel > 95 && nLevel < 108 )
' Y7 D; i7 l* w# L4 H dwTmpSkLevel = 4;
1 }+ i. k* K+ n5 D else if( nLevel > 107 && nLevel < 120 )
5 F. R' v7 j; d7 Z4 B dwTmpSkLevel = 5;
) h9 H4 K' L9 R3 q- Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
" O) L9 ~2 V) J" B0 G { . \* ?, T; [! X
LPSKILL lpSkill = &(m_aJobSkill);4 y, z& H5 ]3 |; o
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 s; l1 A, o1 n( S1 {
{
: \: M/ g+ O" G! U- Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! l8 h) ~9 ]! E if( pSkillProp == NULL )5 C! }4 m/ t' m& P6 D% u' w
continue;
. K3 c1 i& r0 H# `2 _$ S4 n r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( X3 r0 k6 `1 u* J4 s continue;
" {' Z, u7 e! T- U5 j A lpSkill->dwLevel = dwTmpSkLevel;3 l& U/ v4 B% u% x2 X* j/ v
}
9 m7 j" K1 } D* X3 A. j }
+ [8 m+ G7 ]5 B1 w G }' [; a0 F$ W# Z/ H$ d2 M) F& b, L
else if(IsHero())/ o) m2 V) o2 r, i/ N
{2 ?! j# h0 R P( J2 O4 V, V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 T) j" ?* i8 J
{
* k. C5 L; k2 k- ] LPSKILL lpSkill = &(m_aJobSkill);
. K: z- X" m# `6 e5 b; K if( lpSkill && lpSkill->dwSkill != NULL_ID )
: K" |# d% v. s1 D2 R* E {
; c- I" A/ Q5 X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ W: O }$ P/ m- i# ^
if( pSkillProp == NULL )
' k1 `( O [8 l& V8 z! B, I continue;5 ~6 v: m: k1 h w
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 r) s: f) }6 s9 ? q3 _ L
continue;
* {* A8 w. U0 d+ d lpSkill->dwLevel = 5;
/ t+ ` w$ a9 H" R+ o }
8 q7 W/ R) E* Q: ^ }
2 `' B9 Q5 [1 ~7 c- V9 P }7 w$ g3 V2 H. x+ J
else if(IsLegendHero())
4 r4 t3 G& A3 Q1 p; e7 G {
) B8 N8 I; F. n$ A9 a for( int i = 0; i < MAX_SKILL_JOB; i++ )
) V8 B$ \3 Z4 X W {: w: U. u {
5 v/ X4 q; S0 V0 o/ K4 o LPSKILL lpSkill = &(m_aJobSkill);
4 \% }! r$ n$ { T1 U9 ` if( lpSkill && lpSkill->dwSkill != NULL_ID )2 t* A) `/ C7 K& D
{
* v2 I8 m# T, H P, N5 c% X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. Y: V9 X* L! H, N9 \ if( pSkillProp == NULL )
% s/ A! t) e: y/ U7 E) H) ` continue;
# ?" B) e2 W: X/ } if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; s0 L# F8 b( j; W& ` continue;2 H2 d* b* ?& ~3 a- k0 g* z
lpSkill->dwLevel = 5;4 u2 m! C" C4 n' k0 n9 X$ A7 c
}
. k G ^4 |5 e! m6 Y$ @, L }
9 Z% g v% s6 k' G }0 x* Y$ i# k8 F) T! D; O, B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
e, D) p4 P2 D1 V& I if( bGamma )5 @& `) O8 g3 ^ n/ k- x( T% a0 \
{
/ Y y% |7 |5 T; Z7 }3 X/ G m_nExp1 = 0;% i) `' Q) ]. N2 X; Q
}& f g1 v* p' A
3 D# x! q+ g2 @% o4 J' b3 X ( (CUser*)this )->AddSetChangeJob( nJob );, d6 L! G/ m. s4 n% F+ p: g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 a, Z! D9 h2 [) O
9 g. m' F7 F. T3 ?; o* Y
; H4 D, T% \; _. Q. k
#if __VER >= 11 // __SYS_PLAYER_DATA
# r! O2 F+ {& X g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); v: m1 i4 @% L0 O6 O4 _% k5 W
#else // __SYS_PLAYER_DATA
% F* t2 |) z3 R _$ y( ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 o6 t! A9 B" Q R9 e
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 z1 r& |5 u! ]6 f8 L8 h' d4 { if( m_idGuild != 0 )( Z- [3 L/ n# ~, y
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 d6 I, F6 C9 h
#endif // __SYS_PLAYER_DATA
" @: @8 s6 g% c4 `7 }9 b$ Z+ G SetHitPoint( GetMaxHitPoint() );' N, ^/ J# l( h% `$ v
SetManaPoint( GetMaxManaPoint() );
, i+ z4 S y: N5 _! ~5 } SetFatiguePoint( GetMaxFatiguePoint() );% o9 P3 e5 I+ P8 a& V' A% {
if( nJob >= 1 && nJob <= 4 )& E3 Z" B9 j% x4 o
{. Y/ s9 S: S, C) R1 t3 K3 R9 ?4 w
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* O0 }8 x- J. q8 \5 U m_nRemainGP = 28;2 d! A1 s8 t+ U
}2 E. G0 v k' T$ Y
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
' A X: P* M7 W; Y: a& D {% d/ p: O) S) T
m_nRemainGP = 118;
4 ^0 i) q) C5 e% K //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! q! [$ \3 b; |8 d- \& W) n" P
m_nStr = m_nSta = m_nDex = m_nInt = 15;( q5 ? n/ w; Y/ _. b- z
}* v. U2 \7 N+ b0 Q
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. H S+ f7 i8 W {, c+ G+ P/ K/ a9 m+ o3 v% n0 q
CItemElem itemelem; X5 ]0 @2 A' x$ {+ E, Q+ h
itemelem.m_nItemNum = 1;2 f9 n" L2 |: {% l5 z1 F
itemelem.m_bCharged = TRUE;
* r4 O% A# S& h0 R3 | BYTE nID;
1 ?4 ^, T& ]% J: C. r$ P1 E2 d. f( F. a+ W9 G
if( nJob == JOB_MENTALIST_HERO )' G- ~- i0 d+ A% c. `
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ y& ]- v! N+ y/ f+ E* R" L, Y- Q
if( nJob == JOB_FORCEMASTER_HERO )
- Q8 L4 D* x. _! y0 l itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, ]7 x5 `8 ^. X @" K7 @1 G7 k2 n( e W
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 T5 j3 N! Q6 |
}4 ^' A# ]( W ?+ M% j6 ]
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 |) R- }9 e% r+ a- B: @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! k# x+ k% V) v p2 [ M9 m ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );- s% _ X$ x* ^; G* |
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );$ }' x: Z6 o& k$ t+ U/ ~ a3 L
( (CUser*)this )->AddTaskBar();*// Q$ h; ~; K7 E- i
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. a, F- x3 z- _, |5 |0 B; z, c }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 R3 a2 u* `+ U& A% M ((CUser*)this)->CheckHonorStat();$ z F7 \7 r9 M2 f; f& C' L
((CUser*)this)->AddHonorListAck();
* L* T" Y# [9 m7 ?7 [; | g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ c! j; Y0 e) |* P+ ~1 k/ @#endif // __HONORABLE_TITLE // ′Tà?$ u+ @1 L* ^4 D
}
" _6 k d+ C, W2 q/ o#endif // __WORLDSERVER
6 k# Y. }1 d1 P! l+ A& F2 W7 ]} ) j9 r, ]/ d% D$ A. x' U- N
) w/ a+ `0 x6 H$ x6 [0 g然后你进入functextcmd.cpp并添加以下
4 y6 i" G# o$ @
5 k' X5 l0 G. f- F' }0 \* C9 g% e代码:. d6 W" U; E* f+ w
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )) o" g$ g( U4 [) c8 t3 e
下面插入
t5 L- N% R) c, l& ^ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 U& U2 e5 E" Q3 S2 r& R/ ~4 d& T T; {0 h, R6 l8 _5 u
然后你去# y5 `) {0 p+ x
( }8 d! @( p C J& z代码:
- n) `- k& Q" T `代码% A4 U7 _" R; {0 }8 K& V, a
BOOL TextCmd_ClearPropose( CScanner & s )0 \- C" B' K$ @5 V
{
`. P% ]' Y3 {- ^" O* {#ifdef __WORLDSERVER0 `0 Q2 ]: X2 ~5 |
CUser* pUser = (CUser*)s.dwValue;! Q2 {* `- e; f# d# B: r4 U
g_dpDBClient.SendClearPropose();
. |2 ?8 v6 B3 T8 ^2 U$ m#endif // __WORLDSERVER
/ J1 j) h2 [% z return TRUE;
) W! d% z# h! c}
6 i- h0 Z$ V2 v6 \! w下面插入, }/ `' e2 l* D; I0 r' [. R& B
BOOL TextCmd_rebirth( CScanner& scanner )% e0 M2 a* R K
{
# F5 O+ F# i( P/ N1 f; J$ U4 y#ifdef __WORLDSERVER) z8 \* z) E- K0 _/ D, m
CUser *pUser;
4 S* @* L4 a$ f) |+ o8 Y7 c8 ^pUser = (CUser*)scanner.dwValue;
- G! A6 I2 V) E* }9 s) oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 d% s" N8 I& \) xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 m+ h2 f8 j0 s* ~7 belse. w% z2 n2 }3 g; R( I
pUser->AddText("你还未达到重生条件!");! T# \+ h- Q( Y* {
#endif; Y; ~ }% u# X- K9 d! G
return TRUE;
1 V- X a9 ? r/ c/ G}
+ [, R! S! x7 p; H& T; x! Q0 {* s+ x6 x
! p; F. y: s$ \9 g7 a) f1 n9 t4 z9 Y: r, l: Y, ?9 i
6 W+ y% u3 h2 T% ~4 w
|
|