|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; y- D0 I, R ]0 U6 {, g: N4 p
5 |$ `! X* J* P! s) Q* \Mover.h
' R1 H; a* Y5 k& f$ S代码:
" a- U. D9 N# V找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- ~" n+ S Z4 Y) Y8 Y$ T
7 Q4 |6 T; t2 N) {- m3 m: J下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 N- N# s. f% C
' ?' x, s: m' ^" e然后你去mover.cpp添加
! k4 X) R5 [$ r8 T) l6 [$ \& Y' b
' h6 {! t' u$ |& K& A6 z代码:1 |/ k) z/ f# U) o1 m2 ?1 d
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
e# h# J# [; b1 m8 ]# ~6 H{+ X0 K( e+ t+ s- }2 y, k
#ifdef __WORLDSERVER
4 M! C; G% e# j2 b6 B6 B( h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ ^; o( J) B% [/ O4 u) B MoverProp* pProp = GetProp();
! K" \! O `+ K4 i- m if( pProp )
& @0 G; E4 g. z7 v4 a, }2 K6 } {
) m+ C6 _4 w' y if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 u$ S% h% n; p3 S/ M7 }) }
{
; w& e7 _" o) r AddChangeJob( nJob );5 h4 \. H( h0 b
}else{
5 [ K! ?; y7 t- o return;
4 e9 d6 A7 p: e* d& _6 y- |0 K }
: O1 f6 c, m& [0 ^) m int nPoint = 0;' d9 b! t& j$ K; A/ z' _. _4 t% F6 R
if( m_nJob == JOB_MERCENARY )
/ ]4 ?: E# C L( ?+ ~" |# c nPoint += 40;: T9 c8 f+ @: {
else if( m_nJob == JOB_ACROBAT )
) j3 ?& y) D. F' \! s" e nPoint += 50;! |7 Z* t( U) I9 O4 Z' P& j0 R
else if( m_nJob == JOB_ASSIST )
P. a- h Z1 G, u: ~+ n nPoint += 60;
. I5 O% m, e- l9 i else if( m_nJob == JOB_MAGICIAN )
4 T3 A0 f1 `3 G3 W6 n, U nPoint += 90;
( U1 }* a6 `: `' m5 F& j4 x: l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ j- N5 `1 t, ?2 {$ V* k, {
nPoint += 120;( Q1 Y: s# f1 v3 }* H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% k& d T$ j. b- A
nPoint += 150;
$ s$ A$ T2 e8 l3 a& Y2 [ else if( m_nJob == JOB_RINGMASTER )' V) c* n) w. w# Y/ t# Z7 S
nPoint += 160;3 t( R4 G* l1 I; `3 l
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )* j1 ?* b3 p+ K
nPoint += 180;. I ?1 J0 J; f/ ~9 B. x
else if( m_nJob == JOB_ELEMENTOR ) K. v5 u* U) K
nPoint += 390;
8 Z( O& i, F! H$ V else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
# d; j6 `0 Q2 g6 A nPoint += 120;$ B! {) g' I7 X& R- b& q' [- `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
2 ?: q& R# M( s nPoint += 150;
f& J$ I8 T+ _9 u& m" ~+ V else if( nJob == JOB_FLORIST_HERO )
$ x! r/ K: c6 g( z& x& T/ d8 \! H nPoint += 160;2 q7 G# _2 k% e
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ F- }; X- @% R+ n; g- n! p nPoint += 180;$ b# m2 U$ a, S2 `! D/ _/ o( J
else if( nJob == JOB_ELEMENTORLORD_HERO )
1 P9 {) @3 M/ }0 B5 t# w9 X. _8 N nPoint += 390;# m5 D8 r0 R' J! ~. `
* a; ?- a2 h% }# r4 B
AddSkillPoint( nPoint );
0 L6 D1 `) f/ ~8 \/ p7 f M m_nLevel = nLevel;9 F# H K9 f- E1 L1 @
4 Z6 l' H! V8 V- ?- f
SetJobLevel( nLevel, nJob );
2 d0 v) q8 T& D* M# l m_nDeathLevel = nLevel;& A% D1 S* t" |; |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 }8 d; c! P8 Z) R
if(IsMaster())
* t. W7 @# B4 ^+ k% r( B+ F {3 H. b" ?/ D$ F+ d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1084 x4 X! H7 E" ~. q' O& K1 a
if( nLevel > 59 && nLevel < 72 )/ ]* u1 D# h. D4 d3 b. e3 A
dwTmpSkLevel = 1;
! y) V* ~" \ v* I% ` else if( nLevel > 71 && nLevel < 84 )
0 C; t, M; F! L7 Z. ? dwTmpSkLevel = 2;
; ^3 w! t$ E: W- r; b else if( nLevel > 83 && nLevel < 96 )$ Y/ W* w7 S: V$ l
dwTmpSkLevel = 3;
}4 X6 f% H3 V8 X; J4 ?9 V' Y2 c else if( nLevel > 95 && nLevel < 108 )8 v2 ? H/ F* {: X6 l1 t$ c
dwTmpSkLevel = 4;3 D ]8 N8 w; D+ G
else if( nLevel > 107 && nLevel < 120 )
; m. q! i0 {* l) [4 p. M dwTmpSkLevel = 5;
8 B0 w# C' d- }' r5 P# n' L% t for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 R* W; z. ~2 C* u* L( O3 \9 M- |
{ + R, e& V0 V& z9 S% E# t2 H9 @# \
LPSKILL lpSkill = &(m_aJobSkill);/ l3 e2 u, X) y+ b
if( lpSkill && lpSkill->dwSkill != NULL_ID )" @1 f; O' _# a
{5 {3 u1 E' A# r! d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# ?2 d$ e0 j" U- ~* E9 y) k/ e if( pSkillProp == NULL )
/ M( B0 R$ P- x# I' c continue;
; o4 \ z8 x( P if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) @& O; f6 I i$ `' e) S
continue;( h! O) I. q8 x$ |5 z1 G' p Y
lpSkill->dwLevel = dwTmpSkLevel;
6 u3 b7 p0 J& T$ b/ Z }
" Z( {$ ?/ Y I" ^3 o! Y2 g( l) K }
+ ?" A, Y F: V W3 T, E }0 ?$ C6 X. o) X% c7 g1 W) [( c. F" {
else if(IsHero())& k( t; a9 m/ ]1 E/ f
{
5 M, m$ ?- X5 y for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ y/ p, R+ b1 J2 L* x" {- P { 9 O+ V* H- V9 i: V* y
LPSKILL lpSkill = &(m_aJobSkill);
8 H M; l# o a6 T# } if( lpSkill && lpSkill->dwSkill != NULL_ID )) J* q9 o) R: i- r% R
{
! `0 @ V" r" [: A/ u1 ]$ |: _, ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 ]; W/ k; V/ P5 O5 s& ?/ p
if( pSkillProp == NULL )
, s. H3 [9 o0 Y0 o- F9 P- v' v) z continue;# k8 N& u4 a* {7 e; i4 p& Z2 p N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 L* R; E1 @2 U
continue;
) N2 c4 K. L4 h lpSkill->dwLevel = 5;
9 ^% S2 F" B* t( C& C+ ]5 n' l }# O* O) |* R7 e4 P3 H
}1 ?0 R$ q0 G) x8 e! X9 q6 U* a
}* m2 o1 |0 B/ G4 H% D; [- R' ?
else if(IsLegendHero())2 H! H# l) I( j( S3 x5 ]% M
{9 ?3 P5 Y- l+ p3 z
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 s7 L4 } g# g {
$ ]2 N$ V- P0 O% _1 A LPSKILL lpSkill = &(m_aJobSkill);
- [! Z9 m9 d3 a( B- @ if( lpSkill && lpSkill->dwSkill != NULL_ID )+ ]1 Z6 y2 p2 M5 D' ]
{
0 o- g, R! _1 M, p5 w: V d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # ?4 H2 t; o8 a- m9 N+ B8 B6 @
if( pSkillProp == NULL )! M$ M) K+ {! G+ F9 O5 z! k
continue;
+ n( Q$ n( C" N [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ Z# Z1 a# H( q L- t3 m continue;
+ B+ ~* L5 _, f1 m7 Q& q- v lpSkill->dwLevel = 5;
1 E5 k* O/ Z5 ?! O) w* i }
- w0 i) G8 I9 l4 { }
# O! P" k2 L2 ]. B5 ], J }/ l' Z" a: I( {; _+ B( I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 H" R# u6 r p1 J- z! y! ]7 O9 m0 H
if( bGamma )
! Y4 t6 `$ }0 L3 P {
& u+ N/ A D3 O6 p0 |; d9 U% K m_nExp1 = 0;
2 D* y& a& w* z$ p! K. X# W }
: Y6 p _$ E# Z4 k3 @# E e E# s1 o6 \* J! P. Q- G# \
( (CUser*)this )->AddSetChangeJob( nJob );
o9 S4 i" k2 p g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) o# F9 {3 H/ N
% m& Y [5 F; a1 x5 H7 ~0 o2 x& y O4 K, b" X4 a2 c# F
#if __VER >= 11 // __SYS_PLAYER_DATA
5 z. ~' S) A, k7 [& z0 L g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. q5 L5 w, I7 g: A#else // __SYS_PLAYER_DATA% q/ y: T9 s) v S
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
( w& E, b: M: g9 w: v9 q g_DPCoreClient.SendFriendChangeJob( (CUser*)this );$ o/ D h a" K1 F* T% u
if( m_idGuild != 0 )
4 s2 m( i) z4 J) P g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; e6 l0 F0 P6 c) ?6 F0 b
#endif // __SYS_PLAYER_DATA
/ S4 o- P$ c! ^- e& p SetHitPoint( GetMaxHitPoint() );
, P+ s( g. }& ~# |# U SetManaPoint( GetMaxManaPoint() );
1 b( _% d5 z, g: }/ a+ [ SetFatiguePoint( GetMaxFatiguePoint() );
( O; N9 W3 H/ b+ H( P1 Q if( nJob >= 1 && nJob <= 4 )
+ |0 E! S6 h5 S! _+ Z% `- Y" e# [) _5 L {9 t# _% S; m# q5 l+ ]5 y: X- N" M
m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 [0 g) J4 q- Y+ ` m_nRemainGP = 28;
! F8 _% H; R! [* w" V6 { }
! O8 D1 K# G$ D5 f7 a if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
) h, \8 K7 [7 r# L, e {
1 h, n4 Z0 q* K/ r2 G a m_nRemainGP = 118;
8 o0 i* \2 ^2 k, @1 k //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
E* n. P7 v) I' F3 T m_nStr = m_nSta = m_nDex = m_nInt = 15;: u5 j* j9 |& w, h( _. J
}1 U, V- ^9 T3 b
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): f7 b u! h7 \' @- [ s
{
& U+ O% s7 `" i ?$ M2 u8 S CItemElem itemelem;! R9 ] f, n" e1 ~8 X3 Q
itemelem.m_nItemNum = 1;
% }/ c, W: `9 E! ^+ `% U itemelem.m_bCharged = TRUE;3 N* e; q% f# `9 U! \7 x# X& J
BYTE nID;
" p) t' P6 l! H& X0 }0 g/ k% T9 v
9 B5 k% }9 [2 _- y) `0 h if( nJob == JOB_MENTALIST_HERO )
9 |6 m+ a& q) a! g( X itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;. ^! J& c6 G2 z; i
if( nJob == JOB_FORCEMASTER_HERO ) Z2 o5 W$ ^" S+ v: X: {8 R O
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 E8 c |3 x% F% h1 K
# Y6 w/ r5 o' j) E& F% e" j9 H7 S
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 P; v$ R1 l. @# e, M1 ~
}
+ z/ Q8 u; x4 q. v g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% F. I* _' H! {% v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
2 y# m2 q. f5 E" N! L5 G ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );2 R% i: x! c. T6 v+ c& a; Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );: x! v6 U+ G1 ^. k# m
( (CUser*)this )->AddTaskBar();*/
, y, e- v+ \& o4 Q# j% {3 V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );$ Y$ ^( ~5 E9 o9 e
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& m* g9 e1 k) _7 t2 o ((CUser*)this)->CheckHonorStat();/ K N V: k) T1 U, N% r2 z& q
((CUser*)this)->AddHonorListAck();
4 g" g- Y3 g, v; O @- g$ P# U g_UserMng.AddHonorTitleChange( this, m_nHonor);
6 h, K7 M% ~ C- q/ q#endif // __HONORABLE_TITLE // ′Tà?
. Y3 ~1 K# V) \8 f }5 h) v+ ?; u3 @& m
#endif // __WORLDSERVER
0 R4 f/ K/ ?' q7 X9 ?1 J" k& ~}
! U0 c9 F9 H; y+ @2 `( U y; ]! |2 F" H* D+ g4 D4 ~. G
然后你进入functextcmd.cpp并添加以下
* w0 d0 K4 _$ | \ H; }) b9 K" ?8 J/ ^5 h! x
代码:# _( K: f! J+ z% j: Y' d
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ w% x7 f: Y! B) t
下面插入
0 v6 m6 p4 ^. y( [' eON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
' ]9 |/ i0 M8 P0 j4 b. }- T+ c% Q
9 V% ~' G$ e d; Y3 N% d o然后你去
T% L' ? ^% J q# p) _+ _. i
e1 y$ ?- _, H- j代码:
6 c3 b3 {) M4 E" `: k, g代码5 l: _% _) E3 \% k1 G( ]2 D
BOOL TextCmd_ClearPropose( CScanner & s )
& W Y, x' ~- i0 X( \8 q{/ p, L8 \/ \- h6 g. \/ v4 A, w
#ifdef __WORLDSERVER) s2 u' L, z6 O9 S
CUser* pUser = (CUser*)s.dwValue;+ d1 o% m' y5 @& _, v/ A
g_dpDBClient.SendClearPropose();/ X/ [, h8 U5 c( y' f9 h1 ]
#endif // __WORLDSERVER6 @1 J0 F A- r- d
return TRUE;3 ^' S1 y- J( v, b
}
! p9 l) J6 r$ a4 A下面插入( L/ _$ m8 k l8 h T, c$ J
BOOL TextCmd_rebirth( CScanner& scanner )
/ {' u! w! F* o" R A* i{( o( h; A3 z: i: Y+ u% \. ^; g
#ifdef __WORLDSERVER
+ W+ M" G+ J F' K: ZCUser *pUser;
7 s5 J) K0 \9 ypUser = (CUser*)scanner.dwValue;
, z3 U1 j9 o! Z7 L4 I" z+ nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
5 @, ]" _4 E8 xpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 \* s. v! J# n+ y; f; ^' kelse
* _ B4 \$ y" lpUser->AddText("你还未达到重生条件!");
+ y" H5 j2 m/ R#endif
8 G; `4 [! t, u$ Z& W$ j5 Jreturn TRUE;
3 ^2 j4 e$ k6 `) z} 5 ^9 b" W# U/ u4 I) r2 ? K) f
1 v+ Y4 _. Y3 o4 S$ A1 H/ t$ ^' d) x
+ w+ p# l D1 v @% k
3 Q1 ]8 |; p( }; T; \ |
|