|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
8 \: s9 e3 }: K) _3 E( @; R- `2 l' e: M, f' a& {5 C
Mover.h
+ I) I: f3 B: w6 {+ N1 r0 m6 U* k代码:( S, O# e2 E7 y$ J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
7 c" h G% G5 A* Z
$ i2 `. e7 x( ?4 H8 t5 Y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & k2 i6 _" a' J- V5 p- [
; ?# _: i# P9 c7 E' p- ]
然后你去mover.cpp添加% D" d- V- G- X' o8 @# n
# N3 B7 T. [0 Q; i1 {
代码:
1 \3 {6 X6 e' m4 I% q- U" H) dvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( L) b- B6 `( L P2 P{4 D* \+ N. K) Y
#ifdef __WORLDSERVER7 w I% V0 b. c
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
' M5 \9 j7 m1 p2 T; k# |% D0 n MoverProp* pProp = GetProp();0 Z) [. U. v. i' a0 W" _. m% x. C
if( pProp )% r4 l2 l& l9 D/ a
{+ x. ^1 J) d [: ]- a! e
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) }' \6 }3 h% a! p9 ]: Y5 B
{; O I# n( V# e6 t) S: b
AddChangeJob( nJob );- U! c E: u$ J9 P# x B
}else{; d- i! p! p1 j4 N* h8 E, i
return;
) B0 t5 `$ C! l' e# w: Y }% j0 B0 [2 f3 F1 u
int nPoint = 0;( G, e3 q9 _4 J0 I4 ]" t1 h
if( m_nJob == JOB_MERCENARY )- R4 y$ {. r8 g/ y3 n/ P' \" g0 c
nPoint += 40;
% J: R+ p6 |/ P4 [5 A) x" \" ~ else if( m_nJob == JOB_ACROBAT )
2 q2 p4 x; }, L nPoint += 50; ]+ e( A2 j2 I3 m, A) i
else if( m_nJob == JOB_ASSIST )
8 Z; r# x3 g/ H: r& K P nPoint += 60;% Z4 C6 F; \) H+ s' x4 ^
else if( m_nJob == JOB_MAGICIAN )
9 [' c, r( `3 d% X nPoint += 90;
2 t# f2 `# X2 Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
d% [7 R3 U* h9 { nPoint += 120;
1 p: j$ j( e) k. O; _# B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 o( z" N. W' Q1 x nPoint += 150;
1 g4 z9 s! |" g* [, Q2 I1 } else if( m_nJob == JOB_RINGMASTER )
3 w6 X- v' W5 o nPoint += 160;
8 n! l/ v0 s6 j8 B3 E2 l else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 P; s% N* f& B1 R- X
nPoint += 180;
% x" v, U5 F1 ^+ X+ T- F else if( m_nJob == JOB_ELEMENTOR ) |) ~6 L5 Q) @: a. U7 a3 O. G# n6 {, U
nPoint += 390;
- q7 G: s: y/ }* ^; r+ V# ~( P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# \' s U+ u" A' L- ? nPoint += 120;1 k4 B# k, R* T# ~& \! u
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
' d. C7 K- a- q( n$ j nPoint += 150;9 f# y: L$ t3 T& w$ s g0 y
else if( nJob == JOB_FLORIST_HERO )0 @1 _1 I4 m# T
nPoint += 160;8 F$ `4 f! o3 L+ O7 M h$ f1 E
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ); C s5 N) Z$ }* g$ A; g' q$ r7 |
nPoint += 180;
: K" G1 c m4 `6 n7 \; `/ a else if( nJob == JOB_ELEMENTORLORD_HERO )7 R$ I$ Y8 ~4 ]! f9 [0 j7 \
nPoint += 390;
) ?( W( [9 D) E" C- t1 W& C K
9 m9 ]7 F- l! \1 Y/ b AddSkillPoint( nPoint );! {4 E# ?4 d! d( F5 ^4 w& a
m_nLevel = nLevel;
! C5 y' V D( a8 @7 R4 L* ?) ~$ n
$ y3 X8 {7 J. ?: R' U) a q SetJobLevel( nLevel, nJob );& t% w# x8 s+ ~9 R0 H0 n
m_nDeathLevel = nLevel;" \: c6 w3 S! U) A; g+ ]
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 r: E( V; G0 A( L6 Q7 A+ Y if(IsMaster())
) }2 y: U+ K1 u! h {
" T5 j; ] |! h( k int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( Z% c6 i4 ?% `3 G
if( nLevel > 59 && nLevel < 72 )5 o4 @7 w9 I0 U5 J* b/ ] v
dwTmpSkLevel = 1;
/ f6 Y& ]! F0 @ else if( nLevel > 71 && nLevel < 84 ). ], N8 I3 P/ {' w. A: y% j1 O+ \+ F
dwTmpSkLevel = 2;
# H) s$ G( ~" e else if( nLevel > 83 && nLevel < 96 )$ p o/ M% t, A
dwTmpSkLevel = 3;5 v m" A# N4 ^8 f
else if( nLevel > 95 && nLevel < 108 )
P/ }- e3 t2 I! Y; d0 C1 y dwTmpSkLevel = 4;
6 V% G- Y' v! _4 A, v1 u else if( nLevel > 107 && nLevel < 120 )! U/ E9 B$ y6 @1 s5 Q7 N
dwTmpSkLevel = 5;$ e/ ?: X9 D" U# C- y: l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) H$ l$ \+ h/ y2 P
{ 3 I* L# | v" n6 O0 X0 _! f
LPSKILL lpSkill = &(m_aJobSkill);4 n9 j2 M& W! r# x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" K9 D% O3 }, _' ` {/ v+ L6 a1 O4 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ Q: I9 l( P" J% \; a if( pSkillProp == NULL )+ r! }: w5 h* {' V
continue;
" S+ [7 g- D8 Q: U' ]- b* B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 B1 a3 g5 l- R# K
continue;
3 P# @) B/ ^$ X5 G3 I; [6 X( t: E lpSkill->dwLevel = dwTmpSkLevel;
+ i9 p8 I5 ]% _$ @4 X2 \/ H/ g& j7 d# \ }
- Z; [+ O$ b9 F* o }! _" ?5 g1 [8 a3 y7 p1 Q
}
7 o# A4 K, Q+ `, |6 F% d else if(IsHero())
% S5 @5 E6 @1 p) ]: G {
, p( ^( f, G( @: z% N; p for( int i = 0; i < MAX_SKILL_JOB; i++ )
) d8 s6 r x) M* @0 ? {
3 F8 B' J n! _' X j% M LPSKILL lpSkill = &(m_aJobSkill);' \" Z( c# h' T" r; F6 W" }) H
if( lpSkill && lpSkill->dwSkill != NULL_ID )
{) B. G7 S. p! @0 o {
. q# _2 C; i2 \$ J5 |5 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - o" w& j; \: f5 c
if( pSkillProp == NULL )7 n6 g" F: L7 }. ^6 v$ I* f" l
continue;1 f# G1 X* Q0 P1 o5 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 z i# T- v* [4 T) t
continue;
: a& D! {( r7 e0 [+ Y lpSkill->dwLevel = 5;! o+ H: G) F! S
}
C8 Y8 U5 L3 d }1 z) p6 P3 d! j9 ^
}
& n# ?9 d. f- x3 @9 R else if(IsLegendHero())
: c( T4 c# O3 \7 u6 ]# |- t! P {
" K( t& S, Q( \! y' _9 r for( int i = 0; i < MAX_SKILL_JOB; i++ )
* o, s" F: ~! T { ! c: q& K4 F! l* `
LPSKILL lpSkill = &(m_aJobSkill);
0 {7 C: |7 {; Z3 c if( lpSkill && lpSkill->dwSkill != NULL_ID )& b/ A- V! V# J, ~; @5 i" U
{* F' _+ k6 _0 V& Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 l6 ?2 Q0 v% c* t
if( pSkillProp == NULL )0 Q# t5 a7 x6 O) y
continue;
6 x! P8 ] c( x, a' D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
e6 a- ?$ ^, w( w; t/ e continue;& S* ~$ P b& n( J5 {. D
lpSkill->dwLevel = 5;
# L0 z M2 R4 Q+ d: ?. w2 p }+ X: q) M h4 v% U) h
}# h/ D0 [8 H9 h% G$ O
}
' d1 \1 r3 s$ A! ^8 G#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 R& R6 J: W! O5 B. E8 n if( bGamma )' s, s# W4 [. ~* ~! y# D/ Y
{7 O9 m% K& r2 A. {& v+ s% H2 Y
m_nExp1 = 0;
! @! J* l# `. K4 e; e* E& X' d }: B& ~7 V2 p! Z$ T; E
" p( N6 l) w9 i6 a7 b& \' [
( (CUser*)this )->AddSetChangeJob( nJob );
( v E* ]* C8 G2 X, H5 E g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 f$ N5 d1 d/ r3 U: X+ T, K* l( o2 V$ t; y7 u
+ V$ {' X/ T( B3 I* @. S#if __VER >= 11 // __SYS_PLAYER_DATA. D2 ?( k3 ^- ^8 O0 }, q F! n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );- ~7 j4 B! @* u
#else // __SYS_PLAYER_DATA1 _# x- e" u1 X! w/ f' U6 `
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );- }& p) i9 V2 y# u( ^3 x* L7 ^ ]0 B
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
) ]) n' e9 X2 j0 R: B) S% \5 Q' m$ o if( m_idGuild != 0 )
J4 r+ g1 [8 U$ t% A! l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% A4 j: D' k( i+ U( D. J7 \ S
#endif // __SYS_PLAYER_DATA& q( M6 ]$ ~" a4 ]+ w
SetHitPoint( GetMaxHitPoint() );
) e- M/ ?5 P* l SetManaPoint( GetMaxManaPoint() );
% I& ?) ?0 w* Q SetFatiguePoint( GetMaxFatiguePoint() );& v& w; B$ _, n# F/ W
if( nJob >= 1 && nJob <= 4 ), I5 J- c# |) ~0 [; }2 t8 S1 s0 D
{
, F0 |9 ?7 |1 j$ G' f* |! D m_nStr = m_nSta = m_nDex = m_nInt = 15;1 X. n% w) w' j) ~2 A9 l
m_nRemainGP = 28;
- H. B' J5 i/ D" i- r# h }4 K+ T5 y* R7 w. ?# T/ z" P
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
$ x1 l7 F9 N' _ {9 t# `8 U1 k9 B" p
m_nRemainGP = 118;2 k. M5 x1 e C& R3 k) O! T$ ~0 a
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, o3 l- Y# j: G" U- n
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 |4 t9 M, L% v; c- h7 z }
& Z- ~/ I0 C: q/ M: m8 {$ o( _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
- K, b! K/ R0 c; G { F9 e& p+ m$ U: u/ q5 w
CItemElem itemelem;
9 }( u( y1 o5 u* H/ S% F itemelem.m_nItemNum = 1;
@9 c2 d5 s, ~ itemelem.m_bCharged = TRUE;
_& @1 p: p e% U4 h BYTE nID;
3 W5 Y: k; [! f. l7 t( x& j! B- y" u: o* b! ^$ W' |
if( nJob == JOB_MENTALIST_HERO )
7 m2 x4 n! \9 t( }1 T itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 E" P4 E- Y' X4 P
if( nJob == JOB_FORCEMASTER_HERO )
) _' c; B% W* l; I& X itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 ^: P P& o% B6 d. @/ a/ s& g% b% u9 k8 S+ E$ O' N
( ( CUser*)this)->CreateItem( &itemelem, &nID );! l, h0 x$ h5 H# `$ d( i- U$ l
}
3 f. s" p$ c3 u3 F' Q$ S# W g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 j8 y# ^. t+ z" w6 u b& L% X; m ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
* {6 E) U: ]7 B0 T: D$ i) M ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! z+ S4 i) A8 n3 g) s* L2 U! g3 c+ Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 b; x1 H) Q& \% M7 P! B% a/ @. E
( (CUser*)this )->AddTaskBar();*/
0 c! N, z3 M+ Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# e1 l2 D+ L+ p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
( @1 D O9 D t1 y' F* e8 o! ] ((CUser*)this)->CheckHonorStat();+ F1 u* i6 {# j
((CUser*)this)->AddHonorListAck();8 g6 r/ o5 d7 P. x* E
g_UserMng.AddHonorTitleChange( this, m_nHonor);% s: v( B( }9 I1 R
#endif // __HONORABLE_TITLE // ′Tà?
5 T a' i+ }! V I+ s A }6 R$ O% \6 a9 \: s& v8 a$ x* m
#endif // __WORLDSERVER
( A, n9 z" P. W7 V) l6 m} 3 R+ h5 t) x" B/ p$ H, x6 {6 E1 B
$ H Z" X3 s8 X3 m h# `然后你进入functextcmd.cpp并添加以下% q6 H& M# F) K2 \1 M" ^0 Z
5 V M9 x2 c9 }
代码:, R1 Y: c6 E2 |5 I: }
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 S- N, i& C3 c9 m, M+ Z3 r
下面插入8 D) ]( r6 u9 b4 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) * a1 r, a/ |9 x
4 v8 f1 N, t6 o8 T6 n& v( R然后你去: M% S/ k- O4 o# ^
: R' C, k" ?6 r$ S+ r, V$ d代码:
' [0 v u( i6 z5 R/ k9 y% D' R代码
! C: \" \2 y; t+ c/ m( DBOOL TextCmd_ClearPropose( CScanner & s )
; L4 R' ?0 y8 D/ @8 [: ^{1 |- k& B# i& F3 V. q8 |. N' u
#ifdef __WORLDSERVER
5 \" H, R3 Z. n2 U CUser* pUser = (CUser*)s.dwValue;
( ^5 @+ c2 a! J. i7 x g_dpDBClient.SendClearPropose();, q( K" }) D$ [
#endif // __WORLDSERVER, I" o" {" X7 z! N) Y
return TRUE;
; W8 H5 ~' ?; J8 e}
3 r* [: m4 V# r7 F* H下面插入" l: \1 @: A! T* E
BOOL TextCmd_rebirth( CScanner& scanner ): O! W/ B* J2 P c4 a6 u# M; m- z
{' i5 d. A+ G; P9 A. S3 U
#ifdef __WORLDSERVER1 D* v! E' ~( B3 b# [4 v: V+ V
CUser *pUser;
) j0 a+ N2 U( n$ h2 b. spUser = (CUser*)scanner.dwValue;
; V% u; d& O' ?8 q( y# X8 gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ C" d5 N4 e% J% qpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
2 E7 I( e6 I/ p' I1 J. Welse: u) s+ u) A/ Q$ ?: O
pUser->AddText("你还未达到重生条件!");9 L3 r' |5 V: y
#endif9 e* s, Y, Q5 v% q3 a8 l/ f
return TRUE;- e5 Q* H; ~2 `+ W3 D
} , A' ]% m7 }% I+ D
1 N4 [4 P, [& z6 x9 z/ m3 A6 h" U4 x5 k
8 N3 v0 J, y X6 _: N) n3 C7 G
& X0 W9 n( p4 k$ M/ {' x* p: h9 n1 K; _$ }6 A
|
|