|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% c J& b) Q: V. v( ~+ m1 Z! R4 A* I+ s
. m" U! m( \! ^$ W- R
Mover.h
5 z2 X1 V& C! H: t7 G0 i2 m2 P0 g! d代码:
1 n; R# @( [6 n) v( v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. B/ c( V+ s/ |' t( z7 E
& v: D. y: T g! D9 d
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . d: G1 E- |# {. a% g8 h
' O3 t5 Q% a% \0 [然后你去mover.cpp添加
& \ k+ w1 u( @: \; b6 q9 L: c/ j3 u1 u) h5 {- A1 \- M
代码:
$ t; W/ K% G* ^5 ]8 x. m1 `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 Y! m" i' [. x& s6 F
{
) O9 N% |- W) F1 F#ifdef __WORLDSERVER) T S7 J4 U3 ^3 C' H
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 _" m M( D8 `! |- d& R, Z. i) j/ N9 N MoverProp* pProp = GetProp();+ v- c5 t/ O/ x. N8 Q
if( pProp )6 I, Z5 w H/ v8 {
{
% P2 g% T( r2 g0 N$ a if( nJob > 0 && nJob < MAX_LEGEND_HERO ), u0 O( F9 B" |' H1 B
{
1 W* {6 u4 G! C; M5 Q AddChangeJob( nJob );
' A; `7 n3 A' _4 p }else{
, c w4 r9 |3 p" Z* o" b, I) T return;
6 s$ S. y8 i1 X. K }! V, m, l0 F* B; U8 @
int nPoint = 0;
/ C3 M6 o( h6 ]; s4 t- V if( m_nJob == JOB_MERCENARY )
' y( | m, J# |$ Y/ ^8 T+ k' q! r nPoint += 40;! ^" b- h! W" S/ X* S0 G
else if( m_nJob == JOB_ACROBAT )
8 Y. ^6 C8 a) |$ h0 c9 F0 a nPoint += 50;9 J1 }# O& M& h2 N" E9 p
else if( m_nJob == JOB_ASSIST )
4 C% e6 i. d+ L- G1 v% A, f nPoint += 60;
7 p' n8 `( ^9 x) p, r/ Z* D% B5 b else if( m_nJob == JOB_MAGICIAN ): S$ `9 y* E" ]' t) F5 Q4 J- q
nPoint += 90;
1 E+ ~; A" I: K3 ^ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )8 \. Q i6 a) ^$ i% o
nPoint += 120;2 N ]2 a! s, @5 @5 B) g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
: ~0 B) |; D! R3 m) V) }) T nPoint += 150;
7 t* ~5 c2 y$ Z6 S, M else if( m_nJob == JOB_RINGMASTER )
/ j- P9 x: n8 C nPoint += 160;; z7 C# M7 ^* z; O
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: c* X5 T7 x6 p+ [6 h# _ nPoint += 180;
! A; c @. H, W m# p4 m else if( m_nJob == JOB_ELEMENTOR )# W3 r; e. D! t
nPoint += 390;5 I; Q% x; {* ~
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! ^$ v" ?) j2 E$ }, w; N nPoint += 120;9 h9 u( Y# c2 }: Q$ E/ i
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( x% T% z8 ?$ j9 k& H+ ]- o nPoint += 150;
& g `: l$ V. Z6 b7 T) V8 b else if( nJob == JOB_FLORIST_HERO )
" ^4 i* D" `6 Z" C( Q nPoint += 160;3 Q7 C! a( t% v4 R
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
' _& y5 n2 Y; O8 F+ \ nPoint += 180;: |% j% g( |8 \2 c$ d
else if( nJob == JOB_ELEMENTORLORD_HERO )+ Q$ h1 l$ O3 f0 k4 B4 S4 s
nPoint += 390;
. ~& N6 m2 ]* f7 g
J! C1 T1 R, A: m! [1 [5 W AddSkillPoint( nPoint );. I& B3 ~. W- t; M' J+ d E
m_nLevel = nLevel;
5 ?( o/ L. E/ J6 d1 {
" l5 |9 \( C: [2 ?* d: a" | SetJobLevel( nLevel, nJob );
! ?6 ~: j4 D: k. Z. J8 n7 i/ v P m_nDeathLevel = nLevel;
& j- K( R/ a, K6 O#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 z4 n( x1 O2 z$ v; J+ e& J if(IsMaster())
+ s! }# }7 q- z9 f9 T. E) v {) n S$ x$ A. y# b3 y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
! s* i& R/ I2 a0 r$ w if( nLevel > 59 && nLevel < 72 )5 r+ Z1 Y( L$ @
dwTmpSkLevel = 1;% @* q) D9 ]) v& y" ]
else if( nLevel > 71 && nLevel < 84 )
) u4 x7 R7 @0 P$ { dwTmpSkLevel = 2;! ^# [/ M) h1 s8 {
else if( nLevel > 83 && nLevel < 96 )
, `9 `: Q5 s+ f' ~0 e- q dwTmpSkLevel = 3;* I: b6 N# U" @' O. f- S3 t3 C
else if( nLevel > 95 && nLevel < 108 )
: B; R, {/ D( P" Z5 n( M$ |. i dwTmpSkLevel = 4;
% ~8 P; A4 k* c9 | else if( nLevel > 107 && nLevel < 120 )1 n/ G. \* l, }7 J: V c9 z! ^
dwTmpSkLevel = 5;$ C8 D$ D( C' u; B" j, M+ \4 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 H7 ]4 L+ S+ L: D+ K
{
3 V: q3 [/ V$ i! A# A LPSKILL lpSkill = &(m_aJobSkill);3 ?4 Z. i! e2 L, u2 n
if( lpSkill && lpSkill->dwSkill != NULL_ID ); @7 E9 y& }- |# c* Y
{
) V* S/ I+ ~% e( u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, b1 ?! v" i i2 b if( pSkillProp == NULL )% ]: D" ~* g* ~; G2 h6 T
continue;2 E! e R. Z- R. N2 j) i( k* }7 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( D1 f/ A4 A( l continue;
8 l) x* Y" v) ^& ?5 C+ A4 c lpSkill->dwLevel = dwTmpSkLevel;& P" t6 {1 h4 {( ~
}" F6 k8 V7 C6 D! r& p7 V ]( g0 L3 m
}/ c! W( x' Z8 [, x7 {# |
}! J# z$ K9 s5 Q, m
else if(IsHero())% I( l* I% m7 l. \
{
# X( O" }6 |0 F* j4 d5 r9 m for( int i = 0; i < MAX_SKILL_JOB; i++ )
* ^+ w" F. h& F- {: Q5 S { . s- u' ~$ l; F5 o. q! r
LPSKILL lpSkill = &(m_aJobSkill);: ]+ ~2 e- j! L# U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" s4 X* s' Y& \' F) \2 a- p& N {
, H4 ^% L7 ]& N. g0 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ z) |4 n# s( g( U+ w, j& K
if( pSkillProp == NULL )
' N5 [+ `0 P0 p1 F* j& W3 Q continue;3 Y3 h8 d$ P5 a5 t- G# x5 }6 E2 K, ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 U) R2 r! K! o$ v- z1 N! J/ a
continue;( }! _0 e E0 d/ G5 z. y% y! u
lpSkill->dwLevel = 5;
( W! S1 `/ t; @7 M, h: p }% C* Z1 i3 m5 O/ j
}
* X2 Z( B( ^" ?! U. H. S }- s. e% `6 E/ J8 q: k3 Y
else if(IsLegendHero()); b+ ]$ x6 t5 }$ D- B$ x
{0 d I: d- [) h; B( O6 j& ]8 G% P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) : F# E* L; p3 ^% G( e' T: l
{ # \4 }9 {# B! A
LPSKILL lpSkill = &(m_aJobSkill);% i0 {) Y' }4 \# r' u5 I4 ]; A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* v2 n+ l* |* B% Y8 ~) d {
! d! J+ }1 \- i3 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- [1 m# c) m, I) k% f$ d! `% s# _ if( pSkillProp == NULL )
$ q; K( T$ X' b continue;0 V; t+ S; M1 i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( d/ [0 m8 Z3 @$ P0 i continue;/ E1 Q8 k8 Z: f( c( n# W) L! O* L' D8 _
lpSkill->dwLevel = 5;
0 `! |0 `" Z5 B$ g }( q) V: n- j/ _' z0 }' _% B) e
}8 O% f. {2 E& ]
}
# `" H1 p$ A/ s" @4 ^; d#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
D4 v9 N7 M* ]4 j' R# z# P if( bGamma )
( I) @1 x5 k7 _! S2 y {
1 A3 J8 o, Y; s$ [! X% B m_nExp1 = 0;
$ m/ H$ h# F$ l0 i }
/ V, f" I0 w% f$ u* M) G Z6 B0 S+ r; E! E
( (CUser*)this )->AddSetChangeJob( nJob );5 D! B ~6 U: w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 u: ?% M& {- g# A/ `5 | j
0 w4 K, G7 |, b( }: C$ G" O5 ~8 \6 k4 [& M
#if __VER >= 11 // __SYS_PLAYER_DATA
2 o, \ q5 G0 T& @ P% s7 p g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: y- X0 q) i- ?% o8 ?
#else // __SYS_PLAYER_DATA m1 @& r2 R3 }- E8 C) G
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
$ `' @7 ^; h: q( d$ b g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 I7 x3 k- n$ _ |6 ^) A if( m_idGuild != 0 )
' f" J/ z6 ~0 Y& q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" a9 L4 \. {. R3 p* [6 j. _3 k
#endif // __SYS_PLAYER_DATA
# ?5 u ~ Y* i SetHitPoint( GetMaxHitPoint() );
6 f1 r6 Y! W6 R+ [( [* g SetManaPoint( GetMaxManaPoint() );, L0 a" v7 K0 O& a" l
SetFatiguePoint( GetMaxFatiguePoint() );
: i& ~& ^+ N- a ^ if( nJob >= 1 && nJob <= 4 )
) M u. |% A, ~ {
# c$ w x6 K5 ^: O! e) C) r m_nStr = m_nSta = m_nDex = m_nInt = 15;' i" d4 j$ p1 h( b; h9 X- K
m_nRemainGP = 28;
) X; m3 z1 {! g$ H, y& Z }
" D! T. y9 X0 v: S if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 w# G/ p- S6 [
{5 r( E$ e$ z, M
m_nRemainGP = 118;6 k9 ?9 R9 d& A% r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( ?/ L5 @0 ]* r w( N
m_nStr = m_nSta = m_nDex = m_nInt = 15;* P4 I3 E2 V5 w# ^
}
) ~8 D2 v8 ?) a9 U" X" B! b5 H if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) \* T. e7 n1 i4 i2 e0 O7 @" E- ~. ?9 ^
{
) T; n2 e1 v# b8 c% Y CItemElem itemelem;5 c- k8 J6 i+ r+ i$ y8 G
itemelem.m_nItemNum = 1;2 h: j& u+ {: @0 M7 [" n
itemelem.m_bCharged = TRUE;& A# o. d. t- L
BYTE nID;5 X) [" C$ J3 p3 i0 P
: W. `+ L: n& a. k
if( nJob == JOB_MENTALIST_HERO )
7 |: ^4 d$ W+ P8 E& q$ w1 \9 { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;% z& H8 z: |! x" n* V$ [+ K; ?
if( nJob == JOB_FORCEMASTER_HERO )# h' Z# P7 I( L( ?- a
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
) u1 M- v6 r- h( Y s) t) u* S0 Q3 I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 N8 H: i* z6 k. p }$ `+ x2 `) O( c
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ Q2 m5 \1 l, m ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );5 ^1 k% K; |$ W8 e) z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ f) @9 C1 v) R% m5 D$ P. J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 J: G% Z1 P t) n% o; x6 Z& X+ c ( (CUser*)this )->AddTaskBar();*/
, N' L- M h* q% I$ m' r: }6 t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );8 h; z' T: A' f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* _- `2 G) l" g: ]8 I0 ~! I# d# t
((CUser*)this)->CheckHonorStat();0 d0 S! c& F r* V A8 [$ J
((CUser*)this)->AddHonorListAck();% N4 T0 E3 ]% \* t5 V
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 k0 o0 b+ Z. ]- ^#endif // __HONORABLE_TITLE // ′Tà?3 B T; ?" x# Y$ y
}3 M4 c7 | B0 U) S9 t6 E
#endif // __WORLDSERVER
- a7 U% o6 b! s4 S& `: p R} 0 Z ^2 J, \( o9 [
! c7 l! T; z: A0 {7 `, S. Z然后你进入functextcmd.cpp并添加以下; P) N" I8 b/ A T8 I8 B
$ }9 f5 u$ @. n& R" D代码:
: V! W g# c7 l$ E. R7 t# hON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), E* _5 A7 V0 E; E' S
下面插入
. v4 g* @: y( C' [3 s( L3 aON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; F8 b8 B# }/ {3 o# G D) w
1 S! R7 K- ?. a$ o+ Z" E然后你去
; t4 _: @2 X- G: W; X. d; h& j
7 E& P4 R1 \. h) j" s7 {& A, K: v代码:3 ^1 G4 g) ~' m% n! t
代码( ~$ R! L. r6 z, X
BOOL TextCmd_ClearPropose( CScanner & s )
1 ~9 ?4 [2 i) B5 ?{/ |4 p# S/ F: D& ^; `
#ifdef __WORLDSERVER! \9 K! I9 D2 q% w
CUser* pUser = (CUser*)s.dwValue;" S4 k' D$ `" L0 g: f D
g_dpDBClient.SendClearPropose();
5 M& G/ N/ d$ A/ f* B#endif // __WORLDSERVER, N0 L" Y9 r8 L7 I1 b
return TRUE;8 z& Q6 }, z6 y% M
}$ p& b \% F- M+ m, E4 s4 _
下面插入
! h0 [ k* J% |3 l# B+ x7 yBOOL TextCmd_rebirth( CScanner& scanner )
3 p2 m3 Y/ ?4 |5 J5 T' P{
6 N% h8 P' J6 d$ a; w#ifdef __WORLDSERVER5 E+ I5 w% `; D) X1 G
CUser *pUser;: h3 c& H& B- N- o
pUser = (CUser*)scanner.dwValue;6 r( a8 z6 U' Y- H5 o, G! T7 R" L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
& p8 i6 f: W( Z7 I* p2 H+ d* kpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);- C6 E: ?5 D% N4 g( a8 W+ E: {1 K
else" K1 ^% A, a7 J' m6 A1 d- g
pUser->AddText("你还未达到重生条件!");5 t- k9 B3 O" e1 j5 T
#endif
! u. u' R0 G, p6 p4 mreturn TRUE;1 ?# d) {- w# Z; N) b- w0 @6 k7 r
} - v( L' ^' w Y. I' l# m, g
: `, B0 L. g M8 b! B; X
% _, F% r' Z# }0 F% @% V' C' |* k
0 {! q+ Q9 G1 P* G0 `/ W6 j% y3 G3 F: `% p3 V& \ b# }
|
|