|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel* h4 q3 m( ~6 ?
, H6 m( u& P& p% y. R
Mover.h! W' Y" g- c# i6 q) _! E* T3 d
代码:8 \0 G7 o* ?$ O0 J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 y+ ~* L# K- H- k
$ w& q: r0 p; y# Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 f t+ b6 ]5 H
: G: V! d/ E8 C然后你去mover.cpp添加3 c5 M8 ^- s( e' ~9 ^% {7 Y
- Z4 `# \8 G! s! s代码:+ Y. O, b' R6 n3 K. e% E
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): p( m% Q; t6 e
{
& n0 q0 S: f6 }8 D+ g8 l#ifdef __WORLDSERVER/ @5 `. H j! ]# _4 ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
( x Z% d! s% ~. W' a7 { MoverProp* pProp = GetProp();: | `( o4 V1 p$ t9 }( y
if( pProp )- r- ]* F6 W2 a/ }7 v% M
{' `: s5 l7 t/ z* |0 p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
. \: ?7 u) U! c C {
* r, i9 h5 _. p8 _+ g3 ?, g [3 f AddChangeJob( nJob );
0 M! C$ O' l' Y5 S; u; ~" y+ p# | }else{; t1 |. X' i' L. b
return;
7 L/ l1 v" b" J }
" L' l& Y0 G; \2 r- l int nPoint = 0;
0 q2 r. V" M7 X# O( G1 h9 ^/ q if( m_nJob == JOB_MERCENARY ), C, M/ c1 E J; J6 Q; U; l" o
nPoint += 40;
9 L- K. l1 Y7 Q* M# x( ]8 ` else if( m_nJob == JOB_ACROBAT ): i- ~) S0 K, n3 F/ h# M0 `3 h$ y
nPoint += 50;3 W: O9 Y0 b O# _5 ?: w0 ^
else if( m_nJob == JOB_ASSIST )
+ t, B, I* i+ O# Y! f' h4 `% Y$ `$ F* k nPoint += 60;
8 d6 z( B8 K( x' a$ T else if( m_nJob == JOB_MAGICIAN )
% i _/ {* @( D( V- F6 u& ^4 T5 v nPoint += 90;
3 D3 T1 O$ d6 N8 V: k else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
1 j5 S& T, x1 j8 A' d5 e nPoint += 120;
2 q7 z" i5 s2 G9 U! a$ n else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, o9 Y- M+ n- `- d0 }! h0 C nPoint += 150;
# O5 n4 W, u8 F. o; b# {. T% F- i5 k else if( m_nJob == JOB_RINGMASTER )* }- I q# P1 i7 n5 W$ ~2 A
nPoint += 160;
: [; D. N; A+ m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& M, o' b2 \* d/ N$ ?) }' b
nPoint += 180;4 L# i8 F) {) O8 D
else if( m_nJob == JOB_ELEMENTOR )
8 h" x A! D! C# }# _ nPoint += 390;
$ I6 A) ?9 z7 o) T% ^0 O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
9 |0 h( Z* R. f% T* d nPoint += 120;3 p% W4 M+ h# v- p8 g# L* p5 g
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 v* {1 v/ B* C. a! t* U' G" l nPoint += 150;
% H9 z: Y8 F( Q/ b else if( nJob == JOB_FLORIST_HERO )
/ T. d1 t2 L9 N$ f nPoint += 160;
0 o8 s0 Z: f- I e else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" E/ Q5 g- s7 R nPoint += 180;. F. _0 F+ I8 U: l; Y
else if( nJob == JOB_ELEMENTORLORD_HERO )% \ i& N7 o V7 V
nPoint += 390;; L. p3 j8 f9 h f. j5 o7 a
" a0 k* ]/ V7 Q7 R4 { AddSkillPoint( nPoint );. }( ^5 G& J/ b" E s% J9 g
m_nLevel = nLevel;
& z( U, W. P$ A3 ~+ b" W- U; l z% J( T6 }: k: N1 r q+ M
SetJobLevel( nLevel, nJob );4 {! d$ O8 o- Z( \* f
m_nDeathLevel = nLevel;
! e" B% @' S+ G1 }#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 S+ f+ J' H1 S* v2 g
if(IsMaster())$ f5 N8 G, e9 ?* y& R6 m$ `
{
" R6 y- W k4 l" z1 C$ G# Y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 e3 X9 J7 z3 Q if( nLevel > 59 && nLevel < 72 )
6 {) T+ k/ _! n. s1 B J dwTmpSkLevel = 1;0 |3 m3 m& F* w: B8 X! }2 }7 K
else if( nLevel > 71 && nLevel < 84 )
; n1 U6 L" ?0 g6 C/ a dwTmpSkLevel = 2;
( g: e( T7 E! k r; G else if( nLevel > 83 && nLevel < 96 ); d' B0 n! o) F4 Z
dwTmpSkLevel = 3;9 r' A& r0 E- k0 [/ J: k! @; r
else if( nLevel > 95 && nLevel < 108 )
0 a) H% F9 X) `$ p dwTmpSkLevel = 4;& W" c p3 P$ k0 W" k- S
else if( nLevel > 107 && nLevel < 120 )
0 _1 L- d# n! w, S8 H9 G( u dwTmpSkLevel = 5;
* k/ C" y* u1 b' X4 p for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ r+ x$ E9 U" ` {
+ g7 ^1 L) f0 a; w LPSKILL lpSkill = &(m_aJobSkill);1 s6 W# |' ^; F. U. g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( z9 C9 W# @6 O( v8 h6 F {) _! }# w# X+ x- B
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 M7 j5 L2 f: _1 s+ y if( pSkillProp == NULL )
& I7 t6 W$ |! A continue;
2 C8 Q b& R: @7 A7 y2 ~4 N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 S0 u' t* |( L5 e2 E w0 W3 m; j continue;
! s* l1 j, L$ ]' l$ U" H' G0 ` lpSkill->dwLevel = dwTmpSkLevel;3 V% W% v( \! a4 W* t" u' _5 c
}
, |5 T) P7 x: m! o$ r; c6 c }2 q3 D- |; r( U
}+ q" f; B S3 x3 P% q
else if(IsHero()) m6 L( R4 @# l# C
{
3 O. M9 n# V0 I7 Z; f for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; w( _) D4 q1 {+ m
{ 9 i) b4 R2 s+ {1 C" h
LPSKILL lpSkill = &(m_aJobSkill);
6 B6 ] ]- m/ A! y if( lpSkill && lpSkill->dwSkill != NULL_ID )( a# G3 }% t, ^$ b9 o7 v
{
0 S3 G' U. Y. x, f0 J ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 M2 G; f5 i. S6 Z2 {
if( pSkillProp == NULL )% g; t- E" [& _4 B9 b* _
continue;2 [1 ~. y& w6 {! E7 t2 X! u2 b8 Y+ W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' b) q' } u7 g. B! f( a$ t continue;
. U: G b; s6 Z6 d4 T lpSkill->dwLevel = 5;, F$ L* b Z1 |, x
}% F0 j# T Q, P8 y: q
}
7 Z7 [7 I# G! u5 V4 k; A& r }
; H* l, T7 d9 ^/ m9 [ else if(IsLegendHero())9 X7 T2 H! W8 i+ {" j8 C* X
{& K; a1 K% W$ R: @* `4 _9 Q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' X. A n9 j" v% Q; p" Y" C
{ ! u! M# r$ W7 [5 @- D
LPSKILL lpSkill = &(m_aJobSkill);" I0 W0 \- _5 ~9 S( j0 ^
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ T" ^& e( Z5 Z( o" W0 i" [9 c1 r' ` z& d
{) G4 T1 L# P# I+ v) `# A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( b& m/ R$ X4 V1 e, | if( pSkillProp == NULL )* Z8 c3 I4 e. ? u
continue;
. z) r! Q# I1 b2 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ C: m; [! t. d3 U" Z* ]1 Y continue;( v( }8 V6 s" {4 \3 i( {* H8 D
lpSkill->dwLevel = 5;% o# @) x2 M; T' j. {2 n! Q
}8 g/ J% D1 j' ?4 _( L
}
' O& M$ @: r2 l( H$ y }
! G3 `4 t: |, i. [ {2 [: C' x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: m( I9 D+ }, |/ F; E8 O8 W
if( bGamma )1 l" I( F( i! ]3 [ o
{: W: h1 k- Z, q& p4 e
m_nExp1 = 0;& `4 Z4 l; L4 d z( F( Z
}2 L" x: a& T. b `
5 p$ ]0 j. i5 ?- M' U, H ( (CUser*)this )->AddSetChangeJob( nJob );6 C0 Z+ I' p, ?' K0 k3 t, |, t
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );' X7 i5 M9 _. P, z; d- V& Z% N5 S
& H5 f8 D. l* _( r' N0 j8 y. H9 W0 @# q' j
#if __VER >= 11 // __SYS_PLAYER_DATA* N$ ]# m6 z6 R6 z B
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- T4 u: U8 U+ _ A3 X#else // __SYS_PLAYER_DATA
5 [+ G9 _6 A3 ~/ c2 H7 C g_DPCoreClient.SendPartyMemberJob( (CUser*)this );9 U6 F! { N! }( l" d# Y1 k
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ V% d9 Z+ V0 |6 R- b# P. v
if( m_idGuild != 0 )
# N- c) V5 i4 G/ ^$ S- k- \8 m g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 X* r/ a4 y/ A! k#endif // __SYS_PLAYER_DATA
3 |0 Q. Y: x* p. `. g6 L2 B SetHitPoint( GetMaxHitPoint() );
. e+ V) n/ o$ {5 T! A SetManaPoint( GetMaxManaPoint() );' X/ O h' Y0 t y) H
SetFatiguePoint( GetMaxFatiguePoint() );
+ J" ~4 G5 v5 C5 t if( nJob >= 1 && nJob <= 4 )
( y0 m3 Z5 s; i; Y2 o {
9 S: ^* U9 H7 g# Z" e m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 b6 B4 Q. M+ o m_nRemainGP = 28; q8 g/ e% X( W6 L2 R- W
}
7 e$ u# m- [, k; f if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! \3 d" v& I t' P: b ?6 J {
6 g& x' D* ]0 I m_nRemainGP = 118;* Y s5 K% X0 c6 ^
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;$ R A; ?& O: H. W1 O1 v. m5 N
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 z5 T# J# d" f1 F, Y/ c9 N) e
}8 {4 }7 r8 ^ u) k+ \
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 w8 Z) k* A' c* G* B {
2 [# a( k' F( h5 x. ^$ T K7 { CItemElem itemelem;: U) x( C% ~5 T% t
itemelem.m_nItemNum = 1;
. C/ u! z$ R& c* j J itemelem.m_bCharged = TRUE;
% \1 @+ I, ^, X6 G BYTE nID;
: ]* g' t, W0 F( F% o4 ^* x4 E/ F. F$ j" {& s. W) G; c A) A
if( nJob == JOB_MENTALIST_HERO )5 s4 O, X( E1 d; u" G
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. Z& { M a! Y" Z" F if( nJob == JOB_FORCEMASTER_HERO )
* K+ w" d5 ^/ M/ ] itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;( L; L6 D" C3 ]' c; e6 c' q
+ {, P3 L9 G! C8 j; X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 S: L( n9 U. `# R4 u$ Y D }
5 t9 g) d( z( V g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 `' b5 c" ` @; }/ b ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
! u3 u6 @- O5 O2 e) i ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 y$ A- w# g3 v8 q$ T6 g" i
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );3 |7 }) _: L) z& s7 I
( (CUser*)this )->AddTaskBar();*/$ k0 c( r5 e4 J) y3 |! z# K! J R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );# S2 L* ^- g5 [3 H% c7 h9 l
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! s7 ]0 F& W1 M1 W9 T; J
((CUser*)this)->CheckHonorStat();
. M! b0 |& y3 `! x! L& B+ y ((CUser*)this)->AddHonorListAck();, k# {6 A7 h% m" K- P
g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 c( z) x( L/ v! L" a#endif // __HONORABLE_TITLE // ′Tà?
' C7 ?% c, a Z9 K" h' n3 @+ S }
- M0 ^) w' p6 c$ Q( S2 r1 T" T#endif // __WORLDSERVER! C$ F' Q1 W! E; {& j' V* b- s
}
8 C6 ^. ? X, B
/ X6 U# I4 v/ s1 x, t5 i然后你进入functextcmd.cpp并添加以下8 W1 c6 E. U+ L# ^) s2 I
0 T4 n: t+ {2 _/ a4 g
代码:1 c3 u: n( H6 s9 d, J) z W0 ?& f) N
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 D: ~ D3 o7 ]6 m# k- Y4 N
下面插入8 D, R3 o q3 M9 j. r( Q; d
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; P9 w% n, z: t2 j2 r& A
1 T8 z/ l3 l6 G: E) I9 {然后你去
0 i# L. B3 f& p, _. c& ~1 U7 Z5 e9 n' s$ E$ R4 r. A& Q
代码:0 b- r1 Q B; b% `
代码
: A" Y0 r" C" _BOOL TextCmd_ClearPropose( CScanner & s )+ f8 q/ Z! e- E7 ?. A& ^
{
/ P9 |- E) u( S2 P4 W#ifdef __WORLDSERVER
5 ], A, W0 X8 }. s6 m+ X CUser* pUser = (CUser*)s.dwValue;
* e. p2 v* ]. B7 V g_dpDBClient.SendClearPropose();! g- ?: d$ N' F+ a9 ]# D5 H( r
#endif // __WORLDSERVER
9 J; s2 \1 M% O5 y4 F* a return TRUE;
0 S" B& X$ Y5 k}
, ~. d: U! L' [' U0 i下面插入- ^5 M& K b& \7 b
BOOL TextCmd_rebirth( CScanner& scanner )
8 T$ ]7 S6 _9 B{
$ f9 N k F# N# a) u8 c/ ~#ifdef __WORLDSERVER
2 _; Q7 o! ^( s0 F# ]7 A/ L3 b3 x7 X, dCUser *pUser;
* T" C, o2 i4 C" e) YpUser = (CUser*)scanner.dwValue;, x, p3 C5 ]" f' X& t" ~: A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), D1 ?8 @+ t" ], _. U s. r0 W+ H
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);7 @0 Y8 }7 L, d! r/ r( S. E0 |
else) {( W# w/ }$ Z
pUser->AddText("你还未达到重生条件!");4 X. q7 Y5 O& Y9 u
#endif
3 Q% y' L& ^6 N t6 ]9 v; nreturn TRUE;! k5 C" A9 t4 L% r: G- r
} + s/ m7 o! N8 @$ _8 C) O+ q% S0 U
* O2 ~6 S' L7 ~* C( K, z( i8 w X+ j: v/ e, y* u+ p$ _3 L- I
# [/ N8 t/ h4 E8 ]
8 ^. z0 N- e# E6 R; | |
|