|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ w' f/ F6 ~& x& _
* n2 P5 w6 n% u" zMover.h
2 s; k# d. ]( ?) ^4 n代码:
r* L# L+ l) g( p找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: s2 P$ W4 Y) @3 k
9 u+ W* X4 D: ~% j. P下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
6 {* U" [; [) v) M1 o# A2 C, U* w2 U$ E9 s
然后你去mover.cpp添加, a6 Q1 R/ H2 J' U( f
! J7 p6 U8 N! b/ o; G7 A# [代码:
4 B5 S+ i% O ]/ i2 N0 ?. ]void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
( [9 d2 {; w- B: u- w) o{& e* P) e7 x" D
#ifdef __WORLDSERVER
7 K8 M/ z* [- j$ ?( r/ f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 M3 z0 }- _% L, W
MoverProp* pProp = GetProp();
* G6 d. E' Q& K if( pProp )0 A, q. W: j4 g+ m; W
{# S* G" N9 r5 w! d6 m
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 r& a6 X$ d1 L1 ?! Y/ } {7 s4 @) n. F# n# E" B
AddChangeJob( nJob );
8 h. l3 c( s2 N( d% b c4 K }else{- D9 r& s1 L+ j
return;, M8 @& N7 T- ~ }$ |: J6 O
}6 P4 @- x6 g/ L
int nPoint = 0;. y, c1 k( D& N+ l0 B8 Z3 `
if( m_nJob == JOB_MERCENARY )
; u$ V* p% h) X D nPoint += 40;( t5 n; P1 U# l7 k" |
else if( m_nJob == JOB_ACROBAT )
$ D U# G- { @4 u nPoint += 50;& Z; v2 a8 |/ u" {, p
else if( m_nJob == JOB_ASSIST )' M* D: b" ~ ]/ \
nPoint += 60;& a& Q" l, c- i2 r8 L$ z
else if( m_nJob == JOB_MAGICIAN )
# O) |/ C; z. s* P7 c ` nPoint += 90;
3 K4 [) N7 D5 E. u3 ]8 I4 U4 H else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 C% z7 h! F4 H9 b+ n6 m( n nPoint += 120;
& J7 j. a) `4 |- u k5 e4 d5 Y- D else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 l2 s% d1 d# c2 T: D W
nPoint += 150;
# b1 [2 i1 U' H1 I else if( m_nJob == JOB_RINGMASTER )
% I [6 P7 d; f$ t& T7 l0 a5 {) } nPoint += 160;
$ H( _6 b( P4 W: L7 ^: p* G2 E+ H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )$ b, j' D" z L8 t6 v
nPoint += 180;3 a; g* k8 M/ D% c3 z' K
else if( m_nJob == JOB_ELEMENTOR )
Q) S5 T2 I5 ` B1 c; { nPoint += 390;) k7 V) E; g; t. v5 R# x5 b5 Q8 c+ Z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )# B& c7 B- ?; N) E
nPoint += 120;1 ^9 ]3 j6 c, `' T3 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 ?( K) a8 Q" Q nPoint += 150;+ R( o+ m2 b C9 N0 n0 L
else if( nJob == JOB_FLORIST_HERO )
; l+ W# Q. s4 q: U nPoint += 160;
8 w7 p! t* H! z8 e+ Q; t6 O; [2 A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
6 k$ S, Q6 u8 f/ {% [" } nPoint += 180;
) e% t0 }; D$ ?5 i$ l else if( nJob == JOB_ELEMENTORLORD_HERO )9 Z' X& j3 Y$ J8 [: S
nPoint += 390;
4 f2 D) x: C1 F" Z3 ^+ s7 Z+ t7 @4 E% C6 Z
AddSkillPoint( nPoint );. {+ a# ?4 u# _; }" B: e7 a
m_nLevel = nLevel;
& f( d4 b$ D# o) L8 ? _5 l* M9 K5 b
SetJobLevel( nLevel, nJob );
$ h8 c; R. w: S( Y0 g5 C" ]& Y6 w8 P m_nDeathLevel = nLevel;
5 ]9 S# l$ n: ]* D5 X% Y#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) J# H! P# b1 B- Q
if(IsMaster())
( L" n' J. M1 \: H1 _6 I/ {) K {
3 ^2 _, \; P6 ~) a6 D int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
3 u% J3 n. ^' d if( nLevel > 59 && nLevel < 72 )
% r9 E; U* z' n0 x1 z dwTmpSkLevel = 1;) b$ B6 |6 _4 C2 g
else if( nLevel > 71 && nLevel < 84 )
( ?7 F$ r/ B! r8 k7 _" L; y dwTmpSkLevel = 2;
* L8 z% M* E0 ?" N# i( h5 w5 J else if( nLevel > 83 && nLevel < 96 )
# A* n, M- H" ]$ l9 w dwTmpSkLevel = 3;
4 x" W' M. w6 a3 n( g else if( nLevel > 95 && nLevel < 108 )
v- q$ U$ K* d dwTmpSkLevel = 4;
7 ^+ }7 ] X( D else if( nLevel > 107 && nLevel < 120 )+ w. W3 x& v* P4 R3 N/ C- e
dwTmpSkLevel = 5;
! b7 J1 ]' J$ `5 h6 A for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( V6 T: m/ Y7 e, d3 e
{ ( O( L" L2 \1 m
LPSKILL lpSkill = &(m_aJobSkill);) Z8 A. m5 Z) Y6 \7 m+ D4 h0 s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" A5 e9 E8 x6 Y3 y3 S* [ p$ a8 a {
+ Q/ P" s; W1 A9 V( U; l: O ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ g& p% ^8 P) R- s9 o+ G4 V if( pSkillProp == NULL )
; D- S+ J1 E# ]; F' v5 I# ^# w: x% n continue;1 u- h- _. B) f( N
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
r8 }1 l- w* R5 ~3 \# F5 A continue;' ]. o4 c: W1 } X7 f
lpSkill->dwLevel = dwTmpSkLevel;
7 q+ _& K" R; b( k }" \4 G: I) j2 N
}" a# g5 X3 e0 E# y. \
}
% [' f% C" q6 M- f' O2 r else if(IsHero())
" I2 C) {. ~, \3 I B1 A* e {+ M, m2 P# V" \# `& s1 d
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 S& _, P& ~. J3 Q
{
: w) _# F5 ]: G7 o0 s2 T1 t6 { LPSKILL lpSkill = &(m_aJobSkill);+ b. n' z6 M' Y R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 \9 P8 i9 z3 d5 w1 D {! y8 R9 a# t6 l* t+ y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( E+ d; h$ W! J: k J' }
if( pSkillProp == NULL )
1 N! [% A2 v3 M ^3 _; S continue;$ a3 p; Z% i: w& c/ M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): m9 e: i j2 u9 h! E T. t' i
continue;
1 z2 A, g7 H6 W lpSkill->dwLevel = 5;) Q9 B' N6 B' N$ R
}, ]9 d, q H0 E& e
}
; F! |" C k! A! T) f: T }5 M7 [8 f. {! H" f1 ]
else if(IsLegendHero())
" B8 m2 u' X1 ^7 A" E7 _" o9 V {% ]1 ?' C% _2 o, P, x) x
for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 r# z& u" b& e { 9 a# e. h2 t8 V& A0 {4 }; b
LPSKILL lpSkill = &(m_aJobSkill);& J; _% H5 I2 _# \, g1 v+ D. e3 A
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 \- ^$ d" c) z' t" ?
{( ] l; o9 `: i& p/ D! E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* [$ Z5 G( j4 P/ ?& H( p! V3 i if( pSkillProp == NULL )
" u1 ]1 t5 F9 T. Q$ p continue;; I: i% \( G$ B, m3 E0 C. G
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* W; i- L3 m/ B) p continue;
7 ?0 w' L/ {( Z* u7 R- v0 k) Y( W3 J lpSkill->dwLevel = 5;* n1 C3 Z, ~( ~8 z. Y* o2 T" K2 g, J
}
/ [+ R; t- m3 |8 C" m- h }
; E7 ]( x% c; M, ?. D" t }& v0 \5 z( B' x# M4 @' W8 O8 ^
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
\6 q8 V N6 o# y if( bGamma )- X5 `, k1 v7 v3 [: n' z# s
{
! g& S" D% |; d. B) g! [ m_nExp1 = 0;
5 `: x$ |: g, X) S5 W8 Z r }
$ D1 ?8 j- |& y* G- h
+ L6 |$ q8 N# h# R" _3 O4 S ( (CUser*)this )->AddSetChangeJob( nJob );: l7 R1 a; |" `7 ]0 z D
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! b, U& P1 m! H0 E
' u. N2 ?* P) j; M! b. r% ]$ l& X+ G/ M' J
#if __VER >= 11 // __SYS_PLAYER_DATA g1 O5 V1 \0 f+ w W! ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
* v2 V4 C$ R' F+ x0 R2 e* L: f#else // __SYS_PLAYER_DATA
5 n1 T! n8 B5 ~( a2 j: P# @ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* ?0 _6 H4 @1 X' J& |# G7 u3 R# j: v g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! k9 W! W1 U* l) W% h if( m_idGuild != 0 )
! p- O ?" @. j' Z3 \7 `: j8 D6 p$ n g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
l' v( h4 e% C! L: ~#endif // __SYS_PLAYER_DATA, l! p( ^! S `4 W+ g
SetHitPoint( GetMaxHitPoint() );, Q! Z: H! ^3 d/ I
SetManaPoint( GetMaxManaPoint() );
1 o. Q4 j( N% D5 M$ R- a" d& p SetFatiguePoint( GetMaxFatiguePoint() );5 V+ D4 J' G& L* j; Y& F% d
if( nJob >= 1 && nJob <= 4 )
- N* Z' x' p+ I9 A6 e& f; D {: u. F! \. z/ w8 f* a# G9 U9 }
m_nStr = m_nSta = m_nDex = m_nInt = 15;. T/ j. L& D& M) z) j/ ?
m_nRemainGP = 28;4 q; } y& j! [! c
}
& m; N( W( S3 W$ ^& i- ] if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
+ m& j% R! U l P8 J1 p* Y {0 v( H- D7 `$ k$ e8 `$ z% U
m_nRemainGP = 118;
4 E/ I/ ?' d# y //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
0 U, I0 K5 A$ }! G) C0 l9 }+ S0 V, y2 H m_nStr = m_nSta = m_nDex = m_nInt = 15;
' r7 `6 a* q* k2 ? }
1 s5 Y) d) x( x8 P* q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# s! K& G$ z1 K4 i: ^
{! |$ T6 C$ ~* C) m$ S
CItemElem itemelem;4 F9 | r' q* B4 I& ?5 t! }7 J
itemelem.m_nItemNum = 1;" H! D3 {- P* v9 J
itemelem.m_bCharged = TRUE;* e0 A ^2 h, Q8 a. G" p
BYTE nID;- P" H/ [0 y* a1 k0 O8 {2 \
8 L5 e6 v5 b5 o4 U1 t9 L if( nJob == JOB_MENTALIST_HERO )0 \+ V7 ]2 i0 c3 H7 n; G1 v
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. g% X( q3 W! Z/ a if( nJob == JOB_FORCEMASTER_HERO )
) o2 T3 {- }0 u) |# { itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;+ \. J! E% x2 G: x7 w
- s8 O+ A- W6 G- s W
( ( CUser*)this)->CreateItem( &itemelem, &nID );
7 q, `& ~) n& M$ L }
4 `2 ~$ e* o9 w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 T% t% E* ? J' b/ U
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
+ j: V: ~$ ^$ V3 i' V3 d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); Y& h5 Y5 p5 Z! T0 [8 s$ _% {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 v9 J q2 q O- \3 @ ( (CUser*)this )->AddTaskBar();*/
. }" {. e; r; f, | ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );1 ?# F$ Y5 H% Q1 B
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ @% s9 N' s3 ?! m3 P
((CUser*)this)->CheckHonorStat();! z; t/ U3 T0 k7 l# x8 [9 k
((CUser*)this)->AddHonorListAck();. b% f' a2 B [6 A/ e" X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
& p! K' J* V' N- c#endif // __HONORABLE_TITLE // ′Tà?& C) {4 H+ B! G! m2 c
}
( I+ C6 ^# i# q. b% k+ h( K; q: f#endif // __WORLDSERVER
7 k4 w, P; c3 J} ! N" D7 A( i% C# A* r
" O G2 ~& C7 N6 R$ R然后你进入functextcmd.cpp并添加以下0 R* ^0 f% e- w v- Y
+ U& x0 u1 y0 g) s
代码:
9 B% l3 X/ E$ VON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# `0 x' Y9 T) M下面插入: X2 {4 D) v S7 R0 l
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# k- @5 X V' t8 u# |7 K9 _1 \' y$ i; v/ ^
然后你去( X: E. }8 B+ Z: O# T2 k& G
. p! z9 B( v; ?, t
代码:
; N) R$ z+ D- x/ P6 K代码4 J T6 f5 t: ^8 k
BOOL TextCmd_ClearPropose( CScanner & s ), z6 ^7 m8 W- M# b9 F6 ?
{
4 E- _& h* j7 U( M#ifdef __WORLDSERVER
7 b' n; N2 _5 D5 j CUser* pUser = (CUser*)s.dwValue;
; [, t2 k( f. b( e- t" V! y g_dpDBClient.SendClearPropose();
/ W! W: D. E! g1 E#endif // __WORLDSERVER& @% e3 A& r6 b/ Y( K# O$ _
return TRUE;+ K9 N9 h m/ q& z. i" n( ^: h
}
$ _; w- s! R4 |# v! x! ?下面插入
" ~- H4 V7 ^8 P8 iBOOL TextCmd_rebirth( CScanner& scanner )
" d- {" s/ A. f{+ }5 ~6 l- X% w% m8 M
#ifdef __WORLDSERVER; O) P! S4 {+ f& F$ m
CUser *pUser;
7 r: z+ t% A& ~7 opUser = (CUser*)scanner.dwValue;
+ j: b4 ~5 G& P+ _if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())$ ^7 u3 B) i, g
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
/ g* h) v6 e% {else& C2 ~- p: y$ e% m [
pUser->AddText("你还未达到重生条件!");
3 F! H: a+ ?$ Y( W+ { d# T3 V#endif W) r( X. b! r4 y9 P3 H9 C
return TRUE;6 \- o( @; X. |# F
}
* B; s( R8 p$ h7 V J) [$ l/ H3 G
* j: y. v1 P$ X" j6 X) M
+ J( k1 t: J$ ]9 C* e( V
& g x' v1 y8 J$ A1 G9 U
|
|