|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" X+ v" t5 a$ U% T
6 o6 d" n6 [1 }! \8 l
Mover.h
6 l4 R4 C R7 Y0 [( {. f+ y代码:
4 Y |, n% B4 {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 T, ?+ B- h1 j6 h
7 ]. x$ k! n. F下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; , z9 c7 @2 Q ~ [$ s
& w/ c$ _$ J1 s& Y9 h; ^" m4 H
然后你去mover.cpp添加
, y! m# \$ i; m+ p* J
! `! u7 t% s/ }! E; Z0 d3 j代码:
9 O7 B/ R% q S3 I- Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
$ g& |: k, {9 u' O" K{
4 M# R3 T* b% {5 w2 h! a#ifdef __WORLDSERVER3 ?2 n, T: f) h8 m% B& ^* ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 K9 @+ Q$ |* P- _$ B) N8 P
MoverProp* pProp = GetProp();
$ U$ e4 d% e" E* ~4 F! F8 R* m$ _ if( pProp )
* b* B3 ?+ v5 y) g# ~+ f {$ x3 z, a- B6 |+ u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
* D! J" n' _ } {; g: `2 q; }( j- L4 z$ V
AddChangeJob( nJob );( U( z& a/ i I5 c& S4 k2 P
}else{
5 B. u) k1 M3 ^: ^ return;0 t9 h# O8 L5 i0 N. e
}
2 c& y. p5 [2 m$ q! P int nPoint = 0;: H" b3 m9 j7 X z; \/ @
if( m_nJob == JOB_MERCENARY )
0 ^: Y- C1 D8 [1 K7 C nPoint += 40;
5 g: B# x5 N5 Q7 o else if( m_nJob == JOB_ACROBAT )
. g% a; \- A9 V; q6 B/ o# A; g nPoint += 50;
! o/ Z1 Z2 j' O4 }3 g' v7 z: t else if( m_nJob == JOB_ASSIST )/ S9 B* W* H& o8 N+ |7 p! g9 I
nPoint += 60;
4 Y2 ~: g+ r# H' ^. t else if( m_nJob == JOB_MAGICIAN )
6 G, l/ Y: @4 Z4 z8 P; V C7 x) g nPoint += 90;
. r* w, a2 t# l4 A L& S* D else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
5 |0 ]1 F: v2 }' Z/ ~5 D) [$ u9 t, B nPoint += 120;9 v. z9 a8 R; G- A8 A* g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )* e2 N* v% z( Q1 Z. C
nPoint += 150;
: z' O! q8 n- K' r& z4 b: H: J else if( m_nJob == JOB_RINGMASTER )5 t D- y4 \1 d: a. O; S: h, d2 Z
nPoint += 160;; J6 x% s' v8 B3 y' r
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 u p+ s- T& J2 Z( m3 M: }. ^( x
nPoint += 180;. Z- y8 @- W, h* `% N! T5 a( t
else if( m_nJob == JOB_ELEMENTOR )
: z( K% M9 @3 v3 o nPoint += 390;( O, P; J k( B- O, @$ L) p
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ L7 |: L3 ?, ] \2 y1 v, ~ nPoint += 120;% C( k( G! B) q: }; Y8 ~( P* ]
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
( t* \( s2 J9 g) e- p6 K& S nPoint += 150;
# V" E7 g" X" V6 K: }2 g else if( nJob == JOB_FLORIST_HERO ), H( X0 {2 {# \$ C
nPoint += 160;% g1 ~+ x" r& @# w3 l
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), i. n( L5 D% i. {% S8 b5 K- t
nPoint += 180;: d4 y3 ]5 r: @3 l7 @
else if( nJob == JOB_ELEMENTORLORD_HERO )! {! ]4 P" O8 v1 z
nPoint += 390;
/ B# F3 w& C: Q- ? ~
6 V( X. T6 f; @! L2 |8 O AddSkillPoint( nPoint );
2 B3 W7 g8 A7 U% V m_nLevel = nLevel;, q8 [0 f( _+ ~
5 p" v: ]6 _$ s# s9 ~
SetJobLevel( nLevel, nJob );. [3 O# M8 d$ S4 s9 T
m_nDeathLevel = nLevel;
# A b. q4 i0 z2 T, o) c#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: B; I) M2 k! j7 Y1 ?! w- @
if(IsMaster())
" b/ ^/ ~4 i q% w$ n2 s& D {- S1 H( e7 D! P8 I
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 M- l8 z1 F% n3 L. P" Z; v
if( nLevel > 59 && nLevel < 72 )
0 W( w" y1 E; I- C& u dwTmpSkLevel = 1;) y; _0 K5 B7 b* c
else if( nLevel > 71 && nLevel < 84 ); A7 Y2 F$ p/ U
dwTmpSkLevel = 2;
x3 b( ^; N6 K3 A. f( R! h else if( nLevel > 83 && nLevel < 96 )
4 P1 A; g5 ? O6 c dwTmpSkLevel = 3;
& ` [2 a, s! w else if( nLevel > 95 && nLevel < 108 )
9 d% p: S# T" @1 j) ] dwTmpSkLevel = 4;) E: y" o7 D) X# d9 V
else if( nLevel > 107 && nLevel < 120 )7 z# ~( D3 P$ H0 e
dwTmpSkLevel = 5;4 S2 `' G4 u5 E" U0 ^/ `
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 V+ K6 w# {. v% {; B { $ S+ M7 @2 b0 f- Z+ L/ W' \/ l: f
LPSKILL lpSkill = &(m_aJobSkill);
" g( q0 v6 R5 y8 \ h& ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )
& j! J' g2 ?9 _1 f1 J# R o {
" M8 ?$ i2 Z* {" p ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" n8 Y/ ~/ Y* D0 H* N ~ if( pSkillProp == NULL )1 v+ M7 |. F' a3 C3 ^% L
continue;
4 r& z0 L) w% f" g+ H- v- X( I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
I. k+ O* y" o) e continue;
7 Y8 @( \; ~' s. d lpSkill->dwLevel = dwTmpSkLevel;
8 o& T( u8 Z- F0 [" P }1 g0 L. @1 k) n( S
}
( v" e! K+ _5 } }
6 C+ f+ r! y2 t; h9 t! M$ x else if(IsHero())" O- o5 L3 U) C1 C8 C }
{
6 O& _- l1 {3 z* J- [7 B for( int i = 0; i < MAX_SKILL_JOB; i++ )
1 d! K+ L! l: A' d) ~0 Y2 E {
6 k3 c4 a1 w" Q; B! E! G3 Z LPSKILL lpSkill = &(m_aJobSkill);
" O; P" T( _' q. x) _6 R if( lpSkill && lpSkill->dwSkill != NULL_ID )
# a0 {! H1 }- C% ] {$ W) I) \$ l0 O$ ?7 U
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: O6 y2 r% f7 M& W1 C if( pSkillProp == NULL )
2 C3 C+ y ^5 k8 W3 g$ X& c% x continue;
' _* Z4 e1 m( A! h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& O: ~7 F* Q: ]) O continue;
7 `- k6 ^7 L* T' H5 Y lpSkill->dwLevel = 5;4 L$ Z$ I. Z, p: ]/ c4 Y9 H6 Q
}4 D) \( V; O0 z. F% l b; ^) V7 _
}
9 D3 U0 A& h- W. |6 i M$ Z }
3 [ T% H3 d1 N) x+ A* w else if(IsLegendHero())
9 |* e7 M) ^+ }/ y( r0 D {
6 B* H7 S# a1 b5 x* W3 s0 T for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 `# v$ I2 H3 W9 i3 p% ]% x* z
{ , F/ x0 m) Y" G+ X H
LPSKILL lpSkill = &(m_aJobSkill);
; Q: K1 q" _) L6 H1 a if( lpSkill && lpSkill->dwSkill != NULL_ID )4 o7 H1 j; ?$ \+ J I7 h/ w4 Y
{
" f8 I* F" ^2 c l* ? ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 X: q! ^, C) C0 _ if( pSkillProp == NULL )$ T( D% }0 w3 Y, R
continue;
5 y V* S. u, \* ^5 E) s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
2 n& c t: ]; o u; k2 x+ w continue;
# h& i) N( \9 s& n3 E lpSkill->dwLevel = 5;
% m: @0 `9 D+ K E }: w" x3 g2 Y3 V A
} V2 @! j" }0 s! Y! P- z0 M4 {+ Q3 e
}
( @- P1 ~: [' O. x7 H/ t- l. p#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 K' w) Q% j7 r
if( bGamma )* e3 V- F* Z3 T' |
{
7 U. j: y4 l9 h0 x$ i* E m_nExp1 = 0;
6 p( x6 t; v$ J& B+ ^0 K }6 c7 G% {: Y* I, }& n. N
' }5 ^- G/ B5 H) f9 M
( (CUser*)this )->AddSetChangeJob( nJob );
$ F+ t1 o) @9 e3 O% p8 B g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" o3 H+ n2 q4 } A; ~* n( J9 a$ N0 O
W) m- m. J1 ?0 o# r#if __VER >= 11 // __SYS_PLAYER_DATA
; Z- M+ D9 P: |5 M: ~4 P& h g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 A3 N6 L* G) U/ J2 Q @
#else // __SYS_PLAYER_DATA
3 y# L. H- W5 i9 p, H& g# Y1 | g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
) R8 g4 @7 W+ t" E g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% ^ H! {* H+ W( o. H if( m_idGuild != 0 )0 Z; ?9 q$ h" j
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
M$ a4 [& @, x7 O+ y5 v#endif // __SYS_PLAYER_DATA3 ^1 M {/ t a; k: D
SetHitPoint( GetMaxHitPoint() );
^, O5 j: \ J% J7 `$ K SetManaPoint( GetMaxManaPoint() );* z7 w8 ^; Q1 k; W) n- G
SetFatiguePoint( GetMaxFatiguePoint() );
" E+ ~! m. y4 ?" g if( nJob >= 1 && nJob <= 4 )& }- ~ E B4 t: z, J( R, U
{
% M/ Q$ M7 A( p: F7 W m_nStr = m_nSta = m_nDex = m_nInt = 15;
- Q" j" x$ I0 ?+ `; c% Q5 @ m_nRemainGP = 28;8 ^6 o$ H% b, c* p0 m) O7 o: H2 i
}
8 e, f# `4 Y+ n7 O if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), a% r6 k1 K$ n. T4 }' q5 H
{
" N! q4 e; A! T7 n7 h# v m_nRemainGP = 118;
" Q$ Z5 C6 K" h. E N- T( { //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ m) x# Y5 q3 |" E# G V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
. d/ c2 r/ m& Q4 W3 m" E; g }* @6 P- x, ~* m3 U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )0 @ {2 c+ e5 @# \* M; V2 ]& V0 W, `
{: b) l9 O k6 O9 I; F6 G7 b
CItemElem itemelem;6 \! x1 |( ?' [
itemelem.m_nItemNum = 1;
6 A% R: S( ~/ E- J9 V itemelem.m_bCharged = TRUE;
( r, b8 h& c2 g6 }" `3 p- d BYTE nID;, B: `( {. e% i8 u s, `
! X4 M, I5 Y2 P7 S* \6 h, E5 {& l Q if( nJob == JOB_MENTALIST_HERO )
& J( e1 R+ E- i# d8 {" {, \ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
0 t5 z- V) a5 j# l1 F: I if( nJob == JOB_FORCEMASTER_HERO ); ~+ U3 _2 K! W6 C/ D
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; w5 a! c, i' ^1 L8 H7 B
[- D5 N4 u) L& u) X4 |: @ ( ( CUser*)this)->CreateItem( &itemelem, &nID );6 `, g. J/ c" H9 n( z/ H0 n
}
3 w! J2 F7 s `/ X. Y3 n. w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );7 l# [0 o; J6 l: f$ r* {
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
: X3 D) u7 s) n' N, m& ]* X, J ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( Z0 v8 @ R/ Q5 U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 a g: H8 T; l, H/ m1 e3 l+ B8 @ ( (CUser*)this )->AddTaskBar();*/5 s6 B+ _+ d' ^' p
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 a4 e1 Z0 h# A9 l( b }#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?1 }2 t+ u1 p1 X( E' Y% i% }
((CUser*)this)->CheckHonorStat();
$ p; k' G/ F1 J3 I3 ]5 m ((CUser*)this)->AddHonorListAck();
1 z7 D* t4 J4 `- r# L( w2 ~ g_UserMng.AddHonorTitleChange( this, m_nHonor);7 }8 N8 R# A" s+ g, G
#endif // __HONORABLE_TITLE // ′Tà? |1 Y, g' R* h$ b5 Y
}
. H# Y! j/ @4 P+ D, q#endif // __WORLDSERVER
# J5 g. H2 F* Y; O" v}
9 ~6 t3 I* n6 ]( O) u: ?6 ~. Y# E! I7 y2 [/ M$ s2 t( e
然后你进入functextcmd.cpp并添加以下
7 l4 @! `1 G# n! d/ v
0 J5 S0 F+ x3 o8 F3 ?$ |- h( k! S代码:) ~7 \; W9 Q# U1 T5 v, F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), M1 V5 ~# C8 w: k
下面插入
7 k! k- X! [1 P1 O$ m7 iON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , [2 C9 P& ]( g7 d
3 G7 K2 M2 f$ d& U# r( g! I然后你去# V, P1 ?! X5 f, X
' w: s. \+ s0 {$ r3 k6 ^代码:
( J+ D3 c8 y7 R# U: J' N' \: g代码9 C( Z/ S: X* Z' z- R
BOOL TextCmd_ClearPropose( CScanner & s )3 V2 P D6 r/ P# Y, t
{# Z; X& a5 y9 z O% M' d/ L2 E: K
#ifdef __WORLDSERVER/ d7 B. c9 R1 T' w+ ~/ Q+ [
CUser* pUser = (CUser*)s.dwValue;
' t5 k" m" b% I# C g_dpDBClient.SendClearPropose();! {3 z; {! L+ r+ i
#endif // __WORLDSERVER
0 A9 \0 [" g. x; I V" v g7 x8 ? return TRUE;( V) {/ x1 B, v
}9 K5 ]( e5 n7 A+ E$ Q* J, v
下面插入. p* }3 b) I' ~/ ?& U/ _% _
BOOL TextCmd_rebirth( CScanner& scanner )
; A! F8 K( o Y. c: g{9 ^5 g5 t4 H- |2 @
#ifdef __WORLDSERVER+ o3 G# f$ I, w9 L/ ]3 F5 u
CUser *pUser;
! |/ x' d* l' y& G: ?pUser = (CUser*)scanner.dwValue;4 k# n7 i# ^% y- `0 H
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())4 b7 I/ e2 Y9 A: o6 o. y- N/ o3 G$ y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);) m) }4 z+ d8 k
else" c4 s/ T5 z) [" |" l
pUser->AddText("你还未达到重生条件!");
, d9 {, D( L" M2 O& K) K#endif
& V7 ]9 h- c4 M1 p0 freturn TRUE;
" q. c4 y0 R- l} ) O H4 g8 N- ^2 d
. H, U) r# J6 h6 Z' L1 A3 ~0 t: M" L r. D0 b' I6 L, v
% D; S3 N; r0 F" |9 f% [' T- O" x/ J. j2 O5 A
|
|