|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! N, g0 t" M# s1 p& O! d0 f6 @0 N
8 I1 T- n# x3 X! `, w/ A. JMover.h8 k( p, O' d- H+ b6 v5 n) }
代码:
- Q/ r+ z& O" W. H& I3 v! Z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü2 F5 l8 o$ N; c! |& L" `
: }0 j, r' m0 K4 V5 ^0 Z) W/ T. j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) E$ V& W0 M" `) h% z4 b' H1 D' f, K/ t x9 {& U/ a
然后你去mover.cpp添加
0 ~3 S- ?' w0 y2 u- f8 {' ?0 B4 z
代码:
2 w( a: R0 k9 i6 T- p `void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ). Z6 H8 i( B y: i/ j) [
{
% H$ F2 V# D) p2 N#ifdef __WORLDSERVER
& C$ Y- y: H( m* I' P# z5 C+ P" q; j4 b // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( R$ g$ _3 X5 F: N3 g3 i3 O MoverProp* pProp = GetProp();; y& W6 j, i1 I0 P3 A
if( pProp )
% [6 u; M2 E9 }, H4 w! k {# ` m% t6 t3 X c; ~
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
" E, \7 N* e& P {
2 C# e% ^: N8 X( g. \ AddChangeJob( nJob );: y( G/ P( P9 A
}else{
; r& |) f7 n7 B, {/ r/ Y+ y return;- X0 _; O4 H1 I, {' X
}, w4 e, o) R9 a: q0 J; F [
int nPoint = 0;0 r* Z; G# o; A+ ?
if( m_nJob == JOB_MERCENARY )) G8 W/ ^* x# V1 J/ Z9 [: z. Q1 {% d
nPoint += 40;
( [! Q* A# H i6 D- I6 g( w- z+ t else if( m_nJob == JOB_ACROBAT )
: N' d6 G6 r6 n- p9 K) F1 _% _9 W nPoint += 50;* @8 D; n6 Y6 u5 g# Q6 O+ F
else if( m_nJob == JOB_ASSIST )
8 ~" A R( I2 _, _) ?, K nPoint += 60;* Y+ B3 s2 v9 K* r+ n
else if( m_nJob == JOB_MAGICIAN )( X, ~* a+ P$ i. H' @8 g
nPoint += 90;* _3 B& I! q" Q; p" \ A( ^! T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ O- k. ?8 N& t9 z7 u8 O9 z
nPoint += 120;% J8 k+ I1 r4 z; ~
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, R" b3 B# t0 M3 x$ f nPoint += 150;; \. H; H* y! T: L1 t) }6 }
else if( m_nJob == JOB_RINGMASTER )
2 J1 u$ y! }7 K9 [: {: S4 j nPoint += 160;
8 V9 j! {& m" N$ J U else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: f! {. E l7 q' z( X5 h( y- M: ` nPoint += 180;, T d* |" a' E0 m
else if( m_nJob == JOB_ELEMENTOR )
% D, Y) H# x0 b1 R! k" [' l nPoint += 390;
8 ?2 g8 i3 V: c0 M% t) c2 W- i else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! I {2 n# i- N( H0 b+ ` nPoint += 120;: t* g0 b* }. J
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 ?0 K+ [ Z0 k7 d8 C6 D
nPoint += 150;
8 B: U* c9 S3 b5 z& |1 R6 C- V! j else if( nJob == JOB_FLORIST_HERO )
0 n" W; F1 d1 B nPoint += 160;
# A0 p% b# X0 K* X else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 c2 V1 s$ Y; I8 H, a% W8 H nPoint += 180;
, v. B6 M$ `; [" o% ] else if( nJob == JOB_ELEMENTORLORD_HERO ); g0 S6 B/ ]% M. x1 C
nPoint += 390;9 n+ p" J* x8 X4 K0 _
5 [1 N. d/ {' Y5 a8 z: M' j) p5 L
AddSkillPoint( nPoint );
7 l6 k( h; |, p" a6 Y5 u1 ` m_nLevel = nLevel;
' f; o% |& @3 H& q# d7 o
- I2 @8 u8 w7 J% n7 L' H SetJobLevel( nLevel, nJob );1 `* p# B/ s7 g1 u
m_nDeathLevel = nLevel;8 H9 g% |# H( m1 _
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 l: G& s2 z# Q+ q. @
if(IsMaster())1 E! ~; f- {6 x2 C% E4 S
{& _( W: b) R+ p2 L6 a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 F N$ z& A; q/ W6 a. F, @ if( nLevel > 59 && nLevel < 72 )
% l- M6 u+ t$ A. i dwTmpSkLevel = 1;
! B9 E/ j" A8 q else if( nLevel > 71 && nLevel < 84 )! T5 M/ [1 G3 F9 X( j4 o
dwTmpSkLevel = 2;8 Q" P! ^4 p6 }6 N
else if( nLevel > 83 && nLevel < 96 )6 |" r( [* d/ a+ t% w) C
dwTmpSkLevel = 3;# i0 c2 w; @5 K( C7 {! Y
else if( nLevel > 95 && nLevel < 108 )
% {/ P+ C% Z9 a5 J( p- Q dwTmpSkLevel = 4;, g) i7 l2 p- w" r+ h
else if( nLevel > 107 && nLevel < 120 )+ Z" H2 \( o7 A( U) l% G; E
dwTmpSkLevel = 5;
" w2 S$ Q3 S6 n" R/ d; ?' d for( int i = 0; i < MAX_SKILL_JOB; i++ ) : B& V' o8 G4 D( C
{
/ i. U0 N9 J3 T7 |' E1 W LPSKILL lpSkill = &(m_aJobSkill);' Z" E, y4 i% a( G* j) D
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( c! `5 M, M$ Y( u. a' M {* ^1 |% R9 W* I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 K o8 ~' @; p! s/ f: L
if( pSkillProp == NULL )7 F/ X6 T9 |' u* ]; |
continue;, g# X% x+ ]6 [5 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). m2 n+ f8 _# m: f. b
continue;
$ t$ t* T% j8 j/ |' M& k! n lpSkill->dwLevel = dwTmpSkLevel;" ^5 Y, j* F& x0 \4 n5 |# h
}7 Y% D- V, _' O; b/ Z' a
}( Q: z0 F+ F2 b$ X: ]- C
}/ q8 w% @ _) v' q3 i" \3 r% R
else if(IsHero())' L" z R9 \& U0 F/ E" r1 Y
{
6 }& |( a+ S5 K1 y for( int i = 0; i < MAX_SKILL_JOB; i++ ) % \* G- J) [2 S
{ 4 o: r9 U! A* i9 ~
LPSKILL lpSkill = &(m_aJobSkill);
2 F K2 p$ x; U u8 x8 [. J if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 V9 s% Q C, h; p/ }& F {
, N7 C+ x: ^7 s( s' O; G9 U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 G: h. s' E5 G H2 x+ d+ u if( pSkillProp == NULL )
/ g' f2 ~4 ^* Q& y( H( @, w7 Z continue;, d, D3 A; S0 j& r5 i( h1 x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' @* `% `) ^: q W/ Z
continue;) S' J; |' B9 K1 N/ `( A6 p
lpSkill->dwLevel = 5;
' V4 T5 p$ W8 }' _4 o# l }9 P% H' c8 p; p7 e
}4 C5 e- o/ n, n1 m U, b! H
}+ o9 E) I* Z/ K
else if(IsLegendHero())
4 Y; g5 ]$ o8 A* I- M! e {3 R# C6 ~1 \# o( P/ s. S g
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / q# |" l7 e2 I! y/ S( m' `
{ # {2 l6 W/ N: \$ e
LPSKILL lpSkill = &(m_aJobSkill);3 [2 P* D+ q5 n# Q* v7 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )" E3 j! ^1 s/ z, g
{
1 P5 h V# \: o" A9 T( k# O( a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , c3 i8 [0 ?6 |7 x; \! F2 Z
if( pSkillProp == NULL )- R3 F9 s4 X$ r! i! ^
continue;# R! F p9 `; [) [
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* B8 {/ V2 @, ]4 r `; S! ` continue;! m& s" {1 d" d/ G
lpSkill->dwLevel = 5;" z6 [+ K1 p7 K2 p4 E/ o
}3 b3 o* @ z+ Z( ~ l0 `
} ~" y7 E7 T: m- e! B' k
}
: @+ w& S# E$ R; z( B#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( z+ N+ F* N5 p( B7 c; u3 g if( bGamma )
: I% ] M# l0 {# n8 S {
+ o9 q- ?2 h/ e: g+ B% W. `* H7 { m_nExp1 = 0;1 Y0 L+ J6 |" L) `* Z( U/ |
}
0 A+ Q3 y3 |5 \6 u8 ~$ i+ p' D. M6 H" a& `$ z8 g$ T' u; Q
( (CUser*)this )->AddSetChangeJob( nJob );) n. F+ T& G1 q7 y$ M* O
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
! P/ H" m) `1 a3 P9 K* I
6 d: M+ N: g: g3 Z+ L7 a$ W; f% T4 ?% i
#if __VER >= 11 // __SYS_PLAYER_DATA* _# |) J+ j+ _, c- x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 W1 R/ `" U3 d- K1 e
#else // __SYS_PLAYER_DATA
- U; A9 d# E, |6 G9 n8 P( e" c g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 ~6 b" U1 b3 [4 O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );! |0 c2 j4 |/ K! c* R+ k
if( m_idGuild != 0 )
# R1 l2 a4 R+ l _ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# y1 ~) I' ^, z
#endif // __SYS_PLAYER_DATA
/ X$ G! u; U3 ]+ {4 } SetHitPoint( GetMaxHitPoint() );
( N# N. g3 ^2 x9 P# X7 B) p; M SetManaPoint( GetMaxManaPoint() );
& r) Q$ ~: J0 \' w5 |1 k0 v! H SetFatiguePoint( GetMaxFatiguePoint() );7 O8 s5 L- l& F7 }( o! s
if( nJob >= 1 && nJob <= 4 )5 r- l# `; R8 |3 ^! A
{
8 T$ {2 G' a, K4 d% m$ H m_nStr = m_nSta = m_nDex = m_nInt = 15;
" f* M; M2 f+ r! h: ]5 b3 w m_nRemainGP = 28;
: }1 S' ^3 |8 S$ t0 t, e' X- w9 D }$ r/ z* X. V% {! z& T% b
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 z$ _+ {' u9 U
{$ g. b$ F2 O; Q: z
m_nRemainGP = 118;6 X" A3 M/ Q# x S6 _
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* U! w7 @) |# q, C! i5 } m_nStr = m_nSta = m_nDex = m_nInt = 15;; s$ c) n$ T; X# {; E
}
3 P8 I9 F0 a3 ~6 O' a% t8 e if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ @+ |3 Q$ L; k, Q R0 e- I' f
{
$ \" f" w+ K8 l9 M! ~* Z7 c CItemElem itemelem;
- k% d' v3 }; K& r$ B* T itemelem.m_nItemNum = 1;% o; E: s$ ]* j ~. Q3 q' I$ d
itemelem.m_bCharged = TRUE;2 R) D9 Y! \, \0 }2 i! H9 J
BYTE nID;1 O/ N0 N ?. G& f$ R- V
8 K. K9 F8 e U: L( g if( nJob == JOB_MENTALIST_HERO )% c1 s, l d1 I& `* b4 y% B
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
' ^4 e* s' h% w- l( B. o if( nJob == JOB_FORCEMASTER_HERO )& E* K& F3 a- K! x9 \' [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) P% `9 s+ S! e O
/ }. }0 h4 A" `0 m5 c1 d4 q& I3 g
( ( CUser*)this)->CreateItem( &itemelem, &nID );. i. ~7 U' Q1 ]5 O) ` t7 {6 n
}: Z6 N1 Q8 `2 V: i
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
2 H, C& A) q& d9 z6 i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' O% `2 a. W7 G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& ]8 E& v4 z7 _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );1 k4 g0 [, i3 a2 T. C
( (CUser*)this )->AddTaskBar();*/
7 i; }' o# z! q X ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );9 U8 b! \' }& o0 j$ y$ d
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; {& z- {6 _6 F' A, J ((CUser*)this)->CheckHonorStat();
/ g6 ~) X" s( V: s3 l: S0 S+ j ((CUser*)this)->AddHonorListAck();4 k+ s# X; U2 ]. ^- q
g_UserMng.AddHonorTitleChange( this, m_nHonor); n' K8 M, }7 h0 A& G0 L
#endif // __HONORABLE_TITLE // ′Tà?
/ q9 O; o0 p: `7 W3 w: A }8 J0 P" n, S/ J8 A3 ]
#endif // __WORLDSERVER
6 E2 j+ K8 b/ I& R5 F4 ]* u}
v- \* N, A' t9 \9 N" c6 j5 p* H- q# `1 K$ g
然后你进入functextcmd.cpp并添加以下
2 M m3 S( M# v0 f; |* r+ ], u- y2 S; D5 Y8 b
代码:- |! K$ R$ i: [
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ G# P; C5 t6 b: Y9 C% R下面插入5 ~/ C5 V0 N8 ?6 D. X8 b
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - O! j; X" l" b$ b5 [
" n/ ` ~7 O7 l$ _/ |然后你去" F, S' |% R9 f
8 p6 b3 P) M, N
代码:
) F5 v( k% N+ E代码- s6 l9 _; t0 z0 d+ j7 ]: b
BOOL TextCmd_ClearPropose( CScanner & s )
1 k; w$ L- q0 X* `4 j4 O{
2 O& ~2 Z' s( I2 u) x2 K#ifdef __WORLDSERVER
6 [# V t8 B1 t2 { j5 I9 a CUser* pUser = (CUser*)s.dwValue;) m1 d0 s3 ?: G6 [
g_dpDBClient.SendClearPropose();
7 V8 M& O7 ^( @( x8 s#endif // __WORLDSERVER- q& {8 ^. M1 s7 ? \
return TRUE;1 \% q, C4 G! s4 b( N9 ~: V
}5 o* y' g+ V# \$ C' B
下面插入9 o1 N; P {: E- D1 X. q: _
BOOL TextCmd_rebirth( CScanner& scanner )0 k. Q+ a0 P, R9 i' z5 g- x
{% \; R' t" W: W! s
#ifdef __WORLDSERVER* F1 [5 C, \6 I3 a9 H0 T' ` t5 l
CUser *pUser; S( ~" K% L* j- O
pUser = (CUser*)scanner.dwValue;7 ^# L9 k/ h7 P) ^" F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())# Q* s5 a$ d0 M
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
4 v: p" \" b% Z5 {8 k/ V1 ^) A3 @* melse
* Y9 m& }7 `" j3 A6 D! U K: }pUser->AddText("你还未达到重生条件!");
_! Y. ?1 F" O! T* u#endif: c3 D) L+ [8 {
return TRUE;# l$ B2 G4 A7 r9 d( Y, k
} % f4 V! @- V) n; P0 ]% O: n
! N; U2 f0 ]" q0 d; i4 @, b
0 o% d V" W: |+ f. `2 E
8 S( R5 c. m0 d! _4 _8 ~+ R; \! h
|
|