|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% l3 G0 t$ ~" h7 l. \
2 k0 x, Z& O2 w+ [) I7 nMover.h
% Q8 j8 x0 V; z代码:
8 f0 k6 \% ~5 R找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü7 @ h9 l F8 I
. w3 p s7 u. Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 4 k9 I# @, |# T8 ?8 E$ G
1 V# x+ p* g/ W% w
然后你去mover.cpp添加0 x+ E' s$ E/ `% H
) r1 D3 L$ U6 ?
代码:
+ q1 M; i' R$ Z3 B0 [0 P. I/ Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( m; n' v4 p" N8 C6 L
{
$ ^ n# T" S4 Z9 z: s* q#ifdef __WORLDSERVER
- N G) ~( U8 C0 M/ E // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; {- v% @# d }1 ?$ V MoverProp* pProp = GetProp();
/ b) I, f+ G) M. f! l if( pProp )
" X" V- {( l( [( T P% k: v {
- q( t: Q2 c% R) F if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ m! n. c$ b) \" I% i& v {$ z: r/ t- Q) s% B6 T2 l7 d7 i
AddChangeJob( nJob );
8 t$ x7 p; X# N X# J z }else{
1 b2 P" N- E2 j return;
! [/ z3 O" }. R+ F& J3 u }7 U. n$ w$ z# T0 J- `5 x3 l
int nPoint = 0;& b. k* b; I9 B) _
if( m_nJob == JOB_MERCENARY )9 a- `& u. W& ~1 i: q
nPoint += 40;
7 j. n9 J! [8 R4 O else if( m_nJob == JOB_ACROBAT )
" `' d$ b! W! U6 V3 k nPoint += 50;5 ^* d; y3 A# |5 d7 o8 Y
else if( m_nJob == JOB_ASSIST )
# j: L! n7 m+ D+ y. r W nPoint += 60;3 A ]7 [, T6 V W
else if( m_nJob == JOB_MAGICIAN )
. o5 R2 W" j. v8 P; @7 ^" _3 f nPoint += 90;" y9 Q; X! X0 E9 f. F& _
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )6 G- X' y* h' z) r% C! R0 p% }
nPoint += 120;0 U* m: Q) S2 i! ^4 b- v3 B
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& x0 K7 F5 v7 N' n J0 B% Z
nPoint += 150;7 Y9 ?& s; O1 C9 H7 g# @. d1 H; R, j
else if( m_nJob == JOB_RINGMASTER )7 ~; J% e' ^' W; R
nPoint += 160;: ~% [* _* Y+ \8 k
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; {: r/ {* C' B) [! {) f: L nPoint += 180;
L: P" }5 B. o else if( m_nJob == JOB_ELEMENTOR )& e% \9 {# T: O4 v& s4 ~
nPoint += 390;
! Z1 z5 T0 u3 g7 O, [; ] else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) B4 }; S8 x3 C" p( K+ q/ h nPoint += 120;- E+ J. a" {2 c1 o/ B. D, W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 ^, r2 M, N& s9 p3 t nPoint += 150;
3 s/ g$ {, Z* q+ r# s- @ else if( nJob == JOB_FLORIST_HERO )
6 ]+ g4 P+ s- X, Q' D$ ] nPoint += 160;
+ ?. ?! \' L5 M1 u8 a2 Z else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 ^3 ^$ [* w! |% g7 Y) m& m nPoint += 180;
$ b0 T5 v' s4 @4 ?: \4 E else if( nJob == JOB_ELEMENTORLORD_HERO )
8 G5 u! H8 ^1 m" J" S nPoint += 390;
2 O$ |( P8 G, E! X/ V5 p. ?1 w7 ^
: t$ b2 W+ D) t: f5 o1 \ q AddSkillPoint( nPoint );9 S1 Q9 q8 y0 x
m_nLevel = nLevel;' J; c$ O! l0 z3 t0 s/ [- M) f0 N) Z
% H1 i, x& z2 v- F, Q" ]
SetJobLevel( nLevel, nJob );
8 f6 ~2 x! x" m( D# c. ^9 o4 X7 a m_nDeathLevel = nLevel;
+ W* s H$ ?. M G- [: m2 H. B#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 M: L2 l4 o* K1 ]. {5 J4 s; e. c if(IsMaster())
2 G+ F2 o. ~9 [3 B, P$ P% G/ B. ^ {* F9 ]0 S9 ^0 h$ N! J/ P
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% ?8 _+ x( F- v2 ~+ E if( nLevel > 59 && nLevel < 72 )5 y7 L T# e0 O. V, j
dwTmpSkLevel = 1;5 ^ X! q0 Z5 E, C3 @* n4 [% l
else if( nLevel > 71 && nLevel < 84 )) k4 V" h9 \8 A( s/ Q/ S
dwTmpSkLevel = 2;
0 ?. j* s7 V ?8 S else if( nLevel > 83 && nLevel < 96 )
4 |1 h' Q9 c: [. \5 b; K2 {& a1 R7 W dwTmpSkLevel = 3;5 Y1 A6 l. m4 o6 l" ^* [
else if( nLevel > 95 && nLevel < 108 )
2 @, l9 w" L Y' ~0 M dwTmpSkLevel = 4;' I# T. [0 X; ^" ?0 H3 R# l9 W8 L/ E5 ^
else if( nLevel > 107 && nLevel < 120 )7 _* a$ d9 k+ b6 G9 g$ L. e
dwTmpSkLevel = 5;# t1 f! \/ N' |& T/ ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 i* G5 L- w2 P5 {1 g
{ ( x f9 T' `& I; W H1 }' n* O- o
LPSKILL lpSkill = &(m_aJobSkill);
8 ^! h% ^0 D9 {' E5 O% b1 l* S if( lpSkill && lpSkill->dwSkill != NULL_ID ); O2 Q/ B# q5 x) t- U
{
" z2 q7 `# ^0 v7 [7 w+ s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 O( t0 n9 w) X. `4 K/ r
if( pSkillProp == NULL )
& S3 \9 o9 B8 |; x+ b) D continue;& L# [9 c* T: E. i
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' N' i; v. R. u
continue;
2 m8 M$ ^& J7 \7 l3 B q lpSkill->dwLevel = dwTmpSkLevel;
; s3 n$ I6 g) k4 o }$ K% p' C% c1 P* W5 y2 [) E
}
9 x! Z5 m2 G: o/ b" z2 R8 p: C5 @ }
- @4 s' K4 ?/ f; }$ Q# A else if(IsHero())
; ]2 w$ I0 ~' ^1 r {
4 a2 \; l5 H5 p for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 d# h3 h) ^6 Z; G; }( a! A { ( n, p0 z# [+ |0 H5 Y( Z6 l! S
LPSKILL lpSkill = &(m_aJobSkill);
8 T u& Z9 V7 R; I" k0 w: | if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 R3 F: ^4 e1 s1 [1 ^) S {2 F- d# ^: d* l8 c
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - N& l& J* P# e) Z# i
if( pSkillProp == NULL )
$ a: S: s& O8 K$ l continue;2 K3 b/ {+ d. s U% w3 s9 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 Q# ^: z* R: X: n5 c9 O
continue;
, k6 {' s6 D& p) i5 L lpSkill->dwLevel = 5;+ P& N; t) M! ^; Z) b/ P, w
}
& l- t8 E/ S6 a0 v# c }( L3 O* _5 i! g7 n* f! u
}/ K: j E8 f0 ~- m4 `
else if(IsLegendHero())
3 p8 l+ f. p6 }/ g3 g% {$ P {7 {$ _! l! w7 p8 `. V) o7 P) C
for( int i = 0; i < MAX_SKILL_JOB; i++ )
% e7 M/ [( l: @! A5 A8 D, m { 1 M# c( E9 A l. ?; l' k' j, X
LPSKILL lpSkill = &(m_aJobSkill);
& ^' L' ^, O8 t) r9 X6 M' ]6 E if( lpSkill && lpSkill->dwSkill != NULL_ID )
% s; d2 c1 z6 w {
* ?, {: G& ?. J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ ` l& C1 w' u' i4 t0 ]9 ^* K: o if( pSkillProp == NULL )
( N2 }) N4 l- i+ v continue;
4 p8 ?, z# b# V4 _) N! M- Z4 c if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" \$ S( p/ z, o' B ^9 R continue;5 q. g3 K) T2 Y! P
lpSkill->dwLevel = 5;# H& ^: d( p Y7 `2 @. |, s
}- T4 W4 X; h! h9 @9 Q
}, O- M& h6 W! W
}: C, O- t( f& g) o/ _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' G6 v+ Y" J+ W: ?) B if( bGamma )2 d S8 q' G E
{
" X* M# r( b1 b5 H m_nExp1 = 0;
, V# V2 `0 d" s# I8 H9 l! D5 Z' ~ }8 D2 @+ Z5 h% b- p- ]. W
' ~/ B, }, {9 N. E' [
( (CUser*)this )->AddSetChangeJob( nJob );- G/ R4 g/ ~ X- t6 i( k
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: d* R' p5 b7 n* E
7 U0 {: S1 |9 q
8 V: m& o5 ]: z1 u9 _1 ~" c#if __VER >= 11 // __SYS_PLAYER_DATA5 Y$ R; j( `* l+ e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 w5 k0 }( s! |9 e4 \
#else // __SYS_PLAYER_DATA% H% g7 C; ~. q2 l! |4 d# d; v: S* b* |' c! ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );! x! e4 m$ K8 J$ Q6 L
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' C N; R3 q% s7 B6 V
if( m_idGuild != 0 )
0 F7 [# t' ~% e8 ] g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ v4 Q0 n5 N2 W6 z4 F#endif // __SYS_PLAYER_DATA
6 {+ `* q( W U; p- M SetHitPoint( GetMaxHitPoint() );) n$ g# X- B' k
SetManaPoint( GetMaxManaPoint() );
$ a' u& C* e* f1 @: }9 Q SetFatiguePoint( GetMaxFatiguePoint() );
% m. |! M a3 `/ S2 P& r if( nJob >= 1 && nJob <= 4 )
/ S% c: |1 z( w1 h( ?( V {
0 b- d) K3 S+ t4 i+ H2 ? m_nStr = m_nSta = m_nDex = m_nInt = 15;7 B1 O) K! m- q- P6 A
m_nRemainGP = 28;& e: R# R& l/ i' d
}8 u( {5 k% {( X# |% E
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
, @( v& I, ]/ u {# _+ {$ }6 s$ r5 R' {
m_nRemainGP = 118;: X( ^" l$ [# c- G+ Z6 W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
5 ^# H0 K g5 _3 ], v3 ^- I+ D m_nStr = m_nSta = m_nDex = m_nInt = 15;
6 {3 S$ A" Q: h4 ^, v& B }
! y% I8 W; @, ?- Q1 b if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )( V) x! W. q% G( C4 Q
{+ E0 S; O0 |; I. O9 [' G! ]
CItemElem itemelem;* t, w/ E7 b* Q
itemelem.m_nItemNum = 1;
( \2 y+ {* H; @/ U6 T$ V" U4 [ itemelem.m_bCharged = TRUE;9 [) a: @' f0 t% F2 d% Q0 ~
BYTE nID;8 ?8 A5 T) s3 S% x# b3 z E6 a$ i
\+ N3 ^) m4 e! z' C: b Y
if( nJob == JOB_MENTALIST_HERO )8 T/ E; z: Y$ o. ^$ i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
- `9 q5 a* }3 Y8 i% K8 h if( nJob == JOB_FORCEMASTER_HERO )/ e Z* k6 U, x; I0 R8 m3 I* x
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;% q) q; ~! U( E$ M: t. p) b
) S( a+ n0 Y1 k ( ( CUser*)this)->CreateItem( &itemelem, &nID );1 B L: u" \3 ?# T" T* ~
}
3 g( l. O) Y4 p4 `9 K g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. {1 Q$ E, _: u5 r( g; k9 [
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
- w( Q4 C/ g& t: `0 |7 K ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 {, [; l& _3 I# N- c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 r* K! ?; _! M3 l f ( (CUser*)this )->AddTaskBar();*/
$ }' N) G" W) f& c! A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
; r: s4 F6 f/ G( ?8 z#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?0 s8 P: H E* W- Z) L
((CUser*)this)->CheckHonorStat();% A4 N8 A9 G( F
((CUser*)this)->AddHonorListAck();
# x- P; x/ f1 i; U g_UserMng.AddHonorTitleChange( this, m_nHonor);& P0 e2 t4 z3 L8 W0 ]
#endif // __HONORABLE_TITLE // ′Tà?' o3 d8 M3 [% ~% Z# l& E
}, C# C: A# J- o. r# \
#endif // __WORLDSERVER
; H5 z! j$ S2 I: M0 F5 ]} 8 E! s# i' Q; h$ ^
/ g$ c, G7 _% g, U; e" N5 T6 `7 w
然后你进入functextcmd.cpp并添加以下! j" p8 o& z4 l8 z/ i
- Z- o4 d. I- R. M9 |* x- D$ \0 m I代码:7 y9 D. k0 u' o8 }4 x! i9 a
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% s2 }% ~+ l) V2 ~0 T Z- p
下面插入% f$ l/ ~2 Y `
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' R2 @; ]/ C2 z& d, U5 N. t: t4 X$ H, Z
然后你去" R! h4 c2 _: [7 R: ]
% |6 x' Q& h! U. L! v
代码:: y% \1 u @2 [; d. Y
代码" O& V7 P! n; h3 N1 z
BOOL TextCmd_ClearPropose( CScanner & s )& V- n4 R: C" r8 P
{
/ y7 {4 }3 f9 a* N- G#ifdef __WORLDSERVER
6 s6 S1 z& f h4 w. X7 j) v7 ~ CUser* pUser = (CUser*)s.dwValue;
' D/ m$ e) z# Z( C" m g_dpDBClient.SendClearPropose();! R3 r3 n7 j* [# Q% I* u0 s
#endif // __WORLDSERVER- i, L2 p! X& V$ T0 M
return TRUE;
; z! ?% [( u- F2 U% F) b# T# T$ H# X}
, Y3 }5 h* d H) c下面插入& Y; l' D+ x/ x' z- L
BOOL TextCmd_rebirth( CScanner& scanner )# L J1 B4 K4 B* m
{
8 c) _0 j: ?+ b! C9 M. g6 j4 ~7 h7 B; ?#ifdef __WORLDSERVER
4 M' Z$ K- b" y9 l) O( B8 O! yCUser *pUser;; I. f2 i8 V+ c7 C2 l" j4 X
pUser = (CUser*)scanner.dwValue;
/ s. |* o3 Y. K3 T& i4 e0 qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 _5 K7 U1 y7 w: i6 e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 V/ l/ h8 ~ k2 @/ z
else% d1 m* z* o# ~+ a+ N) r9 Z3 I
pUser->AddText("你还未达到重生条件!");8 K4 I% S/ `6 e0 C$ o4 [- z# }
#endif' w/ {# A! @/ \( }
return TRUE;6 k% g6 s z. H, ?8 \ |: E
}
: O4 Z% l4 g: K" a; \; d: V% i n: Y7 S8 m: b
4 q4 ]9 n. H+ ] U( \7 |* j
# h& s" b3 d9 l% j! {
! o9 X9 l3 n8 k0 j9 S7 z |
|