|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% K; W: b! z0 B' R7 K
* I$ i- A9 w5 N `6 u$ A4 ~1 pMover.h9 A& e! b3 |1 S# a7 j
代码:
3 r# \4 X9 V/ s: x, j G7 C2 \9 u找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
( c- B0 j# E: N0 S4 u
- w( s# N5 e2 j r; k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. Z9 S+ @0 S* F1 X# }5 _ L; r4 F. z4 Y7 i) q) I1 g4 L2 C
然后你去mover.cpp添加
; W0 f! d) R0 V) O( f: r; ^$ {( ^/ O: W' d
代码: U" I& G1 ]& @" P b
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) b" i6 m" _ f; l* e" ]. s
{
. z" i* ^; [' T# D; g5 G, [#ifdef __WORLDSERVER
- v* V* S% R8 R // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
8 N9 q, `( w7 L. q5 N# C* @ MoverProp* pProp = GetProp();
( a2 ]& U/ {6 A+ x y- a/ k2 {# X8 l if( pProp ): P7 \ I6 U7 h( T
{: u6 Y( ?6 v0 j2 s' w
if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ z8 c+ N0 e( p
{/ |$ |3 V0 |# K0 [& x
AddChangeJob( nJob );
+ l3 \0 v. ?5 y( w1 y0 J# ~$ D }else{4 K( u3 g0 G. |6 s7 {# Y
return;( r; N, J( ]* ~% o; h
}
$ {) X! o! ^3 K/ e, L( C5 P3 W- O7 g int nPoint = 0;# y' W9 t! T. E! p8 c
if( m_nJob == JOB_MERCENARY )% u1 t9 B6 ~# j
nPoint += 40;* p0 u# G" w+ o$ F- i% f& s
else if( m_nJob == JOB_ACROBAT )
( M/ @9 n5 v0 g# ]- {2 ^" J: G nPoint += 50;6 p4 [# F9 _( N c9 _
else if( m_nJob == JOB_ASSIST )' T' |6 H, Q4 `( ^# N% [
nPoint += 60;4 m5 }0 q% I! A! g" Y+ L
else if( m_nJob == JOB_MAGICIAN )
: k& C0 J4 d; E$ D) j nPoint += 90;
( x9 f, R/ z) A+ a, } else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& s0 o6 b$ J" O: [+ p" n# |/ v; I
nPoint += 120;2 G% B4 Z* \7 ]/ B @3 m' a
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 o* @! }0 c: W% n K nPoint += 150;
1 Z! M" f" }6 | else if( m_nJob == JOB_RINGMASTER )' F% k' I) ]6 j0 \6 ^+ s+ p
nPoint += 160;
: J6 H4 n4 h$ E' w# Q. O L( S/ p else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
4 n9 S( s' W9 v% a* \, {' {9 x8 o nPoint += 180;
" _- ?+ c% R: v8 C6 B else if( m_nJob == JOB_ELEMENTOR ): O. Z/ ?! f# L& I9 g: C! E- G" x
nPoint += 390;) Q' A- `' A* g% A% Q. R
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 C8 N0 F( g8 A* X/ E, Z, X. L8 y
nPoint += 120;
3 a( w( t# v C8 d" p else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )9 T4 S) \! N6 O. ~
nPoint += 150; `/ X4 p( |% W% O
else if( nJob == JOB_FLORIST_HERO )
6 t1 ~0 h+ g" w; J% N nPoint += 160;
, k2 Z l% K% {- ]- ?5 V1 b. d0 v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 L" N3 b; }/ X- L/ c1 e! x6 N% d nPoint += 180;' r; w) A8 J5 C
else if( nJob == JOB_ELEMENTORLORD_HERO )- L* G/ c) H, y2 e$ L& Q) f
nPoint += 390;
) O7 `( j2 ?6 g8 J6 |
0 l8 c% V3 B! Z7 C AddSkillPoint( nPoint );
- q' Q9 D& {$ l. E7 z m_nLevel = nLevel;
/ y. N7 Q: G. m) Y' D8 n
& K3 z( e! U$ J& E) X, ] SetJobLevel( nLevel, nJob );' N8 l- P# J2 K' P! ^$ l9 v
m_nDeathLevel = nLevel;
0 B1 k- E* Z1 t! g F E- y* S#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 B6 y& @: l- s; C
if(IsMaster())8 Z, `5 F6 o# J: @ {' _2 b
{
+ D8 l7 v1 { W% ]2 I6 }8 }9 ? int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& H: f# e+ N) f+ i0 d. |: M' L if( nLevel > 59 && nLevel < 72 )9 d% |) k) v/ d
dwTmpSkLevel = 1;& `- u v' L: A, t
else if( nLevel > 71 && nLevel < 84 )
% K4 K' @) O) s3 D5 U( E# a dwTmpSkLevel = 2;
& p8 N+ M! L. F; }+ x, S else if( nLevel > 83 && nLevel < 96 )" w$ ?& m( O& z8 X J+ {
dwTmpSkLevel = 3;
2 f, c+ C, \" ~% t else if( nLevel > 95 && nLevel < 108 )
! V: V2 l- s+ i' j dwTmpSkLevel = 4;
( Q, R! L- N+ t0 r9 s: X7 z c; k else if( nLevel > 107 && nLevel < 120 ). H) p0 H( @3 p1 [( w1 \0 w
dwTmpSkLevel = 5;
' _( o ?6 _( y* v0 s! a# C$ G for( int i = 0; i < MAX_SKILL_JOB; i++ ) # @/ h6 ?2 Q1 a6 E( f3 g4 f
{ * Q0 W/ A7 c3 Q/ I* ^" E) s# M
LPSKILL lpSkill = &(m_aJobSkill);$ u* L/ O6 L: S2 ~$ c
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 ]0 v2 }. W1 D3 G. a6 M
{/ p% |) @+ n, Q* F2 P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# Q% o$ W7 p7 h. M6 ]; |: ^! l if( pSkillProp == NULL )4 |0 R: h7 ?8 @& r( w7 N2 h3 ^
continue;1 k; v& ~2 w( y4 ^! i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' S; P$ n" c; P# `0 g4 o/ j& [* }; ]
continue;
( \, r( J3 I9 J. Z" H) M lpSkill->dwLevel = dwTmpSkLevel;
& O$ n9 ^# F! |* p }
8 B& {: b! B0 _6 `' O- T# R }. j: z- |( O P* c$ S& u
}
7 [3 ?5 m0 V& A) S. m+ ^, [ else if(IsHero())" l' V: B2 J+ T2 }
{
& p+ y( R5 a2 V$ `% h: ]5 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 L8 ]; U/ O; y8 Q0 ?
{ 4 k3 A% U6 o5 J9 S; P1 v; h
LPSKILL lpSkill = &(m_aJobSkill);
) S2 w& f9 d8 r& y9 N; E" a: ] if( lpSkill && lpSkill->dwSkill != NULL_ID )
( S; _ F. A, V1 e. \, E2 V {; h; w0 K1 i3 ]7 s' F/ X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ! F! D8 r1 }* }6 e
if( pSkillProp == NULL )! l9 c5 O) K8 A
continue;
3 |5 M0 M, P, P, b2 N \ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ O# H* ~1 T0 R, y% k3 L/ a
continue;
) Q8 B( M( I$ p" c, T- v$ ` lpSkill->dwLevel = 5;
' d6 }% l- ]0 h& G }
: P0 G0 |4 v# I% q( j/ A% x' ?% n }
, Y+ e: I G# y1 f8 l4 k8 Z# t/ _ }2 r. c" S; r2 z! w7 n
else if(IsLegendHero())
5 E" a4 u: z T {8 Q. z c6 r( i5 x. n6 K; S$ y0 f4 l
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 Q8 ?5 n9 e: G# N$ C# g: O9 ?
{ 2 X* |, t5 o2 a
LPSKILL lpSkill = &(m_aJobSkill);
+ w' N" n+ o2 G5 Z l& D7 j if( lpSkill && lpSkill->dwSkill != NULL_ID )$ ~4 F5 I- f" V# b/ i
{, W2 E0 i8 u" [% I3 n% N `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 C4 m8 C& m/ p+ \. R. G
if( pSkillProp == NULL )6 r8 u4 |3 m& z9 j9 c3 \
continue;* X3 a& C- d7 A: u+ w$ A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: }# A# ?; O! Y7 S, I4 Y continue;
. e( ^8 v, ]9 y. W0 G# C3 |0 h lpSkill->dwLevel = 5;" q# q- F, @- I. x
}
) [: \! S8 ~5 w& u5 O/ Z! n( Q }
5 D# h# U h7 l) n" E/ u% f }4 L+ k1 A' u( s, M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 ^% G( l: r( I. P, o9 f
if( bGamma )1 s w* g# c0 d! o4 g: x7 {
{
, J! P! m+ P X, B9 S m_nExp1 = 0;, H) D3 h9 A6 R
}
2 P7 ^' N; D, a* j
) ]# q$ g2 `$ ^. z+ f1 K ( (CUser*)this )->AddSetChangeJob( nJob );
. _) X8 @# i- E9 A r H g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' d/ h' k2 o" k; u6 t0 m. p
3 }# G& e7 w0 _- j @! N* U8 z& M2 ?7 T3 p) v
#if __VER >= 11 // __SYS_PLAYER_DATA
3 a- r7 R: U$ B g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 F+ s# [) v9 G; g" V#else // __SYS_PLAYER_DATA
- U2 V+ D& H) C' Y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 }. z3 X" N7 m9 p g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# `% W3 R4 W. Q) A+ {. ?7 T; Y if( m_idGuild != 0 )3 K) M# L* T# `( w: {! {
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" V; ]" L6 ~5 v0 F% g( v#endif // __SYS_PLAYER_DATA
2 Y# D1 r, E) M# j- M& J SetHitPoint( GetMaxHitPoint() );
: P: |* u- J, X9 `1 H( d5 g SetManaPoint( GetMaxManaPoint() );
4 j% M4 S+ p1 |5 o! G( R; b' P. I SetFatiguePoint( GetMaxFatiguePoint() );! x o6 R7 O* l! T! }* a
if( nJob >= 1 && nJob <= 4 )
1 I$ L; Z& A+ y' M. Q+ D" L% t {
' }; i; A, w/ U& ?, [/ A m_nStr = m_nSta = m_nDex = m_nInt = 15;
% ]# H9 S/ g+ s m_nRemainGP = 28;
5 N; o9 }- ] R: ~% e) @# S }$ h/ ~& a# A$ ]* i+ I6 \; Q/ ~) ?
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" h: L9 C7 N" Z- M {6 Q% }- {9 w( D' e) `
m_nRemainGP = 118;
, L* e# h2 [ h" X- i% @ //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 k2 a3 s& [) U$ f2 [7 V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
* \2 K: Y% G& ?+ Y" K }
2 z, n D: h; \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: U4 s9 e& z& U9 a# k) ]1 v {
) }& G0 {7 X1 f9 ], h3 \ CItemElem itemelem;
0 _3 K, [1 r8 Q3 n" q8 k& o3 f itemelem.m_nItemNum = 1;
& T: R; R' j5 d8 c+ R2 X itemelem.m_bCharged = TRUE;
$ i/ o* T$ O/ Z+ x9 F BYTE nID;
1 B7 [6 x6 n- E2 I' j/ G
8 U$ q- D8 H% i6 |7 O5 r if( nJob == JOB_MENTALIST_HERO )" N' l* @. L% X; B/ l4 a. F
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 [3 W. b9 c! A0 V4 I6 P+ C
if( nJob == JOB_FORCEMASTER_HERO )6 G$ s: T$ p5 x* u6 K
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( B: x! L3 U5 D6 m2 x. X0 J, u( _% f1 Z
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! I" E, }- V. e: P0 V; p }
0 u% {* W B" w# q' P g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 d% |- p0 Z _% {( c, b2 R% g
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );( _) z N" y0 n4 |' q$ M3 x, [
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" O; P4 N2 K# p# F3 k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' P; G7 p! ~% A6 J4 v" m8 G
( (CUser*)this )->AddTaskBar();*/$ k5 ]. p7 p+ i- k- X; Y0 ?" a
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ D: m6 T: I0 j' x, H#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
* N6 a9 ?- r2 K( A6 Q( x. y6 q% B7 Y ((CUser*)this)->CheckHonorStat();, |2 Y# A6 B# \# A9 J8 h! p. p
((CUser*)this)->AddHonorListAck();
) w/ R% A1 U5 o" {) Q1 P1 f8 j g_UserMng.AddHonorTitleChange( this, m_nHonor);3 N) s* r3 y/ m+ ]# T" Z
#endif // __HONORABLE_TITLE // ′Tà?
1 `% ], M& w# n$ U }
) ~$ n8 A/ j" B; u#endif // __WORLDSERVER7 B) ~7 Y7 n4 X2 T# ~
}
# |) a) B; V' B$ f5 ? O* E/ i, l
. q% p- e2 x- R) G然后你进入functextcmd.cpp并添加以下
p7 G1 n5 Z0 _6 r# N& g- S) l3 V
代码:
O2 F) _1 d5 F4 ]4 ZON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" {1 d) c N% J" l1 d! D+ j: E
下面插入
( J' U: E z kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 y1 k) U" M U( a) \' P1 v) D! W
1 ~ ~. Z* r. x) b- d* r然后你去! ?6 ~8 k) O/ G( s4 N9 f
% h$ Y& [+ D6 r2 C代码:) ?9 _+ ]% D$ ^! j* _( b- U
代码1 |8 r1 {; z. ^' r/ }
BOOL TextCmd_ClearPropose( CScanner & s ). ?6 r# i% K3 Z5 n% W
{
" x/ l. n$ N7 J5 J3 q- z#ifdef __WORLDSERVER
5 c/ [8 {+ X$ m6 P5 f$ K CUser* pUser = (CUser*)s.dwValue;/ r" L1 G7 A! f4 Q" s
g_dpDBClient.SendClearPropose();
+ a# v- l e3 o4 L5 E& i#endif // __WORLDSERVER! |) c: u- P( R6 {! a! a9 w
return TRUE;% Y7 N \* h9 Z# x- Q
}
+ O, ]* k7 L" H' q, K" P下面插入- T: \- H+ F$ ?( Q( t% d
BOOL TextCmd_rebirth( CScanner& scanner )
( M2 {* r% z1 C% l* R t; u+ K{1 C8 W9 A0 `- ?
#ifdef __WORLDSERVER6 V* g! z9 E1 y: r0 q; C% {/ c
CUser *pUser;, n' z9 z' y. g5 q
pUser = (CUser*)scanner.dwValue;8 _3 y: X& }( u; Q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): A0 n, s( o9 V$ [( R
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% V+ C8 s+ K9 u: @+ Yelse9 A8 G% o; ]) H
pUser->AddText("你还未达到重生条件!");
. ?) r' z* i% |2 j+ q6 v4 `#endif F t, j0 H: |3 m1 b' p4 T2 @" v' h v
return TRUE;( L* [" h, W; r2 U. C* I5 v
} 4 N/ w6 p- n* k5 ]) D7 `: v
1 {6 u. s+ N* E
& {5 E1 G3 c( j; j' b
" q) K4 G0 O6 \$ v! {$ D9 L4 a3 s6 y# B1 i' t- f+ C
|
|