|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
7 S8 O9 _+ \! i6 K; }8 V# T8 v( N" {# ^" F5 S/ n, c
Mover.h' `" f& m' J7 b" E0 X! ]
代码:
8 t6 y! {5 `+ d# d" B( ~. B/ x$ Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 g% {# y0 |& I6 w5 E2 a4 |3 i$ i7 d# V) E* x
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # ]9 |' u, j+ [, r" \% \5 U4 x6 F/ V
- U Q' K8 k7 ^. S1 w9 ^
然后你去mover.cpp添加
K+ j+ t) ^$ Q$ W8 h
% S6 k2 C1 @# \: a9 H' V$ E代码:9 s6 D( R7 Z. u- J- a5 Z4 }
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) Q! X$ g2 l+ \! q{
# J, t" p) [/ _7 l4 C1 E D#ifdef __WORLDSERVER6 }4 f8 f, V4 j' w" ` F
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) w! f7 I. T3 {$ G, v% `$ A$ K
MoverProp* pProp = GetProp();
) U' S9 C3 }& V+ A3 W if( pProp )+ }! ] f H$ Q! x. U7 U
{
' [4 {/ p1 g% o+ ^& R5 y if( nJob > 0 && nJob < MAX_LEGEND_HERO )- ~' O% p! u) K, I% z/ `
{, E" A: W5 Z9 t" y
AddChangeJob( nJob );; E# p7 L' I8 U$ U3 V" q
}else{
0 H. }8 `3 a( h+ u) M return;2 ?, {# L/ q2 X% G9 ^1 d
}
) u: y7 a1 ]: ~2 |" ] int nPoint = 0;4 a6 v" {5 e/ |) z F2 R8 d- Z
if( m_nJob == JOB_MERCENARY )- X, j) Q; g9 Q6 |4 p+ k8 f* B
nPoint += 40;
0 O. w5 G$ z5 J else if( m_nJob == JOB_ACROBAT )7 q+ q( J& J/ p0 g
nPoint += 50;' Z D# [3 x+ E2 `8 t
else if( m_nJob == JOB_ASSIST ): w) {! F) J7 R, q! z
nPoint += 60;% {& M) x- B1 o4 s
else if( m_nJob == JOB_MAGICIAN )
. h A) {+ e+ w5 c5 K n. l nPoint += 90;
3 I1 m% n& ~+ F$ I6 J8 g$ [# g else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; p' ]7 P$ e. y7 I# W% B nPoint += 120;
8 ~# g/ z( ^& L( z$ u else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
6 U9 r: y6 s/ r1 c) C nPoint += 150;- T7 H( A; @! h2 D. N3 C+ x6 O* n
else if( m_nJob == JOB_RINGMASTER )
3 U. l1 L8 Z, P8 i- ?; @ nPoint += 160;
3 p# R2 ~" o0 U- ]5 H( O) G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 ] ^' ?2 y: F# D5 `6 ~! F/ P
nPoint += 180;
! y* ~6 u% j2 P# a) n/ s else if( m_nJob == JOB_ELEMENTOR )8 i, f" n0 V, W v. h
nPoint += 390;
6 f7 s: v' Z5 p7 {/ z: `. Q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); K! L7 ~8 p' e( A( e/ d8 `
nPoint += 120;9 W) [8 D/ C* Y4 I
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; w Q/ |! t; s9 T/ Y nPoint += 150;- V( I5 M9 C* p& C" M0 L4 y! d
else if( nJob == JOB_FLORIST_HERO )9 m8 a$ T1 V8 t& [, r
nPoint += 160;
( r; a* m5 y+ _6 l8 r! A else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 R, R4 O& D0 V$ W
nPoint += 180;
" P( P9 n; J- n [7 n else if( nJob == JOB_ELEMENTORLORD_HERO )+ N8 g6 D7 V" E' ^
nPoint += 390;
& L9 \1 J7 E3 e2 }* r" W
* T* B. s6 H$ q( g. d3 L& ] AddSkillPoint( nPoint );0 T/ p) n( ~+ [4 a* C* a7 {3 T' ~
m_nLevel = nLevel;/ S L) _5 _9 \& y8 g
% b" E h, M7 b6 b" V SetJobLevel( nLevel, nJob );4 Y: j5 s5 N$ m7 c2 V% N" k" _; S
m_nDeathLevel = nLevel;/ U$ g# D% L/ ?4 m7 [( g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* ~: `, W$ B$ L& a9 s
if(IsMaster())$ R V# Z1 u7 o2 D: ]/ F0 k9 N/ J
{
; ~; c' p5 ]! T1 g1 D& | int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ i! w% P/ |% N) X if( nLevel > 59 && nLevel < 72 ), ]* ~" F6 ^/ ^2 W
dwTmpSkLevel = 1;. w v2 {0 K5 a& X; R- D" J
else if( nLevel > 71 && nLevel < 84 )
4 Q0 w0 R0 q5 k dwTmpSkLevel = 2;
, P, J' S2 B4 N: G+ \ else if( nLevel > 83 && nLevel < 96 )" b4 r1 G* i. \- k% L. B
dwTmpSkLevel = 3;* ?4 U/ Z1 K0 J }- }! @ ?
else if( nLevel > 95 && nLevel < 108 )+ B" Z. w# e. v
dwTmpSkLevel = 4;
# C+ b& `/ _ K7 K else if( nLevel > 107 && nLevel < 120 )
( h5 z0 X# h" h1 o) P+ W0 s/ E0 L5 s dwTmpSkLevel = 5;) q1 E& {1 s/ s) }
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 ?/ |, Y5 O: G- Y% b: ^
{ % `; r% B) O! i9 b# t# c) R2 l
LPSKILL lpSkill = &(m_aJobSkill);$ R- U" v6 I! q
if( lpSkill && lpSkill->dwSkill != NULL_ID )" K$ o' }( y$ w2 Y2 y' H
{! @# | b r: Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ j" Q( P( R V, K
if( pSkillProp == NULL )
9 N, G+ J4 A" a continue;
* v2 v4 A, @9 |7 P9 f0 U if( pSkillProp->dwItemKind1 != JTYPE_MASTER); S6 L5 ~/ @5 ]9 F) `: Z
continue;( g( V5 }+ U+ E6 w* A7 y" _$ l
lpSkill->dwLevel = dwTmpSkLevel;2 n) |' ?0 c1 i7 J0 @, E7 e2 M
}
7 W+ b! i. B% J0 b }
" Z3 }! J; o+ k# x" g }7 f0 ?. ?, y5 I, c1 \2 a2 z9 V' y
else if(IsHero())
9 J# L/ q2 Z2 {* T {
8 U/ C J0 N Q* K* Z+ A for( int i = 0; i < MAX_SKILL_JOB; i++ )
: |1 N" ]0 }9 E0 r+ B/ I7 m { & M) \, A1 M8 |8 w6 q4 \' m
LPSKILL lpSkill = &(m_aJobSkill);1 a! _- i$ J3 S5 d. ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )! F& I: E# d& F5 W- L/ z0 t
{
: ?/ b" R) i$ u' w. G8 U3 M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 N' L, }/ t# s% ~ if( pSkillProp == NULL )1 P; O" y& I' b4 O/ ?) Z+ ]
continue;
6 q' f3 d5 |2 R! t; s+ X2 E# J1 f7 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 d: U4 j& p0 ^, Y
continue;
+ o1 c i- e2 |% h lpSkill->dwLevel = 5;$ O; m+ L1 g3 A2 G1 t/ V
}
! a, K7 C! S8 g' t d }: S) o4 v. c$ C' D2 B
}
/ f6 i+ A" f# u- I$ y else if(IsLegendHero())
1 V8 y. Z4 u( U8 B# ^3 A9 x {5 j' N) F" D" H& W$ [7 U
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 p; E9 i& J2 Y' b* ?$ Y" @, R+ y
{ & p5 k9 l+ a9 M. ^; m" |' b
LPSKILL lpSkill = &(m_aJobSkill);
2 ?$ K, B. P% {# v h! l: u if( lpSkill && lpSkill->dwSkill != NULL_ID )
) y* t P+ q J1 b" A0 l% [. O {7 T1 Q+ E) `8 ~% x) @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 R9 o. @# t9 v, A m4 o) Z% b
if( pSkillProp == NULL )
- y2 s1 b/ S* S8 M' P continue;
4 l" J4 j( J: [$ D* r+ T if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 g- C& h; z9 H# |7 \
continue;- H& f* I# x4 F6 Z/ [ K& e" }
lpSkill->dwLevel = 5;5 S. y7 ]* F. r+ C2 m
}
4 |2 I/ l D( J- z! _1 {, t }$ ^0 _# F) W6 U$ p% J
}% V1 @3 x3 M6 V. x& P( p/ U# W
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans% u* d1 N5 O* v- u V
if( bGamma )8 ?6 O' Y5 p$ P
{
F8 s8 t0 |7 D) @& s% {* i m_nExp1 = 0;2 N9 D" _1 O% {$ H/ L6 p
}& ^) y, H: a: S. d# t$ V% v
( U) Z2 t$ p' y+ a7 \ ( (CUser*)this )->AddSetChangeJob( nJob );
6 B0 q" M& z: I* ` g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 d; T4 Z- v7 Y: e: J# H
! q& y( r: U8 P! G, Q" r
/ U$ q$ ~4 c m( ?' ~
#if __VER >= 11 // __SYS_PLAYER_DATA, l2 z1 J' N' t' P* _ Y
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! |" J) V1 X- R/ x0 T( P#else // __SYS_PLAYER_DATA5 T* O& j; y8 l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 |; G F% K3 A, n
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 E5 u: I1 T4 e1 e9 x$ ]: x if( m_idGuild != 0 )2 s* o' W/ `( e7 a/ Y9 j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' s; W1 ~8 h" r' h+ k: w
#endif // __SYS_PLAYER_DATA
( m, U3 o; ?' e+ o6 ? SetHitPoint( GetMaxHitPoint() );6 ?( i3 P9 e& s
SetManaPoint( GetMaxManaPoint() );
0 ]% Q9 h# m# _, | SetFatiguePoint( GetMaxFatiguePoint() );
+ d) _, H0 E, [$ H if( nJob >= 1 && nJob <= 4 )# C6 j0 O! c7 k5 W" }7 ~
{4 Q/ G+ f0 g, b! v+ q9 ^) c& o/ n
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 E2 g' d C0 W ~
m_nRemainGP = 28;
8 G9 y; G s1 i$ N- b; M6 J }7 N" x* S) ` `/ H/ g7 D/ t1 A$ S D
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )0 A/ O) _, y! P4 b' A5 H
{3 j! ~) q6 w5 W1 n
m_nRemainGP = 118;7 ~3 i# E5 {7 W- d; u- i& z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;0 Y( t* ]9 s+ r" _9 [" N
m_nStr = m_nSta = m_nDex = m_nInt = 15;
Z- Q& B, l; _1 d( I, m }" {& _/ q5 i6 g. A' R* ]
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )& W, j- \9 D( g9 N; X6 a
{5 W+ p$ \. L A, J1 J
CItemElem itemelem;
. s' X: E5 R! X- P, t c6 ] itemelem.m_nItemNum = 1;
! C+ h4 f2 a# P* m+ g% W itemelem.m_bCharged = TRUE;
0 t0 n8 k) l* u' S# z6 O* C BYTE nID;
) ~) y$ D& d2 `" r& X$ [0 M, k4 s0 x4 ^9 p
if( nJob == JOB_MENTALIST_HERO )
: X9 ?0 U8 w1 j2 h L1 J, _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 ]8 x% ?) b1 `0 V9 ]
if( nJob == JOB_FORCEMASTER_HERO )
* \$ u5 L6 [# ]( K) Z itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
" o! ~% n3 n/ n! G% h5 Y1 _5 D. Q. b |$ X
( ( CUser*)this)->CreateItem( &itemelem, &nID );
3 y; E7 n& V7 C$ h3 n# z }
3 r, Z6 w& D' ] g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
% V& d6 _- c; y ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
9 K& y$ F" b4 Z7 C/ ^ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); g3 w6 y; T; S
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 I4 f9 X* q/ r F ( (CUser*)this )->AddTaskBar();*/
) l; s7 b/ O4 p5 F; _6 i ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! l" W4 i! l7 }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?3 M/ b' l! d; L; j
((CUser*)this)->CheckHonorStat();/ z& `$ P, ?& t' V
((CUser*)this)->AddHonorListAck();
2 V; G. x4 @9 N7 ?7 T g_UserMng.AddHonorTitleChange( this, m_nHonor);$ ^7 [6 k( ?5 m0 Y/ T* Z
#endif // __HONORABLE_TITLE // ′Tà?
* n0 f( n" o }9 ?$ e& I, f% V p }, g/ H- r' \7 H+ [: Q3 m$ ]3 Y; I
#endif // __WORLDSERVER
% f! x3 |& q, Y} , x- C* L( K2 M0 m
* [; V$ V/ G8 O2 D/ ~0 x然后你进入functextcmd.cpp并添加以下% j* V& n4 |: y) ~, l) X4 H j/ t
! P1 S( e4 q8 Q" @代码:
: D2 C1 w! S) D+ CON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )" G7 a( G9 B5 Q# J- Y
下面插入
/ X* B1 F' G6 X$ V6 A4 S& UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % V0 h7 x/ e& D3 u; w
/ Q; G# {7 n, Y6 t$ g然后你去
0 A1 c; |9 X4 w+ N; T
3 f# ^* V7 o' h! i代码:
6 A6 E x5 {' P! S代码% _& c- K6 y7 b2 C5 j' W/ J
BOOL TextCmd_ClearPropose( CScanner & s )
- \8 N" y- z! v9 b{/ u( B8 Q: v/ M$ s9 I
#ifdef __WORLDSERVER
: m2 h/ j4 [: _$ a& } CUser* pUser = (CUser*)s.dwValue;
[0 m1 K! g; W ^4 v$ D i, ^; H g_dpDBClient.SendClearPropose();" q9 b( X$ n/ C* |" |9 X$ F
#endif // __WORLDSERVER
z; R/ ?- o4 h8 z+ q! T return TRUE;8 c' Y3 U$ }, t3 ]$ @
}% m7 s/ |4 o. H: V+ J
下面插入" p- F0 x! J) Y! L0 n" s
BOOL TextCmd_rebirth( CScanner& scanner )+ L3 x: r8 r% L) i, r
{
4 F" S/ W. V5 C0 `: N#ifdef __WORLDSERVER; t2 @8 q1 L, d3 Z. @
CUser *pUser;
" c) p/ r9 Z8 g0 {, fpUser = (CUser*)scanner.dwValue;
# S0 W+ ^; z$ t. z/ ~if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 q: t2 \) K0 Y6 T! i" v3 p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* y1 L/ E w: X/ \+ D+ f8 r9 Pelse
6 B3 X. d' T& \& N$ ~1 WpUser->AddText("你还未达到重生条件!");
4 u1 W& X- h: Z5 D" A#endif# u2 j6 W0 v7 @; F$ p3 j
return TRUE;
5 U" G6 C5 ?. w6 _} + P9 l% S1 f. }" w# s
. H& I8 \: F k% y% m
1 w' x O+ z. L' M- I3 u
( x: |& m, Z- N9 \9 m% k
- W/ K1 V$ \" h( a6 K( D
|
|