|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& X$ D# P+ K8 P8 R4 \5 |9 i$ o. Z( F U! V/ k8 }, D
Mover.h
n& ?& a y P, t* c代码:% f4 E- m D) b. C( V
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' x, a: z# ^+ \ Q, G$ F1 b
" g. _3 S3 J( a9 D: a
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 7 `2 V0 P8 f* _+ N; M2 r7 U
# a6 s# M0 m, S. f% a
然后你去mover.cpp添加
( p4 k4 I. q2 T a6 F& V! n, D+ J
* p* b* K e5 u+ I/ [. x' X; z6 |- `代码:
' {2 u/ ?& k: E( qvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- p+ I' h4 l8 M{2 k0 P1 a; z. Z3 t
#ifdef __WORLDSERVER% \ F7 R( _1 z0 I. t: g. a, T: E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
T! v' l# t" @ MoverProp* pProp = GetProp();- P5 b- V* C7 w( o- s% [% i
if( pProp )3 ~/ ^* g1 h' i/ O' n
{0 w6 r! W* a5 k! q) x% K% D
if( nJob > 0 && nJob < MAX_LEGEND_HERO )8 @, u3 b4 Y+ _( T, ]% O# ?0 O2 f
{
- r! b4 T' n. J AddChangeJob( nJob );
+ \5 X5 a! |, v" ? }else{
6 O: K" J$ ~4 u6 v; K1 ? return;
) Z9 ~0 d, F% \6 I i) W8 |+ T }
) O* O, N6 F* R: V$ f int nPoint = 0;8 G8 ^0 ?+ J, |
if( m_nJob == JOB_MERCENARY )! V, d% L/ ~4 h) ^8 Q
nPoint += 40;( k) l+ W# ?- G
else if( m_nJob == JOB_ACROBAT )0 N1 f6 S: y8 ?
nPoint += 50;) J' B7 |# H3 m+ ~8 p$ z
else if( m_nJob == JOB_ASSIST )
w0 _+ `4 l3 C+ w nPoint += 60;
5 e) f( L5 ~7 n1 a {% |8 z/ ] else if( m_nJob == JOB_MAGICIAN )) R- B7 g3 d7 `! E4 r! [; \+ w$ N, R
nPoint += 90;0 C( F* b0 U8 \3 J+ t! ~
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ M# ~; L/ L) I+ h+ w, K" H- ?# O4 J nPoint += 120;
7 ?* _2 A3 b& j- t. d# { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) y# ^0 i& {/ L* [- D& I- u
nPoint += 150;
+ V6 A) j3 {3 G$ R7 F else if( m_nJob == JOB_RINGMASTER )4 e& X4 Y# F: s% a3 j( E# A
nPoint += 160;
$ {! y# c: O( s) [9 `' O/ F else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ ~& D" i* [2 D! f nPoint += 180;
- v% K" a5 t; x. N' ]: Z else if( m_nJob == JOB_ELEMENTOR )1 ~) }* e) A. V8 @7 _
nPoint += 390;
6 e! z/ J3 W' I _" f$ ? else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 ^: z: w6 o2 E8 _ nPoint += 120;
( }1 i6 H9 W7 M6 g$ ? else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
L( ?$ p% _! N( J nPoint += 150;2 E1 C/ C9 D# S: B4 t; n/ i$ f
else if( nJob == JOB_FLORIST_HERO )
9 K9 h& i6 g9 W; G nPoint += 160;) a, T: h/ j) O( o r5 T/ B. d. i6 J
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
3 n& h. @5 W4 H. G# H nPoint += 180;9 h% u% [/ o) Q1 ]4 a, O$ U+ j
else if( nJob == JOB_ELEMENTORLORD_HERO )' q; D) r, ]$ t
nPoint += 390;) C5 o* F1 o8 N- y; }& e
& K& W w. ]+ ?3 j
AddSkillPoint( nPoint );
: I4 q( F+ h" x( v4 o3 z: e" H m_nLevel = nLevel;
' [6 a; Q1 i& ]
6 V( L* a& P5 ] SetJobLevel( nLevel, nJob );
1 x2 c5 P% X4 I7 g6 u6 _ m_nDeathLevel = nLevel;
) b8 I9 v+ w( e A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 {7 J$ q& Z& \ if(IsMaster())
" I9 l9 T8 ^( M7 [ {' i% I$ c6 X* h0 k+ `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
9 ~9 B3 l% Y2 G+ w+ K' D/ R! ` if( nLevel > 59 && nLevel < 72 )
7 X3 |4 J- S4 y5 P, `; u dwTmpSkLevel = 1;% @1 Y1 U0 H% ]$ K& a
else if( nLevel > 71 && nLevel < 84 )* D6 G1 n9 K( |% w9 g
dwTmpSkLevel = 2;( H) I3 A/ Q' X @' l9 ]
else if( nLevel > 83 && nLevel < 96 )/ w" m* P1 f$ M! Y: b) f8 F+ z
dwTmpSkLevel = 3;
. E0 H9 j: f1 i k. ~. O else if( nLevel > 95 && nLevel < 108 )
' N6 a1 O3 D: ~# F" K dwTmpSkLevel = 4;* ^) h9 R) x# W: o2 x5 Y
else if( nLevel > 107 && nLevel < 120 )
V6 D5 I5 q' T; j" X V2 s+ t% `, o dwTmpSkLevel = 5;
5 O( ^# T |8 y L1 r$ {$ \ for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ q9 i; Q0 @- j0 o; Y { $ ]: v' A1 d$ G0 G+ \( w
LPSKILL lpSkill = &(m_aJobSkill);
1 p; V/ u7 b# E6 C6 T, n Z, ~. d, p7 V if( lpSkill && lpSkill->dwSkill != NULL_ID )! }) z# ^4 c; `. d
{) n+ k3 }/ h3 a! c, Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / m- Z" o( v( |
if( pSkillProp == NULL ): i: S8 S+ s" G9 c1 T& L5 N
continue;. F# E1 M3 I6 r& I6 ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' d. S( U, I9 M0 L3 ~7 E7 z continue;# N( |: q! B \
lpSkill->dwLevel = dwTmpSkLevel;
3 g/ M- C" o1 g9 {2 x3 i }) P- ^, p( [; y+ _; x' ]+ W9 ^* t! {
}
0 b# ?6 w# L6 ? }
2 g9 g. v- h4 I else if(IsHero())
, m. D2 L4 m& t: Q% z- o+ D0 n {0 d( A( y' ?" t$ d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " }# _7 V; }& ^9 a* J, ?
{
" ^6 N( @- m5 w LPSKILL lpSkill = &(m_aJobSkill);) Q% O5 N: K5 D- N0 Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )) `5 w `% e) i8 O( ~- M' G8 P+ l
{7 A& y3 |; W% w' G! A* N8 ^4 n+ {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ O- d8 L) z* f4 z if( pSkillProp == NULL )# m7 j/ q3 P! y8 S7 _
continue;
0 G) N+ l2 ^5 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& }: h! I* [! X* b9 f' C" r; g
continue;8 S T1 J0 T# j7 O0 a9 ]
lpSkill->dwLevel = 5;
, b/ M4 `; v( O } ~' F5 [0 |0 x4 h2 l6 q
}9 x) Y8 q8 d0 A
}
, W- Y' T/ Q4 p' u else if(IsLegendHero())2 l) e! ^& d( u: e, `; J6 \
{2 w$ x: B* }0 f& T! J
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" @) W8 X( V$ A { 9 r y- x3 D8 M+ u }# K& p- U+ u
LPSKILL lpSkill = &(m_aJobSkill);
4 j7 a" U) Z9 ^ r; a! f. z if( lpSkill && lpSkill->dwSkill != NULL_ID )5 |2 {: j% H& c0 k
{4 r5 O$ N# W! Q- p+ F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
s- _$ v. K6 W if( pSkillProp == NULL )
) [5 L9 B$ g3 M# J continue;# x% v* L9 i9 H8 t
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 r U6 }) D) _; Z" j, R, I
continue;$ b* }, o: [' X) \3 _! v
lpSkill->dwLevel = 5;# c. j& L0 X/ M, i7 ]% V
}* `3 S: ]/ G7 Q& |1 R' u+ Y
}
( Y* G. K1 H$ L9 t- s! V6 b }
& f% Q! C+ h% R- @! Z% l* T#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ {- C; J9 \! y. f if( bGamma )
% I0 M/ T1 l" q1 ` {
' }# c- R, ~- Z8 c9 o m_nExp1 = 0;7 h! @: [1 m" L% i3 `
}; h ] _) d( L2 n/ |$ {
" Z1 Z5 b7 e6 ^( { ( (CUser*)this )->AddSetChangeJob( nJob );" b2 P2 e2 M7 G; f3 \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );+ O+ ?; G" M" v/ M8 `( L
, o7 d: _6 F n7 a: N
7 {; L' u/ {1 S& l+ Q2 Y
#if __VER >= 11 // __SYS_PLAYER_DATA
2 b X5 f7 G% d* e g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. x! b2 M- O. b) u9 [#else // __SYS_PLAYER_DATA
m# T$ u ^9 h! O& j' b# L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
6 K+ j' a+ y+ o, ~ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 I5 O8 K; G( ~/ f if( m_idGuild != 0 )
$ W) N# l7 W/ l' L g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
0 a* ]& V( g$ }' Q#endif // __SYS_PLAYER_DATA
8 M* @1 y) c- b, n2 ?; R SetHitPoint( GetMaxHitPoint() );
0 {5 A, R8 C6 L2 e3 X SetManaPoint( GetMaxManaPoint() );7 D6 _( O* o& H: J4 g
SetFatiguePoint( GetMaxFatiguePoint() );" p7 [+ V1 ~2 f5 Y0 Z
if( nJob >= 1 && nJob <= 4 )
3 m( c% t) Q, m {
( e% W8 K0 C6 I: o% t m_nStr = m_nSta = m_nDex = m_nInt = 15;
! i- B1 G" |( p+ E; i m_nRemainGP = 28;
$ |5 M, ?6 c( b( E/ K a9 y) o }% S; m( l A1 n) I o& U+ d) [
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( N% j% R/ l7 V) `& `
{7 Y3 J# y0 Q; F f4 X/ [1 B& e, G' R* M7 |
m_nRemainGP = 118;9 ]' d5 h# U7 g6 s& u
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;# p* n3 Z. g( e9 F; B% E- ?4 t/ t
m_nStr = m_nSta = m_nDex = m_nInt = 15;0 [7 m" A* }$ B- X9 l4 h: P8 g
}8 [% Y- H( ?/ D
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
0 ?: l% u$ X) e/ T4 f { Q0 a, W5 V; s. a% M( B( C! ^- Q
CItemElem itemelem;
/ u( a/ E1 M! J7 X2 Z itemelem.m_nItemNum = 1;! j, s M; J( b5 z1 q% {! @
itemelem.m_bCharged = TRUE;" x- o) B6 `2 h2 ]$ o) L
BYTE nID;. s7 j! B& P/ R* w
( N0 T+ X* \# j! |% }7 D
if( nJob == JOB_MENTALIST_HERO )! F4 R0 D2 R: Z& S) K" { P, |' h
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 i1 }* o9 ]6 L, [7 o3 W' | [+ a
if( nJob == JOB_FORCEMASTER_HERO )
! S; ?( M; R! u: Y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 {+ t& c C4 _0 w v0 g4 a
x$ ]0 H9 B, y; B* D- t9 a ( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 H7 W. M- ]; I }8 W# @- {% Q3 R6 x6 S: w7 d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );3 s0 n- I9 n3 _5 ^! c3 t `# Y) r3 Y. |
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); ~) q0 W7 W- {2 D# h9 j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ C: p! Z' d; z* q! U* R
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 |0 E0 q4 r8 R" S
( (CUser*)this )->AddTaskBar();*/6 Z& b c# W( Q6 N
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );' z$ E) t& M# x% p3 |
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 A+ _4 p6 d9 p3 A ((CUser*)this)->CheckHonorStat();: ]- Z2 A' G, [( A9 e' U
((CUser*)this)->AddHonorListAck(); j1 Y7 q! G1 S# z. M1 U& R
g_UserMng.AddHonorTitleChange( this, m_nHonor);
$ \, K$ Q# V+ y, L8 `#endif // __HONORABLE_TITLE // ′Tà?/ _+ H) ]6 ?8 w
}
$ V9 f# S, t) o) A5 s+ z8 m#endif // __WORLDSERVER2 z. q/ n' S6 p
} ; ^7 v0 B) W: l" B, X8 w' t
6 _/ D/ t# B# }% W9 c1 H. N- j然后你进入functextcmd.cpp并添加以下. V) H# b4 z6 z7 R+ u4 O
+ C7 C* ?; w J F, P0 D代码:& T( Y9 ~; `& {5 U5 \- t$ o _, j
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" E5 C d9 W) ^2 S! V9 w" r
下面插入
( C& ]7 c2 K# L0 V1 {! z; @: qON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ) ~5 Z1 g. v$ b/ Q1 H
) N% j% @ Q$ T$ D1 y
然后你去 {8 n/ x" W0 g
2 L/ a4 f1 ~; Y* r" X代码:
3 R" | r! L! N. k& f! [代码
8 W+ k) A3 o, c% X2 |9 Z+ lBOOL TextCmd_ClearPropose( CScanner & s )
3 e+ s; q( q( L$ K8 h6 g{/ }4 A c7 G% }/ Y4 H: K* k: u
#ifdef __WORLDSERVER& w, _0 z" w" ^, C) k
CUser* pUser = (CUser*)s.dwValue;
0 g% U8 y, f; |6 @% p g_dpDBClient.SendClearPropose();8 Y1 Z2 \- ]- V1 [/ s& z
#endif // __WORLDSERVER
6 @2 k! r4 K& N( `" x& |% A return TRUE;
, ]5 ~9 s3 M! j: j}0 j6 \9 _6 R* g: ?
下面插入
; U0 J$ S; |) D. Z. G0 Y& yBOOL TextCmd_rebirth( CScanner& scanner )- O+ z2 M3 }8 Z
{ q% s6 v0 _" Z. M4 J% i0 `9 W
#ifdef __WORLDSERVER6 i7 J. I: i) Q& v
CUser *pUser;' u% I( `6 F S5 V
pUser = (CUser*)scanner.dwValue;1 ~ b0 ?; O% Z4 i
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). @+ v+ S* I9 V& Z' a! f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% D/ J; d) h7 l/ `else
1 Q, {2 M2 k7 k7 ?& }pUser->AddText("你还未达到重生条件!");
& R& m7 _: T6 e, \ z. C% F#endif
& y6 W' |3 Z; q; D; B+ V/ Preturn TRUE;
$ d. k+ v- ~9 F% S/ }} " i8 [% `" C! X. I; N1 X* o& D
+ p' l' K1 ?4 ]& D) v5 H+ ?+ h
2 g: P. K6 c. }$ ?2 g8 h4 x) p$ e, ?9 \' b/ g
" s- o5 {* f n |
|