|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 V; G5 B' ?7 x3 e: R- Z" Q. M- W% C! g9 T: L7 G
Mover.h
- }. r$ W# K- ^) B% r! u代码:0 n' _; \* ` c E2 g1 l6 D1 f
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. \% X3 y8 j3 ] p( f
% g6 w3 X/ R* a( G( b4 t- j下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 {* C5 k; I! r* n/ l) H' R( K' m+ G. A7 d
然后你去mover.cpp添加
7 @# \; V$ }7 l; X
+ o/ s4 X; l! l5 g% @% Z t# g代码:* C$ F& k3 @& g1 `. X: o2 r
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) Q5 @: | {7 Y9 D
{9 I( B8 v: k7 N2 N$ }: ~
#ifdef __WORLDSERVER, n* [2 e" e3 O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# I( f( d" O2 g9 Z: n( ^
MoverProp* pProp = GetProp();. T( P$ [% c% X6 R( u8 _
if( pProp )
% P0 p9 c9 c$ m) m/ T& {, w {& J8 x% D. l" Z2 }) r6 ]
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
6 u% [# v: R; _5 \, T: { {1 `" U2 ^) z0 f# E
AddChangeJob( nJob );( ?; c# y4 l/ n
}else{* Z0 o1 K$ M# O9 C- c) t# A
return;
! C- V; M4 @9 e* ~9 F }' P# v7 C3 A$ W+ g' ^4 p4 C
int nPoint = 0;/ s: M; f" i: L) N; ?! H) I9 E
if( m_nJob == JOB_MERCENARY )- N1 T! y9 _1 j2 L4 Z* R
nPoint += 40;! v4 S" M' v, P1 M: R
else if( m_nJob == JOB_ACROBAT )
- d) @2 d( p% i2 m& x- c nPoint += 50;( G; y: Y) H% d
else if( m_nJob == JOB_ASSIST )
5 ~5 I. N: N( M: X nPoint += 60;
$ W6 U# z ~8 G9 y1 V% ?: D$ ~( G else if( m_nJob == JOB_MAGICIAN )/ X8 ^, w6 e$ Z: K' f1 v
nPoint += 90;
( C# k8 w! D9 e# s. U) @1 M8 C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 \7 O: b+ l% w @) k nPoint += 120;
4 T2 e; R4 @" p, |' y Z5 K6 c else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )0 N; Y& O& |. C- R6 |$ T) _; t0 F1 ~
nPoint += 150;0 S! L; Y" |. [' r
else if( m_nJob == JOB_RINGMASTER )
/ e9 r9 p% E; u! U$ H nPoint += 160;
3 r( Z% G# T& w0 j3 n else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- o- \. D$ S" w4 I0 t8 z# W0 ]# `- K
nPoint += 180;( R; G# h( Y/ Q- s# u
else if( m_nJob == JOB_ELEMENTOR ). V1 i& D+ F, G& K5 b* L
nPoint += 390;# c3 X' @* Z) T4 h6 D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )1 Z( ]) l, T" t7 y# T7 Y: r6 A' y
nPoint += 120;) {4 X, w8 P$ m* l
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( F, F3 U5 J7 R nPoint += 150;
5 H+ y% I; M( G( b% O# C. A else if( nJob == JOB_FLORIST_HERO )4 r) }$ P# B" X% M
nPoint += 160;
4 Q$ K: Y+ A+ {3 h- [+ x3 B else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )9 z; ^" v4 @+ e& z$ v$ Z1 J
nPoint += 180;! @2 G$ x9 H; J4 t% M3 S
else if( nJob == JOB_ELEMENTORLORD_HERO ), Z' X1 ?& J: I+ J/ X) u9 C* g
nPoint += 390;
* g$ }4 ~9 F+ y, j
' Q2 m Y+ a- Z( U5 a AddSkillPoint( nPoint );' i0 k# l% a+ i7 o
m_nLevel = nLevel;4 ~( B& K. A8 f+ c& H! A5 \$ n
- G0 B2 X# F: x* [- ~ y f SetJobLevel( nLevel, nJob );* ~) F& [/ Z) U4 s
m_nDeathLevel = nLevel;3 b$ ~3 w# g; P: f3 s# {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) S; d9 r2 X6 O9 I9 s; A. A if(IsMaster())
+ ]; Q- E3 d$ R. r7 y {9 A% l) [' n v5 D. Y
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ u/ f K& l2 L5 Z2 Q3 s' G if( nLevel > 59 && nLevel < 72 )
# J' k, o% w! d. ]- T7 Z7 r( {. u( a dwTmpSkLevel = 1;9 G6 W& n( e, i6 e
else if( nLevel > 71 && nLevel < 84 )
/ ?9 w3 D$ B9 }, S% X dwTmpSkLevel = 2;
- ^3 A* E& o- `) N else if( nLevel > 83 && nLevel < 96 ) N, U$ U% \, }0 A W
dwTmpSkLevel = 3;4 [! L9 ` T7 q1 h: `5 n
else if( nLevel > 95 && nLevel < 108 )* U E0 r l" T: Q/ g6 E
dwTmpSkLevel = 4;
) j4 u. r- O1 e9 N/ i% s x else if( nLevel > 107 && nLevel < 120 )
% I' R& D& ^+ w# C$ u: Z dwTmpSkLevel = 5;
$ J o* G: X4 U% X& G1 G6 S for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 v- g- y/ j7 o, h1 {
{
7 @/ d) g1 ~2 }3 C4 q8 K$ r1 g LPSKILL lpSkill = &(m_aJobSkill);; G8 C! F0 V: \, n
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 R" k* J$ e) b5 \8 f1 I
{
- e# Z A! q0 {* s+ `" _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 k, p, E) h) g( l+ M$ @9 Y if( pSkillProp == NULL ), k6 L2 `; Y5 y- E ^
continue;
$ x7 ?0 B7 C8 F# V; E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ M0 J( M F2 P& D0 s! W! ?8 e/ D continue;5 k# L8 _! `4 X; Y8 N
lpSkill->dwLevel = dwTmpSkLevel;
$ A7 u0 Z& L% A. j }2 @( R }
( \: n. t; S. [" [( `' W }+ F, O* f$ D8 K% m5 i
}$ w. }- B3 n( j/ G* F! d
else if(IsHero())
2 q1 U: g0 `0 K2 A9 l4 Y! a {
" M! ^& e a2 ~+ |1 P for( int i = 0; i < MAX_SKILL_JOB; i++ ) / L( l/ y6 q+ F4 Y. D; R% S
{
" L% L0 S/ V2 Z LPSKILL lpSkill = &(m_aJobSkill);6 r/ }# C1 n& }7 i
if( lpSkill && lpSkill->dwSkill != NULL_ID )
2 X: N) R3 H7 r: x( I& n( B {
' h5 m' q$ X& S6 R0 d! ^2 o ^. g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 T- B# c9 o$ J" x N7 M if( pSkillProp == NULL )$ q" ?& E, l2 J" H
continue;/ \) R, f4 H. r$ P+ }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& N( }+ M2 F4 P" K0 T+ b2 | continue;( ]+ R4 P4 @: C. y+ A" n% N# A
lpSkill->dwLevel = 5;; h+ d# y/ t6 e2 v4 T/ K$ r- X
}' L% l. t/ B+ U0 `) s
}1 Y2 B7 D$ H0 k* h( @/ J1 e/ u
}
8 i7 u' j- ] T: Y+ e$ g: e else if(IsLegendHero())4 J$ N6 {8 z3 i8 x" y O, ]
{" D, R% D7 g& `
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; I5 |( V0 Z4 v
{ " A1 n7 E% H2 W7 @' _" |; J
LPSKILL lpSkill = &(m_aJobSkill);
1 P' B9 B( p6 u4 X1 l0 Q K& }$ e if( lpSkill && lpSkill->dwSkill != NULL_ID ); [: u9 R( V, E5 b- k2 R0 Q
{
5 q* T3 `& c! @! b2 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( A( `$ \ g; }
if( pSkillProp == NULL ). ? U8 z! q4 C5 i& M Q
continue;) V+ D$ L. S( j# ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! A: g# X( d0 i: [ continue;7 D H# u/ Y5 |4 X( u) Z9 U
lpSkill->dwLevel = 5;
1 K$ V5 V( O' o3 Q: K }
' u8 O" R2 l$ L7 y }
5 Z( L7 A# a5 g/ w. f+ r }
- A0 f9 k6 r7 X8 N1 H1 \" ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 m1 B- q" A) R- j: L if( bGamma )) j2 R# W3 C, Z) Q
{; F6 N2 D( X2 _/ Z5 A
m_nExp1 = 0;: \/ ]0 a1 l$ g% ?; P
}
% D& s( r: [- c7 Q: ]1 `- d: L4 @) O8 i/ m, |' I- D
( (CUser*)this )->AddSetChangeJob( nJob );
0 m# ?- y9 y% X6 w* Z1 n g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: F: u, e1 F) _. n
/ B3 D& l9 m: U& x
2 d. y/ j/ p* r
#if __VER >= 11 // __SYS_PLAYER_DATA
; E4 s) R9 G/ d0 e( c" m% B g_dpDBClient.SendUpdatePlayerData( (CUser*)this ); D# }# o6 a! V5 f9 l
#else // __SYS_PLAYER_DATA
4 J, q: _! c8 R, h; N: I g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; P/ t# A/ W8 n: I: J1 T5 z
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- h3 Z5 B/ H4 s
if( m_idGuild != 0 )
; O) G$ M* T4 M# ^2 d; F g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 D5 Z. ^' ]1 g" w }- U$ L: b, [
#endif // __SYS_PLAYER_DATA& r9 N: Z, j' f, M' ]0 E# u
SetHitPoint( GetMaxHitPoint() );
7 ^& C# q, e" c9 \0 M C- A2 x SetManaPoint( GetMaxManaPoint() );
, M7 G4 h4 V' o3 [& ?5 z W: K SetFatiguePoint( GetMaxFatiguePoint() );) r8 H, Z! p5 b4 W/ I1 t
if( nJob >= 1 && nJob <= 4 )
2 L! Y: V1 ]" d+ R0 ?. ?0 e {
6 z- O. H" v2 z6 p m_nStr = m_nSta = m_nDex = m_nInt = 15;
" P; N5 D1 f; ?5 s m_nRemainGP = 28;4 h! o8 b) T. p4 B3 R: i
}! C/ z' m4 U# U. ~* T# c6 p& f
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ z, D- B4 h0 u& R { h* x+ T/ x( \7 p
m_nRemainGP = 118;7 p6 w& L' R% w. K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! c- p0 v9 o( F7 U2 O5 E! k
m_nStr = m_nSta = m_nDex = m_nInt = 15;' m7 J4 s9 ]& A6 n* q) f) p3 M( V
}
3 [# k6 H3 w$ k; k3 s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) [6 q' T9 W1 Y$ y {- u0 C0 n* B0 {! Y ^5 A0 W
CItemElem itemelem;6 G. l3 `' f! J1 G( r2 o$ g) U1 B4 t W
itemelem.m_nItemNum = 1;
3 t3 S5 J* c1 [ itemelem.m_bCharged = TRUE;: r: r3 e) [8 \( n2 }; `
BYTE nID;$ @, s+ F, V& ~! B! H3 l) l, Z/ w9 }
+ w( s2 T' |: a& s& Z8 m9 h" g. X
if( nJob == JOB_MENTALIST_HERO )/ A5 ?- B9 P: }1 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 i: L! ^! E9 s5 W
if( nJob == JOB_FORCEMASTER_HERO )
0 o Q! Z! n( a O6 h; v" j5 i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
G0 t/ ]# ~! Q
% y3 `5 }. j+ Y# I" J ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ F; g) @5 l' _5 C% r1 B$ ]
}% F8 |) A* _5 C' B4 Y) k
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 V8 p* D" n& j: q9 L* W
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) Z5 t& q* L& |% R3 F9 M
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. X( t0 |! S! J/ M /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* U5 @; ` V& s% c3 U- d7 l: f9 G
( (CUser*)this )->AddTaskBar();*/
% k+ e! n u5 v# v& a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" E0 d) l' ~" h% I5 _7 I. Q% c& ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- [. I' ?) I+ G ((CUser*)this)->CheckHonorStat();
' K& S$ e+ a! _& K ((CUser*)this)->AddHonorListAck();
+ k* t8 o9 F6 ]) t1 D w g_UserMng.AddHonorTitleChange( this, m_nHonor);% V# ]; n' M; ~% X
#endif // __HONORABLE_TITLE // ′Tà?
4 e3 \" |2 t$ B1 _ }
9 {, S% L( |: D3 e4 W$ m#endif // __WORLDSERVER( m- p+ W( _4 W) f4 `! I
}
: L1 T5 j1 d. x
& N; M% `7 ^2 X0 c1 p然后你进入functextcmd.cpp并添加以下
- c9 v6 y8 ^$ d/ U1 C' {- p9 x# v- z; O' L" _7 b
代码:
; I9 i' }' u. ^- ?5 s$ D% d+ z( wON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 D2 D2 f5 I' I% D3 d
下面插入
, j5 Y" O7 |( \4 p Q2 fON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ( }2 R z# C; a
& ^$ D5 }1 A' z$ h! z4 n2 p: Z {$ I然后你去
' {- j9 r" y/ @" s
% ^9 o) S5 Y4 d代码:
# E# p+ O! c N5 e% C/ m2 L8 Q代码. R& T% v) [$ f4 Y
BOOL TextCmd_ClearPropose( CScanner & s )# `; k K9 t6 y. b* J2 m
{0 C9 c d) {+ _3 @ Z( @
#ifdef __WORLDSERVER
" T5 R+ \7 L. p CUser* pUser = (CUser*)s.dwValue;! N p* h7 B. i; b
g_dpDBClient.SendClearPropose();) X+ g! ?. v$ h$ K0 E; ^* A3 r
#endif // __WORLDSERVER" w6 I3 C# v; e, V' W3 k
return TRUE;! z7 g: l6 \0 V4 P k" C) n
}0 M+ N2 P5 u: ]; L4 |# S, g, c
下面插入
0 J! x8 W1 \4 g% f! pBOOL TextCmd_rebirth( CScanner& scanner )! l7 [* F) R, E4 I" S
{; D0 Q0 R' F' \$ K
#ifdef __WORLDSERVER2 G! \& F* C+ D' h- s6 f
CUser *pUser;6 s% o- g5 A$ A( F' J
pUser = (CUser*)scanner.dwValue;3 R/ ?6 R: T$ W5 Y) i" C y4 R0 n; ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
) S2 d; T, I4 Q% A) EpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% F$ G" i: G$ selse
7 w0 R# f# |) S2 t4 }( P5 apUser->AddText("你还未达到重生条件!");/ E* f3 A( u5 V$ b$ Q
#endif
' M4 B8 U+ y4 C9 u5 V2 q8 \6 J, breturn TRUE;
6 |7 B% |2 q/ ]1 g} + E9 `! w" _8 d: }
: A/ B4 T, S& {0 h3 b4 ?( _; F
, G: E& V9 S( N
) [4 \+ m% G- m& e$ U3 r. h4 q6 N1 y
|
|