|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel- l3 B0 w# N# B- D
5 H" L9 v+ s. J% cMover.h, e V z+ c7 [( |9 I; h8 U' Q5 @. T
代码:
) j; H2 ^! q1 l* h# y4 ~# Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 k- n; o3 h3 g* g6 S0 e+ z/ g" r' b! h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 W) z" s: n- ?1 h& u3 X! K+ d+ c
+ I+ h0 n# O- G" p* _然后你去mover.cpp添加; c" h9 q5 `+ U4 F
1 ~, W" }' e$ N M
代码:
. A2 s" k4 T( A- wvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! |) j( x3 h* J" H: H/ `
{
! |1 i9 \9 n9 \# w i#ifdef __WORLDSERVER9 b Y+ d/ c6 N. i- ?5 o7 B
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
m( f1 [+ _4 {8 a MoverProp* pProp = GetProp();
. q' Y, C/ `8 B3 F3 x# G if( pProp )
8 W) U! `) Z* N' i7 c, X6 O {
0 M: ~: [8 n9 D3 S" t9 i* i' S6 O if( nJob > 0 && nJob < MAX_LEGEND_HERO )- e- A6 c( s( ]/ E8 E, N
{1 c/ Z1 z8 U/ N7 Z7 [$ @, J d
AddChangeJob( nJob );
6 `% Y0 m3 `" K g* ?0 N. B }else{
' ~6 k. t3 }& o return;; ^" {9 O+ o$ b% X
}
, _$ T- l# o; z: n7 L int nPoint = 0;8 @# Y: w6 I: x/ Q0 _& d2 @
if( m_nJob == JOB_MERCENARY )
" u* N1 D* Z* C" e0 x8 g nPoint += 40;; c3 `' k* H- r) G$ W/ y" `% F
else if( m_nJob == JOB_ACROBAT )$ ?& W( a( O( Z3 {/ @
nPoint += 50;
) b8 q' K) r, ~6 z' o( X else if( m_nJob == JOB_ASSIST )
! s5 A4 P! j+ z: U2 ^ nPoint += 60;
2 X" ]% s5 Z0 v! K6 W2 M4 `! N else if( m_nJob == JOB_MAGICIAN )
4 d5 d. f1 w* I6 O6 Y: P nPoint += 90;
" t# x7 i% J; ? else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )* h$ R4 w i( d( o& J) N
nPoint += 120;% W0 p. n3 q. [8 y2 g- x
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* f m: I; o' S' y+ a5 |0 k. R" O
nPoint += 150;
: a! O m* Y1 w else if( m_nJob == JOB_RINGMASTER )$ d! }8 }4 n8 n9 {' z
nPoint += 160;
9 X: v! J: ^ l% A1 Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )5 j" J4 q# E4 @& U8 v, v
nPoint += 180;' a! \. A, {0 Q! b. N2 w S. ^; n
else if( m_nJob == JOB_ELEMENTOR )
$ L( c: S7 G C7 k$ P5 o1 E nPoint += 390;
7 ~5 f6 {" H: V+ i% u- d( s0 P else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
0 M" o, X6 ?9 z+ b* U nPoint += 120;& {. T/ Z2 a, s6 t' M! _
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
+ A" e: o6 p! a- x4 U7 A9 S( y nPoint += 150;
0 D' `8 i, D* @; R0 }. y else if( nJob == JOB_FLORIST_HERO )0 h% D, W! ]; o+ e0 l& i0 @$ X
nPoint += 160;
( K& P* d- X' i5 v else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. C. f5 L. F! T- ~ nPoint += 180;
9 z! v0 F9 M" N% V1 c ^ else if( nJob == JOB_ELEMENTORLORD_HERO )4 o$ c0 I$ i2 {" U& A. E/ Z8 y
nPoint += 390;8 o4 E3 Y9 L( J' J# Q4 Y7 S7 _
( S2 t% J' ` ?% P: ^ AddSkillPoint( nPoint ); g$ G4 L9 w. s# O
m_nLevel = nLevel;& k- P/ J$ F# M" o3 ~
0 A& d6 d% Y" `+ j$ @7 t7 A; O
SetJobLevel( nLevel, nJob );, o2 s+ W4 u. _5 P$ n
m_nDeathLevel = nLevel;4 z/ U3 w9 x" y
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! {0 U: t$ K8 o Z b! | if(IsMaster())+ F- j$ V' e1 @, ~2 x8 o
{5 s+ X2 d! b) U" o6 d( x% l
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 @4 T' q1 ?: r8 L0 B3 S. Z if( nLevel > 59 && nLevel < 72 )
. u% i. N3 X9 b) |6 [$ p dwTmpSkLevel = 1;( L7 o' S; c6 o) Z9 I% g7 j* j B
else if( nLevel > 71 && nLevel < 84 )
8 [3 e4 v9 d7 { dwTmpSkLevel = 2;- Z! r) B6 J1 L6 k! ]7 [$ _8 Y
else if( nLevel > 83 && nLevel < 96 )
$ A" O/ _, ~$ e$ V8 S/ n& H; B9 T; m- r4 \ dwTmpSkLevel = 3;
6 y. r, s# S4 T9 v- R% g) B else if( nLevel > 95 && nLevel < 108 )
7 v1 Z9 e, N8 m% q dwTmpSkLevel = 4;: f" r. Y k- z0 t, _, N
else if( nLevel > 107 && nLevel < 120 )
! I K! @9 h* {0 |$ {- i% z dwTmpSkLevel = 5;( Q% f4 ^9 B8 i& V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # k# {9 [0 Z, F/ P3 g
{
$ R m0 v3 i2 M, ] LPSKILL lpSkill = &(m_aJobSkill);* _2 s; \+ c% }2 y0 K u8 o
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% J# E" H' ^4 S& g) K) d { P8 E! Q5 J# Y) f& d3 }1 U; w: X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ ^* _; m4 h# B- g8 W+ z; [' E if( pSkillProp == NULL )6 I4 G" c. L( t
continue;
; {0 x: n) G, q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 _6 L4 @2 T5 G/ \4 E continue;* X" V- W9 H& Z
lpSkill->dwLevel = dwTmpSkLevel;+ ~$ t! N% C% W0 t
}4 J1 ^, Y* ]" Y3 `
}; m# Y1 @5 r7 a1 @2 M3 \% u' a
}
: j* [8 {; V: `, C& H# \/ e else if(IsHero())
- D) J( C8 j$ J# e- T! a {, S2 x J7 T6 H: r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 x( y! [4 J4 t" \2 C" F$ b
{
& F- ~, L. t/ C: q" V1 b LPSKILL lpSkill = &(m_aJobSkill);
; k6 \5 b2 G* a6 M+ g; e! ?5 l if( lpSkill && lpSkill->dwSkill != NULL_ID )3 u2 |& A1 \' I i; ?
{) U4 a% r0 d: G5 T' M6 W& b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 @* H1 [& |# k( }% |% i
if( pSkillProp == NULL )
) E) a! {' `' w* x" g ? continue;
+ C0 R0 I: t- l) E7 O if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: o% C8 q7 }+ ^( R" t9 n continue;
% s* H) ]3 C& ^) u9 U lpSkill->dwLevel = 5;
% M' E: f$ ]9 m# |! d }
- C& E& Q" N% n, @5 u( k3 W }6 R2 j( h: i( j7 K/ v' \1 V- J: F- c
}/ D. i/ r3 F5 Q. K1 E, ]2 T: s
else if(IsLegendHero())
7 ~0 D1 B9 a+ j3 _) V' V+ @) b {4 L. o0 z2 \1 l+ a0 C2 N% j% E- Z3 z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; c/ w9 r# _ d& s% f/ z
{
# k* A& e2 z* U! s: I( x/ d LPSKILL lpSkill = &(m_aJobSkill);
T+ i+ [ O5 ^+ D$ W2 \) k9 z if( lpSkill && lpSkill->dwSkill != NULL_ID )/ Z5 x! b2 ^3 y1 r* a9 |. Z, e
{
. _# \8 { u" H' g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. C1 u/ T" c+ C# ^; L if( pSkillProp == NULL )4 T6 W' n/ b5 f% s
continue;5 k. S$ G3 f; A ^: D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% f4 m: O6 \# B9 L1 l4 A* j7 c
continue;! T. [! x/ U5 i, @. t( `; y8 F
lpSkill->dwLevel = 5;8 a" w% H# {3 k& c$ p* Q4 k
}
% y. u* d- a: O: |7 |9 R6 j0 i }6 Q# Q" a9 @; i4 [& k- d6 ]- t
}
{! C" l2 F+ J#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# c- s* `" B. a, y if( bGamma )# n' v" }4 r& C- f
{
+ ~6 [* p. [9 j/ x1 m* p" |) @' E m_nExp1 = 0;
* Z- L& k( G: P7 ` m( T. Z/ d9 t( X# Z }
% d t8 B, c1 R; V% N5 }
D) {0 M& e( X1 d4 O ( (CUser*)this )->AddSetChangeJob( nJob );
/ f2 y' S- O9 D) i& w0 Q9 F. f4 N+ K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ b* m& ^8 k( Q3 h0 P
' e J( D n9 [& u( X5 d9 B4 H/ }8 ]4 i( h5 p- X' X
#if __VER >= 11 // __SYS_PLAYER_DATA
! y# x1 j+ }: K' g) }" t; S- p g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. a7 l6 u6 }0 `9 \, }
#else // __SYS_PLAYER_DATA, Z2 a7 M; G# ^ x3 @' Y: \
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
\" E% L0 |5 A0 _) ?8 s g_DPCoreClient.SendFriendChangeJob( (CUser*)this ); o& f% l7 R) o6 U
if( m_idGuild != 0 )4 ]2 j, S, _" I. b+ W, x
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
8 P6 D' L' D: P/ h {6 Q! e5 C#endif // __SYS_PLAYER_DATA
/ _: C! X: L% W l, v; l SetHitPoint( GetMaxHitPoint() );& h8 _/ _ n7 a' W0 W1 m
SetManaPoint( GetMaxManaPoint() );
/ h& X- e4 \& B. j8 ]) b SetFatiguePoint( GetMaxFatiguePoint() );
4 ^" r( U9 `9 B7 i5 y if( nJob >= 1 && nJob <= 4 )$ V4 S/ j K) [, s4 W0 B
{9 A5 w9 Z& Y- C) A6 R. Z" ^ B
m_nStr = m_nSta = m_nDex = m_nInt = 15;( D: B% C9 o- F# Z
m_nRemainGP = 28;
5 t" k0 V: i8 M4 m5 P P }
5 V" r0 s- K2 n! A- n if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 }2 j! N: d! w% |. s* N
{% j* N( v+ R* q/ E
m_nRemainGP = 118;% C" E- U+ {1 H* G, v' G0 v* W
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- _6 X& E2 R4 r! X4 |/ ^& U% J
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# D8 x9 ]/ F! k1 j3 i }
* L8 s6 I$ x! ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" ]* F6 U' f6 R' K3 z+ m& F% d {
c* G8 V# N2 |5 ]/ `1 ]% u! I _8 o CItemElem itemelem;
' ^3 u; T6 R. C: R* }7 c itemelem.m_nItemNum = 1;
, I. Q5 Q" z) W7 Q itemelem.m_bCharged = TRUE;% Z1 |) J- t6 V
BYTE nID;* G" |1 p) Y/ v1 v+ ?
& z$ S. f# m. ?6 G' m* x' p" } if( nJob == JOB_MENTALIST_HERO )) l) Z8 L& t |5 i) ~/ U) Y& [* q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( u/ X9 h4 B' N- y9 ], a R3 d, I
if( nJob == JOB_FORCEMASTER_HERO )* h& A3 y: h% S; Z' F
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
9 [; F- i5 `5 l) {
+ z, \( Y' R9 m0 Y' z) y+ j! P* P ( ( CUser*)this)->CreateItem( &itemelem, &nID );
6 j0 e9 S! H* e2 J- M1 R }0 G2 e% @- k1 c' [* r, Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
5 j) ~+ j: C" L( D( ]5 I ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' K: E: h/ p2 _: i9 _/ L ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
) v! e9 S9 G. I0 w( J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
& y- O3 a! n: ~8 E: \; k- o/ ? ( (CUser*)this )->AddTaskBar();*/
* p& r; S+ l o0 k7 I ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
" a. I+ ?3 Y% j6 J' i#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 J* t$ G6 t, F* y
((CUser*)this)->CheckHonorStat();4 I8 N3 u- ^* w) o
((CUser*)this)->AddHonorListAck();
x2 u: h4 Z. I g_UserMng.AddHonorTitleChange( this, m_nHonor);
* [0 U$ Q" d a$ _& s#endif // __HONORABLE_TITLE // ′Tà?
* q- J9 V, F6 f. O( A8 i }" T( L# B* x) `5 J
#endif // __WORLDSERVER
% I8 b( L+ K) b. W1 J. \/ _7 W( u}
; i9 t9 f2 r. Z/ h5 r. G0 h! n
7 }9 C, A. o0 K5 _# _然后你进入functextcmd.cpp并添加以下1 h+ d5 F) o9 A7 X9 \# }* T! C
3 n1 |6 i, c$ h3 T( o- e0 K$ [代码:
4 \0 h$ l8 x, C8 T% x' s# B* F! YON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
! R( ~3 E' c8 L2 [ L下面插入
" j" f1 x5 u' e) PON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 c! T3 c, p/ Y$ z, M' @! m, h
Q: p) E! b7 c- O% `然后你去! n5 b3 k* W' m9 p: Q6 O$ O m
' w, I. Z; U9 i! [代码:
; Q6 ~2 _( K2 j A$ X0 m& ]代码; u [+ u5 i; y) k$ Y5 g
BOOL TextCmd_ClearPropose( CScanner & s )2 O0 ]: d' O2 _0 o5 n# m
{: B' R- v5 }, ]6 I- x
#ifdef __WORLDSERVER' w( A0 O9 L H! C
CUser* pUser = (CUser*)s.dwValue;+ m. s! u/ n& g, \' u
g_dpDBClient.SendClearPropose();
: |9 G' s8 R; \2 G! r. p#endif // __WORLDSERVER
8 O/ c8 E. X9 \/ h! N+ o: C, u return TRUE;8 r, F e" G; ~/ ^6 ]
}
1 q3 p J! Y# H下面插入
* P; m: U" }* J6 f: {BOOL TextCmd_rebirth( CScanner& scanner )
( v, u8 @% j) U4 H: ?8 w{( f. E" `1 W- t' \
#ifdef __WORLDSERVER
- Z! C" ]6 ?& {; g% T0 F8 PCUser *pUser;
+ N/ J5 j* P5 B* rpUser = (CUser*)scanner.dwValue;
5 v+ E' L/ D/ c. a$ i3 V; Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 s% A' `+ u4 q, UpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) w* @3 z( c4 n6 U
else
) U; w2 F" v/ u/ c1 V4 opUser->AddText("你还未达到重生条件!");
1 V9 l r, ?! |" U+ J#endif
; L3 z+ X+ D) w: z6 {return TRUE;% F3 c4 i# h9 q' p3 ~; l
}
5 [1 O4 N1 q3 T+ ?' O0 u
7 [% {, P6 [! \' ^$ _) B0 Q1 Q, s, i7 u4 S6 h: D9 i* w( S* M8 f+ g! e
* |, A/ G- l) y5 t0 |% W6 Z
( i) M. Q+ F( g2 C
|
|