|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 b- n+ R6 V& t$ [$ t( [' R7 R; A5 i: u, y$ A- w
Mover.h+ k0 g8 l# z: a$ Q g
代码:5 d3 J6 D: N+ J5 x" r: R6 w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. ] |6 [" k+ H6 X8 ]# I
0 j0 I& {) j7 f2 q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & }6 G: n2 j( R; U
* H3 h; X* O% s1 r. p/ J7 X
然后你去mover.cpp添加8 c: \4 F! }4 Y: y( P
) ]* V$ x' h6 R! [代码:. K3 @/ e' R8 q7 v# ~# y
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# z/ S3 g3 U M
{
3 M5 ~. |8 X. O3 S#ifdef __WORLDSERVER
3 R- R* i) {0 h4 |0 l9 O // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
& f6 @. v3 o% B! K MoverProp* pProp = GetProp();* z- x5 @# [" m8 Z% m
if( pProp )6 F3 Z7 |1 N* X4 i1 Q+ y
{ i; _+ O# ^5 w8 @
if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 Q/ X: X* n7 \# _2 T B
{$ s! W# d" J* {! s( o. S$ g
AddChangeJob( nJob );
; W3 i& o; p9 U+ Z5 y1 }& ] }else{5 }& B) r2 z3 E" h# u! j+ ?* T
return;" |/ j- |0 R$ W9 L( H G$ K1 C
}# J F' [% \# R) A' i
int nPoint = 0;
# }$ v5 |6 u, U9 h, {) R. s if( m_nJob == JOB_MERCENARY ). J+ U4 T( u# {$ L' E0 G
nPoint += 40;
& m( p; s. {0 l5 K |% A else if( m_nJob == JOB_ACROBAT )
6 q) s% p0 B. y7 N( R* P: y6 { nPoint += 50;( g- k/ N/ o4 z) ~% v: O
else if( m_nJob == JOB_ASSIST )
* n: [( H! d! b5 D: ?! q7 a nPoint += 60;
" I, b8 v7 f1 o4 v else if( m_nJob == JOB_MAGICIAN )
" x0 j0 J: J$ c8 Q' ?# z7 x% q nPoint += 90;
( e- ~# S5 ?* M; T& G, b+ g" I else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 a) u2 W! _8 G y8 t nPoint += 120; y; p( H( @0 s4 \
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 e/ B# G* o* i% @2 V nPoint += 150;. G8 {% H! l* g% o0 n9 M3 [
else if( m_nJob == JOB_RINGMASTER )
2 U r$ M6 I& O4 h* G1 g Q nPoint += 160;2 ?! U$ X$ h2 W% G+ l" n7 o( x
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
) i* M; M/ K6 A ~' R1 } nPoint += 180;9 x. t% l0 T/ D( r9 U6 I( T7 ?7 [. Y
else if( m_nJob == JOB_ELEMENTOR )- V& R" k9 d2 X, W
nPoint += 390;
5 o) P! p9 K: J1 b" h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
; y. p# K7 z8 z; w6 l9 C5 Y( N nPoint += 120; N& l+ V3 }' z" T9 K3 W/ C9 Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 r% s) j, Z2 O5 | nPoint += 150;
% s X# q* k% s& f! S6 u3 p: { else if( nJob == JOB_FLORIST_HERO )
1 r/ l# C: a: ^# |& r2 K7 j nPoint += 160; A' I! g+ c4 j( F, P
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )# A/ X4 F- o# ~2 m3 ~' l
nPoint += 180;* Y" U. `" a; ~+ Y* r( C
else if( nJob == JOB_ELEMENTORLORD_HERO )# I {6 H; L/ M& z
nPoint += 390;. Q% I* C U6 R! I' Z: y
2 ^7 \! u" L: t E& p
AddSkillPoint( nPoint );
% R$ Y, B# d8 a1 V/ C. ?+ } m_nLevel = nLevel;, j z8 B6 \8 s- v) b
' X0 e% w/ E" K5 o SetJobLevel( nLevel, nJob );6 m3 s' a* q, w; R7 c- s' f
m_nDeathLevel = nLevel;
/ M- N4 ~8 }7 a. r- V7 c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 T1 n1 w& S# i; u) | if(IsMaster())! }" W% P0 O. D8 P7 a! Z/ h
{
' ^/ h; l; p: D( G8 W6 w* r int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 q* z6 L$ j9 ~) I. j. R, E$ V7 l if( nLevel > 59 && nLevel < 72 ), k' U2 z/ q4 g5 a; z5 S
dwTmpSkLevel = 1;9 n2 w6 ^+ J) }. O
else if( nLevel > 71 && nLevel < 84 )% R' z" P0 j- y/ A
dwTmpSkLevel = 2;, s7 Z( U( U* y6 R" X! [( B
else if( nLevel > 83 && nLevel < 96 )
- H6 S$ c6 e2 p dwTmpSkLevel = 3;
' V3 C8 V6 B" F1 ?3 h else if( nLevel > 95 && nLevel < 108 )* ]5 m% T, R: E# h4 z
dwTmpSkLevel = 4;
1 _+ C% D5 V9 x8 x* Q1 V else if( nLevel > 107 && nLevel < 120 )
0 w$ I3 Z9 g* M& h) ~5 a1 @( i dwTmpSkLevel = 5;0 W' z2 x) d3 E2 X. N1 n2 G3 E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 |& Q# f% ]4 ^
{
- ~% Y* `( v" k; S4 G6 J! c LPSKILL lpSkill = &(m_aJobSkill);
2 }$ h" P+ V# o; J( a) P0 X7 t if( lpSkill && lpSkill->dwSkill != NULL_ID ). K4 @% s1 [/ r& t
{% ~; F: H0 @0 v4 n# D. p' A+ l- G1 l
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- u+ m: J& I" }' }' b8 P if( pSkillProp == NULL )" s, f+ B% y" J/ {% d
continue;
9 B* O+ u7 h& j' K- m4 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ i3 r7 i0 } a3 f6 |$ X continue;
) j% J$ v$ k% @7 m lpSkill->dwLevel = dwTmpSkLevel; U2 f0 p8 }' s" \8 u; b
}" {0 O/ w2 `; B( f
}; {, C8 |( K9 v/ w
}0 k5 |6 `! D& Y5 X y: \2 I$ A) f: q: f
else if(IsHero())' l% U7 _& E+ a
{
0 K7 U4 \- e2 n5 m/ v, { for( int i = 0; i < MAX_SKILL_JOB; i++ )
, M; R) T) c. u& D {
. I$ k9 ?* K0 t* g! N8 X: D/ Q LPSKILL lpSkill = &(m_aJobSkill);: w0 ?$ C8 \4 H+ i+ Z% {' i
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 T7 \) i5 [' e, {0 i3 Z# R
{/ r8 i% I! J$ G; N! v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, ~* B1 f5 Y# Q" v9 M" q, Y: B if( pSkillProp == NULL )+ s% s) [( P7 V K7 v
continue;; s3 q" p, G) v
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, t; ]3 K( u: X) Z4 q. y& \ continue;
2 v v P$ W9 Z! h$ P* g lpSkill->dwLevel = 5;: J3 h' y% D9 B) o' o/ s$ {; b4 n3 p
}
# Q# R5 K- o5 ~$ W# U }& E. ?/ o0 j/ @* U) l4 z
}- ?3 v$ _& J- T' Q( u
else if(IsLegendHero())
& a$ R4 j Y% l3 h1 E1 g {$ x5 }! S. G) a! X: ]3 o% G8 `1 c
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) j9 p# _' ?' F& a5 e5 q7 F4 o8 b
{
& B# l' \* M# w0 F LPSKILL lpSkill = &(m_aJobSkill);
+ J+ |) U% s- R. b$ V! t' S) } if( lpSkill && lpSkill->dwSkill != NULL_ID )
: n1 s8 K4 Z1 c3 t+ [7 b, L+ b {4 x3 p! z1 @/ p! V: Q; {* p" Z4 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' X9 F0 k- {' Z8 D& B2 J
if( pSkillProp == NULL )& a( x+ n: L8 s
continue;
" M8 H, X' I6 L+ y# B# M$ F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: ], I4 W0 J5 h6 A continue;8 c; e* `/ e& E. _' s( @; n* ?1 x
lpSkill->dwLevel = 5;
0 \5 w& k1 s1 B% z }6 ?$ d3 W8 ]4 D6 u9 s+ N
}) [' Z3 o/ q& w& G. h/ M8 p+ e. Q. q
}$ u- ^6 t% h8 z9 V: Q- V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, R7 I3 x3 \/ `3 G# U$ q
if( bGamma )2 g, B- u! G# T" |2 m. t
{
; u" @; l- ?3 U' ^0 |" j4 | m_nExp1 = 0;
4 ^$ y4 d) l- ?7 C, `6 M }1 G6 ^; u3 S$ c9 R! z! G
K2 U6 \ i6 p) o$ M5 E ( (CUser*)this )->AddSetChangeJob( nJob ); a2 @& }! v6 _' R0 P+ @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
2 ]1 F4 D9 m: m9 i8 G$ o
1 a& x) P8 O1 t9 u+ [+ @1 c8 X1 x: K* R' S( ]4 n
#if __VER >= 11 // __SYS_PLAYER_DATA
8 U* l" e9 Y7 G! \5 b) q g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
6 v! T7 I) Y) Y' P! I' R( F#else // __SYS_PLAYER_DATA9 p$ R& H- B3 q4 e
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 z" e" e0 W Y$ x# \
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );3 t3 i0 I2 [0 B" I0 f. J
if( m_idGuild != 0 )
+ U8 t0 ?- @* }4 i g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );$ s- C. b2 u: \
#endif // __SYS_PLAYER_DATA
6 E: w5 {% A+ L2 U. Y0 H. a SetHitPoint( GetMaxHitPoint() );: h2 b) v* g9 q' E
SetManaPoint( GetMaxManaPoint() );- z2 {" C# A1 K& n$ V
SetFatiguePoint( GetMaxFatiguePoint() );0 U' P1 U# m# H& x* ]
if( nJob >= 1 && nJob <= 4 )
5 M' R4 V! G Z! v& p# J {
! i# r. A8 k* H9 M$ w+ G m_nStr = m_nSta = m_nDex = m_nInt = 15;
, W, s) G5 m) H8 p+ C' h m_nRemainGP = 28;
% R9 |2 x. A- ^ }5 j7 Y0 I9 O' D$ I/ J* l3 R
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ): G; C' n1 T' F l e: G
{) b, v) E7 [; j, r' `: x0 O0 w) u( G
m_nRemainGP = 118;
$ i& u, c. b( W7 _5 A( N1 s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& W5 g- L( s$ Z( Y% n' M. n/ t m_nStr = m_nSta = m_nDex = m_nInt = 15;
& F' {2 k* Z5 }, I }
0 j% R' \; @4 k7 @ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 E8 a0 C7 c: W6 b
{) z' @1 X2 s% T# w: D
CItemElem itemelem;
1 U$ D# F( x) V itemelem.m_nItemNum = 1;7 [( T; u/ q; h9 Z% ~: Q- j& G
itemelem.m_bCharged = TRUE;
$ O4 z3 L! \1 S BYTE nID;
" a- ^( {/ c& q) L* F; D" k! D; ~4 |1 {! w5 B/ ]
if( nJob == JOB_MENTALIST_HERO )
5 G( v% r0 f% R) [. _+ _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;# Y6 s: ^1 B: Z
if( nJob == JOB_FORCEMASTER_HERO )
3 _& `2 {: c/ _/ J: K itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! g. L* G1 B* n0 M& }2 Y
d8 g4 w( c- b9 u ( ( CUser*)this)->CreateItem( &itemelem, &nID );7 @; y A$ x* Y3 }9 q1 |
}! n1 Q* ~- d% M+ _- o
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
1 e- X7 M0 t0 D0 _: `3 ]7 v2 E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );7 m; e" f/ Y& C$ b3 r3 E j, ]. N o% q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 N* h( |* I c- g0 Z; f8 F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); n- n/ t1 A" d/ G, }( N
( (CUser*)this )->AddTaskBar();*/
, C! O. { k2 C/ U ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );* J( \! W2 m) d! |% W/ {. z/ `7 M; y& T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& _8 w5 u B# j% ~8 Y
((CUser*)this)->CheckHonorStat();
( U1 C7 O4 V; C ((CUser*)this)->AddHonorListAck();: s$ u9 L( {* n( _/ ~# l
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ O2 Z$ P* u( Z1 u, @( L
#endif // __HONORABLE_TITLE // ′Tà?2 ?9 O7 ?% G$ Y3 v9 J8 K
}
! F8 q" D/ F7 j) O1 g#endif // __WORLDSERVER
- n' \4 V+ J% r: Y3 v} 3 y/ ]. `1 b" S: Q0 \
) F8 ~# N L+ v% H- f然后你进入functextcmd.cpp并添加以下
$ j2 Q0 h/ j4 ~, |& u# j# p8 f; s* G% m* [, R# _
代码:
8 Z5 [/ j% q$ s+ H7 F1 P5 RON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )! L+ V, A' ^) d6 O
下面插入
2 b- E U8 r! ]ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
, G. \* h: S. h j: H0 O) b7 f7 W4 ^0 X
然后你去
s, _9 Y$ @# w: R2 o
4 Z" E2 m4 [% H4 b. d$ q- ]/ p) i代码:0 M. O9 O8 C* q
代码6 m. V+ ]1 y- ?4 E' }
BOOL TextCmd_ClearPropose( CScanner & s )
5 Z+ X Y. U0 q w% X0 w9 a( F{
u! H( R: x, g$ B* i6 U#ifdef __WORLDSERVER9 M2 ~$ q2 U( w) I, D2 X* G
CUser* pUser = (CUser*)s.dwValue;
' [+ N% K5 y# v$ v& E: R; |7 ^& d+ w g_dpDBClient.SendClearPropose();
( B) H& Q5 I$ D* C( o#endif // __WORLDSERVER
6 Z: W N) l m! V4 O return TRUE;
$ a9 P, N& \% I) V5 c. ]}
2 r, h4 D+ n- X, H下面插入
9 u5 s2 |4 t CBOOL TextCmd_rebirth( CScanner& scanner )% Y4 F/ f* R; S6 |. o2 N% ^
{
! g: n; u! c4 O0 b, R: A#ifdef __WORLDSERVER
: ^' H J" v( g1 j. ]" t$ ~CUser *pUser;) X) |' J: L+ g* Q
pUser = (CUser*)scanner.dwValue; b9 h8 k6 ~ W/ N' {
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())* {, M& r; R. w6 k4 ?0 D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
: B' ~0 W9 b2 V3 Felse- {( ~" O" d7 X
pUser->AddText("你还未达到重生条件!");
( h4 q* w/ J% L& a, y* ^#endif
$ \" j; Q9 r! }# S' S Ureturn TRUE;
; e% f b S' Q* m} 4 N: R0 y4 X: @2 e$ I2 n
5 e* w$ u- l( q
6 C; ^6 T6 q( J' i z$ K+ J" K4 k0 |- P0 V" ]& w- x( B
a c! {' B$ C+ t |
|