|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
# @$ K9 Z# `% ?- \3 V
e: }' I% M' P) L' @! HMover.h s6 c3 _: ?0 L. @& s: c( B
代码:
/ Q- ` U5 t9 l0 y f" H4 |找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ J: P( I# ~1 y/ V
8 @& J$ ~- _/ l; Z5 c: a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. v+ u- x) d. o+ b+ k& e+ V( J6 Z
然后你去mover.cpp添加, \9 q+ L) Y8 N3 ]/ r' W+ {
3 u) W) r; M! d% d
代码:
( j( r3 s' ~( h. N Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )2 U4 _ J. \" ]/ v( W
{
# E1 _/ b/ A! f3 E+ {#ifdef __WORLDSERVER
0 a8 C/ o* [" G" l, o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 L+ d/ O+ t$ m/ L5 j5 G2 i
MoverProp* pProp = GetProp();+ _6 f8 ~1 Q {2 c$ R6 {- W
if( pProp )/ C/ `! g1 v# \! p$ X0 l7 _
{2 T/ z4 l9 h+ d
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 V3 e6 F' ?% e0 `" v* D {% O0 ?$ ~9 H7 Y0 y6 H
AddChangeJob( nJob );& D8 I$ e$ P9 k3 e$ ]9 J) ~
}else{* X0 E3 u) F( Q9 V) m8 D7 I
return;) {/ I. s7 A! w2 a( D# j: P
}
; ^7 \1 p) G2 X$ Q% ] int nPoint = 0;
7 u; e: k- }0 x3 [" w* c if( m_nJob == JOB_MERCENARY )
8 D6 U% I" Z, f& \9 \" U nPoint += 40;
6 k. @! Q; j1 v" i9 E8 o1 b/ e else if( m_nJob == JOB_ACROBAT )
( |7 b5 D% t$ e+ z& J nPoint += 50;6 V7 d4 `+ s- M. ]$ P
else if( m_nJob == JOB_ASSIST )
" K, C3 {3 x, N6 P" N nPoint += 60;
% Z' L3 u) v5 a else if( m_nJob == JOB_MAGICIAN )
$ C( Y! y Y% @4 x- d/ ? nPoint += 90;
7 l! ~( B4 h0 @, ~4 T; b else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ |6 w9 T- R! `
nPoint += 120;1 z5 [# C% a9 Y- v0 J' _
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ E4 {, e0 L0 d$ Q! n
nPoint += 150;) t) u- D. N9 V1 ]
else if( m_nJob == JOB_RINGMASTER )
( c3 X# d' K! i2 H- j( Y nPoint += 160;
' E0 y' Q) I# U( i2 {' F6 h else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ s# J4 D0 x y" A6 o- k
nPoint += 180;( H+ p# h7 V% b; M8 m& m L4 r7 J
else if( m_nJob == JOB_ELEMENTOR )
/ P, T: U4 N- k5 ]+ Q2 g! x nPoint += 390;
) Y! l) ^; P6 V) q) V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ g6 o' Y- u" Y$ { nPoint += 120;
5 Q x, s9 f# E. Z9 U* B' d; X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
- T3 G; V2 t. o nPoint += 150;- L3 |6 r* u8 N- m4 q
else if( nJob == JOB_FLORIST_HERO )
4 _! Y: m- ]7 c7 P, ^ nPoint += 160;
7 |. K* a6 p& f* n6 |* a+ ]$ H else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), b, ?$ n/ }* `: v8 ?9 z; z
nPoint += 180;9 Q( u$ C- [) h7 I
else if( nJob == JOB_ELEMENTORLORD_HERO )' q x8 @# z# m$ c: v0 O; F
nPoint += 390;
% k' B M8 ]$ o" Y; ~2 Z, n$ R, @" h$ U* ?9 }2 u% V6 h2 S% I% R
AddSkillPoint( nPoint );
, l& l: P6 ~1 Z) I m_nLevel = nLevel;9 F8 s+ G+ K4 [& F5 s
; u7 ? d' l2 Z, B( W5 |: X# P! u
SetJobLevel( nLevel, nJob );( R3 l" C6 C5 U. J, h: ^# S2 t" n
m_nDeathLevel = nLevel;* F) H! Y4 f& O6 Q. y1 \* }
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 ~/ W; z- b( Q8 `5 m9 D4 \+ _
if(IsMaster())0 l: G" g. i/ M- T* \7 \: b
{5 G( s8 l/ D3 S6 Z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ y5 `9 H; L8 Y* s1 F' B2 j& z2 G if( nLevel > 59 && nLevel < 72 )
) g' h; \- N! S0 ? dwTmpSkLevel = 1;. h" Q7 B2 B" ]- s. Q) w
else if( nLevel > 71 && nLevel < 84 )& a& K4 w$ e, z* L0 ^! r5 N3 U: R
dwTmpSkLevel = 2;5 x' U: g4 [0 D* m
else if( nLevel > 83 && nLevel < 96 )
( O- ?( ~% @ a" N/ k2 A0 l( x3 u dwTmpSkLevel = 3;
9 [0 e6 @& p1 ?7 w& S: V+ t0 ~ else if( nLevel > 95 && nLevel < 108 )+ K' @6 v6 M* J
dwTmpSkLevel = 4;( ] c: d4 p. d8 Z# o+ N. B0 V+ Y
else if( nLevel > 107 && nLevel < 120 )
5 P0 Q8 N" A( V6 i; q dwTmpSkLevel = 5;
" Y% j1 ]# n/ V' ` for( int i = 0; i < MAX_SKILL_JOB; i++ ) & ?! K! u/ [- ?8 g
{
% q5 L7 F `( T$ _5 s4 c1 H& n LPSKILL lpSkill = &(m_aJobSkill);8 K" |* P3 J6 }( e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 S$ L0 \' x; b7 v. M6 y {
# M7 G( _4 K2 u. B: H2 @& @ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" l/ i4 W5 w+ H" h if( pSkillProp == NULL )+ M1 t; v6 ~6 _2 o4 A/ `
continue;2 x3 e2 l) e) |2 S. d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& N' A, T' h' J9 R) C
continue;' ~: ]4 g- n1 m! P0 ~- s8 q: {9 Z
lpSkill->dwLevel = dwTmpSkLevel;. O" l7 S& }! K
}
7 R! X: b7 P, a M }- C' k# \! J: _" [
}3 Y# K5 P# i# `! z6 c2 r- {# I. e
else if(IsHero())
& e( l* T5 V! `5 g6 D& t8 Z2 ]! ?' L {
" l& D" |9 L: ~- k+ a+ n, r for( int i = 0; i < MAX_SKILL_JOB; i++ ) + e) V( t9 [% [: B& t
{ 5 T, N* v1 M0 C f
LPSKILL lpSkill = &(m_aJobSkill);) \# {/ p: |/ ]" P
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 a( v2 \" O7 [7 k y
{4 r# `) A6 p* C) _4 Y0 s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % h1 n. b: Y2 {- L: y$ L
if( pSkillProp == NULL )
3 J# e5 h, b/ h7 O continue;
* D# r2 e2 [2 t2 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER). m' X; G& z" q+ C7 N9 U" N$ ^# O
continue;
& _3 e0 D9 f# m* l6 r lpSkill->dwLevel = 5;
) S4 v9 l, ^$ ^! ?7 I) R }/ D" S6 j, s( i7 p$ a& e8 o
}
# F) P/ Z* u2 n: x! Y }' |; W/ N, G+ t9 K1 {
else if(IsLegendHero())
, A3 |# n+ i1 n0 V8 U {3 w6 _/ X Y2 C2 v# Q4 a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 R$ |9 ^7 E6 d! A2 I! g: v; U {
; E8 V: H* }. n7 I) N& ] LPSKILL lpSkill = &(m_aJobSkill);6 }, a5 h- b5 Z: \# `$ z
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! B9 O2 x6 I8 c1 B, Q {
8 ^( n( B# Z" W4 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; o' U( p2 ^% z; I5 U/ p) z if( pSkillProp == NULL )7 t( J$ ^) M; C2 G6 A1 g5 K
continue;' c) R" h6 U* |- M' |7 ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ K5 X4 I2 E. j2 |' }; Z
continue;& f, T2 d. F; x
lpSkill->dwLevel = 5;
" U/ Z: F* q2 h. o# ?" I }! H/ P* q; R9 j; V
}
: ~) j, U' l1 s }
* r/ W/ J" b) }8 L; z: @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 \6 d* R/ d; h6 Q* {
if( bGamma )1 o, g% l% s3 E5 v
{& {1 [8 _- @4 K; _$ r& M
m_nExp1 = 0;
3 I4 O$ N* r7 a }/ T3 p/ A: ~/ n
+ v" H# w) K, O9 z2 K ( (CUser*)this )->AddSetChangeJob( nJob );
* `" H( s: k3 C8 e; u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 j/ k) \. V; E4 f; F: D5 u
. ]" m; G' [1 C) I$ c& ]/ D7 Y* c- K& ^) l9 I
#if __VER >= 11 // __SYS_PLAYER_DATA- S" B l" t# n
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( a) h; l+ A6 i6 T* e+ f' S/ o
#else // __SYS_PLAYER_DATA
% N" \. z P2 {9 G& a) R3 ^" j g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 n8 Q; U0 y& Y! |- h- O8 C
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% F( N5 z, J# m; I+ A
if( m_idGuild != 0 )
0 m/ l5 p! n# |: O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ `8 I8 J$ X, k+ q& w& o5 U
#endif // __SYS_PLAYER_DATA
, M2 N% C/ R6 j0 e, i$ w SetHitPoint( GetMaxHitPoint() );$ j# h2 K! {. `, U, E
SetManaPoint( GetMaxManaPoint() );
/ j. _9 `3 e8 w- n6 e SetFatiguePoint( GetMaxFatiguePoint() );
' u& v5 C6 L6 O+ h3 Z: P if( nJob >= 1 && nJob <= 4 )
# |) o0 R* @( T/ i; P3 C* m {2 x$ W; B& v5 @( o- h
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- p$ Q# ^$ Y, q3 f. |$ A m_nRemainGP = 28;
, ?: T% B) _+ E/ x }
6 d: C2 Q, _' h* E8 T0 u3 B if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
2 \" P# ?/ q/ y; k2 p% \2 w" T" a {" Z- x1 Z% b6 Y v* }9 {7 ~
m_nRemainGP = 118;
4 f ] Q- t5 e+ c7 Y1 Y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( g& N0 [0 _. o' E8 t
m_nStr = m_nSta = m_nDex = m_nInt = 15;" B2 `* ^ X5 Q6 j' m
}; z2 O# S+ ^) W* v) E, F5 c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). I4 O$ A% a8 _1 o* Y
{: Z# \7 k& e8 I L
CItemElem itemelem;
$ I. Y% L1 f1 i8 E itemelem.m_nItemNum = 1;
3 r# o0 {- b0 }1 f) E7 z3 J itemelem.m_bCharged = TRUE;$ |9 ?- K! Y! b! U3 N
BYTE nID;7 p& N0 p" c' B1 |0 V) P" [
9 m8 j8 d5 i i
if( nJob == JOB_MENTALIST_HERO )( b! v. ^, `( n) d6 J: l: A! Y' I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;+ B7 L7 n$ L+ W0 a2 d p. X
if( nJob == JOB_FORCEMASTER_HERO )0 r' m: f* J; i# A
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: C# `3 m" |7 V7 c) \8 y
) G. `& R( ^6 e' u9 d3 {8 \ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- Y% @- u+ x5 D" C }( A5 e$ @# ]4 d4 [
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. e7 q) B, O$ R+ p2 R' a! B3 ? ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 I6 U( G( F5 }) i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; B! i3 ]+ W" Y# n" Y
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% D+ @# O4 c+ v/ M; F; A& ]
( (CUser*)this )->AddTaskBar();*/5 T0 N" \/ u$ g( r- m+ N
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); u( n1 f7 w9 w8 p7 Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?, b* o, z2 M+ ]
((CUser*)this)->CheckHonorStat();, k; F4 P) t# t6 H
((CUser*)this)->AddHonorListAck();! Q1 u; Q, f/ v9 k
g_UserMng.AddHonorTitleChange( this, m_nHonor);
h. I1 W. S7 K. F" C#endif // __HONORABLE_TITLE // ′Tà?$ k) l- g) l) I
}
* C/ c- S/ [' Q#endif // __WORLDSERVER
3 C3 W% x; `7 m# R ^% Y& m} 0 b+ d, ?5 J+ m5 K" I0 p, R& s3 v
6 u; _$ r0 C7 b1 |' G9 B& z; {然后你进入functextcmd.cpp并添加以下# q7 j- s! m; u4 L, ]
- e* I, j* ~4 h! e1 C7 g3 ?9 _代码:
( l# g3 }6 O1 }% S, n. B( H& ^ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
+ |( J( w: L' d- S下面插入
, j& N4 [8 a/ V; a; t$ uON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; u) b. g/ E, b
$ n5 j8 |0 [# g- Z
然后你去0 L$ W& A# h: J/ E! a. \- q
& k6 w# b# R3 y% L2 E0 m3 c7 O* L
代码:
3 b6 ]6 J# e) E6 K: j% J* E代码
) ^) M: ]! W% d3 fBOOL TextCmd_ClearPropose( CScanner & s )
+ I2 r# i5 J) @{
9 K. d% ?5 I' Q2 ~, |#ifdef __WORLDSERVER
( _. j, { b$ z) ?; }3 B' P' m CUser* pUser = (CUser*)s.dwValue;
1 F% A; p4 [" { g_dpDBClient.SendClearPropose();8 i& }2 E$ G* w# [4 U. h* Z/ m
#endif // __WORLDSERVER
6 q# K! A# p& i. J; q+ z7 v7 q6 ~ return TRUE;1 g" l. H- k! @, R7 c: C6 u$ W
}
5 |5 R* _7 p6 w- v2 M' ]& L% X下面插入
5 X1 u4 `9 {. b8 k$ EBOOL TextCmd_rebirth( CScanner& scanner )
- J N" N+ K8 j' H% g8 z{
: g, e# `8 q0 b) ]' @+ E0 N0 M#ifdef __WORLDSERVER3 f; w- y) i; y# G- ]* |# \
CUser *pUser;
7 W8 w/ f' B2 H/ EpUser = (CUser*)scanner.dwValue;* L% C/ B }% i" A. o2 Q4 G4 J
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 ~$ P- r- ^$ fpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 q' S* ~; M: D) ]% Aelse. ]3 d# X! d+ M" J% v- b5 G. f% `
pUser->AddText("你还未达到重生条件!");
, ^0 b3 p1 h# `& k, |. X6 D" w( B#endif
) o0 i6 B" e2 w# x6 a# Creturn TRUE;
0 P! `" u- ~: h. x3 U" N}
' o+ v6 B! M6 c. a% f
( t$ z: W3 w M9 z* j+ {( r1 c/ n
. g* @, N4 Q9 l, K8 r
: }% g* N4 M1 d4 I/ V% v' R; `1 H! y
|
|