|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ U- Y6 i9 j; ]2 W0 d! E- H6 j7 s7 W- |- k9 p% l9 v# F
Mover.h
# d5 k, R5 y) N6 n5 U$ O代码:
O, x4 U& V8 c- k4 G找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü6 \' `8 ^/ n) ]3 V% g V+ ^, h! N
5 m9 Q! H$ W- n* T) k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) _/ R) `7 n, W+ Q* p8 g( U4 L% E1 u$ {/ t( j" [ q `7 d6 K% x. s
然后你去mover.cpp添加4 Y+ t$ K/ q k+ Z; r
. G' T: M9 w# A- r代码: S% \4 b& `- Z! M' J3 D
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% ~: o: T. G \+ S h) z
{: l2 V1 i$ M- m7 t
#ifdef __WORLDSERVER! c. d, d/ ^ ~2 H0 ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; f5 n4 ^6 {- V' |1 w' k MoverProp* pProp = GetProp();8 P( S& ~% R! ^/ r0 L9 J% }
if( pProp )3 C2 ]0 [) b# m, E0 u- W& X$ O
{ l- l3 \" E9 T
if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 e: W% |, S$ ]0 I
{
7 S/ ^4 Q9 j. d5 k; e2 \ n, k% q AddChangeJob( nJob );
8 l& @. D- A+ h4 k8 M' p6 O }else{
0 k- q6 l4 w8 Y7 E$ { u, C return;
( M8 d+ i6 J) | i& z# e }" J) W) J: H3 _0 z# V
int nPoint = 0;; z. H" ~* c. W* o. e
if( m_nJob == JOB_MERCENARY )/ @( \" E$ A+ W6 `" Z0 j P: k7 F
nPoint += 40;- Z+ C) j* G0 x' W; h$ \, \
else if( m_nJob == JOB_ACROBAT ). Z; ~; l4 f& q8 l
nPoint += 50;
# P; t2 ^; v0 [! p% @; Y0 l else if( m_nJob == JOB_ASSIST ): d2 |$ R9 k9 r
nPoint += 60;. M, \, N8 O$ S$ S$ E! {7 b8 `
else if( m_nJob == JOB_MAGICIAN ). t/ m4 |# ?! D5 w; d5 S R3 I% D5 t1 C
nPoint += 90;1 j- l7 P& |6 Z( D4 j( @. |
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& r2 o" d" n4 j; i' s9 ?0 }9 W: w8 W* s nPoint += 120;
4 A# x, c4 k0 Z8 V else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) U7 q" X( B* F( v" I nPoint += 150;. v- F% r6 K% e8 ]8 C
else if( m_nJob == JOB_RINGMASTER )
. v' n& [6 v8 c- N7 `, k nPoint += 160;9 V8 [$ N" y" D; a9 A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" [( H! n' W5 c6 w7 g
nPoint += 180;
) h" l7 |5 k8 \: d. i9 b% L else if( m_nJob == JOB_ELEMENTOR )" W. M" f$ }' b T5 P1 {! z( S
nPoint += 390;
2 s+ }# }4 o9 @$ E" ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )/ o$ O+ q+ S- V7 L
nPoint += 120;; {4 o5 _" r5 }$ q) t, M7 I6 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 J+ l2 ~- M9 j& \( L
nPoint += 150;7 j2 W, S! Z2 e) v F
else if( nJob == JOB_FLORIST_HERO )
3 F& Q( d, [) d. C4 U8 X9 T: C1 X nPoint += 160;- k! H- B: x, c, p7 k. e, k8 S9 {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) M% ^9 j7 d2 D! m( V! x; v% v
nPoint += 180;2 l! M% r, y7 w' o
else if( nJob == JOB_ELEMENTORLORD_HERO ): R) |, L6 w0 c- H' x2 r
nPoint += 390; S% a: P" A" J6 s, _
" B O. @( } u7 F) Y AddSkillPoint( nPoint );
" o. f8 K5 r& h m_nLevel = nLevel;: P/ H0 \9 d# s. H
# @" ]) H# G9 E2 E# M. A
SetJobLevel( nLevel, nJob );
! D5 K- b4 D; ?: | m_nDeathLevel = nLevel;
. |1 L" F# i* U0 X4 Q#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, C# _# V2 N& x" V' s+ z5 ] N8 { if(IsMaster())- Y! e6 |8 \7 h& I: U! b
{
1 r7 X$ u& r" I2 c9 u# ^. P$ R int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. R8 b" q! T- x$ ?
if( nLevel > 59 && nLevel < 72 )
( [: i' p' `! W+ r4 @, v* C dwTmpSkLevel = 1;$ E3 N: c" }6 Z: a: F( b/ m
else if( nLevel > 71 && nLevel < 84 )+ }+ J' D4 q5 z' n' U
dwTmpSkLevel = 2;# I7 \ f8 u- u( j; o6 V2 o
else if( nLevel > 83 && nLevel < 96 )4 q! j5 `- n. ], C! B) L/ E" T
dwTmpSkLevel = 3;
9 c; X8 x7 c+ Y else if( nLevel > 95 && nLevel < 108 )
6 u- `+ T% Z! W" g- s. \9 { dwTmpSkLevel = 4;
7 S& Q. S! d3 x; `! [/ G0 ~ else if( nLevel > 107 && nLevel < 120 )+ E+ i! \) n. R! S* v+ R) `
dwTmpSkLevel = 5;) ?8 Q5 P p# y3 Z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
; R3 P5 `9 L3 D7 f5 ~ {
6 Y8 c7 N7 @: ~ U LPSKILL lpSkill = &(m_aJobSkill);
/ E( k4 B/ w( C( G if( lpSkill && lpSkill->dwSkill != NULL_ID )
, \: a4 b D' o {
2 }1 K" l9 v l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / B) s1 \/ H7 X; @6 w1 A3 {
if( pSkillProp == NULL )9 W( M8 D9 M( G) { ^$ x
continue;
3 a2 n% e0 F* m; ?3 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( m0 t; J: g7 {: O8 T
continue;8 Q' R* q. k; v/ X
lpSkill->dwLevel = dwTmpSkLevel;/ A' [' C5 {' p/ [8 s
}; [% l/ @* k) A7 F5 y( b( A
}
6 i: I+ e- v: m1 }/ z5 O }: E4 I1 ~; ` ~) n: J% _
else if(IsHero())7 r# L. d2 q+ c: s
{
i L4 g# v8 j7 D for( int i = 0; i < MAX_SKILL_JOB; i++ )
e2 b% ]; W" y& L/ S { 7 k& x: Z& _: A2 ^0 v
LPSKILL lpSkill = &(m_aJobSkill);
; E% W6 K4 h& @( v$ C% [4 t if( lpSkill && lpSkill->dwSkill != NULL_ID )
* ?0 X3 e8 N8 [4 N {
" r% @7 b7 X6 N l5 G; U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
% X# l1 P8 R* U9 c! b5 y$ P if( pSkillProp == NULL )
* J+ ]( C( o4 N8 u; R( w& R9 C continue;' C2 u7 A6 p, e5 h4 l' }2 ?) ^- U; h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" [1 V' M; \, M* _" I. m& h r( `8 x continue;
: v; e" r/ F' | lpSkill->dwLevel = 5;5 p5 r! f+ r! c2 T; i
}( j9 J, F/ ]; j/ A
}( t0 w v" }: V+ O# Q% @
}% F" w" m$ i: K. I) [
else if(IsLegendHero())# L1 n/ t; r" \ U; P2 ]
{6 h- `$ x2 a8 v9 H. W( N& e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 A! I3 B+ q. U' e% [2 v: Z
{ ' Q5 S0 |8 k8 s+ I/ g: K
LPSKILL lpSkill = &(m_aJobSkill);
6 i+ s6 e9 J7 X {5 b# f5 T+ G: p if( lpSkill && lpSkill->dwSkill != NULL_ID )2 ?+ l8 L6 G( T" R. |* @$ ]
{0 k/ N% A7 @" Z6 V' x5 X3 r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 Q0 Z" t2 g, b8 b( o! t6 | if( pSkillProp == NULL ), T: a7 K4 g3 I/ m0 y5 a) {$ T, I
continue;
: h% P1 }5 d7 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER): x% Q& X+ X" v6 |
continue;
6 _0 L. l, E9 `! f* [1 W) O1 ^ lpSkill->dwLevel = 5;( _3 W( G" D I
}' Q; ]" M" V* f/ A' s& {
}( V! P9 f4 {; p2 o" D/ @0 G
}* G+ Z: f' @. M( _6 G5 K# D& Y
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 f+ x8 Y) f4 u1 p. r if( bGamma )* J1 C; u/ O2 X$ d: n% d' g5 s
{; K+ K# S5 t3 p! K" s1 T
m_nExp1 = 0;
( Z) e' k4 w7 Q- X }1 R: N3 L4 S9 v* ~4 J* E
' h' D Q: a" ]# m, s ( (CUser*)this )->AddSetChangeJob( nJob );7 a+ p2 K: S, y8 w H. E2 [
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
, m7 q0 D9 m' i1 z( F2 K) b6 ]# I4 x& k; Q2 C: Z
' E. A5 B m' J5 [) s+ N' h#if __VER >= 11 // __SYS_PLAYER_DATA: F- n9 B' [) f& u( l$ D# h
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 d; k' b" f1 c
#else // __SYS_PLAYER_DATA6 Q6 s1 ?6 x% g: h% U
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( O1 N- r, n0 E6 F+ q/ J8 q5 R
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 i. b" r K5 U if( m_idGuild != 0 )
# \6 F9 Y2 z& x F6 l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 t7 ^- S9 t& W6 K: p' L; A
#endif // __SYS_PLAYER_DATA. u3 t% l( a9 I6 c
SetHitPoint( GetMaxHitPoint() );
! M- T+ i, L2 T7 H& y# o! r2 Y* o) W0 y SetManaPoint( GetMaxManaPoint() );: t! b1 W8 l n6 v
SetFatiguePoint( GetMaxFatiguePoint() );
0 c- d" }; u3 X8 r8 c if( nJob >= 1 && nJob <= 4 )+ d, z$ @6 k/ Q, \1 Q" \+ Z0 C) b
{0 F" z7 _- O0 U6 c' M, H4 s
m_nStr = m_nSta = m_nDex = m_nInt = 15;( I5 X6 ?+ u8 f* n O; w
m_nRemainGP = 28;
0 S1 _8 d6 x* {' A5 \+ M3 W' K } W+ G" k" M8 g7 k4 h
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 j6 ?8 W. |# h8 m {
6 M( x) _8 ?( t/ O8 ~$ m9 R m_nRemainGP = 118;
5 k) [4 ?* i0 T/ p7 ]0 g( ^+ o //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! j2 ^ L9 M9 G m_nStr = m_nSta = m_nDex = m_nInt = 15;$ ]' |5 o: M2 J( f1 T8 ~2 z/ W- K
}* Q3 u2 S6 K$ H$ z6 t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) r; `+ x9 Y. ^: W, Z {8 |$ C! m. }/ S1 _6 q! R. a
CItemElem itemelem;6 n9 Q$ k' F' w
itemelem.m_nItemNum = 1;+ |. l$ C- r7 L' C6 G1 A7 n! k5 ]# F
itemelem.m_bCharged = TRUE;
( Z* M! S j6 W" g4 x BYTE nID;
( g+ @& t5 n" G% B& z4 ?+ m2 h2 T1 S* u8 N9 @( j5 W/ p
if( nJob == JOB_MENTALIST_HERO )
) |; G7 @7 u l# q8 A7 U; H) i itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 {. g7 n6 u$ p" i2 t if( nJob == JOB_FORCEMASTER_HERO )
% S/ ?% ~" c1 C$ {! p# D itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# \6 `3 z: ^- @7 a# a$ U; X3 M& F/ G
( ( CUser*)this)->CreateItem( &itemelem, &nID );
# Y X+ Z( ^6 U5 q" R }
! s/ X" w% K% p" e' P" @. k# @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );, i) U. l7 d. N/ ]3 O9 z% u) W% G
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );" A8 A/ B. F' N2 C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, h4 M. p2 m9 s% s7 D; J# n /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );2 h/ S, P" n! W$ ^ U* Z' C! }
( (CUser*)this )->AddTaskBar();*/( b3 ]0 Y$ I: j" N+ _1 l) V
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( m' {4 D* S# x2 V6 n
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 h$ K: j5 o( p w' N% @
((CUser*)this)->CheckHonorStat();3 } A. ^4 h6 X" `
((CUser*)this)->AddHonorListAck();' G0 S% V- |+ t! k( I! M7 D
g_UserMng.AddHonorTitleChange( this, m_nHonor);0 @7 x u7 u% E. n" P
#endif // __HONORABLE_TITLE // ′Tà? O1 Z7 o% E# l
}
" a W* e; A9 g' N- G#endif // __WORLDSERVER% C3 V, i) |4 c
} 0 _6 h) y: [9 P: X' S# A$ g
8 G+ ?$ ^3 i6 _
然后你进入functextcmd.cpp并添加以下
& z( {6 f7 T5 D, ^. \8 r# m9 E7 P5 ?6 _" V
代码:, R: x6 e1 C+ F! n% V, S8 J' w% A
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
% X9 K1 H1 d, {3 q! D, M% e: b2 s5 d下面插入
) V! w# f l; Z% [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 K2 G2 v9 {4 T( W2 d. A
5 ~5 {) |, ?( L% z! M2 }- |" [' e, a然后你去
4 g2 x) F% e1 J3 h2 |5 [: s" Z9 V
. Q* q7 `& r, A y% Z8 [1 `代码:* |6 _9 ?" V4 K1 Y
代码- ~5 I8 U$ q; ?6 T# D3 ?; J5 E5 T
BOOL TextCmd_ClearPropose( CScanner & s )
: X7 e8 V7 L3 v5 C{* s6 e4 a9 E2 N ^0 m4 J7 f
#ifdef __WORLDSERVER+ C5 a: ?3 \4 V. H- s9 W3 k+ t
CUser* pUser = (CUser*)s.dwValue;
1 B% s6 k6 t. l g_dpDBClient.SendClearPropose();
5 _7 ^& F3 V4 ~0 z- L: G' P#endif // __WORLDSERVER
% ]1 i# S/ L1 U return TRUE;4 `' J0 |- W! T4 ?/ r+ w- [0 s# U
} {* L8 q2 i- f
下面插入
& {7 k$ ?: I3 S- e! o. K. ]5 rBOOL TextCmd_rebirth( CScanner& scanner )( V( I) F/ C% t3 }# q
{" c$ d1 r+ h% Y9 [
#ifdef __WORLDSERVER
% E& y0 E" |# U: sCUser *pUser;
% u6 h+ Q( }, lpUser = (CUser*)scanner.dwValue;
! n G: P# i. I$ _; Y5 ^if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 e6 m$ O4 V" m
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
. T# q2 n# B, J' O2 P, i' a% _else4 D2 R/ J! \4 j- B O i- U7 g
pUser->AddText("你还未达到重生条件!");8 o# o' S6 L% p1 j. Y! }
#endif
8 n6 P( E8 K, B2 L2 H4 v+ Zreturn TRUE;$ a* [- n3 g6 S2 Z
}
0 Q, m' {# ~1 f- O$ M1 m; R2 L
3 S. T9 G4 {8 S; p
. P+ h$ }0 M' h/ @3 ^8 E- m( l
- m0 p# ?/ q* h1 V9 c
% v6 o/ w4 K' Z: \" H" N1 v+ [) w) O |
|