|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: i9 \/ C8 t' [. M, d1 Y6 f! I( T2 l, h5 H
Mover.h
3 m4 f8 G4 Z% M+ }代码:
( t* I; v- o" D' l8 j5 y# W6 q5 Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" `; F5 ]" a( N) x. j0 R
# g, `2 z* m, A$ V' [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; + }/ M8 [" v+ w3 q* M/ \
`4 F; Q0 ?. [0 [# C( j& q然后你去mover.cpp添加
1 o& M" j5 c: J4 g4 o
2 @2 I: G" P/ N/ P+ ?+ y6 X0 T( b代码:
3 U, m |6 W& U" evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# r+ ?, F& \, P( G T* w0 N9 X{/ B' F0 b! H( K+ t' X6 f
#ifdef __WORLDSERVER
$ u: P, ^) Y* x // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: E8 m+ O9 X3 D" H MoverProp* pProp = GetProp();8 ?, k5 `* n1 Q+ {! M0 p
if( pProp )8 A; T# b8 y- V7 L+ A, V
{' C0 e& i7 M7 s# [) J+ C
if( nJob > 0 && nJob < MAX_LEGEND_HERO ): t% u; m3 q! U% [& f. m% O7 {
{9 K0 o: b3 _: l0 Q/ T
AddChangeJob( nJob ); ~# Q7 {. L N3 f, W
}else{
% H* N- H0 p5 g( Z; m return;
9 L$ x: n- h. A1 e3 P h6 Z }
9 C: I5 k& s f9 Z' b) X; W* ` int nPoint = 0;% `0 p( O+ x/ |1 Q- K2 f
if( m_nJob == JOB_MERCENARY )
; g, s8 K; d A y! `$ }' L4 h5 m nPoint += 40;
; n# q2 G H* @0 f else if( m_nJob == JOB_ACROBAT )
! s8 [; W0 U0 G: C u1 y, [2 G nPoint += 50;6 O L) Z( W5 i8 U
else if( m_nJob == JOB_ASSIST ), B/ i0 k Z- n" w
nPoint += 60;
) R' n1 u$ b6 q- C) [6 P else if( m_nJob == JOB_MAGICIAN )2 `+ m9 D% Y6 ?+ U1 w! x9 _
nPoint += 90;) ? `6 r) F+ Q: h6 y5 m) z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ); r |7 L& P& f* F8 ]
nPoint += 120;8 e5 d6 {. E* o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ t5 a" p0 m: s- F4 h* q( X
nPoint += 150;# t3 A) {0 w ]7 q6 Y
else if( m_nJob == JOB_RINGMASTER )
% q9 j! u1 }- W. e4 q, N nPoint += 160;2 Q {& E4 t. J( [5 \9 p" Y: E2 W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )) ^0 R' L4 t G8 ?4 R0 J( g+ _) e
nPoint += 180;
/ u" ^* H& l( u, s/ d else if( m_nJob == JOB_ELEMENTOR )
" T# r. A& A8 i4 Y$ K7 F$ M' r nPoint += 390;
# a$ e7 N+ d* V/ A1 S$ s else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) f0 V7 a9 H% \
nPoint += 120;
0 H- D* H% x) h, I' k# R/ ]) [ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ @5 P7 N# ^- S- B. N+ h0 q/ j' V! ^) U8 z
nPoint += 150;
, m. P* l6 p! t$ ~2 y5 P' p7 z9 k else if( nJob == JOB_FLORIST_HERO ): t& K3 {, T- K0 |5 q
nPoint += 160;
; z/ T# ^; _$ w else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
: }# l: F5 L) y" ~ nPoint += 180;, p: Z' z3 {- V! s0 P
else if( nJob == JOB_ELEMENTORLORD_HERO )/ x" _+ Z6 Z# {1 Y
nPoint += 390;1 ^' A$ x0 S( w; t
2 O+ L" l/ ]5 V$ t1 S9 R( q7 E7 k AddSkillPoint( nPoint );
- ~; @: i! b9 e8 h m_nLevel = nLevel;+ r' L0 P; b5 \! D1 g) |( l
+ Y' {& |6 U- k4 W$ _) D! b7 P SetJobLevel( nLevel, nJob );
- b5 v: H4 R& R# W: i m_nDeathLevel = nLevel;) D+ v8 u) ~7 A' t
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; j5 }- ?) X7 ]
if(IsMaster())
! W7 Z* k9 F; N2 g5 a+ o2 j {
* r, }' O+ k$ y1 k7 ?# r int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 a9 @2 n, i( b, E if( nLevel > 59 && nLevel < 72 )$ @% V& Z/ f) B$ t0 o$ X. X
dwTmpSkLevel = 1;9 G' }1 ?1 M6 ]* t3 p' Z0 Z
else if( nLevel > 71 && nLevel < 84 )
P4 F; X2 E/ D8 A dwTmpSkLevel = 2;
( B Q: `: @ L6 X else if( nLevel > 83 && nLevel < 96 )$ H3 @5 K4 i3 ~" U& O
dwTmpSkLevel = 3;! D) g9 W+ z# r( K( ^
else if( nLevel > 95 && nLevel < 108 )1 p& u, m7 }3 y) J! d8 \
dwTmpSkLevel = 4;. P2 p! u" p, b @" }
else if( nLevel > 107 && nLevel < 120 )9 I/ |+ n) @8 X. ]4 h
dwTmpSkLevel = 5;
/ }! H9 V( }" n% a! k+ Z" f- h for( int i = 0; i < MAX_SKILL_JOB; i++ ) & B- g u/ r# R, ^) y
{ $ I8 Y; @. {4 o: Z8 l! M
LPSKILL lpSkill = &(m_aJobSkill);
+ d: d/ ^2 C9 F% k if( lpSkill && lpSkill->dwSkill != NULL_ID )
/ f) x. v) l, x, H' E {
+ I- C+ ?2 S# c9 |+ l- d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - o$ e' r1 s, ]+ @& i
if( pSkillProp == NULL )) O! @% t! b8 |6 e7 M9 j
continue;0 i3 V& \5 q+ D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 q0 a) _/ t# y) d( |/ S8 f, [5 M5 k) x continue;4 B( i4 [# d4 k; u6 H
lpSkill->dwLevel = dwTmpSkLevel;9 V3 R n* x {7 ~: ~, X1 E# Y/ T( x; }+ ?
}
n# P. |. u- R; ?, ]0 q0 x }% |2 c% J/ N$ u" X6 P
}
# u+ E) J0 `# K* w else if(IsHero())
" B) a* V3 E. z; Z {3 k' I6 P- d; y9 u, J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 J; t2 T Y' b+ c1 j {
4 s* ~" a, R. w& {7 U9 D# H LPSKILL lpSkill = &(m_aJobSkill);
% A- g) E" X/ R" C" E( A4 h2 w3 p$ X$ ^ if( lpSkill && lpSkill->dwSkill != NULL_ID )
- g$ ?/ E2 `! P9 d% c' ] {
( `$ l8 f* C7 [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, C1 D0 W/ C% G8 s6 R if( pSkillProp == NULL ); F: L l: e+ o
continue;4 R5 q' F- O! r0 T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 m- m' z& @5 z3 n
continue;. Y0 e. d, M; Z0 ^) S! v
lpSkill->dwLevel = 5;, N# P2 e+ l- S0 r! \
}/ E6 F+ P. m( ~+ L$ S
}2 `- t2 ^* |, B4 o% e
}
( F7 x% p/ w% `# x8 L3 y" q+ H else if(IsLegendHero()) C9 L1 n" O3 R* F5 B
{
6 D ?) Q7 C$ | for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 \, b0 o1 U7 o5 ~ {
`7 n4 I8 M, G LPSKILL lpSkill = &(m_aJobSkill);
# H5 o1 x* b |# b2 q2 } if( lpSkill && lpSkill->dwSkill != NULL_ID )! y- N0 S5 `& Y+ M( e7 s6 L( |
{; c5 d/ p" y8 ]/ v3 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % D# @8 e$ @4 Z' H( C
if( pSkillProp == NULL )
, d7 n8 R& R' }" w6 x continue;
" r V/ L# _" C, A b1 q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) m% b) h+ N' q1 `, ^
continue;
, e! j$ O, ^" n% e. X# E [ lpSkill->dwLevel = 5;: {. V+ e3 W% C. M3 c
}4 j' `$ t ~( K1 K# R
}# P5 c7 @0 ]" L& U
}( d2 h3 I6 G" }7 c
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 r. O" k+ I3 Z& ?& t' g2 G& ^ if( bGamma )
2 {' E% b/ e' ` {
9 v9 f( b- J( Y3 Z# ]% z; d m_nExp1 = 0;# s% l: X2 Z* [& E, N
}
" ?# r: z. u' r/ f8 f! d5 D8 ]5 w! W9 G
( (CUser*)this )->AddSetChangeJob( nJob );3 U! n8 L9 ?* C7 w
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: A: h7 e0 |! M& ~9 Q
w4 c8 ]0 |# r1 r& s- U& W, W0 {
I6 v I- c- d#if __VER >= 11 // __SYS_PLAYER_DATA
" O: N7 V. T% T g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 u; k; y. g7 b1 f1 F1 B! K#else // __SYS_PLAYER_DATA
9 | f$ M- F2 q! N% D/ X g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ R, R$ ^: O$ {
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 B- }8 R9 x0 a9 z6 W# U% G
if( m_idGuild != 0 )/ N0 G) _0 }5 N+ t: b& |. x8 G' L
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 B( o, _. \# E# `- l#endif // __SYS_PLAYER_DATA9 }; e( C+ k' B& U+ q0 @$ c9 t
SetHitPoint( GetMaxHitPoint() );* B5 l0 [" F% ?& a; L2 `
SetManaPoint( GetMaxManaPoint() );+ M7 y& ~- X! D5 O8 E
SetFatiguePoint( GetMaxFatiguePoint() );' c" J' l: i: r; B* j( V
if( nJob >= 1 && nJob <= 4 )
5 `% c6 q! S1 C- ~ {
" C; d3 H4 o* q: R m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 O3 ]0 N: N/ d; k D! j m_nRemainGP = 28;2 o9 ]2 z( }( G( |1 }0 R
}
. d, I7 O; V. F: U if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
7 b8 X v) M7 M2 a( F$ F* \ {0 U3 {# L7 o- |. o* i3 o* `- t
m_nRemainGP = 118;7 c$ K3 O0 {, d% x5 U$ v8 I
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! Q; m& L; i P+ k# t. B( {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 S; b! b: Z K* S; v; j } d5 d+ L( e1 |7 _2 x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& n( Z9 H, g; A( P {
* B& G$ g5 d' G CItemElem itemelem;- {( u, j6 o" b6 D: g! N9 H
itemelem.m_nItemNum = 1;
& k* m# v% l+ G/ @. a h0 r& s itemelem.m_bCharged = TRUE;, l" F! W2 W7 t9 L
BYTE nID;. X/ ~8 X( R" G& h
( i U2 G6 e0 m: A6 i% @, i. a if( nJob == JOB_MENTALIST_HERO ); w5 t* d; `7 X0 {' [1 d0 f7 L
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ j2 ~8 n$ K2 Q. T0 o/ T N
if( nJob == JOB_FORCEMASTER_HERO )
' h4 ^7 U3 M& ? itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& T5 Q9 l' Y8 C* |/ d- w( z% T
8 ?$ h: v9 Q2 q0 Y6 p+ e
( ( CUser*)this)->CreateItem( &itemelem, &nID );
: o5 q5 p8 ^0 A$ Q }
6 `; i+ {4 W8 K" V; I" y7 z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ Q B. v) i( }2 e, |9 U: G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ s% f# t; Y# _$ e! ` ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 G- {7 f& A! J1 s0 C /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" ]8 g$ d/ l7 Y1 ?
( (CUser*)this )->AddTaskBar();*/
% v3 n( \6 z6 R% h/ F: t: p9 N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 E5 j( m$ i( U' y; V
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; v8 j3 K* i2 o! o- v2 X6 g ((CUser*)this)->CheckHonorStat(); T9 k" U0 E* N" t6 t
((CUser*)this)->AddHonorListAck();6 ^' y# D; w, p% \- l, G: o2 f
g_UserMng.AddHonorTitleChange( this, m_nHonor);
( t7 r/ G; `: d; K/ @2 B#endif // __HONORABLE_TITLE // ′Tà?: v. k J. H2 k; H" R8 D, d
}& n- P1 d6 s7 d6 s" I+ R% t
#endif // __WORLDSERVER
6 ^7 }4 T. a. a; K- O} 9 _) n0 n+ a7 I: C6 d* S; [/ d! {
6 L* D& \/ k8 x, e ^然后你进入functextcmd.cpp并添加以下% V; }" F; Q! F+ O
, e6 a! w8 u* j# M: w7 s
代码:
. J% y. i) W8 QON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )5 |! |* L! W2 @1 h: ~- r1 J& @4 M
下面插入
. N0 Z( }5 M" _ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
; c/ \/ w/ L3 w" W
g' H3 i W7 K) M9 R5 c q然后你去: d/ z- t, R9 C: [- h) b
7 u! ^) F( X# N8 n/ S6 H代码:
) C% e) {2 b2 `代码% U, B v" u- C. j/ m$ H, o! ~ Y
BOOL TextCmd_ClearPropose( CScanner & s )
; z/ g7 L: H" i& E8 e: R{
$ O" j& _$ f7 u }#ifdef __WORLDSERVER
! l) S7 e6 x. z) J7 ? CUser* pUser = (CUser*)s.dwValue;
) P$ }( I$ I; |2 A- ~ g_dpDBClient.SendClearPropose();
% x, u1 b: |( E8 b: _#endif // __WORLDSERVER
# U: D- C- [! M1 D0 y1 ] return TRUE;# V8 q5 s* s$ ]; i
}
( d. L$ ~; Z# q( ` `1 y1 x下面插入
# @. q" A4 O- f& ]4 o/ ^0 iBOOL TextCmd_rebirth( CScanner& scanner )% w$ X- ^9 x+ A g, E$ w3 a
{
4 @* d2 X% u7 W9 R/ C. A' y#ifdef __WORLDSERVER5 r+ P6 ? e+ U& W$ O' z
CUser *pUser;$ j3 ]/ d: k- \
pUser = (CUser*)scanner.dwValue;
1 M, W% h% j3 K, k: ]: |# qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! t4 a& \2 f9 f: J$ \* vpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
# ]8 P* d, _8 ^else! H- {* d; b: W) v
pUser->AddText("你还未达到重生条件!");6 Z" G. E8 i8 T" }) ?! I' W
#endif
' s/ x* L; ?$ h4 x" C3 ]return TRUE;
3 C7 o$ d% m- {; D3 q; N: l}
$ A0 J @) [) x y& l
- t" H/ U4 D) t( ]" T ]+ d9 ~" K7 f9 B8 s! p; p9 m+ ~8 b( u# |' y
, y4 l" X' B+ E1 P" O3 N
! ]& C" q$ O5 @' @( n3 S$ S5 ` |
|