|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel" Q8 u/ u; C; y- d8 }. z5 {& A( T" D
, N7 C' ^2 o; a8 S) ]
Mover.h. O+ e% C! y. w9 s8 N$ w5 ^5 @
代码:# X" `* H/ F; b9 z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- U3 a; S* o' e9 t% K4 l D0 V" q* w$ x4 b7 v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
' I% f- S# S) p* z- ]( @& m) t
+ t* L; ?! U# M* z然后你去mover.cpp添加
2 L% I# R: Y) h9 p9 ]: h' `; O7 e- }" M; [% {8 j
代码:+ z% h7 B$ s+ k6 K$ G
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ) m. s, F# U% f M
{
' R) b, e2 i9 L, g/ M* Y1 b#ifdef __WORLDSERVER
: D7 u5 ^1 T( I" p- v' ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó0 G+ Z2 ~$ a: |2 X! o
MoverProp* pProp = GetProp();8 k, N/ Q0 i& ?- i9 m8 Z
if( pProp )1 ^7 A; n& [9 g' Q
{
% s+ j& V$ Q5 r if( nJob > 0 && nJob < MAX_LEGEND_HERO )
5 w3 f5 u+ ]% }$ l% L {! j& }7 E. r/ W% [
AddChangeJob( nJob );. y" u7 c5 l& }: ~1 i# r* l
}else{
; O- y4 C0 m# w! s. v% {$ L4 T5 y return;2 i% `8 N+ y+ M8 A6 T; z& L
}, i/ I* f) _; _# C# K M, _1 w
int nPoint = 0;
) w3 A4 C% e2 B: B if( m_nJob == JOB_MERCENARY )
K7 T) z4 F ~ nPoint += 40;
$ \, w3 ?* ^% e7 A* a5 G else if( m_nJob == JOB_ACROBAT )3 v, I" z# m) Z" T; z3 [) h! q" B- {
nPoint += 50;: a, T1 Y2 s9 S' ~: _' o7 C0 Z
else if( m_nJob == JOB_ASSIST )8 A. l3 C& _. P. y' a) `- H
nPoint += 60;
7 z, u6 P5 M/ f3 p/ J) m5 ~' D else if( m_nJob == JOB_MAGICIAN )
; C8 b+ I6 |& K nPoint += 90;
' J. k2 g- S2 _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
* O" D3 y8 G+ H, E# U nPoint += 120;
; t! a# H+ P1 \ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% J3 w8 K; G, i' S+ g; P nPoint += 150;: U" a# B4 |' g4 W0 B
else if( m_nJob == JOB_RINGMASTER )+ L Z+ Z/ D& ^6 H- A$ g# F% T$ B6 }
nPoint += 160;. z% V; _" g; n k4 x s- e# J
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% w9 T# V; H, R6 R6 G
nPoint += 180;8 j5 T* j( e7 U' t' Q
else if( m_nJob == JOB_ELEMENTOR )4 \: Q( j2 v- t
nPoint += 390; @4 B4 x0 q! c. Y0 {) j
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). E/ J6 ^) w9 h1 r6 B6 f9 s" i
nPoint += 120;, [: g9 N( R2 u, R: \
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
W# ?; }* L% H) X nPoint += 150;
2 h% j: }" [' y else if( nJob == JOB_FLORIST_HERO )
4 x/ w9 G! h9 \; i nPoint += 160;3 T1 N: Q1 p+ \7 S6 `; ~
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
2 `+ }. B! j; K: H nPoint += 180;
" y8 I9 U5 A- H else if( nJob == JOB_ELEMENTORLORD_HERO )
: q6 k F& T) w* c: J nPoint += 390;6 J/ C/ Y1 a% y: ^
) V, Z. ]' p+ b AddSkillPoint( nPoint );6 w5 e8 l% p' V5 k7 |, n
m_nLevel = nLevel;+ @2 s: D" J) I: ^( s; Q
# [8 I5 z8 w! t1 g3 M SetJobLevel( nLevel, nJob );2 J' c. A' T* s+ o
m_nDeathLevel = nLevel;
9 E7 a/ K5 C# x( m#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 z2 \3 d! Q+ `: C. y. x e
if(IsMaster())
1 f6 F: n. ^9 C {4 b& N: U; e) h7 h# ^3 d
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1086 I7 [% j# N3 X0 H' e/ ] Q3 e# k
if( nLevel > 59 && nLevel < 72 )' v& V6 o" x3 U1 f
dwTmpSkLevel = 1;3 |$ g! ]% y: ]% u' N+ J7 l& j
else if( nLevel > 71 && nLevel < 84 )
: o( R! Q6 N/ T' W- [9 q dwTmpSkLevel = 2;$ a$ i# z6 l* I6 a" A9 e& Q
else if( nLevel > 83 && nLevel < 96 )4 p% \$ ^. Z3 l" l0 e+ }
dwTmpSkLevel = 3;
; V- R; ?3 C3 `& H else if( nLevel > 95 && nLevel < 108 )
# I" ]/ ^& X. }" p+ j6 b0 D! \0 z dwTmpSkLevel = 4;
) R+ K t( r e) z6 R6 n8 _+ P else if( nLevel > 107 && nLevel < 120 )2 }- X& S& R8 I8 M
dwTmpSkLevel = 5;
: a, [" g. U4 H$ ^ J! A7 Q5 Y2 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 [: {* m0 w9 W# S5 q8 H: C+ k { e3 U [) D1 }6 y/ {
LPSKILL lpSkill = &(m_aJobSkill);
% _: @. ?6 S# W/ r0 M if( lpSkill && lpSkill->dwSkill != NULL_ID ) R. k( s8 |. j. V- ~
{* Y/ d4 G( F4 k
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ a) G0 [# i g( ^" X
if( pSkillProp == NULL )" g1 x$ |' G$ j2 k: A9 g
continue;
, C$ S6 X0 K3 F- @. v: }6 R if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 u; w- v1 j8 z, @$ p' }
continue;" u! X+ S P& F0 O7 v5 m+ |0 _
lpSkill->dwLevel = dwTmpSkLevel;
' o5 H, w+ o+ e, L }6 v& M. I6 @) ^4 O
}: ^, r4 E6 F( q' y1 X. g+ a# }( `
}
9 c( ]8 n# m2 u, P6 s' F else if(IsHero())
1 y B. r% G4 F0 L {; k8 m O% e1 X4 O7 {
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % @' P/ M; o% K! z/ y8 I& A1 v
{
9 A8 Q# {! Z8 {+ [6 p LPSKILL lpSkill = &(m_aJobSkill);
. K2 x! u( E( ?# ~ c if( lpSkill && lpSkill->dwSkill != NULL_ID )& G/ H9 C7 k8 _% v
{: s, @; M8 u3 Y
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & \/ e) b& b3 P. K
if( pSkillProp == NULL )) j4 Y! Q* {* H+ \3 x
continue;
) D. R; y9 y1 i3 H1 o' v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 |( j# l+ C& a; m continue;
! @; [; Y* h @' L7 j lpSkill->dwLevel = 5;
" h/ I$ Q* q6 F" C }
/ H; F' j& p! S( S- D1 V" m }$ j, C, A; o) \
}
% i1 u; X M" u y1 S0 A else if(IsLegendHero())* l, X. `$ W5 T+ T5 I8 _
{" t. z' K) i L6 a# n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, ]9 K) ^& B, J* W7 ] { $ s( g' G3 d/ F, q
LPSKILL lpSkill = &(m_aJobSkill);6 L/ W; c M" [ I
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; b m# M# }* W( q2 Q, S {
; {. ]( ~( D+ m: y9 P6 g9 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 A6 B: |. ~ V4 d2 U6 e- s" n if( pSkillProp == NULL )
" }! h+ u2 H" m& L8 e continue;
2 \ Y' L9 D, t% h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% P+ Q6 o: o1 T: |0 S. ^ continue;4 Y: Y+ P2 p! l. c. |
lpSkill->dwLevel = 5;6 K" O& P+ v7 c8 }7 @$ t$ _- }
}
5 x. l% m2 H5 ~4 \5 M6 _7 Y+ ] }; n6 c4 X6 ^$ S1 ^8 J# N$ W/ O# Z
}
* j8 ]) s, O$ S" S#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) K2 x% N. v6 w% G A3 _
if( bGamma )1 z/ J6 G3 R2 b3 `: T0 ]) f: F) V! }/ t
{
& a$ x! W' P1 `+ @ m_nExp1 = 0;
6 ~( c* K( e1 K2 ?$ y" @ }) h4 E. W! z: ~# j) ~* S
5 ]3 s4 n5 G) M4 e& S ( (CUser*)this )->AddSetChangeJob( nJob );
: j, x R# Y& V9 [! \$ b, i1 e& m$ F g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 B5 D& N2 w0 a( l* j
/ S9 F5 A$ y# A5 O( X- x* e
% h% ?3 h& L0 t) B#if __VER >= 11 // __SYS_PLAYER_DATA, F1 D1 C+ w+ U& }
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
' u, p" R& H+ D4 Z; l#else // __SYS_PLAYER_DATA
5 a2 S3 q5 L: l# E: G g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* V. |. s2 Z/ l+ l" p8 C% Q* ?$ G2 \" `
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 f1 s, F8 O9 G8 g if( m_idGuild != 0 )
' e3 ]0 s, |% L& |& E! G2 s g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 ^3 b' U" \8 k- f
#endif // __SYS_PLAYER_DATA
( g) n. |# p& s! d SetHitPoint( GetMaxHitPoint() );5 f, S' M$ _5 d, }6 L, H
SetManaPoint( GetMaxManaPoint() );8 L" _) u: @ k( u
SetFatiguePoint( GetMaxFatiguePoint() );9 S6 e/ g" Z8 }* M5 N) C6 d' U
if( nJob >= 1 && nJob <= 4 )
) C2 a8 y, X+ }& @4 z3 T {( D% T5 G- q. [9 F* h9 E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
( a2 ?% u- j4 n4 d- j# y" o% z7 _ m_nRemainGP = 28;
. [ d, q$ y6 w: i# W; a. @- C }
4 P" {( l, E0 V2 | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% Z% A; \3 n5 Z5 i) ^7 O; S {
, s1 G/ t* [( ^ K. ]; b m_nRemainGP = 118;
4 `$ @9 f$ e" d8 P6 N8 v9 v" ?8 R0 Z //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 ~. X+ U k" {$ `! w$ ] m_nStr = m_nSta = m_nDex = m_nInt = 15; E& Q/ m& ?( ~- b# ~
}
0 `. {% n+ V% ?" J. s5 h: \ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. u/ l' ?& g8 ]) k. o {
: W/ q- P8 O7 [) a CItemElem itemelem;
$ n2 `8 o' b4 y3 o/ ~' ~ itemelem.m_nItemNum = 1;
- i4 r# C- H5 i( N+ H2 D( m itemelem.m_bCharged = TRUE; K2 J6 k2 C" B# _" U$ i, W' r
BYTE nID;# D$ G7 N' _# |+ f& Y7 x
' g" N' {) ?! k- v2 r/ j7 v. F. N if( nJob == JOB_MENTALIST_HERO )
( r8 g [2 g2 T# ]8 `/ ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- z. ]* M+ z1 ^7 G4 A( q
if( nJob == JOB_FORCEMASTER_HERO )5 ]. |! u @2 \7 w% F8 [
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ I- @* E3 X9 e
+ S6 U( d, ^$ G/ f ( ( CUser*)this)->CreateItem( &itemelem, &nID );
# Q2 [% F/ ~1 d4 A4 Z }4 N- _6 p8 h9 S. N5 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- a5 G$ Q3 r' b0 N4 K. ]: b, ]* @
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );) C( Q. j% |: U- E+ P- R- I! q( m
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 D0 P: o% b2 A$ O d6 x% P& \ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( v2 r* r* k v# _# ]1 o
( (CUser*)this )->AddTaskBar();*/
6 Q3 P* @1 ^! I3 V* ? ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! ^$ O8 \6 S l' R#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?$ c! Y- o2 Q9 C* [
((CUser*)this)->CheckHonorStat();
/ M% \. F- @: B1 Z, |" G ((CUser*)this)->AddHonorListAck();% y0 }( a3 l) k0 V1 P$ B
g_UserMng.AddHonorTitleChange( this, m_nHonor);
) q$ U r; }) s; u: b#endif // __HONORABLE_TITLE // ′Tà?2 f' d$ {5 ]; w, I
}/ A% \9 [$ e2 o1 [# m
#endif // __WORLDSERVER
2 {+ {% q8 n# R/ V c) F1 c: ?; `; k} $ c+ G+ P5 X) e3 ~3 G
0 P' n% m* |/ P- G, g* R然后你进入functextcmd.cpp并添加以下
& I E; v' N! j {0 l9 u1 r. f
* M5 n: j0 |( C/ [- X代码:* r# U+ I) K; x5 y# y3 F
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): C- J m6 v) [
下面插入
# Y& E1 g1 Z# ?" v2 k+ T: UON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) S* P- U6 t2 s8 R
7 ~9 u9 @ D5 o9 u: N. a然后你去* ?7 b! Z. H7 ~/ N: J& D
( q% h+ c9 m {
代码:* T0 l; o, ~: A' J5 c
代码
/ @9 h$ U9 f. X( M& {( |5 G% HBOOL TextCmd_ClearPropose( CScanner & s )
$ ^; w8 Y) r' e( H- b+ B+ J{
. l3 y+ z( T& ?( W#ifdef __WORLDSERVER- w! r, Z+ R8 R3 H
CUser* pUser = (CUser*)s.dwValue;
3 C* A1 q' m% [& {- I C# [ g_dpDBClient.SendClearPropose();
T0 ?+ E3 q$ m4 p5 G2 K#endif // __WORLDSERVER
. d) [, Y S0 }5 O$ l) E return TRUE;* a$ z) m; V) `0 w
}7 [& p0 L/ ]( ^: E4 r/ Q. v7 ~. a4 q
下面插入
B2 k$ ?& h/ J8 i' S2 XBOOL TextCmd_rebirth( CScanner& scanner )( F) x# D0 Z7 @, q' L
{7 ~7 z, f1 h9 N) Y" a+ G
#ifdef __WORLDSERVER
! H6 s, N, K& K& d/ u, VCUser *pUser;' D9 W: G& v& a L7 d( ~" F
pUser = (CUser*)scanner.dwValue;
# N" Y: `7 Y0 X% q a& aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& z2 K1 K. [+ S3 [
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);; r7 h6 [1 S5 L5 i- c: C; M0 Z
else u( q. r3 I/ V M# K) {; z6 E
pUser->AddText("你还未达到重生条件!");; [7 l: E2 k ]9 C& g! y
#endif
2 W; H( t) ^8 }. _* Dreturn TRUE;9 p/ ?3 @( }+ ?8 |& f
} : y6 k, a2 S8 B" l
0 f, m) D4 J$ k4 [$ ]6 @. X% K( a, K
. `( s5 I0 q4 O s5 {! N; W8 m; |5 D
8 e+ U8 q0 h# w8 M
|
|