|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 B) r' T8 y; J7 J l: u
' u1 h# t! y0 E5 bMover.h! e0 ?1 o' V# q& u
代码:
9 V8 g; z) h1 J/ I& P找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) Z: I1 |. {- |6 i. V
9 ?; X s% m8 { S2 ?, p$ D9 ?& t2 k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 [9 r# e5 b8 A: l! g* @; {1 e8 w9 O/ F% ?$ Q; w
然后你去mover.cpp添加( _4 ]; `; S3 l1 m/ ]7 T( a
, L( y1 y7 Y- O
代码:* m/ |8 P/ D( d# z+ |
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
+ z% _+ a* c! v0 V# x* A{
% P, V B; O, H$ W B t) G" J#ifdef __WORLDSERVER
8 C! P. M% ]: E& a // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) u" M" M/ s1 _' U# E
MoverProp* pProp = GetProp();9 E0 {5 y2 @/ g: R5 t) |
if( pProp )5 a+ K6 W7 ~: D: k$ i5 V
{
) P. L" V; N- L2 k if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- ~( j F7 _# n2 A; i/ I {% K4 z5 r7 z# A& O
AddChangeJob( nJob );5 l* W+ s7 F/ C& u
}else{
7 L8 ]; n+ h4 x$ o return;8 N* Y2 T; P/ l% Y5 P
}* ]3 i' U4 ^2 H
int nPoint = 0;2 ?) B) H5 }4 v$ q) z
if( m_nJob == JOB_MERCENARY )
7 s( u( c! T$ x6 M nPoint += 40;3 |& _ N2 E5 k: B Y, E
else if( m_nJob == JOB_ACROBAT )
+ a0 ^+ q3 S' S x nPoint += 50;
2 t( W& I* k: y$ h' f else if( m_nJob == JOB_ASSIST )# f& o# t/ @/ V4 V! K: S5 U5 p
nPoint += 60;; G4 F+ l1 d- [& P1 N- n
else if( m_nJob == JOB_MAGICIAN )
& @% {' e( U% w) Z3 i" s nPoint += 90;
3 ?2 l# E8 q8 _' [: g8 E else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
Z; J: f6 O( `* i: L1 C1 Y nPoint += 120;
3 a6 a& `7 T& a, {- t$ n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )( y& X% \" d% v7 a: m5 d8 Y
nPoint += 150;: d' {" Z/ S2 }) I+ H% H0 `. p
else if( m_nJob == JOB_RINGMASTER )
& ? g3 T4 e' E( T& y( F nPoint += 160;
5 h0 z* c9 O# b5 c6 B: Y$ X8 E else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( x/ ?. ?7 w9 ` nPoint += 180;8 c3 p# L$ p" Y3 z" m7 Q, f
else if( m_nJob == JOB_ELEMENTOR )
" O3 v( v. x; [" g: H# h nPoint += 390;( P& [6 A% }* D, z, P$ Y* r; y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& C: `6 I% y6 J; |; ?- U nPoint += 120;
- S5 ~4 M- i1 K else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( h0 N9 j# J8 b- e- I, @5 o; a0 y* O+ c nPoint += 150;- t: C$ g0 V4 { ^0 \& t5 g
else if( nJob == JOB_FLORIST_HERO )
* J! n# X9 }, K* y% @0 D. }+ G5 C& J nPoint += 160;' m. @) Y! S4 p+ g* w% V' n. _
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 P/ ~2 f; N n) ]1 ~" s# H nPoint += 180;+ d2 D) m, e1 x/ a! {+ a7 u
else if( nJob == JOB_ELEMENTORLORD_HERO )' d7 {- }, t7 S4 r# z5 ?: I
nPoint += 390;
* r( g3 C# n& @) I6 m4 e
+ A9 V! H0 C& ? AddSkillPoint( nPoint );
' ?; J5 w- e2 ]4 M( C m_nLevel = nLevel;
' ~* w' W/ B! i/ u. h! ~( i Q# ~. i# G( G0 Y0 |+ v
SetJobLevel( nLevel, nJob );( O" A( v( _, J: L/ X
m_nDeathLevel = nLevel;* w3 x: G' \5 A9 f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans( J, b j0 M5 P/ K& a
if(IsMaster())7 T6 R6 G3 w$ j; H2 i, W' p& J
{# N: p0 c3 [: h6 s$ `" |
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 {. p( y# E# P( C if( nLevel > 59 && nLevel < 72 )9 S2 u- t7 b5 o! [. u
dwTmpSkLevel = 1;
1 A# L1 p$ c# ] else if( nLevel > 71 && nLevel < 84 )
0 n( u, F' Y& ^7 M4 H; {# c dwTmpSkLevel = 2;- ~1 X+ j ?) x. [5 s8 a0 H1 ~
else if( nLevel > 83 && nLevel < 96 ) X1 e A+ y2 T8 ]
dwTmpSkLevel = 3;
) t, X9 \. i# T else if( nLevel > 95 && nLevel < 108 )
. o& J M4 @& A' {- p) } dwTmpSkLevel = 4;
! T! E( b I$ L! @ B8 o1 ^2 j else if( nLevel > 107 && nLevel < 120 )9 T$ D) I, L9 L0 b' U, s# p
dwTmpSkLevel = 5;
U) ~. l0 ~4 p* E5 ?# [ for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ m& W; ^, _& P# Q0 I5 t8 b { N9 |$ F1 I5 _
LPSKILL lpSkill = &(m_aJobSkill);
. e( {8 L# d5 d& z$ e7 {! I5 _ if( lpSkill && lpSkill->dwSkill != NULL_ID ); A( A- Y8 v: c7 E2 r5 t- ~
{
, Y2 I8 k# `* Q; t3 `& P$ } ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 o- p; l* g7 X, m9 f" L
if( pSkillProp == NULL )" ]% v* v% I0 q8 t
continue;: q2 \6 v( |. i, ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 m$ J! M2 y4 i
continue;* h# d: P! ~7 o4 X$ |
lpSkill->dwLevel = dwTmpSkLevel;
# X' ^( X* X, f2 i# t$ ~: U+ i }
" o# m/ H% R' A1 P' L1 m }
: I- A( j$ t; H1 V7 I }
6 J. v. q, F9 | B7 o$ c8 w: m/ w else if(IsHero())
# ?7 X0 {5 w' h {. a& U+ e: q- t1 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 ]/ c* G; |3 Z# i! H
{ + \. T* v6 ^7 u& L! N) G
LPSKILL lpSkill = &(m_aJobSkill);
$ A: t5 `, `( ^0 [% ] if( lpSkill && lpSkill->dwSkill != NULL_ID )' ]! q8 B& G& f% G A4 m
{
. Y0 Y$ }6 p- \0 S/ X% D" L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' J; T0 { P. o/ V& v* ?
if( pSkillProp == NULL )0 U# S9 T4 p2 K. y; t, r
continue;
- i$ {) K* |# l9 i if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 X3 v8 S/ K9 f; \* R4 h5 B1 x continue;0 d: m. M8 g* w8 `
lpSkill->dwLevel = 5;
6 O$ k* @8 a: @. Z+ k/ N% l }
3 i$ j( y3 }% V/ V }4 Q% g6 A# p+ Y2 m9 ] ^
}
6 i6 R. U, H8 ? O4 k+ B else if(IsLegendHero())
f2 T1 V/ }; R W {% L* t" o0 ^1 k1 ]6 _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 z! t: N m$ P; R1 ?1 V0 `" `
{ ) t9 {- Y& {9 M5 c
LPSKILL lpSkill = &(m_aJobSkill);
/ f2 y) [# W5 u if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ p L( s* V5 Z @- M* e/ J9 v, r {. O) p4 F. G" x9 A+ m7 s; N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - i0 g6 }, z2 |4 F4 _
if( pSkillProp == NULL )/ U! L F$ v/ F& l
continue;, i& ?+ L" h; @ b3 V" N+ y9 G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
( l8 V8 m) O1 A( p- | _ continue;
; b' m6 T9 B* w% |# V1 R' l lpSkill->dwLevel = 5;
) D8 m4 b$ i0 I( h7 P" R4 h }/ z# @; [! u' j+ C3 f& d3 N
}
6 V) t( ^6 [; K- a2 h4 f$ S }% o8 G; E: `, f8 \. k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( D ?6 H2 N% v if( bGamma )5 K6 i$ v, o: {
{) G7 d2 s R5 l" c
m_nExp1 = 0;
6 n" y3 J' Z: [/ a) U# D2 B2 E$ M }
* W0 _6 P. i0 ]
* K7 Y8 `( r4 R* a" r ( (CUser*)this )->AddSetChangeJob( nJob );
+ x7 R, b+ E; H' Q% |- Y' D3 m g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );& H) o. B7 o9 r8 j; q- y$ H
Y- e" T d H$ Q
) ^1 n! s2 W# p5 w#if __VER >= 11 // __SYS_PLAYER_DATA9 `1 a- n0 ~+ J& t3 q; P- W
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* H, n3 ~# [0 ~ ]; l- D/ M- T#else // __SYS_PLAYER_DATA6 ~, ~& _4 m ?, s+ v7 { @
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! W. k0 Z' t7 q: H2 K
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- p* | u" j- Z0 G3 y if( m_idGuild != 0 )
( J" n$ `& t F' {5 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' D4 R$ A# @& x5 z. `#endif // __SYS_PLAYER_DATA) D/ }( h) f1 C4 U
SetHitPoint( GetMaxHitPoint() );
# Y( n+ f" O4 n0 q3 U SetManaPoint( GetMaxManaPoint() );7 ~, T+ t, w/ S8 r- V7 I- l' p9 w
SetFatiguePoint( GetMaxFatiguePoint() );& S5 |6 I/ v$ F
if( nJob >= 1 && nJob <= 4 )' a8 W* ?3 m1 f& S: u/ r3 u1 B
{
% ~- K' D7 d! q p' P m_nStr = m_nSta = m_nDex = m_nInt = 15;* B8 i5 y/ R6 \; p" t
m_nRemainGP = 28;+ ~, B/ E3 E- p
}
" a( A+ B% w" X# L# G+ ~8 C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# x/ ~" b; F T R" b4 {) G
{
6 q5 o6 r: |' f7 R m_nRemainGP = 118;
% o I) S2 T) J- k, f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 G9 C; G( B- O, _6 y$ R m_nStr = m_nSta = m_nDex = m_nInt = 15;2 B6 U7 m! L: d! D; s% m( ?
}9 x. v! C1 N( o0 c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 d4 d( m& X+ c# e* J! O! {
{
; ~" j9 v1 J' A* G* q CItemElem itemelem;8 h* T7 x7 A$ B, M4 e* |$ \
itemelem.m_nItemNum = 1;
. j! t, K* g- Z( }% [ itemelem.m_bCharged = TRUE;4 b7 S' T9 ?* I2 v7 U( I0 O) t
BYTE nID;
2 Y! k, G2 a' F/ B
! z0 S* b- b& V; E! H% Y0 z if( nJob == JOB_MENTALIST_HERO )
) o4 f6 {7 M1 q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
2 O" S" Y8 B& Y1 ` if( nJob == JOB_FORCEMASTER_HERO )
: `% c0 \+ V E- F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 L3 X2 D. `0 V/ l3 y9 N5 c
% g7 F5 x' |. l! a% A ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( }4 V) y6 j4 }/ b7 q. T6 E, }& n }
4 ?: H: T" E6 |/ Z7 ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ ]2 N1 T% D) B. }9 R& Z5 { ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
, @8 A$ j1 }) X9 | ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );' `3 s2 m2 ]. {5 i6 ~# ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" m0 k" B. J) _2 z$ D
( (CUser*)this )->AddTaskBar();*/! |/ N- n9 B. y, E$ J% B- I. `
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* H' }& c. _3 L0 Q9 Z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# y z$ g' V: t) `
((CUser*)this)->CheckHonorStat();
0 \1 s9 G) f' S# t6 a d- j+ w& Q ((CUser*)this)->AddHonorListAck();; o( p% X. w# ]' K
g_UserMng.AddHonorTitleChange( this, m_nHonor);
- F% O/ h* F$ Y6 s( ~# {; V) R#endif // __HONORABLE_TITLE // ′Tà?
. H5 j% x+ H) z6 x; R+ L }8 @* Y1 {" ]3 S7 h( {; k
#endif // __WORLDSERVER
' i9 F+ E3 k+ H5 B( |! ~}
; {* N5 c& \& P& [# q" ^/ m& m7 I! Q3 y
然后你进入functextcmd.cpp并添加以下
" y8 u$ d& |: e" i2 D0 s( d g; r
代码:
- O4 \0 a+ H9 K# R6 R- E$ pON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )9 ~" @ N1 v( B7 J% N5 A; H U
下面插入
: X1 |, N, W, GON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 u9 Q& L& W1 a/ Q/ V+ F. B( P) `2 w9 y0 Z6 u5 w
然后你去
) A h0 {5 ]% |7 H* }! ~' a7 O) T. g# y7 _
代码:+ S, h/ O8 |) S1 Y: Z/ v w% I! W9 G
代码
9 o3 a- u" H. [/ oBOOL TextCmd_ClearPropose( CScanner & s )4 _# t' K/ m! A8 M
{
2 X& [! ?3 {0 s5 T: B, }#ifdef __WORLDSERVER" s- L! |# o9 a4 i
CUser* pUser = (CUser*)s.dwValue;: Z" X/ v1 u9 A3 P: A$ o @
g_dpDBClient.SendClearPropose();
, b% _/ Y8 j, J: T6 I#endif // __WORLDSERVER! l" v' O V7 [1 F
return TRUE;
( [" T4 Y& b4 I}
: p8 K6 y1 H9 K! j& w6 ]下面插入' G, k4 b& M- Y7 e8 B
BOOL TextCmd_rebirth( CScanner& scanner )* Q) S, ?0 L0 f% f4 t
{4 C% T0 N4 @8 y5 j
#ifdef __WORLDSERVER
% G) J H* h3 I# F+ zCUser *pUser;
h; l' U3 M9 [# O% |$ u) wpUser = (CUser*)scanner.dwValue;
. `, U- m h# m- u& p' }) G1 Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
" g: y3 a N% Z9 w5 o# i1 ApUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ O4 z' V9 p: P( l
else
# I( Z! m9 H0 H0 A2 O1 IpUser->AddText("你还未达到重生条件!");
8 @7 e9 ~6 z, p/ h#endif9 y% U: `0 p. B. C1 b
return TRUE;/ c+ v5 s1 @$ t; d% X9 f6 I
} C5 s5 X) l( g( y
6 |( X; ]) Q0 r2 T0 z e, y% w
7 L' M( D' n& q* C4 E; x9 Y& M/ [6 o- _3 M
- v1 \; }0 @9 }% l' k: ]6 y0 A+ z
|
|