|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 `/ V) q1 t6 }4 i8 T( X$ ^- L
: b/ w0 g i, x0 T. K# x6 b7 r8 j& e; C
Mover.h
! f6 K4 @* ^% Q! m8 d Q# d7 F' E" Q代码:0 E' x2 n5 O7 q
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 I2 b3 v: z! E! {" d, y
9 F- O; u! d( S0 @/ q$ U. i! ~& ^下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ ^$ D/ k9 T; i1 _: e
6 p) @6 A2 l4 w& Q+ h0 k然后你去mover.cpp添加+ c* V$ r8 u, U. J- z& R" t1 ^
w8 @, I% V+ G$ A+ N3 E% A
代码:! r" Q4 h" f7 @" C, k1 O
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )5 `. W$ {$ T& {0 i7 K' U
{7 j/ k3 @; L2 z) s! o) F8 ^0 d$ B
#ifdef __WORLDSERVER4 D M, w! x, O2 S; d4 b6 B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
: n6 `* q l* q# y* c MoverProp* pProp = GetProp();4 E4 q2 p# \& X- R$ G
if( pProp )2 t" L) _4 d P
{/ r7 N8 V1 a) f/ D
if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 u! [( x% K) H4 b
{& }9 q8 ? F2 U/ F1 _. M" G% e! N
AddChangeJob( nJob );
" K& c$ H5 m# @: p' p }else{+ Q5 Q1 b& A" I2 K, i5 _4 c, ]
return;
( k7 _8 Z, I% c# h I3 N }
) S5 A3 ?0 U" P. o! p int nPoint = 0;
) a3 n5 X( v# t2 w$ `4 x if( m_nJob == JOB_MERCENARY )
' b/ U& f& `- L: P/ n) Q: o- \ nPoint += 40;
0 e8 s1 C" m. x. T3 Z( ^6 S5 [ else if( m_nJob == JOB_ACROBAT ). G4 C: {& ?0 q* S
nPoint += 50;
9 s; a( p5 b7 x# h% a$ ^- M5 P$ K* y else if( m_nJob == JOB_ASSIST )) F, s6 X2 o) m, \
nPoint += 60;
. b1 m" n7 D* A+ Y V2 s else if( m_nJob == JOB_MAGICIAN )
. h# }: m4 H6 B+ Y nPoint += 90;
9 o' u) s. k7 a! @4 [! y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# V3 C( |- _5 ^5 H9 y' [- q nPoint += 120;
, R0 k# M/ R! B5 m8 Y4 i' J else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 [5 Z, l: E3 u5 D5 [$ { nPoint += 150;
& |5 U0 n5 w8 X* j: j9 C else if( m_nJob == JOB_RINGMASTER )) n1 }9 z1 ^/ P0 ]+ ^) ]
nPoint += 160;7 N+ S9 U' y0 I0 K: ]$ h
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
3 j0 t% W" B6 H2 A( E nPoint += 180;
( e6 K4 J0 t. s7 ^' Z else if( m_nJob == JOB_ELEMENTOR )
0 F& g4 T% f/ B; h! P2 P, M nPoint += 390;
8 j6 J* \0 M! Q: Q6 E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! z( j( a2 ?+ C, G9 D nPoint += 120;
@6 Z. y" O' F" Q- s else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- P. o- l( y0 C nPoint += 150;/ n' k$ i8 M7 U9 {
else if( nJob == JOB_FLORIST_HERO )
* n# J5 J, @6 y: n nPoint += 160;# ~! u6 N% q4 d3 Q, r, X+ ]! c' P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 X5 C3 K+ ]0 E( _* X( C
nPoint += 180;
( M% I. |6 z* ?1 T m6 w" | else if( nJob == JOB_ELEMENTORLORD_HERO )
9 n; w8 ~, s. W nPoint += 390;
7 q5 \( _$ F) b. f% ^
6 J( k; b3 U7 W5 |) m9 T AddSkillPoint( nPoint );+ O" q- |5 @+ K% @/ K, L1 x
m_nLevel = nLevel;
0 \! F$ B' ?2 G1 w; k7 C" }
' t1 d5 {* B: z: E7 g) Q SetJobLevel( nLevel, nJob );5 V( z, h7 ^$ D. f- ]
m_nDeathLevel = nLevel;, D, e5 s1 @9 ?/ M; w
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. ?$ }6 I. _! I9 d. [# s if(IsMaster())
4 `" G' ~% W, w5 `; ^9 ?( q: f {+ Y( T1 N8 _+ _ _# ~% w
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 K7 \6 ~4 @3 r: r" U0 ] if( nLevel > 59 && nLevel < 72 )
4 |7 ^" D6 U: {3 f4 p dwTmpSkLevel = 1;- D. r, H& b( Y. F
else if( nLevel > 71 && nLevel < 84 )6 U9 }6 E9 G$ F& R8 C, g
dwTmpSkLevel = 2;
$ O+ I2 b5 L* [' L! W" A else if( nLevel > 83 && nLevel < 96 ). g/ Z7 q) M7 _- _! b
dwTmpSkLevel = 3;
3 ^7 U1 z. E/ S C/ ^: c f5 C0 D else if( nLevel > 95 && nLevel < 108 )
' p. P. s0 L8 `$ E) L dwTmpSkLevel = 4;
# i7 G& ~" N: f# ]' V0 g else if( nLevel > 107 && nLevel < 120 )( Z8 D& V. ~4 ^& a& H( S8 V6 y
dwTmpSkLevel = 5;- N+ a# d0 T! k! g( Y7 Q, a; a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& o7 s4 B! j* M, K7 g { 0 H# [5 \0 Z% {$ b
LPSKILL lpSkill = &(m_aJobSkill);+ n' {0 a; V, L5 F/ |9 t" ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* d3 w6 v* z% n {* M' C: l5 H2 Y8 s- n7 W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 y* P! w E% r+ m, ]- a/ N/ P, K
if( pSkillProp == NULL ) `) |. }+ l0 @4 }0 V) O
continue;6 w2 n' c6 E& T' i, y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ [* [; l0 \% H9 o# y j
continue;
. Q% D+ I4 C$ @2 C lpSkill->dwLevel = dwTmpSkLevel;) @+ _! S5 K' W5 z: L7 B" H: P' K
}6 k' q1 J6 K3 W8 o; p' m
}4 t7 R& z1 f, I5 K
}
: e, j6 N3 F9 H) d3 W6 E else if(IsHero())6 {, H# b3 Z. ~: f. Q! m; @
{
* }: G/ D6 S) V# j7 U2 Z2 H for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 p4 I! f, L1 T" z, |
{
. q# w, G+ K; s5 F& m LPSKILL lpSkill = &(m_aJobSkill);/ G! N2 g! A% Y
if( lpSkill && lpSkill->dwSkill != NULL_ID ). e9 i& x4 S# H+ B6 ?. c1 R
{
( D2 J# z' d2 i; z1 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" v$ x: p5 C6 s+ f! E& F# h if( pSkillProp == NULL )) ?* A8 K9 w. i9 j8 I
continue; R7 M: I z- b. P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 J2 M# c# k7 Z/ }6 K continue;
, Q% Q0 q! P$ _7 p3 L: | lpSkill->dwLevel = 5;2 }" v, B2 ^$ i- N) f# v, G% o7 {4 {
}
0 W* e2 n' A2 Y. J }
: d+ ?% A6 |, E9 d, r }% M- A& g2 o& C& [% \' Y+ T& R/ }
else if(IsLegendHero())4 z* s5 `# s# y& a! L$ d/ I# i
{
4 n! A- z( p( b7 V; P for( int i = 0; i < MAX_SKILL_JOB; i++ ) : S& R3 }$ O. R' S) w0 h' \8 N- L
{ 7 u, j. o+ J6 N2 D4 u0 M
LPSKILL lpSkill = &(m_aJobSkill);- c' X0 }6 |% t6 a) J
if( lpSkill && lpSkill->dwSkill != NULL_ID )# g; W1 }8 @3 V, t5 d) Y* A0 P
{0 a5 X/ Q* H2 l' [& V" Y/ ^; }' t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
' _9 l0 i; Z o% I2 R if( pSkillProp == NULL )
1 s8 M; c" [" M1 r continue; C# }2 }( Y' S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 f+ s+ W& ^9 {/ t! l( s0 u( R
continue;" i# @) j1 \- S: d* `9 X* L! |
lpSkill->dwLevel = 5;
: Q3 \9 ]$ z7 [; Z& c* V' U! H }, j6 r6 f# j/ [! o' W7 ~5 o
}
& m9 B) k e( n: V, e/ n }7 |: L2 K' g( a9 z' K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. Z' d1 J+ X8 g if( bGamma )
) m, H M% Q) |0 o V {9 b6 x6 l2 a% V, u; e, l
m_nExp1 = 0;
3 r) l: D, [/ |1 L) n2 T0 y2 x2 u }
- C" `5 [% V. p
`! L: t) M3 j( W1 H7 x ( (CUser*)this )->AddSetChangeJob( nJob );
6 m& l5 Q2 [, W/ o9 w g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" ?6 O4 y3 E8 p# }8 j) b/ g% p3 M/ F$ @+ K: x \! `
/ s7 v* C9 B: K! G
#if __VER >= 11 // __SYS_PLAYER_DATA. j% f( _6 h/ I# W& t3 S$ j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ X# s: i& }/ E8 ?* J. }2 d0 w7 E#else // __SYS_PLAYER_DATA
* l5 G: K( B- p- R9 I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- ]$ i# W& I Y1 l! E g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
& n1 R7 ^+ a: H2 ` if( m_idGuild != 0 ), l7 j0 x/ L4 N+ q2 |
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. a6 I5 c R+ H* a6 Y& p#endif // __SYS_PLAYER_DATA" d5 I2 `0 E" j, V
SetHitPoint( GetMaxHitPoint() );
" d8 k6 ~' S8 i: X/ f- f( B) F SetManaPoint( GetMaxManaPoint() );
2 b/ ~! j+ z$ q, E- i1 Q' q0 N SetFatiguePoint( GetMaxFatiguePoint() );
$ ^( k" A( r8 e; b if( nJob >= 1 && nJob <= 4 )0 Q4 T$ \; K" L- m4 Z1 T
{
% Y( y1 d! Q6 K$ ?, l: x% l( C m_nStr = m_nSta = m_nDex = m_nInt = 15;
?2 B* S6 v. v( p m_nRemainGP = 28;
0 g8 Y9 ?# `$ {: h }* s% s, ?- O5 J* `9 n
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 v: E: l* F. x- w t# d: P$ j {
& |& s$ g" V" X; H9 `+ M m_nRemainGP = 118;2 v# Y3 r+ m/ r* C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& `8 o+ r; Y, ?2 v2 D c
m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 h4 _; ^1 T/ K; n' I. ? }, H% M# p( J! }3 B! ^/ y) L& z$ S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
' a1 ^* a+ p. p& o$ A {$ X1 p; q( j' ?
CItemElem itemelem;( x" [0 N5 W: G8 r+ y8 P) |' q
itemelem.m_nItemNum = 1;
K; E5 R# L. i' W3 t; a- Z itemelem.m_bCharged = TRUE;
. O' N1 z+ s& Y3 x+ V+ | K# S BYTE nID;; d2 P9 K; T9 ?+ c) ~. U
1 {9 D! X. {/ j: F7 V
if( nJob == JOB_MENTALIST_HERO )
% t" r U4 E6 P, K* G$ q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ E i) Z, z q8 G2 ^ if( nJob == JOB_FORCEMASTER_HERO )
6 c# `- }7 X, k; [( j3 S itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( g' {7 q( u; E2 q" d1 h% Q
: _% ^* e5 g. W1 X4 O+ T* L5 h
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 A8 D b+ S0 V. C
}8 n; ~" j- J/ e5 Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 ~7 d/ U$ K( F! P7 ^ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 ^4 o, b+ K/ m4 E2 n* r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% V* Y( ~: K! \/ I& Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! U9 D; R2 N- Y* a+ C
( (CUser*)this )->AddTaskBar();*/$ I" m6 J& k2 R: v( v5 m
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( T* c% q9 g- h" b5 j. m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
1 x- n {6 L& l0 \ ((CUser*)this)->CheckHonorStat(); b' [( S1 I) @
((CUser*)this)->AddHonorListAck();
! v1 P+ V0 u v9 m) L! ]& `) O g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 W$ t$ s% @+ X4 \2 s! g5 o#endif // __HONORABLE_TITLE // ′Tà?
1 _' k8 A$ @ M! ?# A* M: \( l9 L }
1 D$ [6 O4 |) q/ R- N" C4 q#endif // __WORLDSERVER
* I4 H7 y3 F+ E/ V}
1 i& Q8 t! u: S; t2 A7 N. U
4 @: h0 k& y2 _1 `' E- n然后你进入functextcmd.cpp并添加以下
7 J5 Z4 S) j& V) [$ [- t2 a' w8 v9 T* M
代码:- [* @8 w9 L+ d ]1 p- _4 ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), J; j7 ^* X# `( F, l0 b7 |
下面插入
4 z, q" l* I( \, Q" LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) & T" U U2 f2 |+ i8 ~; C
! X1 P3 ?: u7 g# y
然后你去' S" _3 R, z) S5 S. O; _
2 r7 x9 t7 t; A9 K2 B2 V$ z
代码:2 M, v+ A6 a% t
代码& e9 e" K& h! L4 c
BOOL TextCmd_ClearPropose( CScanner & s )$ P3 ~7 F2 Y* w( w
{
, U0 [4 d, f- g9 v. o: t) L- q2 N, o#ifdef __WORLDSERVER4 J7 _1 l7 X+ e6 Q+ Q1 u- @
CUser* pUser = (CUser*)s.dwValue;4 z6 F, I8 H/ a; q
g_dpDBClient.SendClearPropose();% g. g. X4 r+ I! w- E
#endif // __WORLDSERVER
# h4 l! B" g0 L* g return TRUE;
: T9 z* M \# w: y* w( A @; i}: { V" c7 u( U
下面插入5 G e4 ]) O* \6 w V
BOOL TextCmd_rebirth( CScanner& scanner )3 X' A; E$ M6 I+ S% _' Q
{
) f+ n3 x0 m; `! e. q% j5 G7 U#ifdef __WORLDSERVER9 l) ~" w, H' l" B0 [9 h: H0 D# @
CUser *pUser;' B3 s+ I" _8 [& H/ r1 _
pUser = (CUser*)scanner.dwValue;
5 O5 u' T. H: l" o, @+ oif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
Y' [9 T7 S/ D7 j tpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);1 j) Y: q, H' }/ Z. G m9 O
else
: t! R; j |" n. }- W$ n& l* cpUser->AddText("你还未达到重生条件!");
" U Q. K, G% @8 M, N T7 f#endif
7 a4 O, G* @) w5 E2 xreturn TRUE;( }, t% L- e" X! G% d6 }' G
}
4 R3 H& f z3 C" v) L9 W9 L9 l$ L" i- Y5 | P9 C- K# K
6 k7 M' |& O X
5 N5 F8 ~) u8 Y
7 c4 Y1 k- c, W |
|