|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ h& W* U H2 h9 F, L# I0 n0 b% C. A+ L: F# s: V
Mover.h7 h8 _- J9 Q* |" m. ^) z
代码:% |, C( _1 |1 ]$ D
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 y" ~" R- ` m; I- s2 Z9 `" J
8 ^3 { V) T5 `4 P- e# I( B下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 B8 L @# o o* |4 ~0 O
" n) s T" s/ P |* r9 S( d然后你去mover.cpp添加
4 [! z1 w" q5 E! ^# V4 l5 U- r0 Y
代码:* M' _5 x& m- Q( u5 e1 v7 }2 `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( p0 I7 P! w3 n( P. S- D# Q
{
& n" W" V0 r. w. ^% I! i$ ?0 x#ifdef __WORLDSERVER
$ c0 r- @& Q' d; a2 p' c* F7 d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó& |3 P- ?1 f0 {; s: A2 x
MoverProp* pProp = GetProp();3 h& `) t$ g/ N1 u$ r+ H4 \7 V
if( pProp )9 d8 }/ v$ w! R; p0 d2 t
{
h7 g W8 h8 ~) f+ U' ] if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 @. T- }" s$ ?; a
{! s& F: l+ V" V; u
AddChangeJob( nJob );# H# r) L, ?5 t8 c) T u5 [
}else{% V: k) i* [. |
return;
4 q, X A* m; E% w$ b6 g( G* Z" T! K }- Z' m R8 I. }% ^9 F5 x0 T
int nPoint = 0;+ I9 |7 [ v; S' H! x. ? f
if( m_nJob == JOB_MERCENARY )
( d9 \5 K8 u( P nPoint += 40;
2 B7 s: R' L: g6 q3 O& g- l else if( m_nJob == JOB_ACROBAT )
7 K) F8 o8 {- L, w1 G/ S- e; I2 `& O% C3 Z nPoint += 50;- q8 P! p# x o6 Y/ C
else if( m_nJob == JOB_ASSIST )
1 L; o+ d0 k: d: a7 h' \% ~ nPoint += 60;
7 ^+ A) a* ~! f, z+ a/ d3 e else if( m_nJob == JOB_MAGICIAN )
@3 e# ?9 j4 ?/ g nPoint += 90;
; @ c g; `1 o [9 _* \& V else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 [2 [% M6 {! h/ o( q nPoint += 120;
5 v' h9 k$ \5 K: U; e else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
@% q' a) C: \, C0 i* I4 j nPoint += 150;0 j/ i7 W% P: ]" O
else if( m_nJob == JOB_RINGMASTER )2 x* Z% k) g* x/ z
nPoint += 160;4 t5 v, o3 |, Q! q& `1 \' Y/ ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% u9 }( j7 L' \ nPoint += 180;
/ t- T8 [ K7 `9 E+ x- E else if( m_nJob == JOB_ELEMENTOR )" _6 [; s* d0 C& {2 F: E4 K! G7 T0 _7 |
nPoint += 390;
; l" p1 ?& P. c, ~ else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- [7 b+ S0 y/ O; Z% Z nPoint += 120;' e8 J% E4 s, ?' A0 b- ?
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )! z) `; Z$ u9 b! G$ m9 i! m/ b2 N
nPoint += 150;. h% x6 k; d' h, O
else if( nJob == JOB_FLORIST_HERO ). r, a3 R4 ^$ V+ U
nPoint += 160;
3 `3 Q5 D: s4 `6 Q* J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
4 z$ \( {- r& _& c T) t3 q4 | nPoint += 180;
6 O; n# `6 h9 ?$ N else if( nJob == JOB_ELEMENTORLORD_HERO )4 V# r. U4 `& m7 G5 d
nPoint += 390;
) Q( ~# X! @" y' C. J, X. _4 B$ F% g+ B
AddSkillPoint( nPoint );9 p& _1 U$ N- ^( I E! Q# L5 C
m_nLevel = nLevel;
8 \ G% a2 q t0 g. \- Y! r: h3 r' Q) @( | m
SetJobLevel( nLevel, nJob );
- c6 K; c( c9 V { l m_nDeathLevel = nLevel;: a5 |6 i% J. X2 n- d: A. w9 ^/ q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. d4 n) `" U j3 j$ E if(IsMaster())
: q. p x/ W9 f0 P$ k* m {
* s1 t. m9 `" o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ c: ~* O3 z- D' E+ D9 l if( nLevel > 59 && nLevel < 72 )
. q4 j/ \2 Z4 w# `5 M5 \* Z dwTmpSkLevel = 1;5 Q% `, f% u9 k* L
else if( nLevel > 71 && nLevel < 84 )
7 e" `1 }" S% w dwTmpSkLevel = 2;! C# K( W% X6 |/ p) L+ [
else if( nLevel > 83 && nLevel < 96 )- v/ S$ G: n2 b) f4 E. o+ l+ p$ f
dwTmpSkLevel = 3;
q- D- b) |& W9 F else if( nLevel > 95 && nLevel < 108 )
, q4 @( f! C/ G4 g; q dwTmpSkLevel = 4;
* R% R. B8 @9 X! t% @. W else if( nLevel > 107 && nLevel < 120 )
! }1 b( f# J, C3 b0 l4 H0 n/ @ dwTmpSkLevel = 5;
5 D5 M- k8 C( t" B1 f \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
! \& \$ y6 {) s {
. }- `8 D6 h1 C% j1 {0 ]7 _3 F( o- M LPSKILL lpSkill = &(m_aJobSkill);
+ ?1 ?8 d2 |9 U; V* |1 N- Q if( lpSkill && lpSkill->dwSkill != NULL_ID ): B4 S& n' t, h
{
* c A/ R8 v1 q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : ?& Q l$ O8 p
if( pSkillProp == NULL )
$ v; m) w# ~; K7 P/ T$ N5 p1 k6 N continue;
( R" s! C! x: E/ V* I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 f9 a4 y( l7 S3 h* j9 I" z
continue;9 x2 l! d, x- T( Z9 k
lpSkill->dwLevel = dwTmpSkLevel;& q: m' b7 P5 X* Y, a: F
}8 S1 i# J& \ H- e2 B4 p( A( d
}7 d$ r; m2 r$ C5 q1 Z, |) X) H% \( P
}2 M' d) ~% M4 L( ]
else if(IsHero())
, A7 A9 D( |/ S, b4 G8 \ {( W6 ~6 K. i5 Z) R
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 u) o- h1 W+ _8 ] e {
# ]. m: @% ~) }# r' O+ T& k LPSKILL lpSkill = &(m_aJobSkill);
4 r+ a6 Z o1 _. N0 s: M! s if( lpSkill && lpSkill->dwSkill != NULL_ID )5 k9 G/ Q' t4 ?; R% f" F
{
5 _. t2 R6 m$ B) D! A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " l @% Q' O/ ^% B2 o+ T ^
if( pSkillProp == NULL )
/ @6 q5 b' t; A; y: j7 Z) Q continue;: j8 d E9 N$ W4 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
U3 ?9 n. B" i; K* u! ?+ k continue;
+ a* j8 H3 |- } U2 o, I lpSkill->dwLevel = 5;/ d) {* |3 W/ b: k6 `6 F
}- U! j4 V8 U- r& E8 k4 F P
}
, f l& D" s# R" x. ]9 n }
7 L. F7 ^: k" K- w% ^ else if(IsLegendHero()) _7 M8 o$ M c& f
{
% z( i: W& b: R, G for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 p0 M4 F3 N& k7 U; J: L) l
{
8 H1 b8 H% b7 ?2 f2 h, P LPSKILL lpSkill = &(m_aJobSkill);
2 x6 ^) ?3 e6 o1 Y) Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
' \5 P5 R& G' c {
1 Z2 O0 S) D6 Q/ K ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) Q% j0 v7 {) A; z6 V
if( pSkillProp == NULL )
+ J, S/ W$ ^. A continue;# }! O$ Q1 z/ m* b7 [4 g6 b8 V$ R+ k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 D E& d5 j' K) C" Q
continue;
/ o" @" i5 f. N, X9 `7 } lpSkill->dwLevel = 5;) ~5 Z% C4 M C! l! [8 e
}
& ]' d" M- z. X }* Q% V4 {/ U9 T: W, |
}
' K5 s) `+ P: X3 z* v$ t* ~3 W#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 G! Y1 H+ w2 v# O, }, f. H if( bGamma ) D+ }7 }: j- Y' a% }
{7 n0 h* H( w; q2 I0 {* [
m_nExp1 = 0;
5 S N& P1 G' Y" c) G }
5 X: Q- o3 q6 }+ N8 I# }1 c$ Z+ a1 I5 l# F. S: u
( (CUser*)this )->AddSetChangeJob( nJob );
! H: c7 N. k- c# e- o0 { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# w7 ?( e4 X5 ]
+ L, y+ v Z+ C9 ^% e: Z* D& U2 ?5 e
#if __VER >= 11 // __SYS_PLAYER_DATA/ n5 y0 x# {- j0 [/ N4 k6 F
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( l5 s# M6 ^5 @#else // __SYS_PLAYER_DATA
5 _0 U D/ H% h. j! M7 j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' d3 [9 w0 F- t( D4 K- B; {$ B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 i* ?# x: H) f. d1 [) q; E
if( m_idGuild != 0 )
9 t" l) s& U5 B! a5 ~) y g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );1 |3 ~2 k6 O. K$ O! ?7 }8 ~
#endif // __SYS_PLAYER_DATA* b0 M+ T3 }$ N4 N" q
SetHitPoint( GetMaxHitPoint() );
7 I; Q4 x- g( D* { SetManaPoint( GetMaxManaPoint() );
9 P' p$ @$ W$ e' u$ b( z, E SetFatiguePoint( GetMaxFatiguePoint() );: l2 Y9 ] h" H: T$ B* x# V) O. d
if( nJob >= 1 && nJob <= 4 )# x' f: l8 a# H4 E2 u( d
{8 Z3 M0 g4 X1 |1 E2 V9 d3 E6 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;
X2 q) C* O/ F, J m_nRemainGP = 28;
" f% Z. f' Z* U5 T* k }3 k* u7 _, ]0 t$ t" ]0 X$ q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
R$ {& s2 @# q0 W0 C {1 e8 `$ c$ I5 n- h6 V( v( K- M
m_nRemainGP = 118;% b! Z1 n6 m+ q& M3 T* E z3 x
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 ^! D# c. k8 n* s/ Q m_nStr = m_nSta = m_nDex = m_nInt = 15;
: l' Y9 X0 e& Z& S' H }- @8 u- p9 R: i) ] L" ~/ p
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 s$ r: c* S! a8 @
{
! ~1 p8 C8 w T1 p6 B CItemElem itemelem;. p2 L, }6 ^" d4 X* a; Z
itemelem.m_nItemNum = 1;0 _9 c- Z& k, ~* R
itemelem.m_bCharged = TRUE;
f9 P7 @, P1 j7 o v BYTE nID;
+ `& `1 Z: R, o+ u4 x5 t2 S0 d
" a' o3 S- S; ^5 _1 w% q if( nJob == JOB_MENTALIST_HERO )" e' ?. D) ]& r( X
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ u5 l, s2 y1 ?; M. Z. g) J" D if( nJob == JOB_FORCEMASTER_HERO )
5 i6 Q! t1 J, s3 K; W! j itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) p& U k* a1 X& Y+ p4 e- a
( {( v0 Z& u) P3 \
( ( CUser*)this)->CreateItem( &itemelem, &nID );; l# a. B$ n M9 _' M
}
" k6 K: k' N, `+ M! ^8 C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% ] I# J1 k b4 Y* G ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- _; @/ `* {# y" m0 u4 \% e
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ U# O4 g# m+ b S& K/ {' _6 Q. j
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( \- [! A# q1 E3 X ( (CUser*)this )->AddTaskBar();*/7 k9 F9 n7 U6 M$ M2 o X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ ]. K- L0 Q6 f" r
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 h! z6 j0 x! G9 _/ `& V
((CUser*)this)->CheckHonorStat();3 I4 B# {1 J9 X, d5 J0 s S
((CUser*)this)->AddHonorListAck();
6 D2 J3 J5 ~ H1 V1 O. C6 @9 M g_UserMng.AddHonorTitleChange( this, m_nHonor);/ K, M1 I- C! L% ~; u% y. U
#endif // __HONORABLE_TITLE // ′Tà?
& c0 _# @6 `; X5 w& e/ p" c }; ] R% d' u; v& L0 q4 ~9 N. |
#endif // __WORLDSERVER
h$ l; o2 b5 N2 R( t7 d3 C. V}
8 s) B! J! g4 B G+ C( t
" Y8 o% k, w# i4 d2 w" ^- u+ A然后你进入functextcmd.cpp并添加以下; m$ \3 b) \: Q3 I
9 m/ O5 I/ V |7 h" m/ h
代码:& ~9 D- U7 l! k" f; J9 {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# I& c* D. [' A
下面插入! z+ d! V; H& Y6 Q6 d+ f5 s
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
7 g5 h4 S9 {. i! X9 Z" A# |% M0 I( S: `
然后你去
/ I# K, g7 Z; K) c8 B( d- g7 I7 e, x( E5 b7 o' q
代码:
6 a) d0 x& G1 s, ^ S# w1 W2 y代码/ t+ X+ _& O" z; x7 \( d. f
BOOL TextCmd_ClearPropose( CScanner & s )1 ]8 A$ E4 ^% G. G0 @
{
. g c2 F+ q5 I; H3 X% w k3 S. U#ifdef __WORLDSERVER( h3 i3 d8 f# x" S* o
CUser* pUser = (CUser*)s.dwValue;& S; B" x3 F2 [
g_dpDBClient.SendClearPropose();
4 \: x# c) u6 Z7 A#endif // __WORLDSERVER3 b3 p7 T+ K/ s8 ]. u! D m, j6 n, x
return TRUE;4 x5 X% e L" y: U" K$ }
}
- Q# i0 U& L* p+ G, `- S/ {下面插入7 }- h# l+ Z4 r% K, u j
BOOL TextCmd_rebirth( CScanner& scanner )8 u! t: U- | c' S( `/ C# m# f' u
{( r6 D8 n9 k, I- V
#ifdef __WORLDSERVER
( U: t& r( b* W) C$ @9 t% t: QCUser *pUser;% J) |* k2 Z# Z& Y5 D' @% L# D7 e; R
pUser = (CUser*)scanner.dwValue;
" e$ z& ]- O9 } o2 i ^' aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# x( _ p* r( a |* V, _
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( k' L$ x' f7 B
else
- z) r4 {+ a: W/ h1 TpUser->AddText("你还未达到重生条件!");4 X: t1 c" D7 B( ]& K% E6 \% F5 P3 v
#endif5 w6 H$ ~8 _9 |, ^( s: i/ @* k
return TRUE;
. W# S# N. R; d+ ]) m} - f& W2 m# W+ X' h% X. S6 O
% M3 Z( v; ^$ q. I5 K
7 l4 g# O: T7 g2 y5 H4 z# ~* n( b6 M1 C* m- B# K4 b
) d. r( a; ]$ V5 J) e* ^
|
|