|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 E6 @: F7 v$ Y$ P
5 r8 p5 X9 y; NMover.h1 Z/ B1 e( C% P3 U; q) z
代码:
6 J& _+ {' D, T1 t/ w8 ]: X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 R2 B1 a3 Y3 [
x4 ?1 w L0 r1 y' [1 e* w9 @下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # e9 r& n, _/ p' X( x0 A
) d9 a+ D. r$ t! z# e. `
然后你去mover.cpp添加) A# l# q& R j/ H, A+ q' @ ]
: P5 f+ |! U5 I
代码:- E" \4 ^" ~ Q6 P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
. j# K$ ?# S, N* v- r' h! C: @& b( \{
8 i5 U$ c0 s P2 Q#ifdef __WORLDSERVER
# ]+ g3 j" f6 A2 i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" _2 \ H# R( p' K
MoverProp* pProp = GetProp();* w, I; k% b, h: l) q# A1 u
if( pProp )
' D( |/ e2 K3 a* z& p {
: S$ S1 p# f. l- v) Y if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 {% \: G3 A5 A: ?$ n {
# x4 H. O4 l5 Z9 Z6 Z AddChangeJob( nJob );
$ ^" \/ P9 P- W5 t1 M }else{
2 ]/ V. n+ C9 S1 C return;" G6 M* k4 ~" c7 g
}
$ H$ L) w! f* L5 F int nPoint = 0;
9 B( b0 P* [0 e3 Y3 s; S if( m_nJob == JOB_MERCENARY )2 P8 q7 z/ A; A0 ^6 X+ f2 R- p3 b: \5 P
nPoint += 40;
! R+ S% W0 x7 Z/ E else if( m_nJob == JOB_ACROBAT )( f3 P2 R( ?2 B
nPoint += 50;
( N" w- ]. P- S" I3 Z* T- T9 Z else if( m_nJob == JOB_ASSIST )- e0 \6 @0 H; A. q1 B
nPoint += 60;) q' N* j- S$ z
else if( m_nJob == JOB_MAGICIAN )
% g) y( x' P' Y) Z3 g nPoint += 90;% k& C) Y1 F* n% Y- v: M
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
2 y) S f. Z' u' x, A% O nPoint += 120;3 j' }9 u& O$ |& @
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
5 Z2 |9 ^# E, x nPoint += 150;
/ N: E8 G7 i. y* I ?# H else if( m_nJob == JOB_RINGMASTER )5 f" u, y }* `' d
nPoint += 160;% \( c0 W' b! L4 v: t$ ]
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- Z7 q8 V$ \0 d* p& N nPoint += 180;, v- k" Y1 E$ M& I+ _
else if( m_nJob == JOB_ELEMENTOR ); \% a8 i* J. Z, Z2 K" b" k- L
nPoint += 390;; E& q* T1 O# u$ l5 \% P4 e8 Z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) V. e; N+ b* ^5 n4 B
nPoint += 120;% w' e' l, D& |& u9 D, `$ C
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )" N% @* S) D7 A, S" a9 ~: H
nPoint += 150;' k! U7 _. a4 `5 m1 X5 c# l
else if( nJob == JOB_FLORIST_HERO )* \0 j; E, F5 P/ W x) o2 u [
nPoint += 160;( }5 o# c5 O$ [; ^
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), Z7 ]; @/ D: O2 h9 h+ o
nPoint += 180;4 I6 q& x2 m9 J4 Y' a7 r8 c. r
else if( nJob == JOB_ELEMENTORLORD_HERO )7 a' [7 P/ }8 N1 L& ^
nPoint += 390;
# U; @0 `- u5 i5 p0 ?, q+ I; z: I' _& X) W- i
AddSkillPoint( nPoint );
?3 ~+ N- z# u& G# K0 ]0 a m_nLevel = nLevel;8 @/ {1 a# A9 ]* } ~/ x
& i. m' \: }' B! q' G# E. _
SetJobLevel( nLevel, nJob );9 o7 r" G, l& M* r% E
m_nDeathLevel = nLevel;9 l1 [% M8 c0 ?$ _6 u
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans; p( S5 V' o' S+ C
if(IsMaster())
1 @; T( I$ i8 h1 A! X. r1 B- f- S* @ {& @9 r/ X' {, c6 Z/ T, t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. s* A l2 r% Z+ c7 ~( @/ r if( nLevel > 59 && nLevel < 72 )
& q4 s& d+ \3 j& a2 ^7 l dwTmpSkLevel = 1;% e- x+ D7 Z# M2 w0 d% @
else if( nLevel > 71 && nLevel < 84 )( e7 l9 T( C9 @9 a
dwTmpSkLevel = 2;" l, w. C- e. `! [
else if( nLevel > 83 && nLevel < 96 )% v7 L- S8 {5 l( e
dwTmpSkLevel = 3;' w, I: R% s9 R( i) {
else if( nLevel > 95 && nLevel < 108 )
" o5 _! }; y! j+ Y- N: v dwTmpSkLevel = 4;
9 o1 J0 T6 E* a) d else if( nLevel > 107 && nLevel < 120 )
Z7 d, u. ]8 O( `% P dwTmpSkLevel = 5;7 V. O3 d3 Y$ v1 C; d' Q; W
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 [$ E+ f! R4 x { 9 W5 S9 S: m4 A! S8 Z( N9 W' t
LPSKILL lpSkill = &(m_aJobSkill);
4 W0 R3 o; e! w$ ]9 i if( lpSkill && lpSkill->dwSkill != NULL_ID )5 X2 a1 M; x: z8 T, \* O) x
{
4 m9 A; J1 f( e! ]5 Q ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : u* w9 Z6 ^ g5 t; o2 ?/ X* k5 |
if( pSkillProp == NULL )9 B- f' h1 c! x3 ? c. n2 G/ ^
continue;
! T9 [1 [- W2 r# R; N2 y# ?; z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. N1 |7 ?: P' F" N9 Y8 k continue;' Y% u$ J8 v7 \& K ^# |- ]! a
lpSkill->dwLevel = dwTmpSkLevel;3 d( I( R; Q# I. L5 V6 B3 A) s
}
+ O$ z- m2 ?) Z# ]3 o }) q; ^$ M' _, M0 Q4 z% \, F
}
+ C+ T; R+ [0 ` else if(IsHero()) h: Z0 B C' p
{
( Z: Z# O7 t+ P3 W. c6 L for( int i = 0; i < MAX_SKILL_JOB; i++ )
w. a3 e; R1 e { ; r6 I Y" s1 H
LPSKILL lpSkill = &(m_aJobSkill);: \3 x3 @& N T5 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- z" L& Y# T! I/ m @ {& a# _) E1 i6 h" @; n( p$ N# M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 `5 |* a9 E+ C, Y! \
if( pSkillProp == NULL )% C0 l9 y* k1 j
continue;9 l" \ R! B4 W
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( ]- }" d% D9 s* R$ z# n2 P* j
continue;
: W$ k# @5 j! X, o" H( v$ `- u lpSkill->dwLevel = 5;
( Q! A' M$ u$ f4 j) u }4 w5 I) m8 d8 O- S1 G b; {
}
! Q! i1 e. i$ N) @; T4 |& I }6 y E+ _4 h. I }/ [4 H. A# ]
else if(IsLegendHero())' r4 \% R i) z K4 U4 [
{- H4 }. C' o: g3 d8 L# T
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + ]9 I" Q' f8 P5 e4 y) F; I
{ 5 g: h! m' u) M; N
LPSKILL lpSkill = &(m_aJobSkill);
- h1 M& T# N5 L if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 F2 t4 d3 \" x! y! G1 n {2 s2 ], E& F9 t" C* A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
u) g$ m3 [- \4 E- G if( pSkillProp == NULL )1 `$ j1 y. E7 ]* a* X9 _" R @
continue;$ [* c7 A1 M8 m Y% F/ _( s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER) W" R. b% |5 H$ F! v8 T1 Z# f" F
continue;% r* I& R! s8 [' W
lpSkill->dwLevel = 5;
0 t( Q8 E c) |3 y1 R }2 K0 c% S: j7 c% N9 N# K" s
}6 K$ ?5 o4 l; T
}
0 c& ^1 e; X2 I' d5 s8 e2 y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 w; B/ r! B( c2 }
if( bGamma )/ k: F$ n% R& t% ~& C8 s
{( I+ _ K; R% B/ @4 E# m" F
m_nExp1 = 0;& i6 a6 Q" S( P! b7 x) k
}- Y/ X7 f6 h0 j3 o Z5 w
) }2 G/ t, Y2 ?; L0 y
( (CUser*)this )->AddSetChangeJob( nJob );4 \! v5 _" A% c' ^/ c' V$ e& x
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ {3 Y/ O! k O! `( s" q2 `* E8 S6 s5 Q! z) a
: n' w' ^" u- a2 `#if __VER >= 11 // __SYS_PLAYER_DATA
+ M( k& W7 O% h# K+ `; i. g g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
/ b! S* k- V0 h#else // __SYS_PLAYER_DATA
" {: O8 d! M* L5 J, Z g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" O) u6 w) E1 R$ K g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 y. R; _( s4 A1 Y* |, W if( m_idGuild != 0 )
2 K* z/ d6 x4 X8 ?& H3 T& ?: H g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- V! t$ z& ]1 _3 G" C+ F
#endif // __SYS_PLAYER_DATA
4 N, O: ~5 c9 p l SetHitPoint( GetMaxHitPoint() );0 p. y3 J# S; W# e- z% O
SetManaPoint( GetMaxManaPoint() );& x6 I: |& c2 Z, s: I) Q7 R
SetFatiguePoint( GetMaxFatiguePoint() );6 p! L7 m1 O8 [7 g+ a
if( nJob >= 1 && nJob <= 4 )
" P9 G A9 O4 k( I# ~8 X {
1 I c8 y8 D6 T# N, I- w m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 R% L8 I5 `+ v+ W+ w7 e' f m_nRemainGP = 28;4 o' k* I0 ^ Y
}
2 ]1 N l- t e+ C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' H/ \5 X+ f& Z
{5 [* G* D/ S1 y
m_nRemainGP = 118;' Q1 D7 X7 l. l; r
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; W( o2 S7 r6 j( a$ o7 |' {
m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ t: Q! e1 Q# y+ ]7 D8 x2 n. M }) {) N- \4 S; f
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& u4 A2 [* O' g5 D d. ~7 p8 S: V
{
( q2 e* c' y S8 r* W! t CItemElem itemelem;
+ a# I4 ^8 U9 \. N% J itemelem.m_nItemNum = 1;
3 m6 z, ]1 H$ y1 P itemelem.m_bCharged = TRUE;
- |: ?4 D" X3 \& m BYTE nID;
" A! ?+ {, @) G' \" a0 R" D9 y `9 C- A( @- i
if( nJob == JOB_MENTALIST_HERO )
) L6 ]4 b% G8 B5 z% e5 n itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" l* w q9 u* k( p/ F0 z# a
if( nJob == JOB_FORCEMASTER_HERO )
) |. }( S3 c" m4 u itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
, L8 v' k5 k" ^. m
( }% Y# Y* K: W4 X' z6 e0 |% _7 n ( ( CUser*)this)->CreateItem( &itemelem, &nID );+ W" T, W3 c+ G0 ]: h. _. @
}
0 S' l' D& o2 T# G g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
3 C' U4 X( E1 E9 Y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
' B1 C- u7 Z) u; O0 |1 y ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# \! t0 b" R' X6 q2 y$ Z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
+ e! J: M! f, D3 Z4 A: g ( (CUser*)this )->AddTaskBar();*/9 z# U3 n" b$ n" I- ]3 G
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
( Q6 v, U/ N7 d$ Y1 a#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ z( f7 U2 u" C" ?+ _% n* J
((CUser*)this)->CheckHonorStat();
' n0 O9 m$ r7 D6 O0 a f. [7 r* }9 X- z: i ((CUser*)this)->AddHonorListAck();
, A6 E+ T8 b% r% @' D. t; A$ q2 O g_UserMng.AddHonorTitleChange( this, m_nHonor);4 Z- \( S& F. w% ]- l% P, K# `
#endif // __HONORABLE_TITLE // ′Tà?
- q( B) W" Q) e @ }& m6 w, {3 h U2 j, o2 B
#endif // __WORLDSERVER
- D6 q- q+ x$ N" T9 R% X}
]: s. M) \$ k& P% W
: L; T( U9 J7 E2 @然后你进入functextcmd.cpp并添加以下
' ~: C) N" k" _8 ?5 N& H/ c$ v% `3 U3 S1 [ a( x) z4 q
代码:
n; e. t9 H- m" ^# b8 i* V4 fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )7 Y3 ]3 |: |* C" i; M& e" [
下面插入6 [: d0 a J! M, Q9 a Q& m; x" n
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
+ s: J( a# s0 b. G& H6 N0 y2 a9 V$ o2 v1 y/ y0 U6 E9 b
然后你去. t5 A- d, ?- y/ O
! u- `8 Y6 k2 N9 k/ `代码:- R# d. N' k$ ]4 @$ O0 {* w
代码
1 [0 w% o) g, r( ]1 h5 sBOOL TextCmd_ClearPropose( CScanner & s )5 v+ C s! q7 q# K+ z. d
{& r7 o2 s" c5 m1 ~1 k- f
#ifdef __WORLDSERVER' i9 r7 a; U" ], h7 B/ e! m5 ?
CUser* pUser = (CUser*)s.dwValue;
1 p& C5 h: S3 I, W$ y) m- @ g_dpDBClient.SendClearPropose();
( i$ o8 W6 M; }5 E2 A#endif // __WORLDSERVER
8 S/ v5 t8 q- x( g; L return TRUE;! m1 o( `+ W* d8 K( s
}
& U" y+ `" X: J' s- e下面插入
7 l! P. D, P5 l5 ^) l! ~BOOL TextCmd_rebirth( CScanner& scanner )$ g. `) B* {& ^. S+ G y* C
{
5 k1 m6 m' s/ Z' s1 v#ifdef __WORLDSERVER4 m$ u w2 t8 d; u! l0 U/ h* N
CUser *pUser;
. p2 H8 o" T: b% f, wpUser = (CUser*)scanner.dwValue;# G# Q$ h6 F' ~6 ~ j" v
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), T" u/ i' P- s2 O% k% _8 v0 f
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
b* o( A6 q7 {* ~else
& P _/ F- k: g$ M1 Z, h1 IpUser->AddText("你还未达到重生条件!");$ T9 L7 i5 T2 @
#endif* B8 X( o& _. V( l
return TRUE;
# V9 }! w3 Z3 \, D# G6 j: {} 7 q/ C, Q6 l% J* d" F
7 ?6 e7 n& {5 u" {9 i& I5 ~6 y+ }0 ~" S' n
6 [+ k e. @0 \& P0 P" f8 U0 A" d8 V
2 \( F# e% @% ]5 D! f1 w- |' \ |
|