|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
( t# U9 s5 O$ h3 F
/ A; o/ L+ X0 }4 n! g1 T t3 bMover.h! c3 S5 l- `1 w" ?0 c% g# |. g
代码:5 s$ s4 h0 y o
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 o% ] |( b2 C) U$ l4 Q9 v G" l
# X7 l q4 }5 m, [1 r7 |5 K下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) k9 V$ U V8 L7 h5 u: V2 G+ n& I
然后你去mover.cpp添加
. J+ U) b1 f# E; T- D8 X
' o1 w, c0 I, w5 S. I$ Y( b; Y9 K; L代码:
9 ?! I7 D d; B3 h+ [# avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ), L( J. S; U9 ?0 W
{
& S" ^, F# I& o' U#ifdef __WORLDSERVER, w) S/ A% U( ]( D
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% U! @; K' z6 o$ g1 N
MoverProp* pProp = GetProp();
& `: D# D0 T8 @" k/ F. H' s& K) w! L if( pProp )
! R5 b- `2 |& c {) t: `2 c/ K `. t) Q1 Y/ b! Q
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 t* N' c0 Q1 y {
" J* a. N9 G; `! t7 H, p AddChangeJob( nJob );3 E: a' L' p3 @5 i- X
}else{, U, Z3 {4 O& @. F/ B8 N
return;
* L- R$ O9 i2 n, p& |, d# f) A }
8 l. H' {& o# |; Z0 ?6 x$ H int nPoint = 0;
2 N; {0 M [5 m3 c if( m_nJob == JOB_MERCENARY )
# e! q5 A6 U3 m( r. h8 C nPoint += 40;
' ?- q2 o* @ D; f else if( m_nJob == JOB_ACROBAT )
7 _, i- |( [* H. {- a1 x, R nPoint += 50;* k5 C7 h+ n: o$ k1 h8 C$ I
else if( m_nJob == JOB_ASSIST )' T+ `! t0 i0 p( D
nPoint += 60;
- u8 B* D2 ?/ ~ else if( m_nJob == JOB_MAGICIAN ) S4 }5 z; s, h* O, U1 b4 |, Q
nPoint += 90;
/ G9 l% E% m0 H W y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) D" Z6 a8 j& ?7 P6 O3 Q nPoint += 120;1 I" d7 @ Y' s4 \- `, h) m$ f. J9 ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 u7 f! G: K7 r! A1 [
nPoint += 150;
, p8 c8 I, z# [! C else if( m_nJob == JOB_RINGMASTER )# r* j% L# A8 h9 g9 m7 n# |! r
nPoint += 160;
9 s2 o2 l% u* C% e else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" S8 @8 u! s( A* A( L' ~
nPoint += 180;! F7 X" U9 s0 o8 I2 Q) {
else if( m_nJob == JOB_ELEMENTOR )
9 n+ H2 f; O- M0 n/ s3 n nPoint += 390;! a) ]3 m1 a l) F
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 z- K* T- _1 q! Q3 g nPoint += 120;8 c( y* D& C9 D0 u1 s2 U1 A8 ^
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 B. L7 L( Q6 Z0 T nPoint += 150;3 a( ?$ k* x7 S9 }
else if( nJob == JOB_FLORIST_HERO )8 q2 _ }" y% f# _2 n, O- `1 e
nPoint += 160;
$ }- L. M! r. @1 |% ?+ A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 a; @# q T, q3 o
nPoint += 180;' K" ^2 `$ [3 P1 R
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 g& c2 U8 }' o! s* B nPoint += 390;9 [* d/ _* v0 f( S" ]9 S2 D1 Q
# a3 H7 p/ \) |* P- W AddSkillPoint( nPoint );
- Q# {$ S' R! L. i; B m_nLevel = nLevel;
$ w; u1 h* O* R1 ^: c$ \
! |! m& G2 ]. F, `6 f$ Y$ S/ b3 ` SetJobLevel( nLevel, nJob );
! b. q# |; V7 p) S' ^ m_nDeathLevel = nLevel;* H2 I0 ^2 `. Q1 _. `
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* T. ~. ~+ J# H# q1 s7 J
if(IsMaster())
3 m1 n: I9 y& d {0 o) }% B& l( V& m' f" y' r8 ]
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& c- T; ~4 z. C7 T! N
if( nLevel > 59 && nLevel < 72 )5 L6 x( e2 {6 j: }6 ]
dwTmpSkLevel = 1;
/ V( C+ L( n6 s% a, \ else if( nLevel > 71 && nLevel < 84 )1 N6 }; x7 _% G3 N @3 F
dwTmpSkLevel = 2;' B! o9 I' W$ b, {
else if( nLevel > 83 && nLevel < 96 )9 q! C! U( V' u0 d! L* c+ `
dwTmpSkLevel = 3;2 c/ Y. m- M+ [) Q- S+ v0 }
else if( nLevel > 95 && nLevel < 108 )
/ s% U' p, n7 j. G' |, i dwTmpSkLevel = 4;0 Z& ?+ \4 G7 `5 n
else if( nLevel > 107 && nLevel < 120 )
V/ u ~ ]6 Q# S; V dwTmpSkLevel = 5;; A: e- @- l3 q+ |$ Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( l. d5 c) X# n4 }7 k' x
{ ' K. ?" o$ o/ y \3 f0 E, T+ I4 E
LPSKILL lpSkill = &(m_aJobSkill);
{* I) z5 m9 l; O2 l4 {) Q6 V if( lpSkill && lpSkill->dwSkill != NULL_ID )8 z1 z8 X/ Z p; L. C6 _
{
( E; Z$ x8 D% q0 e ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% y6 j! F; l/ \$ Q8 F if( pSkillProp == NULL )
/ u4 a# J& f0 i5 y continue;
. z1 Y0 E0 B8 W1 S8 H/ g5 c5 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. C& U: j+ x7 M8 l* T3 T6 r continue;" ?) j# s ]* b# t2 D4 e/ C& G
lpSkill->dwLevel = dwTmpSkLevel;
) V) W- `# }5 w a: K }& V) `9 K! | c
}* {$ ?$ j& u8 L
}
: f! c- e" H' i* G) j) D* _ else if(IsHero()); P" z8 _; U y4 W2 C" E# g1 k
{
5 ^) k% E: ^( E9 s/ K3 X5 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 @1 d4 w( [7 i1 X D {
' w2 [) r$ d" j( \' V1 P LPSKILL lpSkill = &(m_aJobSkill);
* q1 a1 I- V/ K. n if( lpSkill && lpSkill->dwSkill != NULL_ID )
; L; |, [4 v& |9 h( X* e {
9 C+ j# B; G5 o) _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 U3 y- s& D$ {" ^; O$ { t if( pSkillProp == NULL )6 W* L! T; W, u2 Y: P! D9 C
continue;7 ^% K0 J* E1 |! F6 G: t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) z2 O4 G2 A/ m8 Q* |% K continue;
+ _6 _2 _6 q* o4 L8 }* n1 M lpSkill->dwLevel = 5;
6 P+ q) z4 O# P1 Z; j" h }
( D7 h5 q) S0 P5 k7 d" o" L2 m }
& ^' u3 Y/ O$ ]0 e( W }
4 S3 Q# B, b8 ]( \3 x2 B x else if(IsLegendHero())
, g+ C( M' d q% E& [% D {+ T# r* L3 Z1 i9 R' F. R' k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ v+ V; a: H$ r0 A% a, \) e6 i% U8 H, } { ( |+ b' F+ R/ R- b+ k- R
LPSKILL lpSkill = &(m_aJobSkill);
( A& a: A5 W9 X* f X' E! x. c2 V \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 L. H; i: [4 p% M. e {
& P6 n) A+ n1 k1 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 ]# _$ s/ s) N
if( pSkillProp == NULL )
& o- t5 ?, f. e continue;
* K# e& p, j8 e+ z) j if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 I {( }. D; o7 |
continue;
' G$ w9 K$ Z" N; y; x) [ } lpSkill->dwLevel = 5;
# b5 D. }4 Q- h2 E! h1 j }
5 R' C6 h6 b- V' h% O( I }' f) ]9 g1 E6 ~5 t
}$ z" `: B9 v4 w! r9 O8 w4 \7 l* ?
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, G; x. q& B7 r9 s5 R6 O: B- X if( bGamma )# B3 e# o# L6 h/ c& v. a2 a, a
{
+ k/ v# t1 F3 p+ t4 A, F6 Y m_nExp1 = 0;
- L- w# a( o: F6 S }
) g0 k% L0 L& [" p, q/ A3 m1 k% L# T% Z+ I* O9 B+ B
( (CUser*)this )->AddSetChangeJob( nJob );+ o/ ~5 S0 l$ z$ [7 X: l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' l0 Z3 y. h7 d/ _3 }% Y# l9 h
2 B3 B8 f2 w; h' a! a: ?4 {, [$ b: {* S
# N; D5 W2 ?) u5 V9 j. r" Q- o! J#if __VER >= 11 // __SYS_PLAYER_DATA
) l9 f7 a9 a# j' E8 ?9 t- U g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* C+ `) ~) k8 M: h: S+ d$ F3 j9 ~#else // __SYS_PLAYER_DATA
$ C6 ]7 D7 O( Y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 d/ ?+ u% K0 V* u9 M+ [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 k( _% N- c8 x/ @; B. N/ s
if( m_idGuild != 0 )
: Z+ v5 D' t% a2 X g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 Y# ~% e" y3 w
#endif // __SYS_PLAYER_DATA. t: T" a. T& p
SetHitPoint( GetMaxHitPoint() );
$ _8 R, G: l9 i; b6 `" t SetManaPoint( GetMaxManaPoint() );
- G9 J) _$ H* n( l SetFatiguePoint( GetMaxFatiguePoint() );
$ j/ z Y+ l8 p( F" ~ if( nJob >= 1 && nJob <= 4 )
1 B7 s6 {6 x% c' c {$ j2 f B! T$ j* m$ [
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 ^9 M9 t7 m9 W m_nRemainGP = 28;
8 u1 Q- k" F% W* W h! w }
8 ~- j# S# w2 E if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( W. |2 d& I# C! o. v {; G6 T+ Y" k j& `3 ^
m_nRemainGP = 118;
3 t4 _/ M, K# E# M. u //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;: r+ c0 P, p+ _% k! z' T3 f
m_nStr = m_nSta = m_nDex = m_nInt = 15;
; C1 E: k# n5 }/ g0 J, A) Y }2 ], P" T! d# O1 G3 l
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ), g1 x$ c, F0 G a! ?; _1 `2 [
{
0 @+ Q6 Z. B F" M CItemElem itemelem;9 P | J, z+ t
itemelem.m_nItemNum = 1;
' E F/ d2 p- h5 ?" H itemelem.m_bCharged = TRUE;
. t' t, t( F2 z2 l8 s4 l! S `% |5 i BYTE nID;9 G. Y( V! ?; D; @! W; K& M2 O% U
* k: R' w- M+ C; C
if( nJob == JOB_MENTALIST_HERO )
8 e1 C2 \! C$ e/ ~5 ?/ x, O9 e0 Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
; B% K3 V2 Y7 Z* X0 Q if( nJob == JOB_FORCEMASTER_HERO )1 s6 I$ w/ }% f+ y* @
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( v' f8 A+ e* \" q5 _0 g: u) z6 ^/ T
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 g! g' m& Q, F, q- y4 X1 ]+ r
}
0 J! I# k" K& O g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 H" b0 I3 A$ C2 [& o# y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( N0 ]- o! _8 l% {% `6 {. H ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 [( _! o' |' ] [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
/ ~% \ v/ {$ s6 w: R+ m$ M& n2 } ( (CUser*)this )->AddTaskBar();*/3 Y; ?5 J2 \. L) ]3 _: ~; S
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); C P. y* p+ c$ m7 [
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 U: K y. K& i) {# [5 K
((CUser*)this)->CheckHonorStat();/ O+ v- G' `0 M; w5 S
((CUser*)this)->AddHonorListAck();9 w# T1 b$ @1 m8 J
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ l' A+ x# q X4 o5 `#endif // __HONORABLE_TITLE // ′Tà?
& s m9 J8 f# K# r7 u* F }3 M5 k2 _* j0 W: b# ]% c/ g/ z- H5 n
#endif // __WORLDSERVER
/ N' n2 w' u7 ^} * f& }% E7 ]- n( p o% `
1 Q" `# b9 ?* G' \3 A2 }# i* ~
然后你进入functextcmd.cpp并添加以下
* n6 p6 s1 I0 o: W( |% {' ?* |0 U. H$ e( L2 r$ f' x* ?6 P: V5 V. K9 ?
代码:2 {- y4 ?! U9 `4 z' H8 n9 y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
7 M/ h0 T! h% g# x下面插入
9 y' Y1 R" l) u- ]8 BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 @+ h* L+ W. |3 }4 w4 L$ o
8 A! F. u) p8 m然后你去
8 K7 @4 J! }* k# b& `
! T$ R* e& y0 e4 b5 x代码:
( Y! e+ b/ u% h6 T& S+ I代码
$ g# ?' C9 b# O) lBOOL TextCmd_ClearPropose( CScanner & s )- K$ x V4 y# h/ ?
{
# v+ @; V* d* w0 k7 o#ifdef __WORLDSERVER
% h H+ V- D0 N! g T5 Z5 a/ `0 |# V CUser* pUser = (CUser*)s.dwValue;
3 D( I5 c5 }7 {/ p! O( h g_dpDBClient.SendClearPropose();% H4 K/ W- ^+ \$ j
#endif // __WORLDSERVER; v% S5 N( S+ w0 X, c
return TRUE;9 C; S6 R- c+ M2 D, r) f3 b* m, x2 F
}& `" c Z9 @/ I4 M2 D( o ^" Q* E
下面插入" K. q; V: H0 S2 z
BOOL TextCmd_rebirth( CScanner& scanner )
1 v* x8 Z' x) u# I% _{
; { Q, A% U4 ~# `#ifdef __WORLDSERVER
: J$ q# ?" M3 Y$ `CUser *pUser;1 b8 R1 |( g0 L o; }7 F( f+ g# k
pUser = (CUser*)scanner.dwValue;* D& s, v) A, p/ b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
|( E! u- L- y, BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. B& f, ~' A! t( e8 P6 y! G
else0 n: W' {! H' i% r
pUser->AddText("你还未达到重生条件!");
y0 u8 C( f$ d+ F4 T#endif* V) z+ z+ d! p. ~$ e i
return TRUE;
% K$ c4 k* _: r0 j" q/ W4 O}
! W; k4 o- x7 h% ?
9 u. y% y( M+ O; p5 p: m0 p; H0 N
3 K; V2 _2 U8 Z* F
5 W$ y/ x5 A; s, [+ c1 e1 g+ p, ?5 ~1 y6 g& r. s* _
|
|