|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 \0 ^3 U+ A: [. b9 Y7 }
) E6 p$ z8 y9 |6 A3 O2 oMover.h
- U. J" G5 b8 T: ?* N! ]5 t代码:
+ ~% o0 X n. t& ~5 p' Q* Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- w1 F' \1 T: S& M( G7 ]7 \' [% P$ u; x9 h4 [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 9 {, ]- m5 R8 h3 d
: V# Q. K/ }% f$ _6 C然后你去mover.cpp添加
6 ]9 R/ ]5 G$ l
+ @* L# B. q2 O代码:: `6 @! I5 [7 _ _4 a2 j
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
9 N3 Q" H- m. |0 V7 q4 U{
) G8 d& W! F& S4 j#ifdef __WORLDSERVER
: u% ~6 _1 [. s // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó' l; {; X4 }: j# M
MoverProp* pProp = GetProp();
& ^, M: ]$ A1 p! n if( pProp )
' J9 \, e: I8 g( P k3 u {
2 R& F* r- D# D/ l; ^& J if( nJob > 0 && nJob < MAX_LEGEND_HERO )" S ]" V3 N, V( Z( U% U1 _
{. w4 W A( |* V7 }9 \
AddChangeJob( nJob );4 E- D( B& b$ L' A8 i1 ^
}else{
, u* ^, o. q9 O" ~, H2 d" D/ K return;
S- H, @6 O& U- K }6 @. ]2 c M- ^% x( I0 L: D7 R7 k( G
int nPoint = 0; x9 C% Q7 F) R, }% d
if( m_nJob == JOB_MERCENARY )
; b, k8 C$ u* r, ] nPoint += 40;9 j; l3 @; T" ?; r/ L1 l1 D
else if( m_nJob == JOB_ACROBAT )
% c" Z$ y# r# o/ T. i, P nPoint += 50; `2 m, v& b8 n f3 j" y
else if( m_nJob == JOB_ASSIST )
+ m( Z, n- \0 z3 F6 a& J nPoint += 60;0 U+ ^ i* q# T+ A) T; x9 L; T
else if( m_nJob == JOB_MAGICIAN )7 {, i8 h3 p5 w$ f/ [3 ~
nPoint += 90;4 H" w( X. m& x. v
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ), p9 s) G9 q' y+ M
nPoint += 120;
# [9 V+ q R: h9 w' t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 @" z( d1 [. C/ f$ W nPoint += 150;% N+ d& y" D) Y% w$ j% O
else if( m_nJob == JOB_RINGMASTER )
' q4 d: m4 w: j' J4 y9 G( L5 S nPoint += 160;2 S$ c4 q- X D0 o* V) H" |
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 p" O- F3 w7 R; d9 Q! M. m
nPoint += 180;, I- u$ I! {" M' y7 p: B
else if( m_nJob == JOB_ELEMENTOR )# r9 z2 p3 ]& N# c
nPoint += 390;! k. Y, O- E. H& O! y2 |
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
: `0 E( e! s( _$ y& a2 h/ n nPoint += 120;
) K3 U5 T* D ` else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 H# I; C4 D, g. c5 N" C# q: `
nPoint += 150;
, |: V3 m! r: H5 N) { else if( nJob == JOB_FLORIST_HERO )
7 q& m: R$ R! }6 G9 o nPoint += 160;" t! U% [8 q% T3 G# A. V: [& T) S5 ?
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
$ |8 X5 s( @: r' R8 j6 z9 X: u6 R nPoint += 180;
# ]9 ?1 J( _& A5 ]2 W1 ]; P& f" v else if( nJob == JOB_ELEMENTORLORD_HERO )8 \% {1 |& J2 L: {
nPoint += 390;
8 @3 o2 R$ F2 p
( Q( b( a+ l+ e5 V AddSkillPoint( nPoint );
! _8 q- h$ z u m_nLevel = nLevel;
4 w2 D, m5 L/ v, w) X7 H, R
5 w6 [5 d# p/ Z8 a& d6 l7 Y SetJobLevel( nLevel, nJob );3 i+ e0 X- B5 @2 s' F X: w6 \ F
m_nDeathLevel = nLevel;
( j% e" V, j) q: r* w) j3 [$ E9 K#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 v$ B0 O; Z, ]+ ]1 V, f2 X
if(IsMaster())+ H* R8 _' L& ]0 Z7 Y0 `$ {
{
: L5 y3 `( ~4 m5 `/ { ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
4 G4 G5 h, c0 ^) e0 V if( nLevel > 59 && nLevel < 72 )8 [! V' z! k7 j) @
dwTmpSkLevel = 1;+ A& Z5 ~1 `. i7 E7 O( H% j
else if( nLevel > 71 && nLevel < 84 )
! E, ^- d9 A/ } \1 ` dwTmpSkLevel = 2; L% M6 Q) P* b- [/ |
else if( nLevel > 83 && nLevel < 96 )
# r3 F* L$ s) c/ ? dwTmpSkLevel = 3;0 X# L7 G9 M$ ^9 p8 a! X
else if( nLevel > 95 && nLevel < 108 )
! y6 b+ A8 W3 T" U ]5 } dwTmpSkLevel = 4;
4 A9 S$ R; K7 c) d% \ else if( nLevel > 107 && nLevel < 120 )
; y- X( S/ }% h( y! P' k- ^ dwTmpSkLevel = 5;2 N+ b- ]* i$ ^) Q7 E3 f) [" B% V/ b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % t! Y# Q! H6 P9 A; n. O1 D
{ $ g, c/ y' g% D. }3 s* ^. b& @
LPSKILL lpSkill = &(m_aJobSkill);
8 W1 o+ Y* J( l: G$ s: N if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 Y% y& L0 R3 f$ ]5 ^8 n* L' d9 v* m {
# n' f' B# Q$ C2 ~, b L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 G: | m. L# l" L; C$ Y% F if( pSkillProp == NULL )7 K' T4 @7 V( j. B4 S7 N8 I& A$ e* @
continue;
$ k/ v3 Y4 a. _ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# {8 p$ e U% Y2 s continue;. {3 A( K2 ^( P2 p
lpSkill->dwLevel = dwTmpSkLevel;
' N4 q i8 D2 W; \/ Y6 W% C }
7 s7 q- n* H4 [ ] }
8 y- l7 ]2 Y' W' [3 `2 v9 [+ O( j } ?0 G- f9 \) F$ k* x2 H
else if(IsHero()), h) B, P3 o+ y `
{/ ?7 X0 I: `) \; R
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 m4 A& m. ?) m$ E& X. I: s* o* R: p
{ : ^, U$ M' k, R4 p
LPSKILL lpSkill = &(m_aJobSkill);
5 Z6 J! K( Y8 A if( lpSkill && lpSkill->dwSkill != NULL_ID ): ^' v+ S$ [. k- z" U
{" j# u1 N s0 I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: T1 l% A& Q- f, o* X8 r6 d F if( pSkillProp == NULL )8 [* A8 I# s" H, g+ c5 I
continue;
6 h: R$ Y* n' j1 N+ z3 n( K/ S0 G if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- `3 O$ R z, d. F
continue;7 e3 B' ^1 m- w8 n h
lpSkill->dwLevel = 5;
( W: R- N- N- z4 M# O9 G* s8 c0 {4 { }
. F$ O! w% B( N% q }3 v0 I6 n5 s& a/ j8 j, S1 E
}
- j( H0 i% U. Q. O$ j' C else if(IsLegendHero())7 Q- H% I Y- c! G
{! w+ [0 h8 g" l- v) V# e7 j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" d1 w y( h) ?$ H" _) ] { $ N' W, I0 L* a" X8 N9 W' H( A
LPSKILL lpSkill = &(m_aJobSkill);# q. Q `9 {) _1 l. ~2 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( f k) o5 J* v& o$ P {6 D; Y- b; B) i L+ n) J8 c: p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - M/ \4 l: m3 R3 f1 x( t9 | |" y& h
if( pSkillProp == NULL )
8 ^$ C. J* |( l, u1 m6 S+ M continue;% U3 e6 ?5 r3 }7 X) ]
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 c+ Z8 J/ ]4 x S continue; G8 Q A7 ~# D- S& F) O
lpSkill->dwLevel = 5;' |; l; S( K- i/ d7 Q
}7 G" Y/ B7 f# T* C8 i* S
}
E3 Q: {; d7 U, e5 N' \! _ }4 {, L- j8 _' R: q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 ~" \7 B. v9 I4 Z ? if( bGamma )/ ^! y# B. m {1 O4 J
{
l% n! u8 G( Z m_nExp1 = 0;! }8 B8 ~; N% M
}
% X; p) x6 S8 j' G: B6 [7 W% e0 w) q2 W# s; Q' M2 T8 d0 f) ?
( (CUser*)this )->AddSetChangeJob( nJob );6 s) K/ Y, N; P# V6 d& S7 u
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* [) h) L4 T; W; t0 \3 c
, P6 d2 J: H1 |- E6 o/ a
# D$ I; d5 ] ?- D6 E6 i2 w- {" u
#if __VER >= 11 // __SYS_PLAYER_DATA1 ]# ] ~0 u3 v# K
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 O4 [# H% I4 F
#else // __SYS_PLAYER_DATA$ p3 V- K; @- N- B" d& g- M
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );4 j, c# N! O: S5 M6 J8 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );1 w6 d7 A% o2 i6 C5 U4 p3 z
if( m_idGuild != 0 )
, F+ l9 X0 j- r1 W1 s) H5 g g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );; f8 d/ u# N, D# Z
#endif // __SYS_PLAYER_DATA/ p0 g! f' ?0 V" g
SetHitPoint( GetMaxHitPoint() );
; d+ P6 _5 @' U$ ?" O, M SetManaPoint( GetMaxManaPoint() ); ]- N+ [ i9 N6 Z- U) ~
SetFatiguePoint( GetMaxFatiguePoint() );
9 u& b2 i8 C$ a' E9 g if( nJob >= 1 && nJob <= 4 )0 g8 q" x. j2 a+ `$ E+ Y9 Y
{1 n/ G5 K; N. v) X A2 j: l: j' X9 ~1 }, p. Z
m_nStr = m_nSta = m_nDex = m_nInt = 15;# E. K* z# t& ]% W x
m_nRemainGP = 28;, l* p) q! ?2 e, C- O: O P8 B9 {1 J, q
}
: X+ L) t f8 `9 ]4 Q) b1 h6 v, l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )! a D$ c1 n& T4 i6 p Y* s
{
# i6 R/ ?, Z; _! \/ b# @* |0 u( f m_nRemainGP = 118;
- P X6 \& h: p4 K! j% @6 K //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- H9 D! F" Z% y+ H; \; A) R5 Z6 X7 [: K m_nStr = m_nSta = m_nDex = m_nInt = 15;3 C: k! W/ s, Z: l" n
}
7 Q2 ]* A, |2 i; w. } if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
% K( F9 Q+ l5 D2 \ {2 R: a- ]4 b0 H. H( `& i
CItemElem itemelem;
T; |- j6 P+ E+ w5 m itemelem.m_nItemNum = 1;# }# K G* T# S! O
itemelem.m_bCharged = TRUE;
: ~ H6 n. X7 ^5 |, ^2 m& R d BYTE nID;
. A4 d; Y* D& l, `8 Z) ~- p7 Y! z+ r6 { ]6 b. \, W" j
if( nJob == JOB_MENTALIST_HERO )
5 ` t" ?# f( ^) F. Q5 | h itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" N( o, c+ B" {- y, z if( nJob == JOB_FORCEMASTER_HERO )5 s* {# v7 O, T9 L+ w, i# A. S
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ D/ }1 g8 ?0 Y4 y
9 O/ L1 j8 X! x N* N2 t
( ( CUser*)this)->CreateItem( &itemelem, &nID );- F; L9 K4 _. B- H3 Q
}
5 O2 Z, U+ Q4 k0 E g_UserMng.AddSetLevel( this, (WORD)m_nLevel );0 X5 t6 Y. } n/ p4 F1 s3 _5 @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 g8 C) i$ l$ d0 j9 z' q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ E6 [- H# z9 G; b /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, x ^0 ~4 F9 C2 Z: y, Y- m1 [
( (CUser*)this )->AddTaskBar();*/
5 j1 C3 ?: g( j( N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 H! G/ y! [$ E1 J#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?7 h; i1 P* n2 o5 N6 M. r% v$ ~
((CUser*)this)->CheckHonorStat();
8 ~ Y* S! S- b2 t' _ ((CUser*)this)->AddHonorListAck();
& ~- M; i1 l/ F8 F, r! T g_UserMng.AddHonorTitleChange( this, m_nHonor);7 k9 D5 t9 A7 o& n+ p, Z% k! a7 e
#endif // __HONORABLE_TITLE // ′Tà?5 B% G1 d0 l6 m; S, \( d
}
+ c4 X% O( E* ~, f1 `#endif // __WORLDSERVER
: u5 Z# D% q1 |6 B7 A) |& S& P; y}
" ^6 l0 D1 f) w& ?" r7 n: Z' P. D& c9 R' w4 x9 m" N
然后你进入functextcmd.cpp并添加以下
" `8 Q1 z- H$ J7 v5 @# ~" Z$ j! H _1 w- ^9 j: d
代码:
' F& p- e- x; k. GON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), |4 ~+ j4 q. y; ?7 P
下面插入4 ~8 F8 M& U* S* V
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. M' Z9 }1 V0 u$ M4 g
: N3 x& }, V) c0 D然后你去3 w9 `! M6 d) D8 u3 b
: C: a1 N! @. _- g' q1 ^
代码:
# Y6 m( f$ J9 O* {代码+ d+ o- P# r1 G- N$ D" d
BOOL TextCmd_ClearPropose( CScanner & s ); f) g9 b- e" e$ Y- u+ P! ]
{
- P) w [* k" [/ C6 _9 P#ifdef __WORLDSERVER
$ J' m/ T' C% q1 ^ CUser* pUser = (CUser*)s.dwValue;
7 R$ d9 G9 E2 m g_dpDBClient.SendClearPropose();
. v, q% Z: h% Z. m& N1 N#endif // __WORLDSERVER# e2 o& c' D+ {5 m
return TRUE;; K3 \) Y' F: H, p) k
}
; G- y4 E9 H$ j( v下面插入4 }2 J, [- ]8 {3 i; F
BOOL TextCmd_rebirth( CScanner& scanner )
+ d( \+ b+ v7 J{ ^2 L: x4 I8 h' F3 u
#ifdef __WORLDSERVER% b( V/ {. b! e. N
CUser *pUser;
( v- l8 d5 m& v5 N9 rpUser = (CUser*)scanner.dwValue;4 B7 v! B' I! v: G
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ {$ T% [& c) O# d" m P( FpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ ~8 F+ S* m5 z. m
else
, @- _( ?0 t" D0 ]# v! v! @pUser->AddText("你还未达到重生条件!");2 b$ u# Q/ H3 K3 y: l
#endif
2 [0 ?7 U; p7 Q) ~* g5 n3 ]+ E vreturn TRUE;6 A7 L( b! q( R& Z/ ~
} : U4 z$ _1 N$ ?; ?1 f" O$ j
$ w2 N7 I/ t. w" }9 v) n* Y: H( N) v& T, {
) n; {: U* g% Q& `
: g' p" z: g1 h% h* D- M
|
|