|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
' W( }( E+ F7 j* \1 R; I* [2 R8 O. ]# {0 r% s
Mover.h: A2 V$ i* H+ U T
代码:
5 P1 K7 }& H* _, O找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü8 j# ^/ o! `' y" {& w
: M% ?( Z- K1 g( t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
f; n2 {8 N( p( a% E+ S# j/ a, Y7 J* a! [+ K
然后你去mover.cpp添加+ i/ x4 v3 M+ ^4 f6 s6 i5 C0 S2 i+ r5 e/ m
& E( e+ e' Q! K, E& |代码:* }) x1 b: @- V$ l% D& d1 d' `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )8 d7 n7 m* c& w5 M
{3 U9 u- n' i2 u9 q
#ifdef __WORLDSERVER
+ E% p; p1 z# R; j4 h t // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ p3 M/ Y; o6 J; b& @" T MoverProp* pProp = GetProp();
3 Y7 L4 W, D! ` z3 t! \ if( pProp )$ W; O3 r7 L2 B
{
, Q2 Q1 J* b4 L# d1 T& L+ I* R if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% e! c6 O- a5 v* G3 {2 O; q {) E/ E! W, M% }4 M0 }
AddChangeJob( nJob );8 t" r$ \+ G, z0 U4 t6 z% R
}else{
- R3 V3 k3 h& S& b' X; } return;1 A; E6 }4 ^) X0 v" F5 ?( S T/ r2 _
}
4 B( H/ t$ m4 B9 W4 ^- v int nPoint = 0;8 o& y5 Z8 I. }
if( m_nJob == JOB_MERCENARY )
/ u& B4 c5 z" f8 B4 I nPoint += 40;7 J7 }/ _8 L2 v* [7 H, C/ y; S
else if( m_nJob == JOB_ACROBAT )
3 L: T7 F' n+ R. J/ S- o; P* J nPoint += 50;" O2 |% |+ ]$ T+ \6 C4 R$ r
else if( m_nJob == JOB_ASSIST )
* X3 X7 n' _$ J8 P nPoint += 60;$ s1 P- P" c; B3 J; A
else if( m_nJob == JOB_MAGICIAN )# R. [; {0 J* X- |
nPoint += 90;, }; e4 o# P3 }" N3 c* z
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' i1 B) k: O. o( h" g$ n nPoint += 120;
" K& r9 Y7 z. d( q1 {3 a6 L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( G6 }- g7 y4 A6 c- Z nPoint += 150;
w* S0 a$ E* ?4 H8 H1 l4 W' G else if( m_nJob == JOB_RINGMASTER )+ r8 \ l6 c- q! O ]& k+ N
nPoint += 160;
1 Z, Z* b. X+ W7 `8 B+ Z# c0 ^ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ), d' A( K: A ^! A/ r" A
nPoint += 180;
: G& i( e- H T/ Q2 | else if( m_nJob == JOB_ELEMENTOR )$ S' _! ?* H3 N
nPoint += 390;5 T- H! }- K) i7 ^1 X( d6 j6 I
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 |1 B! c6 R) }6 I1 X% u0 w9 V6 e nPoint += 120;5 @" w( K) _: h: Q, V# j
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 H2 ]5 G& ^: b- S1 x$ b2 G! n5 j
nPoint += 150;
4 i" C" \0 B5 K+ v' o$ D9 A9 T1 V! L else if( nJob == JOB_FLORIST_HERO )
' N& e. C3 b; M/ V nPoint += 160;" _ h6 m6 g! S+ w! M# F7 W
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): j& L5 y5 }; l: I& G8 e) M
nPoint += 180;4 j( Q- K$ ?& k/ E1 z
else if( nJob == JOB_ELEMENTORLORD_HERO )
1 b, x8 [: I p% a' g. [' b nPoint += 390;
' s& S$ j: G0 g0 [1 b1 i' ?5 Y. Y
AddSkillPoint( nPoint );
) D0 I/ C1 Z- K$ o. u- ?: w m_nLevel = nLevel;
+ X# V% @7 H; I; w
1 a+ i4 d; S* O: C. m, f g SetJobLevel( nLevel, nJob );
) ]5 [7 t( V e$ @4 f- y m_nDeathLevel = nLevel;
2 U8 l% V1 c, _2 J+ [' d" d#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! ?: d% @. N+ o: ~+ h3 S. S0 f4 D
if(IsMaster())
2 T, d) k" G5 B1 R$ I8 }' @ {
' {' d) Y$ J4 Z P4 v+ H int dwTmpSkLevel = 1;//60, 72, 84, 96, 1085 h$ m- ~, g& R9 f) J( S4 j
if( nLevel > 59 && nLevel < 72 )
- P r) u3 c9 ~7 V. Z% } dwTmpSkLevel = 1;; N/ x! B' e. `! ^
else if( nLevel > 71 && nLevel < 84 )
W! e! y" P% `! m6 Z+ b; u dwTmpSkLevel = 2;
3 H' D: m( W' g% G) Q+ ] else if( nLevel > 83 && nLevel < 96 )
8 ?1 V% v' H' J dwTmpSkLevel = 3;
4 M+ H+ G; r2 @! S. F# z& _+ l# M9 h% ~ else if( nLevel > 95 && nLevel < 108 )8 T4 x8 u, Z9 z' B) y
dwTmpSkLevel = 4;) k3 m( {) ], `7 R8 a& Z# q
else if( nLevel > 107 && nLevel < 120 )( `6 r, d4 A3 I: t
dwTmpSkLevel = 5;
1 X- B3 r, ^# K! D2 u( A _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 k- Z" s2 ~# H) B1 J3 x
{
/ _9 b- V% x& l# ?# C LPSKILL lpSkill = &(m_aJobSkill);
+ Q: b' K N7 D9 R( q if( lpSkill && lpSkill->dwSkill != NULL_ID )! S& r4 _3 F9 @! [
{
9 d" D0 D/ j: W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / }6 k/ J9 J8 } g: |
if( pSkillProp == NULL ), a7 Z" g& }5 \8 Y
continue;) N6 R1 I5 m# ]5 s; R5 e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% q) X+ H- |( O) i. T
continue;
- A0 k3 O; `. X lpSkill->dwLevel = dwTmpSkLevel;9 J! y" {8 a! X2 m' K7 r
}/ I5 C- q1 `% B
}
3 ]- Y+ r# L! V; w }
: x9 v' q0 ]' h& }! }( M; k else if(IsHero())
( {3 r# r/ Q! z" O {
$ q6 `4 a \% n5 S. b for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 l+ d! \% P5 v- _# w
{
0 g& K# l# c% k2 G; t LPSKILL lpSkill = &(m_aJobSkill);- K! Y1 [5 ]1 q; |# Z/ S' g
if( lpSkill && lpSkill->dwSkill != NULL_ID )$ O K+ L6 O8 ?. j( T1 q, Y) S3 f
{
8 @* @+ U! K2 i$ L# H' a4 A ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 Z( v$ U8 N% E4 T* X if( pSkillProp == NULL )- q# z9 f" v* ?' s' P6 `" j% c
continue;
* j( |1 T5 h, W4 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 o( H# h( [. H6 Y continue;
4 N( o$ `9 E6 t4 T$ x& e lpSkill->dwLevel = 5;
E5 e1 u& y2 N/ y }$ ?) L& n4 ~8 i# D8 d7 {# ?2 i
}
0 Z, Q% ]1 A, N6 i4 V0 s8 F }
9 ]) {6 x( I/ f, _7 |7 [ else if(IsLegendHero()); F4 }, ?) ~2 |. y8 B7 ]$ w7 q
{
, `4 y) `2 d9 R H7 k for( int i = 0; i < MAX_SKILL_JOB; i++ )
_8 t+ j6 T" o! ]! P* S: p {
/ J; F" t" ]; [' ?) G LPSKILL lpSkill = &(m_aJobSkill);( `5 a: i1 A Z T. y# S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, w5 c! T/ M4 S9 e3 ?1 _- d. w {
8 |2 R- } a& [1 O7 S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 Q. S# ^, c0 ~
if( pSkillProp == NULL )
& q' O7 M' W3 ]- Y9 H: G! t9 K5 | continue;
. s+ @' z* S( E. G# v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& c# A& E" i, p/ Y2 _/ w$ A continue;6 j* g6 O& O" s+ d. e* c
lpSkill->dwLevel = 5;
, I' y( z2 P0 P' u }
, Y4 T" R5 x0 f& |' ] }
3 y3 C( L4 E! \ }& {) _+ P. q" r: @! f, S( B0 B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 n4 B9 I7 ]0 G ?7 I
if( bGamma )% m- [3 v& U L9 o; y8 t
{& L' Y' W+ v8 J# _5 c- q
m_nExp1 = 0;
( B V- K1 h+ c } V, N0 d, x% A" w* d: ?
' U7 _8 m/ m$ h% `% _ ( (CUser*)this )->AddSetChangeJob( nJob );
7 t6 I% e, a5 t; A g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( J3 ?# c D% |1 G3 q4 m
* Q" `. A. H% i) c: g/ G
! {, C/ R* E0 }# {/ ^& w9 @#if __VER >= 11 // __SYS_PLAYER_DATA" y' j& H# S3 r) G; D
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: p( g) O# P# i
#else // __SYS_PLAYER_DATA
* Q* X/ e3 }$ H9 A4 R7 I& J* F7 J g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
- W/ Y' `4 D# L) B! }; z* v g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 o! _' v6 ]4 O+ ]' v3 l if( m_idGuild != 0 )
- E. w7 [$ { H- w( ~ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* o- y) Z! ]( }# p
#endif // __SYS_PLAYER_DATA. ]& R, X! z5 Z6 U; T. K
SetHitPoint( GetMaxHitPoint() );) W, k& m( `( M7 F% h1 Z2 `
SetManaPoint( GetMaxManaPoint() );
: j" F* l7 S! w5 n SetFatiguePoint( GetMaxFatiguePoint() );
) v7 i; x2 J% Z& a, y if( nJob >= 1 && nJob <= 4 )
" y9 \1 R/ Q/ B5 y {
; t4 k( e" _6 s i: O7 H6 u; ~, v/ q m_nStr = m_nSta = m_nDex = m_nInt = 15;1 e5 C4 \6 c! S
m_nRemainGP = 28; L' }; `/ z f( k
}
3 i7 b2 ?. X8 Z0 W if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; c& a+ a$ @+ n) @" K {" [, r: l6 T8 u4 f1 t4 D
m_nRemainGP = 118;7 f/ R$ U0 o$ _* f1 P1 |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 g$ ^3 U& m9 ~9 p9 d1 X, I1 r, l* O m_nStr = m_nSta = m_nDex = m_nInt = 15;( y. i# B0 H! f# t
}' e4 t+ n' M3 ~9 h+ ^, d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
! F. v- Z& z% W2 g1 D0 e9 a! i9 A {8 V* ?# I9 d* Z7 ]9 V8 ^2 @
CItemElem itemelem;) b, m, r1 u* r6 ~' |
itemelem.m_nItemNum = 1;
' L$ u2 J Y5 a( p8 r itemelem.m_bCharged = TRUE;( Z3 R2 m Z1 z4 c
BYTE nID;
+ x7 T) {/ z* ?$ D9 B8 W; Q4 U
0 d& b* f% K9 L3 q/ E$ o$ }2 c: ? if( nJob == JOB_MENTALIST_HERO )5 h9 ^) Y/ O2 q7 L. I2 i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
* _4 X0 ]4 V6 k/ s. u if( nJob == JOB_FORCEMASTER_HERO )
8 g \3 H' _+ V5 x itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;, |9 J# y; H- V; g3 J* B+ P
2 J8 z8 t/ c& v$ R$ y ( ( CUser*)this)->CreateItem( &itemelem, &nID );
! ~" q7 T: |$ P/ T6 p# ~ }
' j% ^+ p$ W+ D' R g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ \9 X- M- O9 N
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) k6 {& k1 M0 {4 K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& t) w: |2 T- E0 i" c# j4 k /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, y+ [$ N& m+ D# h! a& J% \
( (CUser*)this )->AddTaskBar();*/3 L, L0 z5 m2 e0 ]% ~. v9 @
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- [% ^4 L H* z7 x# D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) Z% r3 s' F: q V! X1 F4 d( I
((CUser*)this)->CheckHonorStat();- S4 l, f! k+ {# X
((CUser*)this)->AddHonorListAck();7 C2 d$ r# y. y5 S ]& p
g_UserMng.AddHonorTitleChange( this, m_nHonor);9 @( J- [) o6 ` z: v' W& q$ X
#endif // __HONORABLE_TITLE // ′Tà?
/ O) f$ q& ]0 l }" G$ G$ i! V. d) Y" d
#endif // __WORLDSERVER7 z1 S L3 t; ~9 R
} ' i. C+ O! q% ^; E
9 l( z C2 E) \8 W
然后你进入functextcmd.cpp并添加以下* X ~; e0 \, V% n
- M- C9 {) ? M) M3 ~代码:3 X# F4 T% E, ~8 F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 n! ]4 E) E4 k7 r下面插入4 w/ D3 f) ?8 f' Z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 E% [, j8 f$ }9 _: N+ b( ]
9 z& M) |9 f. J& i& f, Y然后你去
' u8 H8 A- x( ?9 @% J, S+ u" q5 C) x6 Y4 {6 _5 q P
代码:- N% T) y; D0 X/ x# `. O, `0 Q$ V8 X
代码
# v* ^% b, u) R# SBOOL TextCmd_ClearPropose( CScanner & s )5 Q2 C' O. g x- k
{
, R2 @) @6 f# j9 u7 U7 V) j#ifdef __WORLDSERVER
2 E9 I2 I' P; e/ f2 T CUser* pUser = (CUser*)s.dwValue;6 o g/ o' G/ j
g_dpDBClient.SendClearPropose();. ~# u0 d, G$ _; u' Y
#endif // __WORLDSERVER
0 \9 k% D( N4 x return TRUE;0 m2 x, U! B, ?2 S6 R. _1 S8 ?
}
; [# m8 j6 D. h. M2 `( A下面插入' c8 v) G& z# I( @# k8 C
BOOL TextCmd_rebirth( CScanner& scanner )
0 o6 u! a' r( \; g. a{" Z5 w3 c3 ]7 _' ]7 ]
#ifdef __WORLDSERVER
/ X: ]! O1 d: H! {, ?CUser *pUser;1 c2 ]' F: o. }- }
pUser = (CUser*)scanner.dwValue;
0 \/ u9 a( p8 p# {if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
! B* z* y/ h* x& n9 T% j$ E& Z8 TpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( D& s+ A5 L5 `# J8 u0 J" u( ^% W
else
% K2 J G4 ~3 j, x. y+ H5 rpUser->AddText("你还未达到重生条件!");# C* ^% P! Z% f
#endif7 \3 l4 K: w+ G ~7 K) t6 z
return TRUE;
, J8 ^$ R$ u$ g5 E6 V: i}
/ v8 N" Q/ l+ ?4 ^ F( x: B/ r; E$ d0 ?
6 r) q X" ?7 S3 y
; ^3 I+ s9 ]# p$ g; Z+ U% ~. _
1 B6 k) F: l# y/ {' _$ }" ? |
|