|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel: ` J8 w8 A1 ?
/ t4 Q/ k6 B$ \* \: H) | gMover.h4 y; x7 S% v8 c2 v
代码: D9 S; t2 B# _5 i
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü$ M! I! F6 P- t. _- z3 E3 ]
: L& Q! m) M$ l8 F下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
c [3 C% R- K0 d+ a* N4 t+ t; N4 A, M/ W# i
然后你去mover.cpp添加
5 r3 E+ P" H4 {5 C2 e
9 g. S0 c4 m0 k: N代码:
& R4 H! ]9 h3 f, Y) K' }% n R$ Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
1 Q2 N) ~: w; c+ a{
+ M$ m; N7 `& {$ |# M% P/ b O3 R#ifdef __WORLDSERVER
9 I6 |/ `( ?% \, O- e( Z- o // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
1 t' ^: p# d& d+ v$ Z/ w! Z MoverProp* pProp = GetProp();
3 Y v( u" }( p5 a+ t$ K, u, j if( pProp )( k1 E5 g2 S8 H6 B& A, v
{4 @5 ~; N0 R# Z4 z5 x+ ?" b# n
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! _* a( D4 V8 m1 l! U {( m! r$ ^4 S$ T) u
AddChangeJob( nJob );
, i- B" A" K1 `2 P }else{2 ^! S+ N( C$ }( j
return;
$ X7 I6 f" W/ ~$ `- |9 \ }
% G3 ~( C9 g3 s! P( \$ D4 Q+ A int nPoint = 0;
$ X3 Z; j7 I- ` if( m_nJob == JOB_MERCENARY )+ w9 T# C6 u, i$ A, y6 v* x2 }
nPoint += 40;
; s& B! f1 b$ K5 r% M3 D* c else if( m_nJob == JOB_ACROBAT )6 Q6 ?- V% ]2 U/ h6 X
nPoint += 50;
4 D; }, c& [ `1 w else if( m_nJob == JOB_ASSIST )) z& {1 }7 ]6 u0 U7 D) T$ L( A
nPoint += 60;/ v! U! e. |( o+ g+ ]* e2 P) I
else if( m_nJob == JOB_MAGICIAN )
5 u3 ?' g/ g6 ^7 O nPoint += 90;6 t% Y- x4 K% o6 B! ], ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )& V6 s/ e% r7 b6 M
nPoint += 120;
. ~$ k5 Q7 `4 h2 y else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( v( U" G7 U+ ]* Z, c nPoint += 150;
6 R3 |* E: V7 U( R. o( H% G else if( m_nJob == JOB_RINGMASTER )) C p4 m0 t- i& l5 ^: A
nPoint += 160;! S& f$ ^# s+ X
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: t0 N3 G( {& D( r" | nPoint += 180;
" q# k5 V* f; O" i else if( m_nJob == JOB_ELEMENTOR ), r6 I3 Z6 b& R9 x
nPoint += 390;
4 x: Z6 d" Y4 K( j else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# }, J1 I3 q+ r( Q* l
nPoint += 120;& U0 g1 l4 {! l7 U `% ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& f4 D+ e; K5 ^2 M+ W ? nPoint += 150;* ]1 Z# P8 a& A. r
else if( nJob == JOB_FLORIST_HERO )/ w1 W: m5 f$ T* ^' U- e* `; T/ j
nPoint += 160;
* W% t3 v, F$ H9 I2 d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% ]& E2 a2 s+ }+ c7 {8 E& n nPoint += 180;& D+ L7 c: d: G; d, e5 U* V( O
else if( nJob == JOB_ELEMENTORLORD_HERO )$ z7 }8 p: O+ n" M+ K3 l
nPoint += 390;
8 p, r9 R# h3 {
* Q+ v0 R1 h4 s8 D4 [ AddSkillPoint( nPoint );& y5 w6 ~' r* g2 E; [* p
m_nLevel = nLevel;
( ?' u8 B0 S. ~
; k; s- w) D1 u3 O8 `$ U2 Z SetJobLevel( nLevel, nJob );& D! B: S Y* Q# I/ ^
m_nDeathLevel = nLevel;
* f5 k, x2 r5 J#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ ^' y9 X/ w9 h' w- a if(IsMaster())) ~; L4 Q% ~. z3 p7 {- i
{- G; i; B3 h3 y( d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ g5 m* X3 {( K4 y' V4 K! H( g
if( nLevel > 59 && nLevel < 72 )! ^0 m$ D* K! l5 \- O* v0 z
dwTmpSkLevel = 1;
4 _+ @% O( z, ?" K, f% z3 P1 j! Q else if( nLevel > 71 && nLevel < 84 )" w3 q+ h$ U8 M. L/ g# c; X6 F
dwTmpSkLevel = 2;
3 z' g8 N$ W$ v else if( nLevel > 83 && nLevel < 96 )& @( g f, n+ C0 z/ m
dwTmpSkLevel = 3;
0 r; R5 L- |( L3 n else if( nLevel > 95 && nLevel < 108 )
! h% I2 }, V, g. n. I* g. j dwTmpSkLevel = 4;, j9 X% ?* _2 ^& K
else if( nLevel > 107 && nLevel < 120 )2 E( ~: d+ h0 U9 Y1 c1 R0 H
dwTmpSkLevel = 5;
& y) x9 X' I! E x) L3 I) y- e for( int i = 0; i < MAX_SKILL_JOB; i++ )
. B; z+ ^! ?8 H, G" ~) R- K {
$ g5 E( W3 j) B1 C/ V/ U LPSKILL lpSkill = &(m_aJobSkill);
/ d9 f! }; _( N) Q7 U; w5 T if( lpSkill && lpSkill->dwSkill != NULL_ID )8 B9 H# r0 u* o% a. F6 g" {
{
$ C9 }' [2 g: S" k/ ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 u/ @# u4 o( v0 F if( pSkillProp == NULL ). E1 E& J$ x( L: i- `) e
continue;0 L& A1 O7 E- S7 n$ ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& r5 N! {7 I: P, s: o6 `
continue;
4 \8 d2 i1 M- a' q lpSkill->dwLevel = dwTmpSkLevel;) N# r" h7 D- l3 _7 i% u. C
}
: u! K3 |4 x: @. G }8 K& s. G* b( N
}
. G3 [' E' Z, t7 R$ C5 y6 Y else if(IsHero())5 X8 O+ ~9 J% K
{9 M4 f/ b7 @* h3 z& a( |
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' J f# ^( p! `) B1 |& Q5 j { 3 y+ X6 w; h) B
LPSKILL lpSkill = &(m_aJobSkill);/ i4 r' A2 [$ Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )* x7 _3 R. t8 [2 P8 t% P
{0 F! k8 `) f: H7 m' i
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- _# L! U9 ^5 F. [ \ if( pSkillProp == NULL )% _) i+ G# R5 S+ t0 L
continue;
0 B: J* O) \, i/ b4 p9 P6 `9 y* @( X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 b' L& |0 I9 B
continue;
8 O. c2 c) h+ ` h lpSkill->dwLevel = 5;
2 z8 ?8 M# A/ N* ?8 u+ y }* u- ^ l" T! h5 B
}
7 O0 T; j2 b. v* I3 ^ }
/ L% ~4 { U# n. o else if(IsLegendHero())7 L, P# J. @6 W5 f4 C3 J
{ _1 G7 Q6 [6 A+ b! }6 H8 r W6 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
3 i( J+ k, y6 \$ ~ {
: s5 _8 a) ~" [* d5 `3 A% U LPSKILL lpSkill = &(m_aJobSkill);. Q- q0 c" S" G O% ~* C! j. `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
: q, [) g4 o# i* `4 r {7 s" l7 T3 w7 d: O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 c+ ^6 c! [! g7 n5 e( t2 {* l
if( pSkillProp == NULL )
% j. P' x; \8 j/ ^0 c5 q continue;
. j1 m% M% b2 \0 b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
a: _. v: K) n! } ^ continue;) _( j ~2 s% E1 |6 t
lpSkill->dwLevel = 5;
' Y/ n# ~* E2 w9 f }
; G J( S0 G: L5 w/ \, @) O }
u. M4 D2 G f" O }
8 y. r9 r7 _2 i% S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans- E) A4 `' l B$ p7 ?: ^
if( bGamma ): S" S! G5 L2 I8 D& u
{
$ j% B/ N9 h+ v W C1 C m_nExp1 = 0;
; p7 Y& z. q C* ~ R }
! ~: m7 }" e8 L2 P: i$ P
; r4 j3 L" D+ V. S% ] ( (CUser*)this )->AddSetChangeJob( nJob );
" p0 ^& K9 a. W7 K; Q J g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% e$ j, J. {9 R ~4 U4 U
: S2 Y& o" |8 ~5 N8 W3 _9 E: c$ J( S9 D
#if __VER >= 11 // __SYS_PLAYER_DATA0 I8 T9 g7 U5 J$ m2 o Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 o8 d, O* C7 N* E j. }3 G+ u
#else // __SYS_PLAYER_DATA
5 X E' C0 ^/ D g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 f' J6 f* j% K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ g0 T0 D2 K2 E% @0 w
if( m_idGuild != 0 )0 t9 f- U2 i# Q2 C. m. l
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ w; v { ?8 D7 s8 {#endif // __SYS_PLAYER_DATA: Z$ c$ Y. p5 E$ f8 e+ _9 f
SetHitPoint( GetMaxHitPoint() );* p5 j' p0 j) N% ]
SetManaPoint( GetMaxManaPoint() );
% e ^3 O2 ^( s SetFatiguePoint( GetMaxFatiguePoint() );3 g, ^# O0 L0 p* P
if( nJob >= 1 && nJob <= 4 )
; I- ]6 k' H0 f" C. Y- Q1 w {
3 P2 c1 r0 j4 v4 n' b9 H7 ]1 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 V& I# i* w, D/ Y m_nRemainGP = 28;: P% ?, k3 J; W" `7 j
}
( Y2 l+ |% M c if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& `0 `: Z( I7 e {
6 F q9 V0 T j, I m_nRemainGP = 118;
8 x3 D% c9 d9 A' d //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 w: w9 F6 y7 l9 M0 j+ ]: ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 j& o. n' y, r( j ?) F% C }
6 ~1 l9 Y, p# u* f if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )8 U. w3 Z) l* U) G+ y
{0 w- z1 A' ~, V5 Q* x9 ~
CItemElem itemelem;
+ |7 b# v- b3 r% A itemelem.m_nItemNum = 1;
z$ Q/ Y. u& n itemelem.m_bCharged = TRUE;
7 H; R% Y. h/ z+ s, g. y BYTE nID;$ N" V4 I+ t5 `: T
, j# e4 |% D: o3 M3 } if( nJob == JOB_MENTALIST_HERO )( N* [0 q" I, p9 n8 q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ N: C3 k6 f4 u( k if( nJob == JOB_FORCEMASTER_HERO )9 [& B8 c7 n" d* E# w t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;. c9 X$ o. \9 K2 ~3 X
0 `( I- ?* C2 A
( ( CUser*)this)->CreateItem( &itemelem, &nID );8 V" S0 _* j# U9 A* }2 r2 J
}
+ G2 C- B5 z- S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' T3 `: S/ R! R% D/ e
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ N5 S, n+ K7 p' V$ z% Q" | ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ g# j+ n3 A. w1 e& I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! I2 `0 I1 l8 \+ @; p
( (CUser*)this )->AddTaskBar();*/
H' u3 {; x5 R( T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );- w: g8 Y+ s/ H$ L: _2 v4 D
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; {& L. A# v- q( ` ((CUser*)this)->CheckHonorStat();
8 ^3 Y* M2 M: D9 i$ u ((CUser*)this)->AddHonorListAck(); y6 K2 D* L0 U# Z4 a/ x
g_UserMng.AddHonorTitleChange( this, m_nHonor);' U$ K3 L/ S' u& |3 l; m
#endif // __HONORABLE_TITLE // ′Tà?
1 b* O ?" |8 q! F4 f; `! X( g; d! a }
6 e6 X4 ]6 m! u1 {+ v#endif // __WORLDSERVER! K3 G7 y4 D% X3 |+ ?0 B
}
- E7 k, z: c$ ^* k3 Y, t- H- j! R A D3 W* z
然后你进入functextcmd.cpp并添加以下
; }' x4 f% `5 G% X J7 l# F4 ?) l1 q0 R
代码:
+ }# R9 a7 m; u0 x, [7 D' fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# H% L" O9 M' L$ O& S9 M
下面插入
4 _9 e+ t% ]6 d/ I0 f# AON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! q9 J. A) I! I$ l. U& `. }
' o! Z+ y! q# \8 y然后你去4 h+ B, ~& D4 Q/ H7 b% i& k8 {! b A$ S
( A: R9 c+ `# b8 V: z, E1 n. I0 B
代码:6 p' ? B9 i8 L( @
代码
) t4 R: d& C8 Z; q7 j( qBOOL TextCmd_ClearPropose( CScanner & s )1 y* @ z5 I" D0 Q6 C% _/ ]1 B1 n) v
{9 A* e3 k. @+ ?& x+ X' D) s: l5 X
#ifdef __WORLDSERVER4 p a4 K) ~* Y
CUser* pUser = (CUser*)s.dwValue;( @; V i ^3 J( f
g_dpDBClient.SendClearPropose();
; P1 f8 O9 z. L1 Q$ o% Q. O# Z2 C) C#endif // __WORLDSERVER
% O" d4 J4 F. N return TRUE;& V8 d K. Q3 b" ] \
}
3 z, G6 a* m8 F下面插入
( Q2 ?9 ~* V9 D9 r0 {9 tBOOL TextCmd_rebirth( CScanner& scanner ) }1 ?6 s0 _3 n( E4 X
{7 A* Y0 V [' J5 Y4 `: g* Q: s
#ifdef __WORLDSERVER
' G* [% K' Y& n# L3 ]9 z5 dCUser *pUser;
% n6 p; k. o) P- npUser = (CUser*)scanner.dwValue;
2 i4 Y/ T4 U% ?( j) T5 Iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, Y& D5 X& U5 BpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
3 R4 Q! C: q3 Xelse
) D! B1 @0 t$ d& A5 @pUser->AddText("你还未达到重生条件!");8 R; a) g( C F* f& Y! \) [
#endif
7 ~" p' C* d+ J8 }4 ~return TRUE;8 s8 B2 F7 F/ B4 a' G
} ! s% A# w* b: K0 h
" E0 L3 A- y1 F$ S0 e
" R1 a' c m8 }7 y
. O/ `* D8 O) H; }8 A5 ~% a) u% \: |; R$ E) P; M, s% J
|
|