|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 l) B* D# `; w5 Z0 S/ q
1 l. _ @" {7 K/ SMover.h) F# g4 B+ b3 D5 K
代码:9 |6 }2 D- G) S5 M& k4 R8 u
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 z' q5 ^+ U1 K* e; r2 I2 Y+ R* x6 K4 K* [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 {. w7 e* Q( p; }0 T1 @' S3 |
& v6 a1 j, ?* P2 c y! b; Q# O5 h& }
然后你去mover.cpp添加8 M; w! m5 o. r& {
3 }+ X7 Q( w- _! [3 L
代码:
2 x/ h& y) k5 S4 v: y- g+ ivoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- Z. s7 @$ B8 t. r) a{; ^, y" a4 j4 J4 J
#ifdef __WORLDSERVER" y7 v( h8 c( ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó5 p- b4 G0 W; B$ h6 J3 B
MoverProp* pProp = GetProp();2 q1 Q' {4 ?: |
if( pProp )% N% U5 B: i5 @ Y* M; } e
{
! X! s n" {& l& E) t1 d if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 \: U) D7 C/ A0 C {
' u' T- u) ?. P" O) b AddChangeJob( nJob );; g; w/ N9 `. N% H) H8 k5 u6 `
}else{
+ D2 J: Y5 Q$ N" u7 g) M6 y return;
" u9 p4 U% G- ]; v X }# a9 U& y$ W: ]
int nPoint = 0;
T5 Z4 F# i1 w2 E/ | if( m_nJob == JOB_MERCENARY )" {) F9 Y4 u! M2 M* c/ n( y# V
nPoint += 40;
8 P) l( v+ J1 z; n: t2 R else if( m_nJob == JOB_ACROBAT )
( Q& m7 `6 E: P nPoint += 50;
, m& U3 i; O; d* \; t P. i else if( m_nJob == JOB_ASSIST )
7 T3 v: F7 r& p$ F nPoint += 60;+ O) m$ Z( F7 x, ?) R
else if( m_nJob == JOB_MAGICIAN )1 T+ e3 p8 `0 Z4 ^" }
nPoint += 90;) L" \: [! S, m" Y+ C, }
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
" L7 M+ Y4 B. j nPoint += 120;
4 F+ S: o6 L# f+ S9 @ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ), s/ @ `! k* E& ~5 ~
nPoint += 150;
3 k/ k9 i$ g; o8 A1 o else if( m_nJob == JOB_RINGMASTER )
" i' k. X+ s' d S0 I nPoint += 160;! H, b0 W" U4 _1 v" }" M+ M2 K3 A
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
Z' Q k$ K& P( @ nPoint += 180;
: J# D" O: B: q: M1 @ else if( m_nJob == JOB_ELEMENTOR )
- J* ]# W' `4 G- P* d nPoint += 390;6 l% C! A D0 [4 ~7 z" r
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& ~& H! A4 h1 P Y6 o2 p5 p
nPoint += 120; m3 T' Y( E: f; p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
5 E' S5 y3 R0 [$ _; q( L9 C$ K nPoint += 150;: s3 t7 }) T, X& W% L9 k
else if( nJob == JOB_FLORIST_HERO )8 U8 F5 a3 I$ x2 ~& G
nPoint += 160;# p' c2 W4 z2 f: z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 ?7 e0 x/ C$ W0 M* I
nPoint += 180;
: S9 ]% I) x. }: o- C1 a1 n else if( nJob == JOB_ELEMENTORLORD_HERO )1 j6 U; c7 y# f4 m- {. u
nPoint += 390;; R9 g7 \( |0 g# J* D
) l& c* G( s; X ]+ X9 O) u% ^
AddSkillPoint( nPoint );
5 V1 ?7 w: b& k4 B" f' E6 c m_nLevel = nLevel;5 s c8 Q# m, ?
% s6 o3 T) Y7 h% E' n. ]
SetJobLevel( nLevel, nJob );
0 ~" b+ E* B, k2 w6 E2 O, R m_nDeathLevel = nLevel;! W' \3 d. V+ G8 i- `; ?( f9 U1 s
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans$ N" [) o- Z, e- H2 W
if(IsMaster())
+ H L2 {' `- M% L* i8 A# Z8 ~ {
: R& Q: u7 P7 J6 M P9 h _, j int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 o5 J4 ~" I j7 E, g9 y: v& h- G
if( nLevel > 59 && nLevel < 72 )+ q6 [# b% t+ b* h* j" M
dwTmpSkLevel = 1;0 i; N$ n* {) F
else if( nLevel > 71 && nLevel < 84 )% v- O: _& C6 s: \! c
dwTmpSkLevel = 2;3 d) F) q M/ M0 o
else if( nLevel > 83 && nLevel < 96 )
4 S |3 C( `- q. f! A% H t dwTmpSkLevel = 3;
2 q; @- m* ^! ]4 w' | else if( nLevel > 95 && nLevel < 108 ) M) ^: d/ B# [8 D
dwTmpSkLevel = 4;, V5 u/ C' h. D/ B) j' Q4 O+ t
else if( nLevel > 107 && nLevel < 120 )
. `- d5 A7 S* H' \7 Z' B dwTmpSkLevel = 5;' j f/ {7 ?. |
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 A- ]6 c* d6 g* Y
{
t# W/ ^6 {* j" }3 O# } E LPSKILL lpSkill = &(m_aJobSkill);! _# R5 B2 E- l; j6 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* z" e) y* U5 N5 W9 ^! \2 t. N8 p+ s {
G" S3 n2 m- F3 g# u1 h# K: v ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % r: e% G W, p" A$ l8 M
if( pSkillProp == NULL )
: E5 F/ m5 a _2 d8 B. U continue;( L7 a; E" w$ T3 C. c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 u* t' }, Q' s/ C* I1 Y. w& }$ { continue;1 O0 n. C5 m0 U
lpSkill->dwLevel = dwTmpSkLevel;
2 J6 t/ s: d' q7 J1 l }- F% v+ Z8 C- ?# Q- p, U
}$ Z$ `$ F/ O( X1 F
}
' O' u2 L9 e2 @ else if(IsHero())) Y" m, g/ t! y B3 Q; y
{" L, W& w( W0 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ; v0 _- H5 F+ V$ G, }
{
( f7 \: S( q7 J) b0 j5 n$ M LPSKILL lpSkill = &(m_aJobSkill);1 h- C+ U% r- I# |
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 a, l/ n3 l' `! J& k: q! o! w* h
{$ ]1 s9 I1 D- L: g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & u" b4 C2 h+ W
if( pSkillProp == NULL )" @# y) V7 X3 b, ~+ D1 n
continue;4 Y3 V) a5 q& W" N7 S* s% u' Z7 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
/ l. C* N5 h+ D0 @- r% I, ]9 M continue;; Q+ z( v: j2 T3 r5 \
lpSkill->dwLevel = 5;. P# ~+ y( A0 y9 u$ d' U J
}
( y( B- T3 A" Y7 S }9 G) u8 D. X) l/ x8 M8 h+ e
}
/ b+ |# @$ z$ a6 v o4 i else if(IsLegendHero())
7 F: V1 a7 d0 O {
) Z# ~0 V2 r8 V0 |; m for( int i = 0; i < MAX_SKILL_JOB; i++ ) - N9 _- g T+ Z$ j
{
- z4 B7 M6 g* `+ p LPSKILL lpSkill = &(m_aJobSkill);
: [7 i8 p0 S6 t2 R' h1 P if( lpSkill && lpSkill->dwSkill != NULL_ID ). h9 l' n: z* o) |. E
{. v6 `! S! W- y- o7 b
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
/ _; g8 x$ o2 }/ i' e+ Y if( pSkillProp == NULL )
! p6 x" O3 |1 S/ H) h4 s. V continue;" n3 |1 |: @( x. A; d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 ~: H/ d5 f6 J7 l; T5 o4 c
continue;) ^$ G% x' `; Z ]' b1 p
lpSkill->dwLevel = 5;
) X0 E7 \: ^" _- Q, g5 W' s }
* ]+ h W8 I7 w }/ K* q' a$ C) E: o/ `7 Q
}9 R* |8 V! Y, @) U
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
Q2 i$ t1 c2 G; N" \" V# k2 l b if( bGamma )+ U: }9 q- @% Y/ s$ ^6 o
{
. A/ V( c* U. T2 A0 C- v m_nExp1 = 0;5 c$ Y: U6 ^* W& ?
}
4 {1 u! u; s$ R1 t6 e; D' f4 o" k, k- [* I0 H/ Q; n
( (CUser*)this )->AddSetChangeJob( nJob );
. u& Z' X: G* H' g7 W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
) F8 M+ d6 C7 |
! M9 p8 a& F( V+ \2 c2 o* a, R' J* T7 s
#if __VER >= 11 // __SYS_PLAYER_DATA
" v) j6 J! ]4 b7 C# X( p g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 v- @/ }% e8 \( \5 ]
#else // __SYS_PLAYER_DATA1 g# B( ~, V3 l Q+ I
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' l# L6 i' c6 |" F/ h2 O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
' l. F8 l9 ~3 G5 ?$ B0 m* p if( m_idGuild != 0 )
' D* R5 J9 S% w# N g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ y" t$ Q$ H( T) n
#endif // __SYS_PLAYER_DATA' n& ~6 E% n: Y0 F x8 [* I
SetHitPoint( GetMaxHitPoint() );& u- a* Z, T) P( J" _
SetManaPoint( GetMaxManaPoint() );
1 F6 v1 w; ~- X) K; U SetFatiguePoint( GetMaxFatiguePoint() );5 N7 T( k3 y# w
if( nJob >= 1 && nJob <= 4 )( e6 O: u" f$ S! X
{
) @- X& D a5 W6 M: p' e" g+ o" z m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ ?& W* h2 {0 @" O m_nRemainGP = 28;
0 P0 Y7 Z6 {2 H- U& B" d }
]" I" |1 J6 q' i0 I if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" f$ R. ?& Y: A& W! } {: B0 E! k) g1 T* u6 I5 ^" b. }3 O+ \
m_nRemainGP = 118;
* {0 U+ i. ], a+ u. q/ a //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* k u( O0 {+ B. o$ F& @: X
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# o) Z, u# o7 j" N0 u! x0 U }/ _! u( A# B+ | g6 L' d
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )9 i: E& ?4 S0 m- a$ G
{9 }% A5 H% W9 _( J& I
CItemElem itemelem;. ~# V: j* {& ]3 H( f( r
itemelem.m_nItemNum = 1;
9 s, m5 r/ l3 J, u9 X itemelem.m_bCharged = TRUE;
6 v- t' X8 w# | BYTE nID;
! N! r$ k4 c/ \
* s' L8 ] e( I c8 v5 h5 ], P if( nJob == JOB_MENTALIST_HERO ), d. z' c/ k% N5 ?- r. W9 R
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
. v5 Q: G7 m6 c5 S A4 z if( nJob == JOB_FORCEMASTER_HERO )
7 S2 m" s. L4 k) Q! K itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! O0 B: r; m7 E) Y! t/ s
5 B* n) [$ t; A8 N2 B ( ( CUser*)this)->CreateItem( &itemelem, &nID );4 K% ?8 a4 j7 d4 q8 f2 {
}# N$ D) K5 k8 \6 Z9 c1 ?( b& ]3 ~
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 Q* a* s ?1 @ Y. A* g) n ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 T5 Z G" T% ~+ d( Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
. T$ [* x1 `, ?# s. B* r /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );, s" N+ G. F' d) X# R d M
( (CUser*)this )->AddTaskBar();*/
6 O, P1 V- _ \, P* t. v/ ?: u! J ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
1 \! V. |' |% v, K8 U% L+ ]#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" B4 K3 w3 ]2 O6 b, b E8 L% ]
((CUser*)this)->CheckHonorStat();
( y0 y( q5 q0 p; G, e. g1 S& y ((CUser*)this)->AddHonorListAck();4 Y5 T1 N7 g b% v
g_UserMng.AddHonorTitleChange( this, m_nHonor);4 w. o' o; x( L% k( M7 f0 Y5 r
#endif // __HONORABLE_TITLE // ′Tà?
" X: A5 {( {" L3 I! F }
+ ~. ]4 M- T3 d# ~& K#endif // __WORLDSERVER! @" K& @1 N+ m, r5 n+ V3 |( m
} ( o: Z7 A8 B7 j, ^
9 V( f2 f u5 c' n
然后你进入functextcmd.cpp并添加以下2 h! \& c& M3 e+ R. l# r- q
: q9 B0 M5 ]0 f3 W! `代码:2 @& E# P S. n! z3 }( b4 ~! y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) M/ Z- \- K w& X1 F& V. f' [
下面插入1 V1 j' {6 K; q$ M& Y0 J( U4 {
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
! p7 N# P! P: y1 n; D+ O2 i6 G
+ x7 J2 A/ z( W' o$ X, T然后你去6 t. G7 u) }) U! X6 h6 d& v. P& @
) w7 D, z1 L" r" i' p
代码:
i- ~7 A& f: b8 k5 C' e1 W; ]6 e代码3 n( n% S+ w) I
BOOL TextCmd_ClearPropose( CScanner & s )
1 E5 z' U- a/ r, o. @) I4 K{
9 \, x# ~# a$ b( ^8 _' E#ifdef __WORLDSERVER9 e3 H# M/ D2 o' Z. `
CUser* pUser = (CUser*)s.dwValue;) Q" |! U8 v, ]) @! ^
g_dpDBClient.SendClearPropose();
3 U! Z" R# g, ?* {+ `#endif // __WORLDSERVER
, {7 ]% }; y5 r& y- q return TRUE;" r) @& ?$ S+ s: n
}
6 o. E% N o8 d: h; E下面插入
! k3 j$ S1 ^, |8 nBOOL TextCmd_rebirth( CScanner& scanner )- j N9 L# Z8 x: [- n
{
. W: x% C0 E' D1 S#ifdef __WORLDSERVER
# S1 k- w4 P% @/ w# k# w( ^1 ACUser *pUser;
3 O8 q! \& y- vpUser = (CUser*)scanner.dwValue;
+ I! k. x5 I9 V& N7 g$ u0 wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())0 D; }* y& d9 Q! l* N) y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
0 ~% H3 _' b* t% D+ melse5 ?4 ?5 o% a; _" j/ G: x
pUser->AddText("你还未达到重生条件!");2 u: O! N0 B1 k6 U# g! Z1 A' B
#endif
- d" l" ^# o2 P+ lreturn TRUE;/ W; J% N) R3 N
} * z% B7 N8 {7 H% v* `9 }; A3 y
. x. E. ]3 z! t! h0 u7 g1 W3 f9 L1 N
& G: z7 T# d! ~# o, n
- k7 H! S6 A- S) U5 v5 e0 U
|
|