|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 e2 A' Q' A( {9 \! U
+ A% v+ M! Y j. f* r( m
Mover.h
2 }) c4 v% L5 q0 c$ k0 [代码:2 e+ U8 V. [9 E( C) ?$ @
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
! o# b9 C( {/ j0 U& L. H
& M7 w# l1 H" ~4 G下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # d( k' K7 g) u1 M D# i4 U9 v4 P
" ]# z" C# j5 j5 k7 [9 \+ n' L然后你去mover.cpp添加# G" [% z$ {0 R& l
: Y% }. g4 i |5 b0 D$ B代码:4 Z* u* D% l) o' e5 J3 v+ O1 _
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); F% r5 [, R! p2 g
{( B* d- |5 x: J+ ^
#ifdef __WORLDSERVER+ U4 h% \9 |3 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó3 o; I; Y, x& Q" E' @/ ]: Z
MoverProp* pProp = GetProp();
, o& A1 w) z/ T if( pProp )9 k3 G9 S4 ^2 _2 D3 F6 E5 M8 r
{
) h1 `7 H; u& y7 M" _ if( nJob > 0 && nJob < MAX_LEGEND_HERO )) M( V( m' P, _/ ?" T$ r7 M4 S
{, h$ t, Q9 K6 g
AddChangeJob( nJob );
+ e! u- V7 |) @( {7 j }else{
% e& ^# p% d6 g6 G- Z return;
8 O9 Q7 V3 J: e4 f9 A9 ` N }
( f& J5 K. E9 u+ U' `1 Q6 E4 N int nPoint = 0;
/ j' l9 Y( \6 O. } if( m_nJob == JOB_MERCENARY )& k* r6 L) G( U
nPoint += 40;
1 Y1 k! R4 c6 }# b else if( m_nJob == JOB_ACROBAT )
& e3 @' p) Y! F; X nPoint += 50;
5 u. d, J+ _2 N6 A+ G else if( m_nJob == JOB_ASSIST )9 G& {( O% U4 t* \ Z
nPoint += 60;
m2 C6 g$ @3 K- ]9 ]$ \% X9 w4 g else if( m_nJob == JOB_MAGICIAN )
! Q% m- p* U) R. I, R nPoint += 90;1 h( I# `; k. j# L' V, I9 G# U
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
& h0 b2 X1 G5 J3 T2 o/ U N( A; \ nPoint += 120;
+ S8 G. S" ], x* g! B' y- g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
; O; o P* A+ P* t7 r. h6 h nPoint += 150;% x: g" r* g8 N* {! q I, {6 X
else if( m_nJob == JOB_RINGMASTER )
' c# m" e: ]9 [+ ` nPoint += 160;( i; p0 M* `4 Q- E
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ [+ `; F3 p7 w3 \) ]0 K: U nPoint += 180;$ b1 w" G% v0 {$ i. f& ]# a' J! z# T
else if( m_nJob == JOB_ELEMENTOR )0 ?* w. n- ` H: r9 p3 D5 n; D
nPoint += 390;# f" ~3 a" j# P
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 ~/ l! E9 ]9 b" M( M9 [( d4 d nPoint += 120;
' V% u0 Z, {, S0 ~' @ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
$ ?" R1 G1 A5 Q. S( V( F4 { e nPoint += 150;, {) p- Z' U) b% h
else if( nJob == JOB_FLORIST_HERO ) h! G4 J# C @
nPoint += 160;
" R( W2 F) k5 R else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )2 S# f; {5 W5 f' O. F. \9 }
nPoint += 180;
. e: X( ~* b& L4 @ h" s; U# M else if( nJob == JOB_ELEMENTORLORD_HERO )8 n4 y. E; Q" ~8 R
nPoint += 390;
, J# d$ q) G- B) I. N% C9 W$ r. b
2 i" O, a; l! h H8 [ AddSkillPoint( nPoint );
: P! D! c+ G d1 O- \" N m_nLevel = nLevel;
U, ~- B% `4 u( N+ D
* W4 i, Q8 v' E$ h; U& A SetJobLevel( nLevel, nJob );0 A0 M/ n! Z% X( I* A4 }, g% x5 q! W; i
m_nDeathLevel = nLevel;
2 I& p5 [: W9 }, J#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 E* X% P; t3 ]+ k7 x! s8 D( q2 l9 t
if(IsMaster())6 n3 T% S# A! S
{. y. N/ ^" p, x8 b+ M" T4 G
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 Z4 } Q% k! o' x
if( nLevel > 59 && nLevel < 72 )5 R7 l3 X! S( G% {5 m
dwTmpSkLevel = 1; w; e3 C2 x2 W
else if( nLevel > 71 && nLevel < 84 )/ w4 f0 H- P: n7 K& O- }' b
dwTmpSkLevel = 2;
/ V" t8 s u( R+ ^! b else if( nLevel > 83 && nLevel < 96 )
! b; g' ^4 r( I* z* w dwTmpSkLevel = 3;2 j0 W5 G+ S: J; _
else if( nLevel > 95 && nLevel < 108 ); C3 a; I' a& M( ^# W- ^
dwTmpSkLevel = 4;4 s& m% ?& J3 \* V' r
else if( nLevel > 107 && nLevel < 120 )" b, h3 L5 P$ r% j/ ]" p
dwTmpSkLevel = 5;
$ u' E: `; B+ x- J for( int i = 0; i < MAX_SKILL_JOB; i++ )
) @' Z0 q( `. b8 L {
: _8 c, P, X. d' `8 P LPSKILL lpSkill = &(m_aJobSkill);
2 v3 \2 j2 c' F! s7 {3 o if( lpSkill && lpSkill->dwSkill != NULL_ID )
) D: U) z8 @+ _1 L& ` {
1 S; G; \: e+ P" M7 A/ d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ I; x) P' p0 J) L if( pSkillProp == NULL )
$ w- {5 v- v! ?4 K continue;# q5 R2 H0 V# ?- M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# N9 p9 f0 I& i% Z. s, v+ Z$ M
continue;8 Z, I6 ]% x$ O4 D! o
lpSkill->dwLevel = dwTmpSkLevel;
; r' |6 e* e1 ?3 Q1 e; @' y }
8 }+ P; x* R* F8 y1 x- O9 B }; T, H1 j: \1 _& [1 l. f4 p2 \$ Q
}
: @3 t8 X5 y) G3 C else if(IsHero())
# G4 \1 U" d; h {) {7 O6 S4 ^% ~5 w8 W
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! \5 b3 o" p$ ` q
{ - w4 p- L0 Q+ I3 _) z9 o h- O& g( j
LPSKILL lpSkill = &(m_aJobSkill);
5 F; r- ]% V$ @+ Y; p6 G if( lpSkill && lpSkill->dwSkill != NULL_ID ) z# X; g1 s* m) W
{3 R# j0 k- x# z6 V5 x/ [# P
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 R+ s1 ]* Y4 N/ g, v6 C" Q- u4 l if( pSkillProp == NULL ) J( E, ?" o% \- s2 S9 G! j# V4 H" ?
continue;* ~ u9 I; z' i ^% K( a! j9 H, t& m
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). ]& t2 H" u, ~7 K# m
continue;
# B, d$ U7 y; b% _% t+ i. K lpSkill->dwLevel = 5;
" d4 Q* f& O: Y: ^. ~ }) o- m1 [$ u+ ^) ~
}8 c8 Y j: T, o. ?: d" A# l9 S
}
2 x2 L1 ^; L& M/ Y! w5 S4 v" X else if(IsLegendHero())
; p2 k/ u2 c' Y4 ^ {9 K) j& h& j5 {' O9 j, l
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 U# l7 b$ M- k& i4 E+ R- Q {
- K2 ^& _4 z2 x+ C: w1 \ z, T LPSKILL lpSkill = &(m_aJobSkill);: W" {% W$ a: F9 ^2 w1 ~
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 s9 f4 ?( U0 a2 I {
+ }+ O" d9 q4 Y! @+ S6 e! M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , d# x4 g U9 f( n
if( pSkillProp == NULL ): k) m- T% ?- T/ m) ?+ @0 b9 G
continue;8 z! ?0 }) W7 v: g! D& G+ Y7 `# Y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 m) N: }9 N8 X6 u0 T$ @
continue;
0 g( v i; @/ Z& U! J: n1 \" w lpSkill->dwLevel = 5;, A2 _2 p( b/ s0 L; P
}" w% Y# J9 w' k8 V
}
( b0 p/ o' U# F- X9 u& B }* J% e+ A& B. T! \- M
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 n+ y9 {; K- x1 D* o1 `( _' o
if( bGamma )
+ r1 l4 A8 }2 Z4 ] {
" S1 `1 o4 ^; @6 l4 l m_nExp1 = 0;1 V4 L, ] X/ P1 R, p; X. ?& `
}3 W5 @ r% T0 V" i" N9 E! f
$ ]* [/ ?, Z, `; a. [2 M ( (CUser*)this )->AddSetChangeJob( nJob ); i9 r% W" z7 k' N
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );( r! e* D( ?8 p/ ~0 B" _
7 v% A7 b( ]6 y0 z: l1 }
8 z3 C9 F" H5 A5 K% R2 R2 \7 ?#if __VER >= 11 // __SYS_PLAYER_DATA
/ N1 E1 f0 r+ Z- m$ R7 i% \ g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) d2 K+ u- C" u8 f1 x! E#else // __SYS_PLAYER_DATA
' N% n; d: n1 E( Z/ y2 m5 Z% k0 G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 [ D: B! C& B% C: C6 T4 V- U/ s
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );' q" ?6 y& \% ~
if( m_idGuild != 0 )
5 I/ u# I5 `8 L) K g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
. ^) n; G" H& |& e+ C* H#endif // __SYS_PLAYER_DATA
6 J) X! _: @* v* h1 V3 _ SetHitPoint( GetMaxHitPoint() );
8 i2 g$ @- ]) O" d% o SetManaPoint( GetMaxManaPoint() );
5 G. p7 f- p/ w SetFatiguePoint( GetMaxFatiguePoint() );* [7 y" H# |2 }4 q- A
if( nJob >= 1 && nJob <= 4 )
, t4 w5 y' T s2 `1 b% M! Y9 H {
+ W! J U! Q% W/ [& ~ m_nStr = m_nSta = m_nDex = m_nInt = 15;
& ~/ j& V3 P/ D6 ^7 u m_nRemainGP = 28;5 g1 k) T: H$ a) F8 T
}
1 j) A) |+ ^ I6 W# i4 W4 R# [! R if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; P. X4 t, P& X( C {
. n# `1 t; u/ f, Y m_nRemainGP = 118;
0 X/ @, I7 G+ {: | //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 v$ v+ `+ i1 ^4 b; m! }1 z m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ g4 C4 q) b% d: | }
, k4 F; t1 a6 @3 A if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
7 t' v6 i8 m5 U& c {
, n/ X$ ^1 u, P | CItemElem itemelem;) n: q% Z' k- R2 J( N4 S
itemelem.m_nItemNum = 1;
+ {- r; w1 O3 q# t, ?; q itemelem.m_bCharged = TRUE;8 P* f$ T5 C; A4 C5 d( j6 M
BYTE nID;
3 z# T3 @0 Z* V2 R
- }$ I5 D* h7 K if( nJob == JOB_MENTALIST_HERO )2 N$ s8 [7 ^0 Y; M4 t( ]
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* [6 L: K' S! f4 f+ w9 N/ | if( nJob == JOB_FORCEMASTER_HERO )
. h1 q+ z$ q) q. j `' J itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 S# q; O _3 @' m
3 ?$ s0 r8 {! @7 D1 v2 W5 L" ^" v ( ( CUser*)this)->CreateItem( &itemelem, &nID );* ]9 b% n0 d: K& S/ u: |2 h
}
) E9 A1 f6 j: n" d/ ` g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 c8 [. `2 A( |) T3 f0 M( T
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );0 N Q; ^; |1 K3 b7 V0 e) r
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; D5 c$ @9 g1 I' Y4 l$ p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& f* s$ U/ }5 x" J( i ( (CUser*)this )->AddTaskBar();*/1 K7 F2 f# i9 j" Z1 Y" @! w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 c; Z. g: N4 `* A/ t0 Y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
) {9 W7 W5 |& z$ x' E7 f1 L+ q ((CUser*)this)->CheckHonorStat();
8 ~' ?' {6 T+ _ ((CUser*)this)->AddHonorListAck();* g3 B3 E* y# @0 j
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 {) S I. L+ |#endif // __HONORABLE_TITLE // ′Tà?
3 ?5 @- K v T1 b/ [ }
1 A( ^2 a$ n8 A: x$ X#endif // __WORLDSERVER
+ E9 N/ K* `! x: b} ' o9 _$ [2 N4 v! `( X- Y7 B
( u5 X) E+ M3 q: D& P& n
然后你进入functextcmd.cpp并添加以下: p2 T, u( a" V: C6 Z! c
* V4 N3 R, o& w9 U3 }) w9 E5 h) s9 k
代码:, J9 {+ V6 M" s* p
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; P) o: T6 P5 ^, G; V3 V下面插入
; |4 Y8 p# [9 I- w; sON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
[; d$ }8 C/ F( p! t- F; K# b6 a: v" S+ O3 M a) }9 O3 \ H) d
然后你去
. } e- c8 M% l2 N @4 ~) `$ G' a
代码:( Z5 H( E/ m' c' |* V2 p0 R8 x
代码
- I0 }6 @5 y7 Q! Q9 \& ABOOL TextCmd_ClearPropose( CScanner & s )
* [: _+ v& ^7 _7 q9 v{
& ]" s+ D& S) ~#ifdef __WORLDSERVER+ u7 g" k, ^1 O7 q: W
CUser* pUser = (CUser*)s.dwValue;- }( }2 W& z L" a- A) `3 I
g_dpDBClient.SendClearPropose();
% K$ r( T, X1 N: v& B( E8 P9 p#endif // __WORLDSERVER" E$ p4 y! u5 D- r5 o& a; y
return TRUE;3 l$ D0 x3 |* L }
}
# g. D* F3 o1 b% G. H8 r下面插入' q. f8 r) ?8 {
BOOL TextCmd_rebirth( CScanner& scanner )$ Z- ?. w7 q! i7 d2 v
{
8 H0 }9 ^- H9 M' K' R$ h#ifdef __WORLDSERVER
- P" I5 g: ~, z2 m, a. x* l. KCUser *pUser;
( t+ X2 b# O. b% E: W" L7 g" X" `2 apUser = (CUser*)scanner.dwValue;
5 T l Z/ _: K. ^! T4 e1 iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% u) L) z* ^$ ?" H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( T1 S1 W$ j% N) f) ? d
else1 N: l2 ?# y6 H9 H" ]% T
pUser->AddText("你还未达到重生条件!");5 \8 \ p/ D& c% D5 R
#endif0 l4 p4 D. T) O3 C( _3 L. d+ r! \
return TRUE;
0 m0 w; P3 Z2 x/ O}
( ^( o8 A$ [7 I v0 c# n7 V! n' P+ r( b
9 p; v7 O0 b* ]. K3 O# O# _7 g4 p+ ^* n
: x e& C7 q( S, J
7 m" q1 m* ~- U6 r5 I1 l
|
|