|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 L$ j! ~/ L r8 _( s9 K& J
, b7 U# u8 A9 {- V0 u `
Mover.h
% j: @" Z% ]2 ?) g代码:& w5 A5 h3 w7 Z) w h0 h
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü- ^& T+ F. U$ s) v1 r/ R4 L3 s/ @# \
$ o* B0 Z" v( C& n9 o$ y( s下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / z( j0 l! Y6 r# D$ {4 Y
% ]" N0 h5 E: p7 D然后你去mover.cpp添加8 \. k/ O, a% n: Q+ L/ E- B& Q
4 D9 a# K% r8 w
代码:
4 ^1 x3 z# c* p k5 U* lvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* G5 t( k# f; a9 w8 z- S0 y6 V1 ~{" x+ p; \( B: M& H# t
#ifdef __WORLDSERVER
& i- B1 L+ k- o: Z% w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) i& r' x! p3 O5 d6 J7 P MoverProp* pProp = GetProp();+ x* j) y B0 f v. N% ]
if( pProp )
% K) f. E+ Z" q7 D+ ?+ z {1 y! Y" _) J4 G9 r! m) P, N0 q4 ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
v# h. W# d' b1 X! ?& @0 T- q {
0 n; K1 b( @) N! d8 Q+ ?3 P3 P% i AddChangeJob( nJob );
3 A% I. \5 ~$ L }else{
* H k9 D" d/ {8 Y( r8 F& c7 W return;
% i) E$ N* T. e6 q }
, o$ V7 _7 q+ g6 V% d int nPoint = 0;2 h% u8 v$ ]: @/ a4 b
if( m_nJob == JOB_MERCENARY )
7 Q3 `. K5 u' y7 N0 h4 z2 ` nPoint += 40;! {9 \- L. ]! F' r8 p! g+ v; l. C8 [
else if( m_nJob == JOB_ACROBAT ) @# c3 s& b y% M- o6 X
nPoint += 50;
8 ~7 [/ N0 M2 w* ~- v' S else if( m_nJob == JOB_ASSIST )( B+ m8 w n2 r( b/ l8 s
nPoint += 60;' k7 f; l1 Q6 ~7 [2 A
else if( m_nJob == JOB_MAGICIAN )0 M# ?! } |6 r, r) S- K/ }
nPoint += 90;0 ?3 Q( H, a9 A/ I
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 q; W6 F+ t9 k) @
nPoint += 120;1 z9 R- `% i$ x* Y6 G9 u3 p
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ _1 ~1 ~4 J# O i* Y C. \: i/ @ nPoint += 150;" G$ b- g& Y9 Z3 _ Z
else if( m_nJob == JOB_RINGMASTER )
% n, K; k) [. H/ [0 N" @7 r nPoint += 160;1 z: f* [5 @; j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ R K! I7 b6 N, t4 C: f( B" ~' `
nPoint += 180;
% V1 @# i D5 X4 R9 i7 d/ W else if( m_nJob == JOB_ELEMENTOR )% w5 u, E5 h4 N- p
nPoint += 390;
% r/ q2 Y7 r/ T: F else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 Z/ U. V) H0 |7 f- d1 I nPoint += 120;9 w& o9 P8 G9 G4 }7 f# z1 C( h
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
e1 k. a. p2 ~- p1 f nPoint += 150;
$ L1 z/ L* K, S else if( nJob == JOB_FLORIST_HERO )( L5 y. g/ X( J/ Q/ G9 P
nPoint += 160;3 d9 V4 ]+ b6 }" g" ?$ I) y! U
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( d* R9 ]3 L. f7 G+ ^
nPoint += 180;
2 W, L' E! |9 w$ R9 Z( }. h2 O else if( nJob == JOB_ELEMENTORLORD_HERO )$ [+ P y2 v* p& d
nPoint += 390;& H9 S. U7 [8 J& g
4 {/ n, o8 C8 x' { I AddSkillPoint( nPoint );/ n9 z; e9 Z* t/ X" O
m_nLevel = nLevel;: W8 C* Z9 l/ r+ v- z, g
" p3 S3 H& a6 Y) u3 T SetJobLevel( nLevel, nJob );* a1 T& t) u- c
m_nDeathLevel = nLevel;( G2 a& Q: a# G3 q/ f9 l4 F' J
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ U. _* _7 y+ w. h
if(IsMaster()) ^) e/ H! s# C8 B- U# M9 W
{
$ j" \8 G4 h8 K int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 W0 h- O/ e3 L" T if( nLevel > 59 && nLevel < 72 )
5 I5 z+ P! o& q dwTmpSkLevel = 1;
: n, ~2 X$ _- v4 i1 b else if( nLevel > 71 && nLevel < 84 )
% e' o# u$ m* E" k& Y! u0 ? ^ dwTmpSkLevel = 2;
- s9 }- @- ~2 p/ N0 g3 [. w else if( nLevel > 83 && nLevel < 96 )) }& Q8 G4 |9 m# r1 {8 Z9 N' c
dwTmpSkLevel = 3;' G7 I5 Z4 ^; D
else if( nLevel > 95 && nLevel < 108 )% h/ O! A$ y" H; G
dwTmpSkLevel = 4;
# r) J' k9 w, p4 _$ _: `# ~ else if( nLevel > 107 && nLevel < 120 )0 f, F7 B, |9 @8 @4 @
dwTmpSkLevel = 5;+ |; b- e" K1 W$ g d
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 M K5 d6 B8 F) X: Y- F { + u8 q' r! U% U( J1 }6 t# X3 w9 e
LPSKILL lpSkill = &(m_aJobSkill);% H. e0 c7 _# u3 N' W8 G$ }
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 C& g) n! \: r# t
{0 M: C( k+ N0 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + e9 u9 }( m, R7 z% c; C
if( pSkillProp == NULL )
8 {% `1 k- ?5 V' w continue;% \2 R3 X3 D6 x* X" ?' v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 g- m [/ h1 g% c n continue;
1 x! B! e0 E( v) _ lpSkill->dwLevel = dwTmpSkLevel; `) {, |5 P v! q
}. Q: {+ d( ]% S$ p2 A
}
9 h0 F% u" Q o3 t7 B }
/ \' W1 Z0 h" ?4 Y3 V else if(IsHero())! T. I7 P/ z" Y8 Z
{* [4 @/ h9 d+ @" p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 {/ D) e/ n* _3 y, n
{ ; ^/ H* C4 U2 v$ o, b; D( }
LPSKILL lpSkill = &(m_aJobSkill);3 y, \6 A2 v, N+ u
if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 J2 p6 n$ h7 H. k, ~( t {7 T4 N* g* w1 j/ K, Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
k. X1 A0 P: v if( pSkillProp == NULL )9 T# y, z. g( [5 K0 ^
continue;- O1 L0 V- h/ e" J7 a9 a3 b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! n2 U- ?4 a; [: r0 N i6 k
continue;
! T9 C7 G C2 _2 V lpSkill->dwLevel = 5;; d. ~& d. W3 s5 l5 P8 c, h6 M; Y0 r
}3 \; ~" [5 g9 G* q3 q
}
0 q$ ^6 V) [7 S }9 F6 `' ?, m3 ]; Q" ^& S! K d$ r
else if(IsLegendHero())2 S( b& a" s7 F6 l. B
{
" d$ a3 S0 ^' V1 U# Y2 { for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 |, p/ ?6 I' P6 U& a { ! v. k' A! S* u/ @$ u# [& \
LPSKILL lpSkill = &(m_aJobSkill);7 w) A$ U; V5 U4 C5 [2 Q E
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 h! @! U* f, K u
{; U+ W3 [ P: C5 M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 k( F# A. I. [2 E% ~7 I1 |! A/ y- c
if( pSkillProp == NULL )9 y/ `' `7 m& n& q- V5 L) n
continue;! U& {9 f1 V) V( @9 [. m$ f& V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' ^9 P) o- g; Z7 M0 p( L continue;1 `' M+ ]& B$ W, g1 S4 R
lpSkill->dwLevel = 5;/ {/ \" \& u7 V U" k9 ^
}1 V) X& D( {4 O5 ]
}
h6 t( m; f9 n- R2 _+ V7 V" o }
# @+ |7 [ L- H0 Y! `/ q% R$ o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# J( ~( W" D2 _ `
if( bGamma )
7 U. j$ B# a) d3 K# K! o1 C4 G {
) i8 _$ T9 Z1 g4 [) [ m_nExp1 = 0;
0 S, A/ g) B# v( Q& t" I0 \ }
, i, C! r. o, t+ g+ u3 b2 U! K
+ d! |. R% P! U6 t5 _, I# t' N ( (CUser*)this )->AddSetChangeJob( nJob );" q6 S" V" r; Q. F( K i' p+ E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 P/ M+ j1 F6 O p
4 B" w: s: Z: N: ?! t
, t9 O3 R u/ V8 P" Z/ {6 T5 `#if __VER >= 11 // __SYS_PLAYER_DATA
. V0 v3 b/ a: b E" i g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 j- r0 j# f! h# K#else // __SYS_PLAYER_DATA6 m5 {4 e# x0 ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 Q. X7 l% C- E
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 L4 K5 @1 _0 B0 u5 ?% A1 r
if( m_idGuild != 0 )
4 a2 j# }; C) k g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
- u+ g2 @; u. J4 K% a#endif // __SYS_PLAYER_DATA# `" R% ]6 r. a
SetHitPoint( GetMaxHitPoint() );
( L: U% n" a8 p* V8 R* D' e SetManaPoint( GetMaxManaPoint() );/ d2 s2 L9 \1 e
SetFatiguePoint( GetMaxFatiguePoint() );
; F6 e( ?3 B( J) O if( nJob >= 1 && nJob <= 4 )1 S# v& o3 [/ W' B3 ]/ t1 @
{
7 C8 G5 T# y6 Y9 G m_nStr = m_nSta = m_nDex = m_nInt = 15;
( s+ s, a3 |" P m_nRemainGP = 28;4 z+ @ F; Y" ^( f3 _- }
}0 F8 C, h- G1 h* O
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
8 J, P* }, }. k; a {5 P4 {' d( |8 @
m_nRemainGP = 118;
7 f# }: Y, G, M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ W7 r) G1 T5 ] m_nStr = m_nSta = m_nDex = m_nInt = 15;6 j' c) v" l$ {5 w8 e
}$ Z! N" |2 Y( K1 |. f! m- N+ s
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 `0 g& e+ F; Q f: t7 n2 ]
{& B# P$ p: H, H* T* Y& M
CItemElem itemelem;
- [' L' n/ t1 z1 x: |/ Z itemelem.m_nItemNum = 1;1 ?; y/ S P! d1 H: a9 E" m# l
itemelem.m_bCharged = TRUE;
9 F* E( \, `. C9 f- B2 }( e BYTE nID;
0 \& N; u4 k8 d* k S s2 R8 v3 N. S+ M: q! `' e) T s
if( nJob == JOB_MENTALIST_HERO )
) r( N E: e* g1 K itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 f, S+ q$ ^3 _ D b if( nJob == JOB_FORCEMASTER_HERO )
% W+ s) |0 x; X- G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* r d* P4 T e; _8 Y0 b) Y. m1 _
# |. P# q- s7 a* w* \. n: G ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 V. ^. ], \' V% J; F, G }
9 ^2 _. b9 d% l/ o2 Y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );* g$ x! n) P. n0 J }* [( }/ O# w3 T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: b$ c/ ?% C/ } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) B/ a% {" w w0 F5 V" i8 B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 P! l. D; b" L ]& {
( (CUser*)this )->AddTaskBar();*/
7 B& _" X3 a- E' p4 Z ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! t& ?/ J! H) \1 }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 x" d$ n z" T7 G* W! j
((CUser*)this)->CheckHonorStat();
/ j9 m! x3 ^% e7 V0 R ((CUser*)this)->AddHonorListAck();
6 n; `" H4 r$ a1 U5 \/ z+ _5 x g_UserMng.AddHonorTitleChange( this, m_nHonor);8 _- r, o8 v& |7 ]
#endif // __HONORABLE_TITLE // ′Tà?" s( R% O8 E; y- q
}$ n; f5 W0 ^9 S1 r
#endif // __WORLDSERVER8 C4 v: N+ N; _4 Z& N- r
}
, P8 V: ?6 o) O
8 H& g; e. M' W$ ~) u7 F1 i s然后你进入functextcmd.cpp并添加以下
' L3 d( w W5 V( f2 O: _5 ~- l
* X( _& F& J7 h' \% |3 d# r代码:; f7 R; p7 f+ C5 R+ I; B- x
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& T$ L% t. z h, p# d+ ~/ f( V/ w下面插入
# M1 u" e u5 ~3 p0 YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + i) Z- v; u: q9 H3 }) J* V! S; g' r/ @
: ?+ b3 J# U" F; [然后你去
; Q4 a2 y$ C( b/ }
2 M; K3 k( ^7 x7 E4 s5 O6 `代码:6 G# P j$ d7 ?2 P v$ j
代码
9 [( } b- V4 [4 u( CBOOL TextCmd_ClearPropose( CScanner & s )* |7 C0 K, U. M7 N: ~) U! l
{& B, q. \# F Z0 I! v3 Z6 D
#ifdef __WORLDSERVER' G8 B" y' p: y- O9 f; T3 E
CUser* pUser = (CUser*)s.dwValue;, e! ?2 P/ r9 ]
g_dpDBClient.SendClearPropose();+ K5 C, I% d. C4 j+ @
#endif // __WORLDSERVER, W* S- d) Y" d
return TRUE;
' Q5 {2 Z5 `" E0 t" o1 u( r}4 w4 T& C) T6 s" V' o; N4 T0 y
下面插入9 ], Y6 J+ J+ h D
BOOL TextCmd_rebirth( CScanner& scanner )7 ?6 ^( t# Y' [- ^0 ^# H5 q) F
{) d% ^. X# p8 T6 l9 D; I0 ]* ^
#ifdef __WORLDSERVER& h6 w( ?+ s3 m( {; n) z) w
CUser *pUser;
2 h* x; K* n3 N+ YpUser = (CUser*)scanner.dwValue;& _3 R9 w9 d6 W% T h
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ O6 x/ p0 b3 o! L- m5 A
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ B; e" j& C- T# f8 ~# @
else
# K2 J, ]8 i9 `5 @pUser->AddText("你还未达到重生条件!");' `5 `; l( ^* H* j5 J4 n% S
#endif
$ _5 H4 f* {7 D5 J" k+ zreturn TRUE;
! Y; t5 u, f9 `( ]}
, W' p2 D9 M, b8 w0 _$ W+ H8 p2 g: D) i/ H
' m$ y3 u1 x$ ^9 l
( G# t, Y: ~3 s$ i7 R, ~& r1 }( ^: m0 b
- z( o* S+ s+ @0 c7 s, Z |
|