|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
L5 t. H1 g' j+ a2 J
1 @9 A Y6 ?6 ~, lMover.h
: _3 ^6 B/ u3 o7 ~' t& k' N# q# C代码:
: G9 |- w: F8 m/ ]找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) Q- s: l: q5 g: |# e! ^: B- L' c1 D2 A' T, w, f9 ^
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
. m5 {. R9 a2 A4 N$ t
# e/ q2 z5 E+ o! X6 a& f然后你去mover.cpp添加" Q3 Z3 N" c% A- U% R- n) t
- u6 I* q* A& x7 _代码:! g6 w5 [( c: m' c
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) i% x4 f- S5 k; y5 K& r{
. a$ G2 B u8 j; W#ifdef __WORLDSERVER. w3 ]4 N6 ^# D8 o: v# N
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' r3 X$ n# o% u
MoverProp* pProp = GetProp();! v; L5 t3 g3 N
if( pProp )
6 E0 P# x. S/ f {5 k% c5 Z" x6 ^5 Q& Z3 g( m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ d1 n) Q; Y: X/ V! G0 F0 h
{9 R' o5 | ~' X% ]/ i+ F V
AddChangeJob( nJob );
* q K* ^: c' y }else{
5 x8 T5 @( x) G; r2 S9 g1 a: r6 F return;
; t/ ^8 l) v' \* S1 m! i }
, N3 k0 w( Y y8 E+ T1 | int nPoint = 0;2 ]4 r; O5 R7 A; }7 f' I3 D
if( m_nJob == JOB_MERCENARY )
$ Z/ y. f6 V* _$ n nPoint += 40;8 k( x. I. Z2 o1 c# g; O6 i6 r
else if( m_nJob == JOB_ACROBAT )% V9 H8 ]& y! ~& [' S
nPoint += 50;! V$ v B1 l" x" |3 `8 q; f! s4 n
else if( m_nJob == JOB_ASSIST )
7 D2 g4 P' F2 b; \4 l) x% q nPoint += 60;6 g# M; @: m# E. j7 p# J
else if( m_nJob == JOB_MAGICIAN )
" [/ z3 d0 `2 L+ p' Y nPoint += 90;* [* t8 x. w" W2 E* e
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )2 ~2 D3 R9 c; W3 V/ f/ x! K
nPoint += 120;
8 O( G! {) Y2 b7 ` c+ n; v' x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 j2 E: B0 G/ V1 f% i nPoint += 150;+ d( b# i$ C0 h6 @: R1 X( c
else if( m_nJob == JOB_RINGMASTER )3 v! m6 f' `- B, [; [ j
nPoint += 160;
$ N4 E) x3 |$ Q5 y1 T else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ G3 \8 V/ P% b- O$ p3 T9 y nPoint += 180;9 Z1 A1 X5 q2 _# u
else if( m_nJob == JOB_ELEMENTOR )" [9 `1 c4 G9 b% j
nPoint += 390;
. o) ?0 s. h) i& @) O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )* l3 w- r' L; n
nPoint += 120;
1 k A% X! k( T else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
9 p5 t; i1 U" k% _4 [6 z nPoint += 150;
, M) P: S, |; T$ T& m E else if( nJob == JOB_FLORIST_HERO )
/ e0 r; h, w: I- W: f nPoint += 160;
- }1 x+ w+ {( h' }+ O; d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
{& p+ p7 O- p nPoint += 180;- B! z8 ]" A7 K& y8 O
else if( nJob == JOB_ELEMENTORLORD_HERO )
+ G: |' f1 d7 Q2 M9 G; P nPoint += 390;$ f) W" r& z o6 W/ P h. F2 m- x
* }' h! c/ M! `1 V. o% M AddSkillPoint( nPoint );; T; l, _4 K4 Y/ Q0 M$ y1 K
m_nLevel = nLevel;; S0 l2 M% W0 Y9 p6 o" j. Y
9 K+ U W% @5 R8 g
SetJobLevel( nLevel, nJob );0 X2 ~9 W/ H X4 y O7 _, L7 {7 @
m_nDeathLevel = nLevel;* D; w9 R6 k7 O8 k5 D- U% S ^
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
( P7 o/ o/ k$ o+ `' E if(IsMaster())* c7 i+ ]& A$ x4 H/ ~' g! d# ~
{+ J; z( v9 G% v
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1081 r7 Y; t# _8 D) z/ e4 F2 r$ [
if( nLevel > 59 && nLevel < 72 )6 P1 {0 C% }) z- M# T
dwTmpSkLevel = 1;4 m& z2 g7 M# a8 V0 Y; n p7 e2 X
else if( nLevel > 71 && nLevel < 84 )
' h$ _* x0 r$ A* l: Z; Z; F dwTmpSkLevel = 2;3 J, {& l0 d& b; Y5 w; u
else if( nLevel > 83 && nLevel < 96 )4 ?- O- y, G g% _( ^
dwTmpSkLevel = 3;9 M# t" {! z2 p$ C. k+ j
else if( nLevel > 95 && nLevel < 108 ). @$ f9 w* M- h& k$ p! e8 B
dwTmpSkLevel = 4;
5 G+ z2 D p L/ t$ l else if( nLevel > 107 && nLevel < 120 )5 f5 N2 G& ^. j" G- }
dwTmpSkLevel = 5;
, \8 Q- i0 F+ j$ } for( int i = 0; i < MAX_SKILL_JOB; i++ )
: w$ ^& Q# O2 G8 E% Q {
1 o* K0 K6 g4 K, O( b LPSKILL lpSkill = &(m_aJobSkill);: Q7 T5 K# [* ?+ {8 d3 Y9 t
if( lpSkill && lpSkill->dwSkill != NULL_ID ) a2 ^2 T1 [% v/ ^7 I! T
{6 a% i, q. N, y- W/ o
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# ~) o% f% ?: ~4 m k3 k6 w if( pSkillProp == NULL ), y. F" e. A I( R! Y
continue;' @+ h* L/ I$ T( p) s0 A% o7 V5 I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 D @ H. ], A3 h8 ]0 v- K( ?
continue;
. T7 E* _* f. F5 K6 D0 Z# ? lpSkill->dwLevel = dwTmpSkLevel;
7 I1 u) u- y5 O }
/ ]4 A! ?3 |4 _% A# w }
" [0 t! a& N H4 }& u) a4 T }, I' V$ t) }+ }- o
else if(IsHero())1 \8 z9 Q/ \' t. \2 s; A, s6 k5 d9 q
{$ T( G$ ^) N: v( Q+ y
for( int i = 0; i < MAX_SKILL_JOB; i++ )
~) F# S+ f# O) Z {
" F5 f4 ~! g; c3 y- Q LPSKILL lpSkill = &(m_aJobSkill);! l3 a1 m9 J p+ ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 K! Y9 @6 h5 P$ R; X, v7 f3 o {
. h/ v8 p" u9 h6 ]2 ?6 u+ z! P9 s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( U: k. C& l: n6 s6 N8 v6 X9 H
if( pSkillProp == NULL )
0 Z4 c7 v, d/ d" B* I: | `" \. x5 y; S5 M continue;- W8 y1 M b# V+ X* I' @0 F8 i# }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: z! Q* N3 U4 c$ w% K3 }' U b6 Q continue;" ~) a; J0 i+ R- h2 h8 m& j+ }9 j
lpSkill->dwLevel = 5;
2 U$ J9 i( e- L8 J! D4 } }+ S5 B: G) M; {6 i, |0 l4 ]
}
% A) @* ~: Q8 g. j) ^ }7 \! h( S( P: e1 }
else if(IsLegendHero()); d" T! _- Q7 O! @8 P
{# B0 v9 O& C) }/ r9 |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + v4 V" V6 _6 ~0 i3 j
{
6 }7 o; p/ \2 B ~! X LPSKILL lpSkill = &(m_aJobSkill);
( M5 H# P1 R5 D if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 }( \- e! y/ Y3 R/ i, i4 w {
6 w8 G! n% R4 h6 [; x; n, ~$ N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # b+ e5 R2 h. G, O$ I8 _
if( pSkillProp == NULL )
' T, D: T. H7 U" F4 Y continue;
# g8 x0 W0 `# Z# ?/ \ p2 L if( pSkillProp->dwItemKind1 != JTYPE_MASTER), B, t8 t$ c9 U' t# v
continue;
" k0 g3 b3 X2 R% [+ S lpSkill->dwLevel = 5;9 i T6 d" G, o$ A# I
}5 ~: j9 l0 I: h9 X
}
% m& U% d8 F/ x* m1 K9 ? }% x$ e/ N/ D7 y9 P' w
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* A0 F9 ]; {% F; U* x) _& S! n% e
if( bGamma )/ j: J* V9 J5 e
{
: B! S, D3 k$ h) H m_nExp1 = 0;$ U+ G9 q7 b$ B8 R3 _
}
/ u. k9 O, M4 B7 p. X8 N6 p) c" k% r# v x& [8 W5 ]
( (CUser*)this )->AddSetChangeJob( nJob );! l6 T- T. c8 ]+ H4 [
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' X/ _+ b& H3 {& Z# f% T. {' M$ s8 T, e
) Q, q" p+ @9 c7 F5 w- L: }2 N) V+ C; {$ T+ R
#if __VER >= 11 // __SYS_PLAYER_DATA1 Y, {, O$ K' J0 j3 j! V0 | Q0 S: I1 X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 I" R8 V; V9 V; l) E# s$ x
#else // __SYS_PLAYER_DATA* O. u/ g5 ? c
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# X/ C4 P7 I6 S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );. `+ G; f" L$ a! @8 M9 _6 ~' W/ n" p
if( m_idGuild != 0 )
/ E6 {6 h8 c$ | G7 O g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% H7 s" Q! s/ z( D" J' H& z#endif // __SYS_PLAYER_DATA
9 F( B0 p7 K- Z SetHitPoint( GetMaxHitPoint() );& {* T$ p8 y4 p: A8 d' J
SetManaPoint( GetMaxManaPoint() );
. }, M2 [2 W4 k; y/ C SetFatiguePoint( GetMaxFatiguePoint() );
" t# `) w, e/ m+ S7 w' v if( nJob >= 1 && nJob <= 4 )
8 l& ^2 Z" M( g/ Z2 b {
( c( L6 G! t# f) {2 u! } m_nStr = m_nSta = m_nDex = m_nInt = 15;0 m- o- i6 s9 T" J% K* U* ]
m_nRemainGP = 28;
. s2 T& [" h. F6 f/ d$ R. [ }
; C2 V5 u' x- T" T H if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
: p1 X+ k7 ?2 G" I {9 ~0 j" k7 m0 L* ]! E1 n
m_nRemainGP = 118;' ~% w$ T3 J% o
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& m- e3 f0 c/ w/ |: s. r( U0 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! i; G3 Q# W* x0 z, D* ]* h# l! { }
$ ?% u2 q, h) ?% J if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 ]) C- \( \0 \- s. U' v {: t6 D( x* n" O7 h: `% S1 m
CItemElem itemelem;
. ]4 O B" l f0 W$ W9 z itemelem.m_nItemNum = 1;! w1 `2 x, U! V
itemelem.m_bCharged = TRUE;! z/ N c0 S* ?
BYTE nID;' j1 ^6 ~7 L9 \/ }
& c0 B' `2 E" ?# l+ P& M7 M5 r
if( nJob == JOB_MENTALIST_HERO ); K' I: I, p V& ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* P0 O+ Q0 M3 i0 }
if( nJob == JOB_FORCEMASTER_HERO )% w0 F4 r0 y3 P# T5 N
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 `6 Y6 N% O+ d
/ c0 `6 i% d5 _& t7 _2 c: J4 v# A
( ( CUser*)this)->CreateItem( &itemelem, &nID );
2 f: w$ i5 p( T0 k1 v }
2 k5 S( E* x5 A8 `" o g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 g( v$ I; n' ~$ e1 s9 u6 B ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ G( r2 K0 h1 B4 U4 K, J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 _1 x% _, o, d* q, Y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; K8 |3 p, g6 @ ( (CUser*)this )->AddTaskBar();*/
& Y4 c% \# c. p( q( @ ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 S8 A: j4 b. y# b#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( w2 J( e4 c# K. t
((CUser*)this)->CheckHonorStat();
3 ] J, C8 V: L ((CUser*)this)->AddHonorListAck();; d0 i' y L, d# o/ \
g_UserMng.AddHonorTitleChange( this, m_nHonor);- k: `0 Y& J9 }+ l H' t
#endif // __HONORABLE_TITLE // ′Tà?
, ]( L4 v$ b$ L1 U9 I/ ] }
, `1 ?, q( J: `# j3 L#endif // __WORLDSERVER
+ B- C5 r- Q) R} % B0 U% o6 i( N. K
, T; N1 r3 [1 y0 x, `3 J- \
然后你进入functextcmd.cpp并添加以下
1 G, s) p% M3 ^5 E
; @% H2 {" x( e) X: v) Y+ O4 a/ T代码:
: O6 r$ q1 h x0 g' e6 BON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) |8 m3 W+ e6 t' S! ?4 ]
下面插入
3 U) `' d" i0 i v' u& }ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 3 Y$ a: m0 y" x5 ~' V( I
0 a/ f6 K' O+ l5 ?. w! j然后你去
1 D. s4 [! o7 `; |; y3 |
1 D, F; E6 L$ y代码:
$ x4 ]5 `* |4 P( \# P# x代码3 a0 I- u; d$ F: _+ i& Z2 a
BOOL TextCmd_ClearPropose( CScanner & s )3 C9 ~- P6 ~+ V6 m
{
1 Q+ O4 a6 W& {5 u#ifdef __WORLDSERVER4 O8 E6 w% a3 J) b" }
CUser* pUser = (CUser*)s.dwValue;
9 s! y. h% \% m q7 i, F4 l g_dpDBClient.SendClearPropose();7 q. p( g7 G" M1 H$ k
#endif // __WORLDSERVER: x# h8 V/ c4 ^5 H. V
return TRUE;
/ c* u& K) w. {( `* V+ F}1 n1 j: M' u, D: W @
下面插入1 X- @5 ]1 G9 C0 v% Z& H: Z( H
BOOL TextCmd_rebirth( CScanner& scanner )! r% B9 g" `: e$ j) l0 V
{+ Z& s9 v+ Q4 ~, m* S
#ifdef __WORLDSERVER
/ M' s( |" y+ d) Z$ i* oCUser *pUser;
" G- S0 c, ]- Z2 \) {1 e# I0 opUser = (CUser*)scanner.dwValue;
' v3 P" H% g D; c" ~4 ?if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
0 \. N3 a! Q5 I9 F* W$ YpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);3 Q1 v( [4 ~: c
else
' @# l6 j; y) C; E9 @pUser->AddText("你还未达到重生条件!");
0 L, R o9 k( r, L#endif1 [$ R6 l8 B# |( ]$ H
return TRUE;* j9 z1 B6 p& l' L6 D
} - D4 Z1 j5 o6 p8 {2 t! M+ d4 Z
5 O- Q/ d9 V- J$ C/ Z
9 U: `# a' r/ I- V$ z. W+ M; R6 b+ M) f T! k }- R
0 o! e8 X% @, m/ ^4 X& J j# z |
|