|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; L/ V- r0 H( O* B( L5 \
* w- c T/ V6 M6 c/ eMover.h
' W/ R ~/ r/ v# {代码:
5 ^, f. ?4 Z0 T# |& y5 R7 }找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü# O; J7 Z Q$ B
' `& r% r1 @! p) ~( c& D8 Q" ~; c a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; . x2 b1 C7 Z4 T0 i' o% R% H: |
5 ^7 s- I! H" r' c, w
然后你去mover.cpp添加/ B; Z5 N. I3 X% o9 y- n
) x' s- V: \# C代码:
1 P! d% [2 ~9 K/ Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' c$ e/ ], Z/ x! p% [' F. v/ D5 S5 ^
{7 p" r4 R+ i1 t3 T
#ifdef __WORLDSERVER0 G9 [5 F* t) Q! m+ ^ j
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. n2 O& |* `2 d L% V0 v: i MoverProp* pProp = GetProp();4 `2 g5 k: T+ N5 [' i
if( pProp )
/ i. p+ s* D& y* ] {
+ }1 l. r1 H; ~: l if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ G2 \3 F, F( G7 G! ~8 v {
p/ `" r! c9 h" [& \ AddChangeJob( nJob );
7 A- {% |: }& W }else{
4 p* q/ H0 \3 ?' B. X! B9 C return;
" m u7 v1 e- D o+ S }7 e5 X U! |' H% f/ ~
int nPoint = 0;
, q& x6 y' q2 d% @% [1 B: S5 h if( m_nJob == JOB_MERCENARY )3 d# E- i$ }! e
nPoint += 40;
0 B1 e$ T: \8 U7 }3 ` else if( m_nJob == JOB_ACROBAT )
! z. `. R# I" c* D nPoint += 50;, v$ R! U/ _. j- ?0 {
else if( m_nJob == JOB_ASSIST )
( I3 E2 x3 N' }; J2 P3 }: J nPoint += 60;
4 X6 q0 K9 g. @( i* d5 K else if( m_nJob == JOB_MAGICIAN )
: n5 H: i) w4 `9 f; k nPoint += 90;6 }/ v1 |& @5 T' A4 Y
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 ]. v, }4 g% }' A( @
nPoint += 120;4 [# H, c+ \. z" d7 V: H8 z
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
2 d8 s K, w# A6 Z& l }! d3 V nPoint += 150;) d) A2 h' Q$ z0 A8 D& [
else if( m_nJob == JOB_RINGMASTER )0 u/ J; p! ?9 z
nPoint += 160;( G# E: c# ]- F3 T2 N
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )' ]& O/ \2 V" X5 L" [2 a" g2 M+ b
nPoint += 180;4 ]6 G0 t+ e: G! ~6 [6 M5 S7 Y
else if( m_nJob == JOB_ELEMENTOR )
" P% x# e5 @+ w4 |$ g nPoint += 390;1 \) S1 E; A( t" g2 x% M! R) z8 j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& A% _9 [; F% [6 o5 _# ] h9 L
nPoint += 120;: w6 E0 t; h# n8 |/ l' C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 x8 i; a5 F+ A" S# a* L- P) F nPoint += 150;2 Z* ~1 S, m/ R! z2 t! F6 ~
else if( nJob == JOB_FLORIST_HERO )
3 z/ v7 Y- z* y! U7 p. [ nPoint += 160;0 V) ~; s9 F/ M' R% `5 q' d
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 W4 V$ z _0 X6 i9 O8 M% H
nPoint += 180;
5 l) R1 g; ?! z else if( nJob == JOB_ELEMENTORLORD_HERO )) e) L7 M" P3 m" S3 x. S
nPoint += 390;# m- M6 v6 ]) x! y! D8 @3 ~
2 x& J! q8 F2 l) O AddSkillPoint( nPoint );
- U1 ?7 H: ~7 a5 b4 m m_nLevel = nLevel;, b; E2 _! H/ [2 C
, i. l- E) j# [- A D6 H8 l, n: } SetJobLevel( nLevel, nJob ); h+ b/ e" Z% v$ t1 Q5 k3 u
m_nDeathLevel = nLevel;
/ M: f& n" L7 U. n8 g#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) [. B3 F, z4 q) H' V if(IsMaster())
7 D$ a3 {5 u$ {7 g# H {
( U' c' D- L _1 O1 M0 z4 u7 k int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
$ U' |3 ?/ G0 x8 S' N4 m* N* I if( nLevel > 59 && nLevel < 72 )
s' y4 J/ P3 N7 l% l dwTmpSkLevel = 1;
( Y9 x( q C. F3 h! m else if( nLevel > 71 && nLevel < 84 )( [( T1 m8 ~9 { `9 a/ ^& Q
dwTmpSkLevel = 2;. ]7 G0 a3 X! v$ K) a% V( E
else if( nLevel > 83 && nLevel < 96 )3 I# d8 T3 k3 ~/ O( R
dwTmpSkLevel = 3;$ D5 d2 b4 O! Y
else if( nLevel > 95 && nLevel < 108 )
% P$ C6 f* D3 \$ S; x dwTmpSkLevel = 4;$ W7 l1 C1 P" z. p
else if( nLevel > 107 && nLevel < 120 )1 M' i& T& m1 s) B
dwTmpSkLevel = 5;6 [& h* L; z, E" O) P5 s+ a
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 v+ L7 a5 g+ U {
: g& j5 k% T( a1 E LPSKILL lpSkill = &(m_aJobSkill);3 e" p! K- @ ]: X& |& c
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ w) r1 g \- g4 n8 u9 ]. L: B
{. T7 g/ T7 u- f( l ? |3 ]8 L4 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 t& K3 X- O3 @/ `8 N' M0 g1 [; P
if( pSkillProp == NULL ) T2 ]9 V; Q0 O; U1 g# Z; d
continue;
- L8 ^9 W. ~1 M4 k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) g4 U8 H5 @9 R) h
continue;
0 b) G1 h/ [% w; j1 | lpSkill->dwLevel = dwTmpSkLevel;
( k! g; n# q+ _; g }* U* Q% ?! J, O$ @/ D
}
. `) F+ C+ q) x3 u }
0 r4 Y6 |0 g6 r- ~3 q( c1 j else if(IsHero())! T G' Z6 D/ @" Y6 u8 Y8 n
{
: v. U9 o9 A1 M5 e for( int i = 0; i < MAX_SKILL_JOB; i++ )
& Z5 d. ^" i" j& b' \# b$ D% ]! X { q; Z+ }8 G: B9 d
LPSKILL lpSkill = &(m_aJobSkill);+ C; g: |; Z* v: A: t$ A' H. Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ e7 ]: a$ }! H# L+ O I
{
2 S3 W$ E% n* b! ^) l1 k3 {7 d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 k6 H$ M% D) l/ k' r) b; C3 x( B/ } if( pSkillProp == NULL )+ [$ p, x0 S) Y/ r" @/ ~
continue;
7 w% s6 d8 @5 ~9 t1 R1 t6 T/ W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 i3 Q# n3 E9 b4 @/ D$ M: t
continue;. n5 a: Q) p3 X$ g2 w
lpSkill->dwLevel = 5;6 A* A' p' l- o8 v
}/ v$ o5 u( j# c5 S! i- j
}
+ C' o y! _$ E- @- t! i }
; h6 q1 u7 [, R0 D: I$ c else if(IsLegendHero())
j/ u! z3 j8 l {! X/ \! H5 C5 G9 H) G# [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 ~/ B" [7 I R# L' _! \0 y
{
% B+ M; B H' p5 l LPSKILL lpSkill = &(m_aJobSkill);
- u5 ^: h" f$ w! W( ~0 \9 w if( lpSkill && lpSkill->dwSkill != NULL_ID )- j. ]( T& H: G: [1 ?/ Y0 B+ ~7 v
{ n7 v' v& b0 a" N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 @/ v7 ]0 d! G" b; z if( pSkillProp == NULL )* f; t k; |9 l7 U7 Q& g
continue;# i- A) p: e! L
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ H" y8 {, K( Y. {: w
continue;- \/ g" I2 W3 u5 r" ]
lpSkill->dwLevel = 5;
+ W* K* V, J4 z# ?0 u- L. d }
! ?3 ]( [5 a( g& ` q3 d }
0 D- T+ p+ e n1 m# t }0 b' P p+ e, m* T( p5 }$ {
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ ?; t: _; m/ [: u4 } if( bGamma )% L+ e3 I& T: j
{
6 _) ~: e& l, i; M" S5 S0 c# y3 p$ Q m_nExp1 = 0;
# V2 s* q3 ~3 f+ t- t }
& Z6 ? { X: v9 L7 m! Q/ a& ^. d; h2 y
( (CUser*)this )->AddSetChangeJob( nJob );7 p0 H$ W8 N3 a7 _$ C
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# l# K- `/ [7 B8 j3 h3 K$ T+ q, c% {" M. d
4 l* F$ M2 ~( b- \3 Z1 Q& Y
#if __VER >= 11 // __SYS_PLAYER_DATA* h+ w; a, S; y- M% _
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) @+ [/ O1 s a3 M. \; x4 q9 Q; P" Y#else // __SYS_PLAYER_DATA
0 D+ w( z4 [& s( V g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
, V3 [& K9 Y7 H# | g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ g8 V4 p2 ~& R( Q# F3 R if( m_idGuild != 0 )
0 u2 y7 P- M; [7 B2 d5 U g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
4 t0 C9 H& W, `* w- A, |# s#endif // __SYS_PLAYER_DATA# ~9 \% I, j1 O# f
SetHitPoint( GetMaxHitPoint() );5 t" e6 ?7 i1 J9 c% d5 t: A
SetManaPoint( GetMaxManaPoint() );
, N5 ]& d; _. t* E. i2 a/ o# @4 D& ? SetFatiguePoint( GetMaxFatiguePoint() );7 C, t9 \, T: B1 }* @8 O8 U
if( nJob >= 1 && nJob <= 4 )
% e2 b. o) Q3 w0 _# C- x; S7 s {# s, B5 A1 x7 e6 v( n0 a
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 z5 S8 B/ h% a, e, @
m_nRemainGP = 28;) M- K% {* H+ p* d D
}
$ T$ f; ~$ y( P! b0 g if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 g. v5 I# t+ ?+ R8 C9 ?, n- l {6 h$ |2 z, k9 ~ {
m_nRemainGP = 118;
. z) C2 W& s. L0 C: p //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
$ j6 d/ B2 P. N2 Z0 z m_nStr = m_nSta = m_nDex = m_nInt = 15;% [) `7 l( e e5 A
}
A, e( {1 J' W. H9 F s if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
: p# s3 @6 n8 A& r {
1 j) H' w/ y L2 I- C) P* j CItemElem itemelem;
& I7 c" x; I! H7 s5 ] itemelem.m_nItemNum = 1;! T8 l- T1 u- K1 R
itemelem.m_bCharged = TRUE;* T3 B) _2 M3 E+ o4 S
BYTE nID;5 Z7 `! [# \4 v$ a4 w5 C+ n5 s
, W% _! v3 Q! g' M* {
if( nJob == JOB_MENTALIST_HERO )% H& F6 ?" a& Q! x1 S7 u
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;1 W1 J8 a6 M9 Q/ O
if( nJob == JOB_FORCEMASTER_HERO )/ t+ L7 j* ]- W) {/ I/ W7 j3 H+ r4 i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 ?& N M0 B; X3 d3 W# ]* W Y& S: @. P+ K$ K8 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );' [. R! f, _, o
}
) W/ j& h8 v7 p: \$ M$ ^) } g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 V# E/ a3 t5 Y/ P, Y5 Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; a9 k) C) K# C ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& A' F: C q$ s7 Z( U. `) \
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 W3 `% x! L; \+ ^) }7 \( ?
( (CUser*)this )->AddTaskBar();*/
% O3 A6 w4 B. s' B+ ?2 j4 I" ~ F1 o3 o ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# u+ Z" b9 ~' x- P. D4 @( l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?9 S- F$ a- G) U3 A& A/ m( E
((CUser*)this)->CheckHonorStat();. L: `; E- G3 J
((CUser*)this)->AddHonorListAck();
& N7 [0 i# x: w# N7 }4 `2 p" V% } g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ l3 Y6 h" G3 i: i& e; k6 t+ a1 R" l#endif // __HONORABLE_TITLE // ′Tà?
8 y/ |5 i0 S# }$ v) q6 ]( L }" [8 }# g; ~% C& z1 D
#endif // __WORLDSERVER
9 k; ~8 t0 g( Z$ `2 c. `* w: M} ) V$ H0 x8 M8 X/ P" X7 u8 |
: _3 J9 X9 Q5 E3 ]7 K) H" Y然后你进入functextcmd.cpp并添加以下
- t, ^" A3 S3 z9 }- i$ d4 l9 ?( w! g4 q
代码:7 i6 z( I9 V: t2 I( K
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 _5 L: E- J* a& v( m
下面插入
/ w& n( e% g/ i# LON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 V6 q+ [2 }4 r" W" c3 r9 D, @3 b7 D6 z; U) U" H. U& E3 h6 Z
然后你去
5 g4 V8 t% ]4 p8 @$ d) K( f$ h) j! [/ ]0 s' m& N/ h9 q4 T2 s% ^
代码:2 G" s0 J3 W. q
代码
5 O" N% }; N [$ fBOOL TextCmd_ClearPropose( CScanner & s )
1 D& |. @% [' _ w7 I{
: o- c s% r* \3 k- T#ifdef __WORLDSERVER- A7 e4 Q1 g6 M3 t
CUser* pUser = (CUser*)s.dwValue;
6 x8 w* A/ j1 B. F g_dpDBClient.SendClearPropose();
' m- ^- @1 i# R7 v7 m#endif // __WORLDSERVER l s* |+ A+ U3 Y
return TRUE;" p+ E7 s! {" g0 `# H
}8 j0 v: E; Q* f5 K7 d. ~* `
下面插入0 g2 S$ D0 Z2 q, X [
BOOL TextCmd_rebirth( CScanner& scanner )
# r/ z" v, h& Y7 b) @{ ?, d) ~ [ k7 f
#ifdef __WORLDSERVER
3 Q1 e, k: n6 a W( F: FCUser *pUser;
" V. g! `, f# S- v4 ppUser = (CUser*)scanner.dwValue;
; f3 q/ F; `- {* r9 Q: d, C. i: eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% o( y b9 x6 v2 c r( E! {9 e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
w" B4 w3 V5 _else2 M2 V9 C4 j8 d/ J
pUser->AddText("你还未达到重生条件!");" H1 F7 ^ a+ z8 \) l# z
#endif
; j4 P3 U5 m5 Z6 o8 {% U" Breturn TRUE;* I+ Y" y% i- _
}
" F0 a8 A- H; F1 M2 v9 ^4 M. {- N: P t6 d: N
. q! ]7 a: l, l( [6 U# a( b% {5 X0 \+ b+ ]
/ x* l1 \, B0 y |
|