|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel, ` Y: w0 w& o& Y
3 w* W* \5 t1 j- D" w9 JMover.h9 {% a6 Z0 ~7 v7 u2 y9 j
代码:
& ]8 v) u8 e6 d3 `9 V# {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 ^4 ]9 v! n i* Y1 s3 W V6 _. m, w( Q' P
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
7 B& @# \' j a' c5 @" i( G" j3 h# q$ k Z% T5 T, _' d( F' G9 V
然后你去mover.cpp添加( {" [0 J, X/ J1 z R ]! f8 I$ y( P
0 Z% h( c( A0 i$ [* _代码:9 C8 D0 ]3 ^5 ~ y; ?/ Z
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 H( u I; C+ ~, W% F' [% ~{ X3 A8 v" C- L* t, i
#ifdef __WORLDSERVER
$ U( C Q0 q" W4 ~0 A* ?4 w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 ]. f) r4 j/ Q! ^, a9 b# C8 B
MoverProp* pProp = GetProp();$ A2 {/ U& s! [& w) ^# S, h
if( pProp )4 \6 t( x+ y6 {4 |
{
. z$ U) |' x7 j9 l if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 \( G7 _6 ^: R9 O8 r y' i/ A
{ }8 X c! v; {3 [) H# e
AddChangeJob( nJob );: h2 {, U; N* m% f; s
}else{
~8 m6 |* P* g: ~, n" _ return;
- Y3 g; w: w& Y$ y }
. ]9 H3 i+ Z2 N7 Q! l int nPoint = 0;+ |/ V! L1 x+ ~) H4 F
if( m_nJob == JOB_MERCENARY )/ B& `2 p4 I! j
nPoint += 40;
4 A# B7 C' G5 R0 f2 ` else if( m_nJob == JOB_ACROBAT ) ?/ Z+ M, }- J
nPoint += 50;: B9 O# n, j* g4 x
else if( m_nJob == JOB_ASSIST )
A/ |- s1 H: X nPoint += 60;
5 x O. Q- x; s" e9 {; G& y else if( m_nJob == JOB_MAGICIAN )5 h* ?1 c* Z3 v8 M' V3 r/ Y
nPoint += 90; g/ Y) k1 q8 M* v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 }- V8 u0 H; z. H+ b3 ` nPoint += 120;
5 Y$ h- y( f+ @( d/ e( x7 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) ?* q$ ] j0 C. p7 e, z
nPoint += 150;7 D8 O6 W: O$ X: p
else if( m_nJob == JOB_RINGMASTER ) u& ]6 E2 q# Y- _5 e
nPoint += 160;
9 X1 u: @1 C- a, z* Y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 k2 n' o0 ?. ]) J8 J& v
nPoint += 180;
5 x _7 ]! g6 n else if( m_nJob == JOB_ELEMENTOR )% y: r' d- l" \: K
nPoint += 390;
4 b( ?, C$ B: @2 v else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 i( s& S% a( O5 Q" Q. z0 j
nPoint += 120;
) ]: d/ [ L1 p; l k1 }- @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; b' y k- ^' ~* E nPoint += 150;! p: X2 o, m. {4 f+ q( g* `
else if( nJob == JOB_FLORIST_HERO )
4 E, ]1 x a: g: [/ s. K- y nPoint += 160;
% ?% ?" u% L1 l: @* U0 k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- V1 } w0 X# p" k% V
nPoint += 180;
) ]. Q- P9 u" t0 e: V% c- h& I else if( nJob == JOB_ELEMENTORLORD_HERO )
2 D3 ~- K1 m! I2 g' ^" j nPoint += 390;5 U3 s9 b& J3 B6 R. m, f
4 B8 T5 t, ^) L; h
AddSkillPoint( nPoint );
% H' Y( T- X- f( t m_nLevel = nLevel;
( [- H5 p+ T- v, \
& A z" _) r7 n v SetJobLevel( nLevel, nJob );9 ^8 b' K Q: C( p; k
m_nDeathLevel = nLevel;9 w% G2 I; w1 k& w8 l$ j
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% Q5 }: U0 l: f. B
if(IsMaster()), U0 F: C( B7 G: h) @4 y
{
2 ]/ k9 Z# _: b) q8 r! E int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# n0 g1 u/ s& r4 [; O8 V/ c if( nLevel > 59 && nLevel < 72 )/ S* v" h$ X) S8 _$ O
dwTmpSkLevel = 1;
0 `. j3 u O6 Z* w; ` else if( nLevel > 71 && nLevel < 84 )
# L) g' q0 k# O% X4 Z1 Z2 C1 h dwTmpSkLevel = 2;
0 o9 }2 p8 v6 H3 J& f& Y else if( nLevel > 83 && nLevel < 96 )$ q. c: q/ `! K* Z, R
dwTmpSkLevel = 3;5 U M# q: T, x
else if( nLevel > 95 && nLevel < 108 )+ K( M N( t3 Y2 D) G
dwTmpSkLevel = 4;
, F+ C- G$ M0 G" k else if( nLevel > 107 && nLevel < 120 )$ \4 k) d9 R" G# }
dwTmpSkLevel = 5;
- I6 ^0 V2 K @3 ~9 e for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' k: }( B- P. V) X
{ - N) I; O' w9 B% W
LPSKILL lpSkill = &(m_aJobSkill);" l+ S8 G" H. b2 |, b
if( lpSkill && lpSkill->dwSkill != NULL_ID )# x2 ~! E) ]. C. F4 B! s
{
* q" i- E/ ~$ l( W# Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 y& g' R" A, ~' ^: s, h' p
if( pSkillProp == NULL )3 y) L s% p a5 E. q
continue;
) ~, [6 m% O; B if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 S/ ~, f! i/ J$ d, j/ T- i continue;
; f, h$ L' a& L) K lpSkill->dwLevel = dwTmpSkLevel;/ t9 @1 C% _. d2 m" q8 O. [/ Z8 V
}9 |4 p/ J) v* O' o5 b, Z
}
6 j" C \/ H) s [# U+ D }+ ~8 D2 H0 O: C+ W3 F- }: R
else if(IsHero()), z8 |* }. D/ T* u1 n
{
: Y& Y5 x9 H. Q2 G T for( int i = 0; i < MAX_SKILL_JOB; i++ )
) a3 m+ w! R1 Y- { t" E {
0 D2 ?+ X" ]- W X4 ~2 ]8 G LPSKILL lpSkill = &(m_aJobSkill);
+ H6 B' q0 h$ T9 e( ^0 K9 i if( lpSkill && lpSkill->dwSkill != NULL_ID )
! D1 h- l: |$ ^ {
/ H4 ?; Q. }0 [+ G9 q$ ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- o% c, [4 C; o0 k7 C if( pSkillProp == NULL )
5 T. L2 `" r- g6 m+ m continue;
7 x# W; x# l8 V4 C8 X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 n- r3 v+ A, N* `! G1 [
continue;
- _ x* Y% c o5 F5 V; v! T4 m lpSkill->dwLevel = 5;
& g. _5 f4 P: S+ y. \$ u& \% |1 e. { }
* A+ U* c) _/ i7 [! T% ` }
: p% E1 @( A# a- |1 I- K }
, v5 Y5 o& Y3 E) {" T5 G else if(IsLegendHero())# W' T3 `7 T: F
{
0 ?* D9 B# s& {, E0 |1 f for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ Y) w9 v2 ^. J+ ]% ?, n- _+ g {
8 ^- A6 d" a: Q3 M' ] LPSKILL lpSkill = &(m_aJobSkill); |$ ?) @6 x! H* a1 e( s1 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 ^% ~, I# W7 M. Z, w {7 {* h8 x* S R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # f7 z3 X6 e4 r# o2 I( H
if( pSkillProp == NULL )0 ?, U& a; K) q/ ?
continue;: A; ]; r4 [- x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' G% Z& Z# g( M s
continue;, }* D% s6 K, H G$ e, {
lpSkill->dwLevel = 5;( h! I. h6 j7 b- X
}
. N, }/ X/ R% {4 T* @ }
5 s3 Z( j& ^5 a" z$ M }( m1 z7 W/ i2 m5 f) ?
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# B! Z3 ?" t7 P. U" e$ } if( bGamma )* }! I! u' J2 e" S. V. I. f
{
. S9 p I; t! | ~+ d m_nExp1 = 0;! X+ T' k& }8 a$ D4 y( F$ K8 s6 G
}# i" `. O) p a- n
! ]5 o, b; C |+ Q& e. a/ x. W4 n ( (CUser*)this )->AddSetChangeJob( nJob );
7 M, p! l4 R; U2 G" y7 J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' E2 e' M. `4 H9 [ q
5 J9 E+ H8 c# q- D# i
; d0 u" H! ]6 K7 h#if __VER >= 11 // __SYS_PLAYER_DATA ~- B$ H& U! o ?
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
# ~$ R2 x9 |/ \#else // __SYS_PLAYER_DATA9 h0 v/ X$ F/ i: x0 ?5 U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
/ U: Y" V8 Y5 ~* l g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- x. Y& c# Q% o0 B. G# X0 o1 H: K
if( m_idGuild != 0 ). b7 X1 z7 K+ s1 X
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 S! \- I2 K2 j: L9 R
#endif // __SYS_PLAYER_DATA% `5 @! U D) y) I- a2 G2 n
SetHitPoint( GetMaxHitPoint() );
8 \- L2 c! M1 e SetManaPoint( GetMaxManaPoint() );
2 n6 \+ ?3 H4 r5 @( { SetFatiguePoint( GetMaxFatiguePoint() );+ M" ]" t5 \6 K& k9 b' R/ ?. D
if( nJob >= 1 && nJob <= 4 )
% B% M( ]2 M3 D) W' _) [9 P+ g E4 { {' H; l5 m# g% I+ T
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 S! x0 G9 R4 u
m_nRemainGP = 28;
4 i3 w3 g) N& G) f' s5 t }
8 C0 r+ F f$ T. I. ~7 s6 f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* v" a; c7 n+ h% C {
1 U$ Y9 F+ L; x m_nRemainGP = 118;1 Q5 y6 |( r3 p( }6 X
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 n @' w. U* q: c8 p, z3 `+ d. ?1 S r m_nStr = m_nSta = m_nDex = m_nInt = 15;
- Q: U7 n8 V% x, ^7 F+ Y/ t7 V }1 C6 h+ w4 G! ^8 j
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 i" K: e) B5 ^5 r' a7 S) C {
7 U1 Z8 q- M$ \5 a/ o } CItemElem itemelem;
" ]0 T% c" g4 O$ G4 t* ^ itemelem.m_nItemNum = 1;
& i2 A" d- b& X; H itemelem.m_bCharged = TRUE;
# T q7 L) n, g- S2 J/ w1 Y4 k BYTE nID;" Z. ] k% w4 p" ]
! g, P! o5 {, Z/ ]: f
if( nJob == JOB_MENTALIST_HERO )
% w# p8 a3 ?) B itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ Y; m3 s2 P* L! H7 P8 B
if( nJob == JOB_FORCEMASTER_HERO )
5 W$ ~- B$ y7 v6 E1 I' v# ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 ~( w c' ^- [4 U$ |0 u9 \3 [. v0 H# ]& p
( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 d1 c3 D' ?: X2 g$ l: G' s }! P6 G0 T; `; P: ^' s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! I" [' a' @+ d; D" L ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
& ^; g& F1 G; \& ?! y; g ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 s& T8 P! t* n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; V. {5 l, y6 N ( (CUser*)this )->AddTaskBar();*/5 T. N ]4 L8 l: v( ]4 r
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: L/ }9 d( @/ ~! e9 z" L$ \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 h5 R6 i% x2 c, C4 l! s3 c# m/ C6 _6 s ((CUser*)this)->CheckHonorStat();
" e. h4 a; n8 A1 N/ W2 R. P ((CUser*)this)->AddHonorListAck();
( \0 ^) h2 ^2 k# Z g_UserMng.AddHonorTitleChange( this, m_nHonor);7 u$ [8 ^/ \) N7 |! s6 g/ N
#endif // __HONORABLE_TITLE // ′Tà?2 @, |3 s) ^# t1 B4 U( H
}' h P' B! ?+ {! q9 H, s7 F
#endif // __WORLDSERVER
; x) v2 t/ H- D# o}
4 H" j& R5 o* Z3 W9 U" n. i7 G) \- C; j
然后你进入functextcmd.cpp并添加以下
3 O5 Z; |; i% n) `
/ Z0 I& K4 V6 {) u7 g0 {代码:
% c- M, l# E! S. i2 _# a" mON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 C0 l9 z. _/ S' \/ s& a; }( N& l
下面插入' o" S7 `, {) F0 A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) j% ]: q0 E) D" X+ E6 h
4 a/ K x, j# ?$ L$ l5 x
然后你去
6 D" ?5 g2 N3 W" `: o5 y8 t/ c5 [- P. D( I1 X+ R, c
代码:. X+ x& j6 Y( k7 G U- c
代码; U2 e2 A9 |# B O$ Q+ Z
BOOL TextCmd_ClearPropose( CScanner & s )
4 d R& Q9 c' |5 Y# F6 { K1 N: s{- G+ w- a: f, w5 ?" Y5 g
#ifdef __WORLDSERVER* k, W) u. H t8 d3 x
CUser* pUser = (CUser*)s.dwValue;
: a( ^: K# e+ D% q0 ~ g_dpDBClient.SendClearPropose();
& d+ a; G+ y$ D) F! @7 a#endif // __WORLDSERVER
" u% a/ p1 D9 {- x return TRUE;
* Z& A9 E; H- K, g( v, r# ^1 B}: `3 ^; v4 ]; H' A6 \' m% a
下面插入 C+ L; ?- m i" s
BOOL TextCmd_rebirth( CScanner& scanner )
- \# G5 A& ~8 c; x& j/ P! B{ v- s4 b/ _! T2 `
#ifdef __WORLDSERVER2 {5 H' [2 [: F4 p
CUser *pUser;
C$ k9 |& R1 f8 lpUser = (CUser*)scanner.dwValue;
6 Z2 c: r1 U% t7 X, d5 Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 z, D9 q" f+ `$ L5 }6 k+ w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
( ~0 H# Y4 A& A( r5 c% lelse" B* p5 R" o1 {9 Y2 p
pUser->AddText("你还未达到重生条件!");
0 v9 b5 g. I. }4 a: P7 |' w. [! @9 m#endif- R y$ N, |4 u" s) t* ]/ z( F
return TRUE;) c m% m) t: @2 D' G* d; S( z
}
: k+ H( P% ]4 i/ M% s" z
, E& C9 ?* `, F. }! G% d
6 A7 W; c! H6 b7 Q9 g( }: g0 p# E+ B! [3 B9 \; I8 S
" n$ k# J( X5 h Y- [
|
|