|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 w2 o; F$ T G
; J' Q @' W: ?
Mover.h
/ `6 k+ Y& U% Y" ]代码:
! ^9 v- f! t8 I* q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
5 o' ~( N% R! i; l( h# m7 P
; F" L0 a0 w+ g C% }$ w, T下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; $ J2 O2 O4 s- l/ Y T8 s" V% a" F
& F! g+ u ?: p9 ^1 Q; e. D3 O) [# S9 _5 {
然后你去mover.cpp添加( m$ L. W. A9 J! h+ ~8 Y5 p7 F
7 n5 K x4 f: v9 {代码:
- N5 [0 O2 H4 ^8 uvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )( x' ^. M( X0 Q: I0 V/ w( f
{7 B p% t1 f) ? I+ w- M
#ifdef __WORLDSERVER' Y2 p/ N+ A' e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
, ]+ Y$ k+ O! ~+ r MoverProp* pProp = GetProp();
5 F2 ^8 B& s" l8 x( n9 l. W if( pProp )
! C6 ~% `, q/ c% r& B& d/ A {
/ j8 q( _7 R1 y- ` if( nJob > 0 && nJob < MAX_LEGEND_HERO )& Z! T& w" L: q% R
{
6 q1 X d$ V! ~4 k% t& e AddChangeJob( nJob );/ P$ c6 T: C2 |1 k$ [8 {
}else{3 o. Y8 v' T3 E: Q- ? Y! U
return;* Y4 |0 m5 V4 d3 K# n
}
' [8 N* T4 `8 E" b6 ]# f; \ {! j int nPoint = 0;
& l7 b: \# G8 L3 {* ] if( m_nJob == JOB_MERCENARY )4 y+ |9 h& I* h# F! q4 D& c! |3 L5 m% H
nPoint += 40;
6 K+ G) T8 A% o: G# `* _ else if( m_nJob == JOB_ACROBAT )
# G# d6 L8 d! B) [% m nPoint += 50;
& I1 K7 O! Q( } N& g else if( m_nJob == JOB_ASSIST )
4 j4 x! U( |5 w. R0 l nPoint += 60;; R" i" C. C- b
else if( m_nJob == JOB_MAGICIAN )
d0 F- x9 M4 K9 T/ ^ nPoint += 90;
7 [; F2 \2 x/ ^. f4 w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )% E ^: P; Q4 `
nPoint += 120;
* T8 ?9 ?% V9 ~( s7 {% |) Y0 Z7 M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
! `4 L% K# I( n' B0 g+ u( B nPoint += 150;6 f6 C9 Y2 e& S0 w" t; U
else if( m_nJob == JOB_RINGMASTER )
" ?! n" v, ]4 E. Q9 y# `" j% m nPoint += 160;# {' v8 y8 G; ~
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ) P. e: @7 H; L5 N
nPoint += 180;
" i2 \% c6 D8 M9 D1 U/ ~2 m( D else if( m_nJob == JOB_ELEMENTOR )
4 R; p0 a8 y( I: X' v* P( H6 b nPoint += 390;
% z' V7 l0 K; {- v/ i' @$ M0 j8 w( R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( S O! I% a' a* {8 B nPoint += 120;
7 i& q/ S. ^/ l& L( B; o else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 \/ ?; f% \/ i1 a# R& K" v nPoint += 150;
: @7 c6 n) |: Y& W4 Q* W else if( nJob == JOB_FLORIST_HERO )3 t8 M E: L; [: |; y" L, j
nPoint += 160;: }7 |6 i, [7 g" k) E! M4 U0 h. n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 n( X1 w8 k9 O. H5 @ nPoint += 180;
7 {, t- c) Y% Y5 \' c( s/ B else if( nJob == JOB_ELEMENTORLORD_HERO ): N" z5 g9 R$ ^4 [- `
nPoint += 390;
9 F' N Y+ X5 l" Q1 o
5 I2 r. R i; C; x/ l8 O3 @ AddSkillPoint( nPoint );
4 h& b% Z" I: Y0 M$ A0 H m_nLevel = nLevel;) J$ ^' }! x9 c* y w; w6 a
9 I3 s' h+ Z0 _ SetJobLevel( nLevel, nJob );
* M6 t/ g3 s9 y% r( u8 F- P m_nDeathLevel = nLevel;
}; i/ B+ S! p. M% X#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans q0 ]( |! ^3 s/ H( N* E
if(IsMaster())) x Y3 w7 T! y! e7 p
{7 i2 ~% [: l0 i- C! X0 ?
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1088 _2 ]# i7 G: K& P: ~
if( nLevel > 59 && nLevel < 72 )
9 m; }" f' L2 Y# v" q1 ] dwTmpSkLevel = 1;; \' {% }6 ?8 {% a! H, a9 V
else if( nLevel > 71 && nLevel < 84 )
+ w; ]" i+ K# A, e dwTmpSkLevel = 2;! [) w- r9 E% C+ k! A
else if( nLevel > 83 && nLevel < 96 )
+ _; X5 q7 r8 v' e dwTmpSkLevel = 3;% A* t' ]3 ^. U5 |- z; R2 u
else if( nLevel > 95 && nLevel < 108 )
: I! B' X; m' ]6 A/ m dwTmpSkLevel = 4;
0 @1 }# T: i" N8 H else if( nLevel > 107 && nLevel < 120 ) M9 U8 A( {2 ?2 G. Y% z3 G
dwTmpSkLevel = 5;
" _) c6 V4 G. m) }& f: P1 U8 Y for( int i = 0; i < MAX_SKILL_JOB; i++ )
) X# v% H& O- w. E {
% N+ c2 M" M0 P) ^2 [& k' \/ a* ~7 _ LPSKILL lpSkill = &(m_aJobSkill);0 |! L0 a$ C, J# Z% ?8 r
if( lpSkill && lpSkill->dwSkill != NULL_ID )
! r* z2 d0 \/ g2 h. k {
( D: j9 {# {) q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' d# ^9 ?) f1 w
if( pSkillProp == NULL )) T) ~. z2 ^& v
continue;/ z" j4 g! r; S) [9 |8 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- |. i+ F- \! f2 P4 A4 d" J
continue;
' r8 `" x6 r% G& I lpSkill->dwLevel = dwTmpSkLevel;
" {+ w" J' F, V1 K! ^8 y( { }. Q- M; W. _9 {4 d% R0 ^* ]3 H
}% N$ h$ d& V8 u; _9 z! {
} \$ [! w4 a4 J
else if(IsHero())
( J% \2 K& I% v/ N7 p {
! s2 m6 N$ b5 u for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ h2 t- @% ~7 D: j { / a: b. }4 R% ], \4 E9 D6 v
LPSKILL lpSkill = &(m_aJobSkill);4 j9 p* z8 O2 R4 ?% x
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 B% n6 D. q* V' C4 {! M: a7 E
{
& c' i0 m; k4 J: R* o! ^ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 U, u/ [ x8 C, j( s
if( pSkillProp == NULL )
0 _6 m$ C+ ^- ~. e2 J% l3 E continue;
# n- y- L5 M5 x- u8 K9 h7 W if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ C6 | o7 H" b L
continue;; U5 U/ h4 x) s- L
lpSkill->dwLevel = 5;2 K& P) n4 j: `1 J, h1 k% K: B
}
4 T3 a. j1 N2 N }
1 e1 g$ T$ _" P2 ]+ k* O7 b }5 {: T9 X K5 w
else if(IsLegendHero())
* Y- j! y, Y# V( j0 T {9 P; y( k$ e1 |" g. ^. G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; V* M0 h0 n+ X8 _4 B M, B2 T: l
{ 7 m+ _; I7 v: x' V4 k" s
LPSKILL lpSkill = &(m_aJobSkill);' a6 Y! o) T, ?6 ]8 S( Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 W N1 M/ q0 T" t
{
5 I9 h& d" Q/ ^; ]/ Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - W$ P3 }6 P, k2 j( c$ }; `
if( pSkillProp == NULL )
1 [, H5 g& d9 p1 j2 U2 b continue;. Q0 v- I$ _) X1 g1 {$ [% g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER), s! b/ j$ g9 d0 I
continue;6 \& ?5 z; C0 M9 a/ \
lpSkill->dwLevel = 5;
1 W" o1 n3 }9 j! m }
* l' J4 e3 R8 r8 R6 z2 ^9 {( ], ] }
* D" i; y5 |0 p2 a }
( j- X) a% G5 _3 N#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
% `# S4 d& P2 { H- [) J if( bGamma ). M h g5 M9 i$ J& e) E# n7 K
{% O5 U; ^% r0 x) `6 w% S
m_nExp1 = 0;
' P/ G0 \, U. \ l) Z D& ` }
B5 d0 X* Y1 X7 ?8 n M! A1 M7 v% M& T
( (CUser*)this )->AddSetChangeJob( nJob );
% n1 B. r! N. @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, V4 t8 _& k8 ~5 Y- G+ N, O l& i
8 \$ g4 E8 Y; |8 i6 g! e0 Q# o
6 S, Z4 G; ?% G$ N. y6 V#if __VER >= 11 // __SYS_PLAYER_DATA) X' h/ R9 F b* G+ T" I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );+ T5 X/ X/ A, Z* u5 F1 C+ N/ s2 S
#else // __SYS_PLAYER_DATA
- r" o8 a- @6 k' u5 D g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% l. I( S: w7 Z- o X3 ^
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ k# a, P8 W3 d" I) c
if( m_idGuild != 0 )7 v, T8 u% e4 m6 b$ h/ H
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 w) |* n8 M* b7 J; h+ H% F
#endif // __SYS_PLAYER_DATA$ d% F9 v; k8 B
SetHitPoint( GetMaxHitPoint() );7 |8 F+ l3 U6 e, [ s `' e9 `8 d
SetManaPoint( GetMaxManaPoint() );8 \/ h( f( O9 N* g5 m- M: S) L
SetFatiguePoint( GetMaxFatiguePoint() );0 O8 }- S6 X9 O" q" j% [' }
if( nJob >= 1 && nJob <= 4 )
3 n4 ?) k# J# T. g. m# P {
% ?: z3 p% K; U& R/ M m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ J1 @1 n, t( V# K m_nRemainGP = 28;
+ a( Q/ k+ n7 Y }3 \4 ]7 X; e$ k3 C9 ]
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 u! v/ n7 W# \( R2 K {
( E V+ ?- e0 s& O, @7 Z, F m_nRemainGP = 118;0 b9 ?7 u: X( ]
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;& E9 v0 Q; \5 x& _
m_nStr = m_nSta = m_nDex = m_nInt = 15;
2 v5 W+ Z7 b3 s. G }0 ~+ R3 C5 x. R! c/ F
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) k/ L2 Q8 r: M: J {
6 g* m' O$ m) E e4 t' K' u7 ~ CItemElem itemelem;
% W% W; q, m% K4 x) C4 W itemelem.m_nItemNum = 1;
; M0 \# |! D% B- q4 d) Y( U! a7 C itemelem.m_bCharged = TRUE;. ~4 }: o* F/ T- W( n
BYTE nID; A# N7 _0 p( s2 L! Q7 y
2 }" D7 \9 p" E" x6 s if( nJob == JOB_MENTALIST_HERO )+ d7 A; f# V: h/ I& }
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 P, k( u8 F7 C( x
if( nJob == JOB_FORCEMASTER_HERO )0 V# c. }* m+ \0 P
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ ^- l8 |% j, [2 k% T: ]8 |/ D0 I& C f4 _$ m
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 O; {% R* h; Z8 c }
' E. V& `5 m; { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
( D& C& ?* Q* T ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! V* o2 n- d6 l7 q& V% Z
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ \6 Q( d2 K( s5 p
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
c6 u; l3 l/ n7 r& L9 }7 d ( (CUser*)this )->AddTaskBar();*/; X7 t. }, Y/ H$ L8 c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
& O& G2 g3 m$ i0 X m( S#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 w8 N; ~/ i4 ~1 r0 W ((CUser*)this)->CheckHonorStat();2 k* q- j5 a+ n
((CUser*)this)->AddHonorListAck();* J# X6 p2 P: _$ G2 C
g_UserMng.AddHonorTitleChange( this, m_nHonor);! j4 s8 u9 H$ i8 T8 L, b& Q+ [
#endif // __HONORABLE_TITLE // ′Tà?' r6 i6 f' i8 E, z& T7 |0 l0 i& T
}7 i5 m. L( S/ y0 Z% ~0 o. s+ |$ C
#endif // __WORLDSERVER
1 H( R; a4 _( _* B! I}
5 }7 G/ p. x! c5 J7 }/ _' z2 O7 p" L0 @6 B, }) ]4 t& `
然后你进入functextcmd.cpp并添加以下
5 c. J/ J* O2 t' b% k6 l
- l: `* i2 F @% n代码:, D% q, p' m X3 r
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
4 Z; n- @( i# Z9 J& z) V, h/ m# A下面插入
7 [- ?9 Q X. V+ P9 R( u* VON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) / f. Y! ~2 Y8 y6 @8 w! z1 d
% t6 K2 J( O2 p. U ^然后你去
8 T9 u4 `; ?' F1 r" x# ?" b0 {/ D$ |% D) K
代码:" Z6 s3 Q% C; Z" `/ {2 V# o: k/ o, N
代码
5 a) n$ D8 u! U7 @3 v/ uBOOL TextCmd_ClearPropose( CScanner & s )
( ?& ]8 Y) N; y% \- J{9 P! P: J. I$ j. l, J' `; o
#ifdef __WORLDSERVER# N8 l! P& U4 C5 r5 r
CUser* pUser = (CUser*)s.dwValue;
1 Z/ _" T, d' B. z g_dpDBClient.SendClearPropose();* H3 {6 I: w& M# {; p' z: P
#endif // __WORLDSERVER5 ~, s, j7 {* t k, h
return TRUE;
% o2 E) h, _ q5 x}5 @) G F: d, e* p& L
下面插入9 V. C, S+ q6 ~
BOOL TextCmd_rebirth( CScanner& scanner )
. U1 ~7 [' v4 e+ ` N8 i/ d- J{
6 e; A9 \5 I8 S* p#ifdef __WORLDSERVER l( ?8 N7 a/ E" _7 h
CUser *pUser;$ D/ b0 @; Q% Q1 S+ t4 H
pUser = (CUser*)scanner.dwValue;
: h2 m& A0 \' k7 o+ J3 Xif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
o4 p |! M1 F& h( ~pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
, ?# r3 R: D! K* N+ e7 p# Celse
5 L" e- `( k/ |8 R) \pUser->AddText("你还未达到重生条件!");& A/ C( K w" C- h
#endif
$ ?9 W. g! p% \$ P3 _8 L6 dreturn TRUE;
9 Y" `) N; W( R( j8 S! L; p7 L}
. O: O+ I5 x3 e. j
7 X$ E* `% j6 k# N4 R9 A! z6 P; D2 o3 o2 p E4 G& [: L
7 K. W8 Z; D6 [1 w; ~: b4 r
$ ?# i3 Y( X2 L' J4 z3 t |
|