|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
% K& k. i8 }& S, `" [# P
2 R: Z i9 ~" o' o; ]- TMover.h+ i, }! w- _4 q0 Q
代码:9 }; G6 B" F+ y7 R
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
+ P R/ I, L' e/ B" l6 ?% w8 ~- N0 Q9 T/ |" s6 }7 M' V
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
1 L* ?+ C) p0 n- U/ q" q3 }6 R+ x, b+ h5 u' r* Q6 }
然后你去mover.cpp添加7 S' k) G& n& {- q, R
" J" h, d$ p3 U" W) \
代码:1 b! Q5 j4 f2 Y. I: n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
; F! a. E5 ~( z& c0 {" d$ |% a, S4 X{
% @7 `) Q, K2 R#ifdef __WORLDSERVER
6 c! E) l0 j+ Y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó4 A) d, I7 y2 B3 }: L
MoverProp* pProp = GetProp();; F0 b! k2 x, \5 g0 x( w/ \: s
if( pProp )
3 [. C: j- p% ]; L. F {
% t8 U0 v9 i# R: H8 Z- t. i; `8 o if( nJob > 0 && nJob < MAX_LEGEND_HERO )
]7 m4 Q! H5 y# i) x( D: t6 L {
& q) A! d/ m/ _% Y( j- s" x AddChangeJob( nJob );3 S- [% |) s8 S
}else{" O: p/ j" P3 F& i
return;
! |" M7 f) e1 w3 O }
i- A6 T# I7 v# Q int nPoint = 0;
. b' m8 j$ _- h" r; z/ H* Y if( m_nJob == JOB_MERCENARY )
8 O- p9 z2 f2 e) Z' t8 J nPoint += 40;
/ @+ B) F$ @5 g h else if( m_nJob == JOB_ACROBAT )) j) k2 D7 i6 U( P' K, i
nPoint += 50;8 c5 K; r3 @+ X7 S
else if( m_nJob == JOB_ASSIST )& \: h' T1 g8 x$ F' r# o
nPoint += 60;
' }; r- P$ ^6 {: {# @5 L4 M) J% K else if( m_nJob == JOB_MAGICIAN )
" ?* ~, q! _* m( m, G4 W nPoint += 90;9 T0 P0 v0 P3 o. {8 m6 ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), s: | W3 \" @+ S- E+ z
nPoint += 120;
" a$ u9 r& V) J8 {0 M else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
& ?) {7 y, C3 C8 S, Q: V0 m$ R nPoint += 150;
% F( l9 `; \/ ?8 |) q! y9 p else if( m_nJob == JOB_RINGMASTER )! v- H1 y& S$ V8 ~- _6 N
nPoint += 160;4 X) B5 S$ W. T/ ^
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
5 G4 z7 a0 h7 E, Z nPoint += 180;& h* X5 Q% H Y# r) J2 D& r
else if( m_nJob == JOB_ELEMENTOR )
! q6 y3 L [+ B) p3 r b nPoint += 390;) @7 |8 W, ]% J. Z6 |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 c9 E: T7 I' e- Q' G% Z9 H nPoint += 120;
j( V0 ]# B+ u; d: M$ W else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
3 q$ d' s6 A, q4 C. h# m- I nPoint += 150;
3 z& @ E2 a6 s- d* P( Y else if( nJob == JOB_FLORIST_HERO )
* f. J- M+ S1 \6 s0 A: c nPoint += 160;
# t/ `/ t4 _8 {& P( e2 \ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' G# y% f1 q8 q7 V8 k3 g
nPoint += 180;3 k1 \# A( ~ {" Z: K8 f
else if( nJob == JOB_ELEMENTORLORD_HERO )% ^! d5 v9 Z/ M& M: V
nPoint += 390;3 t5 o) E& v- }( P, y; k+ n
1 g. ]) M$ I' Y8 S3 F0 q* v1 n, S AddSkillPoint( nPoint );- r6 O: x+ Q: A* {
m_nLevel = nLevel;& s/ l3 f$ ^# n7 Y9 u- A7 i
7 h! X* n3 M1 Y) Z6 B/ w# X1 T
SetJobLevel( nLevel, nJob );
6 K$ r( v, M* E1 A" g, z m_nDeathLevel = nLevel;
+ m! m+ R2 G; E* H#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 F) R8 G. o2 x( x& ]+ l
if(IsMaster())5 C1 k9 ]0 H! M: t3 g6 C
{* i& C) [8 ~9 p/ z1 i2 M# i
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108- p" A/ i! G" y) T8 I+ C. H
if( nLevel > 59 && nLevel < 72 )
4 [* J- _! Y) e$ C, o' B6 Q* Z5 T dwTmpSkLevel = 1;
+ l6 ~1 [! ?" b ]& }/ U4 a( x# ` else if( nLevel > 71 && nLevel < 84 )( v& E+ q. R# n2 }
dwTmpSkLevel = 2;
1 Y/ D" C0 P# H4 W; E! B6 b else if( nLevel > 83 && nLevel < 96 )
; D* [, l; B& c' G4 i5 ^ dwTmpSkLevel = 3;
9 i$ G8 I" S& F" ? else if( nLevel > 95 && nLevel < 108 ). k4 A; O5 M0 A0 d/ C+ S
dwTmpSkLevel = 4;0 q" |7 s4 F! H
else if( nLevel > 107 && nLevel < 120 )
( v/ Y+ Z1 Z$ {8 V dwTmpSkLevel = 5;& `* d, T5 Y; v8 F3 j$ W1 D _
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 z2 |, C, A1 y7 C: z) z6 H0 k
{
/ ?3 n- Q% s4 e4 d6 F LPSKILL lpSkill = &(m_aJobSkill);/ c3 A7 e' ]4 b; ~- M1 J/ Z
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 w1 z+ k/ x5 f& l! a! K8 [2 V# l0 B: Z9 q
{
5 M/ U" ]/ j4 M6 z S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 G9 d5 P0 e' _5 v if( pSkillProp == NULL )
1 c6 r7 a7 t) I0 `! O. y# A5 ` continue;* \+ T' P m# {( z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* O4 U9 Z% g; u( b e continue;9 X9 `- t: N; M [8 l) @3 ^
lpSkill->dwLevel = dwTmpSkLevel;/ e' y* M' J! [ `4 A# v! }, P: F M
}/ j0 L- x" m% n, |, ]" P
}
" s7 G* K, [1 q7 m }
6 o I" ?3 W6 T' c( a/ j& b4 Z else if(IsHero())
# F9 `$ y ]5 W( S; T {
6 J* u1 o7 |, u. E& p2 L% E for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 @9 X/ {2 p$ ?* ?; g0 r- Q9 f {
) ]+ I* t3 p1 h+ a' g$ R LPSKILL lpSkill = &(m_aJobSkill);4 z, `' S' h- r1 C9 B. P: C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( b9 k* V/ P& K2 n7 ? {% U2 r# W& [) N9 E; a6 `8 S
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" N* w. c' U, M/ m if( pSkillProp == NULL ). S. i. i- O4 U
continue;
$ v$ \" C+ |( i; p5 y3 Q- b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
: f0 B6 x2 p$ B" p+ u3 P2 Y continue;
* E/ V8 W8 T& {5 ^8 W lpSkill->dwLevel = 5;. p- P+ o/ R* H6 l6 i
}5 _( {, s# P* V: j- ^1 u. ~3 ~
}
( X7 v5 ?4 T' Z! R* \ }
+ m0 P* a+ Y$ I3 ~# H- L+ u- z else if(IsLegendHero())9 H4 u; P: F& ?- f) `) x' ^
{. J1 W0 t5 M( K5 g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: V7 t# j- G7 F" }, V0 P {
! @( s" j9 F2 M: `' J7 G LPSKILL lpSkill = &(m_aJobSkill);
) p9 k: b1 x1 Q1 R. K9 x5 H if( lpSkill && lpSkill->dwSkill != NULL_ID )
h' _5 Q' G) v9 d$ @! }+ h2 J1 P {
7 D ~/ F8 B: ~( Q* k0 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ?' P0 A% i u( h- l! \3 k# I if( pSkillProp == NULL )# D5 m l9 [, ~# G
continue;' F0 ]3 M; s5 f- \7 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( A( W% n4 U) W: M& @
continue;3 S$ M$ C; Y! r H) E* x
lpSkill->dwLevel = 5;+ T, I" \7 x& A% r
}3 N6 p, [8 F4 G# d5 P# z
}
0 ]# T: f$ [0 i, e- y+ d/ _ }; z: s5 z( o' `
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 `( X: ?. ~5 T; W if( bGamma )
5 b- f$ N; R, u {
q' m& H( k b. F m_nExp1 = 0;
, @( s* [7 k7 O' d( C }! B% R" V, o) i$ c, Y+ e
6 M6 b9 N" n# z5 H9 h. H+ o; t5 R ( (CUser*)this )->AddSetChangeJob( nJob );; S9 y4 ^& |& [5 d+ s& u0 {
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 |; r. o, |! ?2 v1 E5 f; m A3 n' A+ Z
4 K8 ?$ ~+ W1 y' T#if __VER >= 11 // __SYS_PLAYER_DATA7 X0 d( m8 I6 S! a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& |) C, L# X; p4 k/ M4 P) T#else // __SYS_PLAYER_DATA
+ _, M8 B4 o: w* Y" s% F g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
% \4 ]* ?; B5 A7 U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ R- L2 G u; O' ^7 B! L& Z
if( m_idGuild != 0 ); }2 ]% t. t$ B. I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );# b& R& U( k4 ?3 }' I) _
#endif // __SYS_PLAYER_DATA5 ]- z" l$ W; A% K1 _" _" O4 }6 n
SetHitPoint( GetMaxHitPoint() );1 b, y% Y% ]2 W
SetManaPoint( GetMaxManaPoint() );
. z* L( L+ q& C* X: ~; F SetFatiguePoint( GetMaxFatiguePoint() );# e% r9 U8 r3 I3 K8 [7 J. J, h
if( nJob >= 1 && nJob <= 4 )
/ ] n3 F1 B, x( q. ^ {/ T' H# c6 f! P2 H+ x0 q
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 Q! ~ V. v9 V2 r7 }7 O; l. l
m_nRemainGP = 28;. Q- R$ S. A% x& X9 \
}
- ^+ c: @9 N l2 }; Q* y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 ~8 n3 S/ f+ X) h3 B {, v( _! K, G. z! l w
m_nRemainGP = 118;6 p( `; _( `9 N# `
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;3 |. c( t( x: K: O
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ q( I. ]9 u% _& ^7 B; [
}
: d! H! x2 i! S& p( {& ?# u/ I [1 I if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )) r# P _2 T2 A; n* X; b0 l
{6 a6 w9 z: p5 J. q: p5 l
CItemElem itemelem;. C& t u. u. s. Y9 y; H# `. i
itemelem.m_nItemNum = 1;
7 u; t6 u x& g$ v" ]: e: { itemelem.m_bCharged = TRUE;6 c3 H5 f4 E3 x" r6 p4 x
BYTE nID;
[ r" ~, K7 Q1 C- v1 I! O4 |/ B! K2 ]2 N% I
if( nJob == JOB_MENTALIST_HERO ): R- R. H f8 F3 }! r2 I
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ o$ }" A- S7 C4 v if( nJob == JOB_FORCEMASTER_HERO )* h! i' i/ B& @: z* A& {
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;6 O$ b- t3 r7 ]* c
, x. p3 V+ C% s; x1 |- L; ?4 h ( ( CUser*)this)->CreateItem( &itemelem, &nID );
% R# s6 ]' j2 [, H( W }
2 }0 U$ N% `3 f7 q9 y7 r g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 B0 l1 x Q. o5 t8 @: q, @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
7 {8 N% W! T/ x. h- K _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- A3 j' q( p, L# V4 F7 [ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- b) [5 `5 D) ~' M. i. w/ u0 A h ( (CUser*)this )->AddTaskBar();*/
( M' x/ O2 M, ? K. J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 s) ^, F. |0 {' n0 J1 l( I& i. i#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 `4 b( g+ \/ ?4 G/ h+ P ((CUser*)this)->CheckHonorStat();
$ \; I H2 w" ]" _! D ((CUser*)this)->AddHonorListAck();
1 ~7 f1 F* L: Z; I5 L6 l g_UserMng.AddHonorTitleChange( this, m_nHonor);$ ?' F# z1 L; S
#endif // __HONORABLE_TITLE // ′Tà?
% F& t+ E5 M. ^) z }+ `) M: ^* j5 \7 o9 S. _
#endif // __WORLDSERVER0 M3 G( ]: _$ r9 S$ B2 Y8 b% G( p7 X
}
; [7 G' R4 S1 l0 m! G. g$ Z
# I9 `3 m7 B* `4 W然后你进入functextcmd.cpp并添加以下
* x) u$ |# e+ J" q+ q2 U6 b# s/ [
1 @' v$ H# u& y代码:* h/ G( [& X! y+ {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 j; @ O8 ~0 c% g7 m$ m下面插入" s; U. y4 T9 O3 v6 p; t2 b$ @. }
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 6 A, G0 h v$ }: Z! u# j
2 V E) u r1 P" e2 i然后你去
: b3 B5 P+ X* f) Y m, ?
2 \! e- P. ~! c6 K8 s, z! o代码:5 s$ z& [) h2 d* l1 b
代码+ p; v8 P# @1 q6 L. l9 M% S, G
BOOL TextCmd_ClearPropose( CScanner & s )* V: C3 o% ?4 M6 ?3 ]
{
& w, ]7 s- k: W" k+ }0 Q#ifdef __WORLDSERVER
$ q& V% C' c* _7 t CUser* pUser = (CUser*)s.dwValue;
- j; _, M5 h$ g4 `4 j4 T2 n g_dpDBClient.SendClearPropose();
2 P" U% v# B2 o#endif // __WORLDSERVER! Y! `* a$ E# m0 P/ H3 N) M
return TRUE;' F! P% w( V. w* N/ w
}8 E! V0 `4 w: E9 _) w
下面插入
- l6 s. K0 d2 _# ~ v$ W- NBOOL TextCmd_rebirth( CScanner& scanner )9 ]1 w) ^. Z5 N" F7 L
{
8 A0 v5 M" a& ]# q#ifdef __WORLDSERVER, Q& T6 X- |' C' o
CUser *pUser;: G! k% s4 o- D! }
pUser = (CUser*)scanner.dwValue;
( J* @) o" X8 g6 R1 P% Eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
1 R3 \3 g+ ~' ?# W( Y5 B% U3 X& Z3 lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& j* _+ |8 U! X6 t5 I# Welse
, @: C/ ]' F* `& B6 GpUser->AddText("你还未达到重生条件!");
/ \ ?0 V5 i& p4 r( q, v#endif
/ v6 i4 c, b# q: creturn TRUE;% B2 @% O8 M4 ]2 s
}
' Z0 y9 |$ `$ |/ b1 }& W+ p1 w' m; C! k) C) u- e
: |/ S3 [$ g0 Y$ b6 r7 T) N7 D
% K& u% ~* g* O5 ~; f* g0 g* j2 ]
3 I! `) w) c4 ~: Q |
|