|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 |- ~+ u5 B# u8 J
+ ~8 e1 b- R3 m) UMover.h
6 j" Y- w2 a" t8 Y$ e代码:1 M' r m( Q, w0 {6 }- G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ \2 q7 S* c$ |! P% q x
# B7 t, Z4 D! w: C2 u% T1 a下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % G8 W0 @0 F: g0 y, Z
! \8 \$ i3 b0 {+ s. r$ `3 p. Z
然后你去mover.cpp添加
, S" {) p/ b! Y8 s% a5 i* M7 q$ S9 f
代码:; E: g# q1 r" A. E5 j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )$ R7 k; n) ^2 I/ @7 z7 w
{
* ^. A: W J$ k) _0 g#ifdef __WORLDSERVER6 A1 }; Y8 ?, n! E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
- ]# @; i' O( m7 C& [% l MoverProp* pProp = GetProp();" [5 h' } s! ^* k' e& N0 A
if( pProp )
8 f. J# h( J4 B. s- a {
. Y# Y/ l" O2 o9 [ if( nJob > 0 && nJob < MAX_LEGEND_HERO )5 d; [9 V' o! G& i1 h
{
1 p7 g8 I8 u5 z E AddChangeJob( nJob );2 [; D' g+ x) Q! v* Z. d9 h
}else{
" o/ \) \3 x# A2 {5 ^ return;* O, v K7 H+ e! ?
}
+ |3 k0 ]+ n- G9 o% ~! G7 C int nPoint = 0;- e6 E4 G* l8 K$ @$ n/ l. [
if( m_nJob == JOB_MERCENARY )3 ` e0 N) s7 K5 W
nPoint += 40;% J4 t; i) r2 I- i
else if( m_nJob == JOB_ACROBAT )
$ q; S, g9 f7 |8 M nPoint += 50;0 ~8 f- r0 ]* n- G# k- R! M
else if( m_nJob == JOB_ASSIST ); i& D h& G1 B" F8 o7 _, s
nPoint += 60;% Z+ y6 \% ~4 k# q4 B
else if( m_nJob == JOB_MAGICIAN )9 @- \8 {' j: s9 J
nPoint += 90;
6 C( a7 Q8 F2 ~ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ) ` W; U! ?3 P/ l0 D
nPoint += 120;
1 ~7 R9 G. k: c else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
1 L/ r5 r6 V$ X/ Q! N: e; R nPoint += 150;
8 m- N- x, D) {, o8 h4 [5 s( w else if( m_nJob == JOB_RINGMASTER )
) V) U; y8 n2 P/ l nPoint += 160;
+ i% v8 S1 w U* H! w5 Z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ {! {4 G( U& ] nPoint += 180;
8 D' x. v, d, {5 R5 g6 | u# W else if( m_nJob == JOB_ELEMENTOR ), u* y. U( x8 L. b" L% A7 r8 U( Y
nPoint += 390;
+ k& b8 D- Q: @+ {( \1 \5 X+ x else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )4 Q5 u) M1 r; r" I1 B
nPoint += 120;* W/ G3 y. u' ~9 J7 ~
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). @# ]# m/ G8 k; n1 E
nPoint += 150;. ~5 P) w: `4 p4 A. ?
else if( nJob == JOB_FLORIST_HERO ), t2 ~( o- S* ]5 U
nPoint += 160;
! b5 r, S3 ], T( {6 q' V, p else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): p/ c1 o9 f/ t( D' c. R9 d
nPoint += 180;
9 G$ B7 C Q/ b* {1 R/ k0 n else if( nJob == JOB_ELEMENTORLORD_HERO )( s$ [, }" Y1 M4 K* P# o3 A7 c2 c
nPoint += 390;2 a) }, b) |5 C# K) P
/ |# m2 g7 f# c7 v0 Z9 ~9 ]& y' m AddSkillPoint( nPoint );/ h1 R a0 x0 s- @, e, |6 h
m_nLevel = nLevel;
7 j+ D2 T5 b) C% y k' ^# F4 B4 C
! C1 D0 r( d+ d8 _/ Y SetJobLevel( nLevel, nJob );
4 Y& n# V+ z' M4 m8 m+ m8 u- |6 l m_nDeathLevel = nLevel;# m2 ~3 c& ?: @' o \( p! v
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 v1 |9 X2 J% G7 u7 @9 f9 |
if(IsMaster())+ r2 L7 Z! p; j) a- a! |: d* x
{, `4 E, z5 x" E z* y( ]: L1 }
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% l- ]" ^) ~2 {3 A. u if( nLevel > 59 && nLevel < 72 )
[; T9 b. R6 x' r dwTmpSkLevel = 1;
+ a* i3 {. F$ T+ L% t* u else if( nLevel > 71 && nLevel < 84 ) _9 q! S% q8 S3 U" l4 f$ X! [
dwTmpSkLevel = 2;
% B! [ x" D. Y else if( nLevel > 83 && nLevel < 96 )/ o8 w; J* X# h$ F" s$ c
dwTmpSkLevel = 3;; e* _7 \) ]) a& W9 G) D# g, z
else if( nLevel > 95 && nLevel < 108 )$ Q: |& l2 {/ e( W
dwTmpSkLevel = 4;7 p& X* c3 o L1 @: r2 X1 o4 R0 t
else if( nLevel > 107 && nLevel < 120 )/ v: a' O, M5 p5 B
dwTmpSkLevel = 5;; d6 A& M3 \) r7 C
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! y4 h" o6 ^ i
{
7 `: ?2 b5 K9 E LPSKILL lpSkill = &(m_aJobSkill);
( b* q) s1 S8 \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
" v+ Y3 i9 _0 J- h: W {
* b& w6 P$ |5 l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 |5 {' l( @, d% a- P; p if( pSkillProp == NULL )' y2 a! p. A; ?" b
continue;
8 N" m @5 `, S0 v# m if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* J& l+ F/ ^% K4 I) x5 ] continue;
" M- J; L( h3 \2 L! B lpSkill->dwLevel = dwTmpSkLevel;7 a6 Y# P1 `1 @* W, I
}
) X! `$ B6 H8 A4 Z }
; w$ r6 ?5 B8 K2 F ?$ j& ` }2 b4 \; ]1 I/ f0 k: ?: w
else if(IsHero())
5 @7 }) d; |; }2 x9 }4 B4 |# S {
- j$ _( Z$ Z. |- }2 }" B( O for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 Q8 `5 S/ x# q; f. I {
% l3 L# v0 y8 J LPSKILL lpSkill = &(m_aJobSkill);! O9 M, ~) j( s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 m1 t& |. [/ C( ]$ ^ {
d5 j1 J8 s4 S4 |: w ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 _. w- p) Q/ W& r8 y, T7 X
if( pSkillProp == NULL )
& `0 d" I; W9 {6 v* i continue;
) r# ?/ S2 a# f% h" k% |% a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
K3 A% ]& [! T6 A7 d( i" Q continue;
3 f- x! R) P& w$ e* @( N) J0 }7 W" x4 q lpSkill->dwLevel = 5;) I- S) y1 k' N# E4 }
}; D1 Q1 A Q9 [5 Y3 h7 }' ^
}
2 F5 I- c) s7 P+ M* D$ s9 ]) D }
4 S/ M0 @* h) f" C U% m- v else if(IsLegendHero()). i7 w- y& W! D3 z& J! e7 }2 ]
{- D: W1 a& U1 V0 X
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # L! `( U& B& R
{ . ?; h+ p! A) c8 Z4 K: l; h7 |5 p
LPSKILL lpSkill = &(m_aJobSkill);% O$ U) ?! m' A: T# u2 F h$ G
if( lpSkill && lpSkill->dwSkill != NULL_ID )# ]) q" G7 A. s7 ]0 q+ Y- z
{
0 ]' U/ p4 B7 {5 j! I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + H: `0 v" h- e
if( pSkillProp == NULL )4 r1 P' R; x+ _. i8 z$ M$ h+ ^
continue;; Z/ k+ T& ~: V7 u0 N9 l+ \
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) `/ z" H" U1 a) T* b! n" s
continue;
: |& f' J2 w; H2 b6 `* } lpSkill->dwLevel = 5;! [, X# \- t. |' ^2 z
}* X6 v2 r/ S! ~! c6 J2 K
}9 v; d+ b Z; F. s
}7 F4 P' Y: z. e4 {* _
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. \, m6 d3 O q. C8 { if( bGamma )
, {( O" e* N+ R/ e# U {' p2 r' K6 T5 a1 q) V$ G8 w/ v
m_nExp1 = 0;
+ c4 w/ ?) l* G2 i" l }
2 w* t% |) c8 T8 b/ \
R5 a( D! P" z% V4 A ( (CUser*)this )->AddSetChangeJob( nJob );9 t: R) n* T2 q! B9 p& g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
* f+ o5 i0 j1 p$ _/ k- J3 ?5 @$ A$ a7 G
3 Z9 x! @2 P( e#if __VER >= 11 // __SYS_PLAYER_DATA$ d4 t( T0 b' j- N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' h; q0 Y7 }) n
#else // __SYS_PLAYER_DATA
+ G: k5 |0 ?( u; `) k; x g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% p! _. Q! k' D6 G% u# _4 s g_DPCoreClient.SendFriendChangeJob( (CUser*)this );; p1 W1 [* R) U/ u, d
if( m_idGuild != 0 )
9 \6 X; {* e& l g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );, h- W: s- Y l( \
#endif // __SYS_PLAYER_DATA4 {+ F, E* t7 V: I5 q; f6 d0 {5 I
SetHitPoint( GetMaxHitPoint() );6 B7 f& [0 q# E; ]1 ?6 I
SetManaPoint( GetMaxManaPoint() );" Q# e9 R5 S* n4 X
SetFatiguePoint( GetMaxFatiguePoint() ); U! C5 [9 n1 q# z+ C4 Z: I
if( nJob >= 1 && nJob <= 4 )
; m/ ^: Z% G" U+ ] {
6 F$ E& _6 r( _* ?( R m_nStr = m_nSta = m_nDex = m_nInt = 15;6 D! g' c- r% p, o, q R6 q0 r
m_nRemainGP = 28;7 \( y8 y \: n$ x& k1 E& b
}) u. T* Z) U7 h( t
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% Y3 h/ J5 y$ z; `2 ` {2 f+ c/ |' P: f( J) s
m_nRemainGP = 118;
2 u2 h. I5 q$ m* o+ U- x, S& t //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 w, c) t* j, p" M m_nStr = m_nSta = m_nDex = m_nInt = 15;3 J; \" L H4 r4 W2 }
}
4 V# X; e$ X9 i6 m5 W if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 X4 r$ A% _0 m, n- y7 e3 Y {# Y5 Y4 Y0 R9 o$ y, a" [
CItemElem itemelem;
$ g s* C Q9 ]6 L: C: t- P itemelem.m_nItemNum = 1;
# c9 q! o% _" T% B0 q' y itemelem.m_bCharged = TRUE;
$ {7 Z2 G5 g' e" q( Q# N: s- q BYTE nID;
( y' N. @% f7 }6 f4 R) B
) V [/ S6 W, d! C' r if( nJob == JOB_MENTALIST_HERO )# B K$ W( K; e& U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
& ~: [3 G: @* G* e7 r" U* \ if( nJob == JOB_FORCEMASTER_HERO )7 O ?: |* P3 d
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
& m7 T$ o+ Y7 P% h! w
# N9 |- D! f4 n# R3 n& M! A% [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );* A V; i! {" C: \
}: Y [. C# o" S L9 Y0 e' y
g_UserMng.AddSetLevel( this, (WORD)m_nLevel ); C9 Q" d3 Q; |; G* Z' N: o
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 r* R b2 V' P6 _+ P4 B ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 \: a( ~7 b Q! F9 [. ]
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
5 T' V) H: o! Q8 C8 g ( (CUser*)this )->AddTaskBar();*/# z% ~4 V( D p" B5 Q2 _
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
# G0 P3 ]( v1 B4 P: X7 V: c# k( g* Z+ `: h#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( j, [/ Q. S* P6 y0 B" D
((CUser*)this)->CheckHonorStat();6 u* r0 \& S" x
((CUser*)this)->AddHonorListAck();; f* a4 B) ~; L- v
g_UserMng.AddHonorTitleChange( this, m_nHonor);
2 S6 V/ O; t# ?' \- i#endif // __HONORABLE_TITLE // ′Tà?
% C: ~# I m/ w6 W" x9 E }
! C. J) Y5 t& v% F9 x#endif // __WORLDSERVER
0 ?6 { z, x+ S' a: |+ u: o/ w- F} 8 `1 ^/ Y1 Q5 y: s" E5 e
, D2 g) W- \5 y: I* Y然后你进入functextcmd.cpp并添加以下' K2 } f; w1 t( R; u" O+ ]
9 i4 U" [% R5 |$ S. d( B- h代码:" y& i: ~7 B- J0 x5 h, h5 Z0 q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 C5 D. I8 F* R7 ?, l* @- |下面插入( C: ?, {+ d- B. `& L; t4 d; i
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ B0 O3 e; y* j/ [7 ?
; k* j" }3 m. u# J然后你去
. Y6 Z; x# \3 L* p4 {0 ^6 A i0 f) M0 d( P6 N! U, m. Q' r" d4 Q
代码:
: n; ^' \4 T w代码
5 _* h% g y! d/ T0 B8 u8 u/ WBOOL TextCmd_ClearPropose( CScanner & s )
/ Q- ~3 i3 a/ e% E! I' x$ d* Q{
" J# T. F; h8 G- Q$ Z#ifdef __WORLDSERVER
+ ~ {5 d# q; r- z: D+ O9 \ CUser* pUser = (CUser*)s.dwValue;7 ^8 t: B; }& c7 [" _" ~5 L% E
g_dpDBClient.SendClearPropose();" m1 N) ~- }- Y- s3 k) m9 }
#endif // __WORLDSERVER
: [& ~7 `4 B. d& E7 ^ return TRUE;
$ j. V7 W( Y$ |# l, J; ]# ]}; T5 R/ O% U1 g
下面插入
. `; U* b S, o( Q8 L1 kBOOL TextCmd_rebirth( CScanner& scanner )% T; {8 |# h! O! h: }
{
0 ]. n+ \ Z! n#ifdef __WORLDSERVER
$ u' b6 B" Y9 w' Z9 j" ^' `1 L( ^+ tCUser *pUser;
) y I' m7 T- m* g8 p! epUser = (CUser*)scanner.dwValue;( c4 m8 i1 `9 R+ E, R3 X0 L: N% o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
3 V2 j( p- y& K }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ ?$ \2 w6 M% X* d E: j" L
else; O2 V0 `# O! R) j0 p
pUser->AddText("你还未达到重生条件!");
f$ |5 U; H" _6 i. T#endif
7 i2 o6 P1 B3 W: q, o2 ^return TRUE;) B z# y% j* R3 z+ d
}
( q+ U, o5 [ L- Y6 {; k2 z9 v! e
( o/ ]0 ?+ O, Y; c' @& [7 L7 O) _- y* @) {0 y9 C
. n1 J, E9 O/ n% P$ d
& A+ E n. x) F/ ~- }% I
|
|