|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% f( y: ?7 l& m6 K
$ l' w5 [8 I$ I9 h" ?: |Mover.h
1 X3 m% [/ K5 t" B8 i0 t; g代码:% g0 y. O2 W9 F# i# }9 c0 e( J
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
# W- ^2 v% I; {+ S/ I( t4 b1 O8 s5 [! p6 c' K0 i
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
5 v1 T/ e" }# V+ t7 {$ a/ K7 l( P! e
$ d7 W' a" q/ C$ b; q然后你去mover.cpp添加
/ w/ y; B5 ?' f) M* e+ ]$ i: Q5 E( T6 V# }- ^) q* k
代码:
Z* C% c, V* e& ovoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 O+ P( T6 |7 g) |{1 @" | B4 Q# y d
#ifdef __WORLDSERVER2 Q1 G# J. r$ G- z: q* n
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
5 }, i; \3 z) c! e; [/ k7 ^. t* r MoverProp* pProp = GetProp();
d) `! Y- B, s3 Q) h# B b if( pProp )- O' B; W7 L5 a2 M3 f! ^$ U3 c
{
" ?0 Y" B( v/ |2 G8 S4 t2 h if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 c- y( {8 L, I" A {
& G( A: n+ Y7 i# O AddChangeJob( nJob );& ?* d# Y n5 j
}else{! @& [( Y2 n f, I: B+ x
return;
: a& p9 c4 p! h {# d }; b: F' P, d0 S$ S/ q/ x, ^' \$ o6 z
int nPoint = 0;) X& u6 ~, w; x3 ?. h3 m
if( m_nJob == JOB_MERCENARY ) q% B# v2 H" ?* C: C; _
nPoint += 40;; [ c% N: z: L( D9 d! Y) o
else if( m_nJob == JOB_ACROBAT )( X7 M% n2 Q: `; V4 m' k0 W9 W
nPoint += 50;7 d' A% w, u0 d2 `4 J0 R1 ~2 [
else if( m_nJob == JOB_ASSIST )7 j3 S0 c/ [- H5 R' g
nPoint += 60;
3 M6 N- t3 u0 ]8 \: i else if( m_nJob == JOB_MAGICIAN )
& j) G- Y& X2 w7 l nPoint += 90;
4 f% H0 `; T5 _3 ]" Y* y else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 ]7 ~5 s: N5 Z g* E# e5 M
nPoint += 120;
" X% @( X/ `, A" F+ H/ d3 C. T. b: K, } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
# q( i9 W; H+ i% U/ H& T8 i% | nPoint += 150;
% d/ C, {$ I, u) `, S else if( m_nJob == JOB_RINGMASTER )
+ G% H( l# S) i9 g. f5 e nPoint += 160;
/ {8 F- M) ~, A7 v z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
; S" T7 q8 O4 ?/ J. u' I+ ]; G nPoint += 180;" e) K+ R& m9 b1 R9 x& N
else if( m_nJob == JOB_ELEMENTOR )0 c h7 M }! k0 ?" S& K
nPoint += 390;
7 X* G0 i: p) i/ Q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )8 Q; C, ?2 _! |2 V
nPoint += 120;$ s, O4 h9 {) [/ A! p( U. l
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ u/ v8 o/ `+ U) B! x j
nPoint += 150;
2 H/ S' M+ d+ z else if( nJob == JOB_FLORIST_HERO )% q9 x; a% U$ {' z; n
nPoint += 160;
9 x3 s" s3 |) d5 v$ ? else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 _) Y! p- ]5 { e/ a
nPoint += 180;
0 o" y7 E5 X) T else if( nJob == JOB_ELEMENTORLORD_HERO ). x7 D5 ~2 T# T: b6 G( J
nPoint += 390;
' s6 @ R0 f6 D- [- l4 x, ^; f+ h& A( {. G0 a
AddSkillPoint( nPoint );
- B3 ^" S" B" t1 k7 @6 P! E m_nLevel = nLevel;* Y9 \' A% N6 ]0 o) j% K, U4 R
2 i: s! P+ H3 v
SetJobLevel( nLevel, nJob );$ R/ m( A% u/ i4 p0 `( E( \
m_nDeathLevel = nLevel;
* k+ J1 |6 g1 }$ ]#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
" j& V. P2 e4 D7 g' w( b if(IsMaster()) s) K7 k: k/ @6 L2 r6 W A/ ~9 j
{
% ?+ N1 v2 n& C ~% ~/ L' f int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
& }% T% B; f4 g2 D. {% _6 d) Q if( nLevel > 59 && nLevel < 72 )
# B& [4 Q9 E2 w6 k' C# Q dwTmpSkLevel = 1;! V( B8 |3 ]5 I: O4 s( P9 ?
else if( nLevel > 71 && nLevel < 84 )& f# P7 i9 L6 m" y
dwTmpSkLevel = 2;% X1 r' \, w2 U: c9 T5 ~- K7 @7 r
else if( nLevel > 83 && nLevel < 96 ), t9 Z" n. a* t" C. x) ]" d& k
dwTmpSkLevel = 3;, t; x8 s/ k; c7 b2 U
else if( nLevel > 95 && nLevel < 108 )
' r' \& N5 K0 ?0 W0 i! Y dwTmpSkLevel = 4;
/ ]* G% h+ _ A# D else if( nLevel > 107 && nLevel < 120 )
2 [2 f7 a; U/ X8 M1 u8 } dwTmpSkLevel = 5;/ j* T6 N6 b: B- p( D1 ^7 L& C& w
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; V/ C: e5 l7 ^, y* t
{ # i5 t* ~6 A2 O s7 L
LPSKILL lpSkill = &(m_aJobSkill);
% n, u5 e1 a, \3 s! D/ A1 T if( lpSkill && lpSkill->dwSkill != NULL_ID )4 d8 P: s2 \$ P; C* j! T
{
0 Y9 j, n7 S& s5 y* B/ F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % g7 }/ d9 Q! Q4 G
if( pSkillProp == NULL )- Y4 ~8 p6 b2 G
continue;
4 n$ c6 e, z& H if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. o5 `% ?& a3 g" x! ` continue;$ f1 J. j: f$ z: z- ?
lpSkill->dwLevel = dwTmpSkLevel;( D! g, `0 M0 H/ [" A: h3 e2 W' T
}! a$ w0 H% Z `9 [8 p
}% l. h( i5 R! L. G* m
}
8 P6 g0 X& y4 }* R else if(IsHero())9 [ [: W& W/ p
{ k K' Q: c" G( E8 R5 e2 q$ Z' z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 q# }2 i) ~; [4 j5 H! u {
8 L2 V, y; B& x- f LPSKILL lpSkill = &(m_aJobSkill);$ x4 ^% w: K) {" O1 F* L1 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 B+ Q; d. y5 m0 c9 X: Y" P: `' H' @
{, Y+ G4 f* m$ p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 ?/ B, a9 W; @* M! ~" p7 W if( pSkillProp == NULL )7 \8 {/ }# _8 x4 v5 ?' o: W: C8 P
continue;1 s' \ `1 {+ x* _2 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), R, d( z( X4 C' ~4 R9 u( }& i
continue;! M: Y" S/ Y' W- i) O- r
lpSkill->dwLevel = 5;7 d- @7 F V# D( c3 | f
}. i3 N' e& E. Y$ u
}( d) T4 V0 [6 g- n. e
}
. J9 x7 P& I; {+ k else if(IsLegendHero())
: o: V( C2 i& l" ^ f {& ^& u; l0 D" a
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 d I( b) n- b/ Q5 G- K
{ 5 J$ E: |" ?4 g" @; A
LPSKILL lpSkill = &(m_aJobSkill);* g* S: b# ?3 k2 K. X: M$ t$ z* \ ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )
' y7 `" V# ]$ S. \, X4 ? {
' s% U* m" A4 s! ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. N9 A& W" C/ z* T if( pSkillProp == NULL )7 L; U8 z% J C7 o, S
continue;4 q: k3 T/ d% d" J/ h) f& ], k
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 c2 h8 ]; I* F; Z+ j continue;# x" o. _) i0 h9 h7 I7 o, c" m
lpSkill->dwLevel = 5;
6 M- F( W. ^* G6 \ }# r0 o* g& ? A
}6 a* A4 h/ u# s3 t" _# R) j
}
# M$ R* j' u% ?( N- j9 k' ~! @4 [2 u#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) G6 `( H6 r: n: s if( bGamma )
6 W1 g1 C" @1 u) u4 P$ k {
& \- C ~. d8 u, m m_nExp1 = 0;$ C4 z+ ?1 U& Z
}
& A; p( E7 K& \( E# R, r1 i2 n# ?& Q7 Y; x& a) X) Q
( (CUser*)this )->AddSetChangeJob( nJob );
_" L; ^, k& G- [: o2 T g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
8 c4 a: h. N1 a' r" L8 m" a8 f( j( D5 g$ P
% n( A7 A3 [# `, F0 ^#if __VER >= 11 // __SYS_PLAYER_DATA2 I% k3 I, U: C) s E6 p9 c
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
- @( n4 u$ I; v5 _0 J#else // __SYS_PLAYER_DATA
* i) _6 ~ n2 K7 Z6 D5 |6 B) l g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
: W" X# ?. V' E. g9 W8 G7 U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );5 s4 I- ~9 N( R
if( m_idGuild != 0 )+ L6 i: X) ~4 T; a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ E% z: h# _3 D8 k7 R0 q
#endif // __SYS_PLAYER_DATA
* {3 Z( y1 q6 J5 y- P SetHitPoint( GetMaxHitPoint() );
3 m/ J4 Y, Q/ l0 T! l9 x SetManaPoint( GetMaxManaPoint() );( N+ E9 f. F1 R* @5 c% M6 a, O7 \
SetFatiguePoint( GetMaxFatiguePoint() );
5 V4 v* f6 C1 A# Q if( nJob >= 1 && nJob <= 4 )
- c" S( Q& i* \6 l! ^ {, T* l8 W0 i" H. X
m_nStr = m_nSta = m_nDex = m_nInt = 15;- _. K0 A5 n$ B
m_nRemainGP = 28;& L1 N- \5 k& _" s
}/ j4 e- j0 s2 H
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 |/ {0 Y* e4 O
{
0 z; C( s4 t6 n m_nRemainGP = 118;
' [! O, d. l+ o: \2 [9 B //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
N9 x% D0 v* k" \ m_nStr = m_nSta = m_nDex = m_nInt = 15;/ w" A2 t6 Y; y( L7 v
}
# Y" K' z) s1 y0 |* V3 D if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& M# @2 U/ F- O3 v9 K. [# l7 [ {$ [9 g, ?; B; x
CItemElem itemelem;, D5 @# |' ?. k8 y# C5 Y, x
itemelem.m_nItemNum = 1;
9 ^7 Y) K# j/ s" W: l itemelem.m_bCharged = TRUE;
. U5 u3 f E. U$ @ BYTE nID;
% s4 _, b* P" G3 V2 m/ w
( p7 t3 h( `4 Z3 y, p if( nJob == JOB_MENTALIST_HERO )
+ r, T i; i* [( M% x0 k itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;7 M6 z$ }3 f+ [ x8 R
if( nJob == JOB_FORCEMASTER_HERO )- s; r; w+ p; t3 ~! Z8 n8 f
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;) r# t l. R7 z! O) p
% a0 o! c, `% i2 X, ]' s- l ( ( CUser*)this)->CreateItem( &itemelem, &nID ); x8 H( O6 G1 }( x) n. y4 M6 P' Z5 T
}
1 w+ o- v0 X( O0 B% j% k g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
& F' Z. ^; `8 @: D& K( B# \ ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- _+ `# p. r( y! |
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );) I2 g" h) s3 |, b* C
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 [) r! R. y8 i6 n
( (CUser*)this )->AddTaskBar();*/
2 F7 g, R \3 {7 Z/ F9 J1 ~7 | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );% N9 ~1 l- }6 @3 P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 x: d/ I" X/ u* L/ K4 y ((CUser*)this)->CheckHonorStat();6 f' A) f+ ^" ^7 [6 O7 ]" n* ^
((CUser*)this)->AddHonorListAck();
. j' m" H3 @& k H0 z4 Y g_UserMng.AddHonorTitleChange( this, m_nHonor);
- D% d( O' N3 ^( _) `#endif // __HONORABLE_TITLE // ′Tà?
) q! ?- M1 W9 T" Z( \; N }
; m% O* ^/ E @; E#endif // __WORLDSERVER1 B K( T c& k
} & l, S6 J5 z+ J/ I
~8 I! K) Z3 O C7 W7 ~2 N
然后你进入functextcmd.cpp并添加以下; M+ i! k: z C/ J* g
. r; N; E8 b; L8 z: z+ s0 @* I! Q$ S q代码:
0 k& y4 l; ` CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 Y6 B6 ]1 C+ \2 v4 m; O9 }下面插入6 n) Y: P6 _/ _ Y& }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) n8 c: B2 a! k# C9 v5 F" t! u, t
, @! F" ^0 t0 D# l9 M5 k然后你去( B# T! p0 G" t2 y: ~/ }
8 ^2 E) } W5 P3 ?. R
代码:
* I5 N9 h& z; I6 t6 _ `代码
; ]/ K$ Q. I v2 u# f- `" Z- DBOOL TextCmd_ClearPropose( CScanner & s )) g0 h$ y* v, k( H* k4 A6 p3 P2 W
{
5 S. t1 I# i" h7 A4 p* ^#ifdef __WORLDSERVER
( R) Z$ \( C1 u CUser* pUser = (CUser*)s.dwValue;
w7 t) R' W; N3 |- }+ R" W, K g_dpDBClient.SendClearPropose();
5 C C! P% m" {+ r: R1 x& |1 I0 j#endif // __WORLDSERVER0 q, q& A0 O4 |4 R6 @ U8 H9 i; z
return TRUE;3 l" \ ]+ [( g: Y: i; o* j* h! a6 R
}
8 V8 T; ?% W' D# h; K% ^' C下面插入
' R; A7 O5 ?( N- [: z' |' }* j& x% ZBOOL TextCmd_rebirth( CScanner& scanner )* r$ B+ z- ^( i3 ^7 h+ \$ Z( m1 v% Y6 h
{
/ L! {9 T3 i0 i. N#ifdef __WORLDSERVER
, \" ~2 u& y6 k% }: nCUser *pUser;
/ D) }2 P; T* z( z3 @pUser = (CUser*)scanner.dwValue;; ~6 L- o3 V( \
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). `3 E# {5 t4 \1 T
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% q. F6 J0 g* M" K5 K2 [
else* G8 v+ Y2 n) w) I8 @, _, T
pUser->AddText("你还未达到重生条件!");
: }0 I1 [! y5 h' L) J, x( m: T#endif2 U( I, D+ t$ L8 f! X) i! J/ B
return TRUE;
9 W$ N; Q/ V5 r$ x, b. l3 v} . ]1 E# J: J6 X! q+ z7 [
- |1 h v/ |8 `1 m( L8 w$ U
, W/ S) F( `" ], [8 }
6 a9 U" f4 [: H8 X* S# J( V) b+ |1 g" c' [% W. ]' b
|
|