|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- f) u6 A$ y. c) t$ A ^4 z4 ]5 T8 N
Mover.h9 c) Z R5 ]0 ^8 ]3 V
代码:2 j p+ C8 ]2 A/ r
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 B( g0 D- G) C) A" Q2 Z
: x5 r1 o! u" }% |, Y9 {
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 u+ U# V2 x- a+ I( V. K$ Y7 |8 K5 k! z
然后你去mover.cpp添加3 }2 r0 K+ r. p$ H) e* J
; b3 {$ ^* n3 E9 l# ?
代码:+ G! i. I% @3 B% t% w0 \
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# m3 B5 I) Y2 e. r{
/ J9 U# E4 j+ E5 ]! m3 U# `7 K3 C#ifdef __WORLDSERVER
$ b! M1 J( ]! N0 S( j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; |% o# A* y/ H$ i MoverProp* pProp = GetProp();; C! q( b% w/ W8 b' J, g1 A4 g
if( pProp )
: o, e9 W. W2 R0 G- b1 j/ q, S {
8 R. e ~) B- O" K/ ~- t. O+ W7 { if( nJob > 0 && nJob < MAX_LEGEND_HERO ) v2 i- T. u* m1 ]& D
{
2 Z5 l' _ H, k$ k8 Y% [ AddChangeJob( nJob );! z9 A- ` [) F0 A
}else{: X! I4 m3 y% P1 u
return;4 C+ a. |. h4 V' }* W4 U
}
! j* l" j* w$ m" m& @* H$ U int nPoint = 0;) ^/ b+ o3 K. i6 t' L8 Q
if( m_nJob == JOB_MERCENARY )
/ j" h3 B( k& [7 u2 T( c/ y nPoint += 40;: h6 o2 |- v% }2 U
else if( m_nJob == JOB_ACROBAT ). O6 Y5 R2 e) S$ S2 p- S- \
nPoint += 50;- v/ Y9 Q& U2 m$ G( c
else if( m_nJob == JOB_ASSIST )
/ X q1 d' O, t2 q9 t nPoint += 60; L( {) r& v% p- z
else if( m_nJob == JOB_MAGICIAN )
) ?0 C. S* ~; [+ m3 M# R: T nPoint += 90;+ _! ]# A/ G( C( ]; Y5 S2 ~, z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ _! t* |: k/ U& R
nPoint += 120;8 N! |1 g& W, B0 o9 V O& n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ): b. d, Y2 W# E+ _- ~ f8 k! X
nPoint += 150;
1 Y! w6 p) E/ H( {/ Y, C" l else if( m_nJob == JOB_RINGMASTER )' a! ?2 V+ u. K* I/ H% p
nPoint += 160;
7 g/ B o% d; Q3 V* x1 N# }+ f else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: L4 W+ S/ v& g7 d) o ?, v" ~ nPoint += 180;& r7 U: g2 {( o: U4 n" H$ e0 \
else if( m_nJob == JOB_ELEMENTOR )
+ q; }7 @8 U9 ^+ l5 C7 F* _( p1 y nPoint += 390;
+ [6 V, ?/ B( t$ B2 h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* ]# d- T9 U5 x! \2 o! l nPoint += 120;
, N; i: g0 g" F5 @2 R( ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- T7 z* ~$ i5 k. u0 x9 @ nPoint += 150;
, p, B+ `9 ^1 B# Z {6 y! F else if( nJob == JOB_FLORIST_HERO )
1 m3 y" l9 e) \! c nPoint += 160;5 g' H( k" W9 C5 Z9 h' ~8 m
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 U3 t$ `! S! e, s nPoint += 180;; z6 s3 R |$ k8 a% @
else if( nJob == JOB_ELEMENTORLORD_HERO )
/ w0 m8 @5 [' e4 b& S8 F nPoint += 390;
y/ i1 u7 c2 P. e4 z" ~' x) v! E8 h0 v/ s8 X6 r% D$ D/ i& `
AddSkillPoint( nPoint );0 E: I- `) T3 h4 z5 c9 [4 x; U
m_nLevel = nLevel;% |+ G: ^ A. M4 E5 V1 P
4 s4 c* W% f1 Q& N SetJobLevel( nLevel, nJob );1 a1 o0 I9 @5 Z" I% a+ |
m_nDeathLevel = nLevel;
# O* Q4 H- f( f3 j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; ?6 J# a2 E$ p8 ~. G, y0 L
if(IsMaster())
! \- x5 w6 |7 T {6 o: d, ]3 K, q; {' |5 ^" P, X! T. {
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 l4 E! J( `% C% U9 _
if( nLevel > 59 && nLevel < 72 ) t$ [2 }8 h' N: U
dwTmpSkLevel = 1;+ E0 y, B- H7 a& }8 {: s) J
else if( nLevel > 71 && nLevel < 84 )1 G+ V) V3 G8 Y Q' P
dwTmpSkLevel = 2;# p) I; I: q2 n( F/ K% L; W3 Y
else if( nLevel > 83 && nLevel < 96 )
+ y' N( |% t' Z/ a6 @9 g! |( X& P dwTmpSkLevel = 3;9 O5 @+ p8 B/ m7 g. H M0 I
else if( nLevel > 95 && nLevel < 108 )
9 Z( B/ z; [7 U0 k2 ` k dwTmpSkLevel = 4;
5 h: j, A6 T1 x' H6 O; f else if( nLevel > 107 && nLevel < 120 )& }6 s% \" C) p+ |: A
dwTmpSkLevel = 5;
/ S, s) @# M) j0 u, N# o0 n3 m for( int i = 0; i < MAX_SKILL_JOB; i++ ) + _, Y; k4 |4 c
{ 4 a i" ?2 t8 Q; m/ A R4 D. x+ d
LPSKILL lpSkill = &(m_aJobSkill);6 D% @% g# t" b) O$ t4 G
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 {, P0 `% {: ]$ `5 V5 I3 e" f {, l1 P* q1 `7 Y$ a1 F& ^( l, ^2 A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) m# ]: g* H c( a9 n2 j if( pSkillProp == NULL )3 e4 [# N9 O0 q: L5 }. ~
continue;
0 Z$ C7 E+ O7 F8 r2 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# _$ s8 k# E+ m9 l5 \
continue;5 n! n6 T5 O0 H$ _
lpSkill->dwLevel = dwTmpSkLevel;
$ p, u; w& q* ^& X1 Z u! ?$ F( {3 w; H }" F! ~" f. ]9 j+ E+ t
}
O- g" V2 k6 A" r+ [5 g }) w7 i1 K0 c' _) Q/ [
else if(IsHero())
) f, ]" b7 i1 R* o {' f+ ~5 r( Z& d9 I5 i( ^
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# q: d {! M, s { ( S2 r- `+ L- T
LPSKILL lpSkill = &(m_aJobSkill);. d6 h/ k$ ]# q- C( U4 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )* K) C; [) u- h0 u1 e. e
{( N s6 \( F6 H; C: P* s' `7 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 r' C" j. O( f: l2 C- l# b! l" D7 B1 l if( pSkillProp == NULL )
; M. y& R% O- A( J6 ]" S( } continue;
9 D7 [8 k) a# u6 G" X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' J* g. `: ]. i2 M6 n
continue;* }9 e; w J( w% N% _. ~; v$ k
lpSkill->dwLevel = 5;4 [& d& w e& P) k9 _% J& y
}2 _2 o5 R% E* r n f9 n
}1 [" a( j6 Z% `3 M' f; E
}
0 ]' e- ^- S0 B- H. G else if(IsLegendHero())$ Z! W5 R, U, Y; w; |
{
4 Y! I3 H/ ]& f* i& a, i4 D3 P for( int i = 0; i < MAX_SKILL_JOB; i++ )
( t% s3 n1 M* q. i Z5 e* Z {
6 F( O1 ?, b( u: a. Z LPSKILL lpSkill = &(m_aJobSkill);/ [4 X) Y; q- J: k7 u
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 b, e- _& Y4 C" B
{
( ]+ e6 h2 b; Y, y6 ]8 _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ J7 z7 W# k1 ~; B
if( pSkillProp == NULL )1 Y" l' U T5 b* U
continue;) y! o" N8 q% ~ ~, I3 y) u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)7 u* j' P; N0 H7 `" p. U
continue;# w3 {0 ]% @* S- T4 A# Y
lpSkill->dwLevel = 5;
8 }& g- X2 T3 H& Z }$ Z& p9 G. t) i, ]
}
: I$ F9 u+ g7 o. w }2 u) W9 }6 A/ A6 G
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans/ R: t# q1 G% ]3 I1 l' J
if( bGamma )
% r7 F$ X' ~- Y. ?& r" s8 Q+ s5 X& H {
. ?8 m S9 X5 e0 { m_nExp1 = 0;2 Y. X2 x* Y* R( g r" P
}3 f6 h& J8 n* T' `) m
& {( i& K4 ~& ` ( (CUser*)this )->AddSetChangeJob( nJob );2 S& F/ ^5 I5 G; X& [/ J
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 b" }0 [$ z7 j& [# O- ?' B
: U+ w2 T+ e5 \
" H1 j& M5 c& M" R- G2 w$ Z1 \
#if __VER >= 11 // __SYS_PLAYER_DATA# t7 \" d! H, N7 n$ s. {
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' t9 Q+ C0 l# _5 s#else // __SYS_PLAYER_DATA
L3 U: d' ~- H7 C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* p y# [1 P$ m. M; w! d
g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); Z U* g* X& D8 f! a
if( m_idGuild != 0 )6 X, [; Z2 u& O6 y, _9 T3 K0 M
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 D, j5 \: W* f#endif // __SYS_PLAYER_DATA
7 G& B* Y& C2 h* s0 F! u SetHitPoint( GetMaxHitPoint() );; Q0 B0 i+ I/ N& F
SetManaPoint( GetMaxManaPoint() );) K6 ?+ m: I# o8 B
SetFatiguePoint( GetMaxFatiguePoint() );
% }1 a2 C& w) Z0 K c if( nJob >= 1 && nJob <= 4 )5 ]6 i; P6 ]. ~4 f8 q* ^
{
4 W9 L1 @) }, P m_nStr = m_nSta = m_nDex = m_nInt = 15;; D2 D0 T+ x5 d9 F _7 k) k4 L6 Y
m_nRemainGP = 28;
2 o7 c1 j, K$ s! ]- e$ E% W }4 p& H, N, {3 ]7 }
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )7 j8 a* ^" B1 F+ {
{
8 K9 j# U+ W/ \: q5 m. m m_nRemainGP = 118;$ U, u2 G: p+ W- Y U# C, T/ j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
( x. f# R" A5 E% c/ R4 u2 F2 s9 L m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 w. h y: E! Q/ y0 F0 ? }8 p5 {& |2 O }6 N R/ M' U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* H- m4 d% L% [2 N1 } {
9 z; J8 ]* W3 J, I2 U u CItemElem itemelem;
3 [8 t& m$ J" D9 A. B. P4 k itemelem.m_nItemNum = 1;0 n2 L0 E" Z4 Z! G
itemelem.m_bCharged = TRUE;( h, o. r1 w' U Y2 E# @
BYTE nID;- W% W$ F! K+ s6 K1 s7 ?1 f% m
( P$ Z$ M+ X; n" f X7 S( ?/ |
if( nJob == JOB_MENTALIST_HERO ): ^! C2 R' j, o3 O$ W; B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; ]' k! D3 w. A9 }1 q% G x X1 n if( nJob == JOB_FORCEMASTER_HERO )# r4 Z4 j* `* _; p9 G1 z/ Z6 U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;" k2 B _+ \* a
! w! ~ ?$ |3 ]1 l; \6 t9 N8 u ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 a4 F' N+ p/ ` }
& g& a' W9 x0 Z) H1 r0 i- B g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( d; X: q$ ~9 {$ f5 n5 E) r ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" s/ J; O. C/ n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );: j9 r3 S6 H2 ~3 L# l$ F0 c% Q
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
* C( M# m& ^: V# Z" s- V( u7 J( Q6 c ( (CUser*)this )->AddTaskBar();*/0 f- _3 I( |8 f
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# q9 M% X9 R* f8 {; f#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ k/ f* P' F- U# G ((CUser*)this)->CheckHonorStat();; h. K2 Z2 O" D+ ~" R, z$ P9 d; X# @
((CUser*)this)->AddHonorListAck();
- ~0 ]' s- V/ _/ }4 ^4 t a g_UserMng.AddHonorTitleChange( this, m_nHonor);
& @) f& d3 W8 x5 ~5 q7 e1 h c/ m#endif // __HONORABLE_TITLE // ′Tà?
! R$ j: R3 Y* D0 v6 q7 Z, m }
[( D5 C& @8 I. g3 x W' r$ S% T3 U, L#endif // __WORLDSERVER
# d( F0 v2 a& I2 }/ P( V1 e3 b& \}
7 `( q; G7 q3 s. d+ ]' t) x% K
& A- z5 k/ H+ p8 C然后你进入functextcmd.cpp并添加以下
- R0 l( b/ }* }* N0 t T. U3 ?' S. i( q! ^
代码:
- g+ ]# _: g& B w9 l* l- xON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); v) z' p6 J- x$ c5 {: O3 [) U: `
下面插入
2 M, I$ X A7 _3 j- f1 r# yON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / H# h7 |' o8 P# z7 r
; {$ O# Q% \, j' h3 Z" Z然后你去3 ?. L3 Y( R+ g
6 E* g2 i$ t: G5 V" r
代码:; z" L. b3 A2 u4 T8 |6 q& A0 O
代码
+ [' H/ R' m2 W( Z8 [BOOL TextCmd_ClearPropose( CScanner & s )
, }) M: F: N# B" i1 x/ L8 _{& k3 R! Y/ }. C# |$ d8 l
#ifdef __WORLDSERVER
4 ^0 V5 A9 e7 \ CUser* pUser = (CUser*)s.dwValue;5 h/ K: _* H' O0 w
g_dpDBClient.SendClearPropose();
+ }0 H3 l7 H2 h, s7 r5 ^, R#endif // __WORLDSERVER6 j/ Y; ~2 x' J' [, S
return TRUE;
; z( u8 B9 l8 Q" p+ K/ ~} p1 V; O" a6 j
下面插入
, B/ H$ I& \! {; D7 G1 O' {# i, C4 QBOOL TextCmd_rebirth( CScanner& scanner )
+ q* v2 E# w. r/ M; ]+ D4 ~$ a% q{: d: Q6 `5 ?: e/ n& `! ~' T+ M( B) L
#ifdef __WORLDSERVER% p/ v' L8 l8 {" T1 L
CUser *pUser;! A7 h& p7 O2 q3 d
pUser = (CUser*)scanner.dwValue;
7 e3 j1 [4 I- V8 z( Jif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), r6 W7 ]1 {% U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, v' e/ C2 x: Y3 ?, S) ^: @: g7 j$ Ielse; T7 B+ a" |* [9 Q9 ^1 J
pUser->AddText("你还未达到重生条件!");# |3 ^# V6 w" E; h) z N: z
#endif
9 m- [( m( D: C* I. dreturn TRUE;
3 @; p" F* S: D( ~. b8 ]}
+ h9 G* K, x) N+ j E" E0 p4 p3 y* _
3 `$ E$ f9 t( K; y6 U+ h9 k* ?/ {
7 k2 T v( [7 A+ R0 x
9 X+ Q* ]$ q+ h1 d9 K |
|