|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
6 G6 U3 Z8 r, L8 P+ L* ?% T* m8 u
9 P. Q- y2 i% w4 SMover.h
' J* Q' f4 @' |0 m( D' ?* R% l$ m代码:# M1 b0 U! I1 J$ s
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" @$ ^: r' c& T: B& ^* D
2 M' G4 E6 K2 r( r
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 \# Y9 A- R6 i5 R
4 E+ i5 R9 Y- m
然后你去mover.cpp添加; x" C7 p9 V- n s) B; d3 \* P
& j. I9 u. a9 V v
代码:
6 c& G0 t) j$ Y& Z( E% @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )# k8 n, Q3 F3 H& F
{
( }5 X6 r/ P: c0 x#ifdef __WORLDSERVER
7 I {' ?2 b# n, w# V. ]) t% _ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 }" l b$ {9 w* d MoverProp* pProp = GetProp();& M/ c% {" i; H# d- h
if( pProp )4 L: o/ O" S( S/ J; `
{
% L5 Y+ n( v. N/ l. h if( nJob > 0 && nJob < MAX_LEGEND_HERO )( U) v1 W3 L8 Z8 m9 C
{
& J) u$ U- |0 W" X- u' Q( O AddChangeJob( nJob );! J& I' n6 d/ {6 O* d
}else{
0 u* b7 v2 X# j c return;
9 M3 k. N: e+ W6 Z) ] }
/ Q0 d4 F% v! z5 f" a$ I% q4 @% ? int nPoint = 0;
8 P5 B& a: W0 S0 i% J1 X' I if( m_nJob == JOB_MERCENARY )
8 g7 W8 @' ^* D nPoint += 40;( {( \- z7 n' P' o; N3 a8 [* \" p
else if( m_nJob == JOB_ACROBAT )! h8 `" ~/ K# M( f
nPoint += 50;: D1 T' ]! N. g2 `- u
else if( m_nJob == JOB_ASSIST )7 t& j, \4 p B& V5 s# u
nPoint += 60;
2 f3 R1 N6 }" B- v$ U! F1 C else if( m_nJob == JOB_MAGICIAN )
' G8 l9 _, l& u. E- ^: n8 ^ nPoint += 90;
6 x5 o; p* k/ `5 n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ c5 I4 v% e+ W nPoint += 120;
_0 D3 V! i2 O6 Q+ b5 } else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* M6 j0 v8 R% Z2 W5 p nPoint += 150;2 u ]) }; a B+ X4 X
else if( m_nJob == JOB_RINGMASTER )
1 f: v/ S% H0 `1 @, h nPoint += 160;
! Z2 U: Q- a x! z# M* q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ o+ b2 [5 `$ h+ `" A+ `- c nPoint += 180;
1 f6 z. B* {, M( b w else if( m_nJob == JOB_ELEMENTOR )& M/ z! c7 q; J9 q
nPoint += 390;
( u1 V4 r6 F2 z$ E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ): ]: f: h9 m# U$ l0 k
nPoint += 120;$ s% r- E% ?/ [" J7 W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% g& r s2 W) K9 q7 u+ K
nPoint += 150;
- o' K3 P/ r6 B7 K r* t( W else if( nJob == JOB_FLORIST_HERO )
3 L3 h' y% Y2 v; c nPoint += 160;% b- v% _8 T( X2 F N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )( v, c2 u5 e0 v, v! K
nPoint += 180;! t$ L6 x1 h3 }4 h2 i
else if( nJob == JOB_ELEMENTORLORD_HERO )
1 u- U* {0 V) v9 ]+ Z! R nPoint += 390;; O# s6 H% x+ h h
Y4 o! t, G/ Y" w( b# s5 O AddSkillPoint( nPoint );
5 u$ _3 U5 n$ y( N9 w7 J. f9 h+ k7 v m_nLevel = nLevel;/ |; {$ C' F7 C8 U0 t0 m
% d7 I5 H+ V8 ~7 \, R
SetJobLevel( nLevel, nJob );/ R$ J# ~$ K+ a0 D* m# i
m_nDeathLevel = nLevel;' V$ s3 S/ G, ?( v9 n0 [
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 ? L J+ B' H. w' j if(IsMaster())
7 X6 k, s1 C+ ?: P' J {. W0 K+ g* ^+ q" X2 h* z* j
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' B4 i0 E2 O' l. O _. T
if( nLevel > 59 && nLevel < 72 )5 F1 ~& |$ F) N6 _; e! s% U/ Y
dwTmpSkLevel = 1;0 a) y& H7 L7 ~
else if( nLevel > 71 && nLevel < 84 )3 o0 M- b5 X$ r
dwTmpSkLevel = 2;5 y9 d) X7 f$ S
else if( nLevel > 83 && nLevel < 96 ); n6 D. n. j1 ^) n! ]
dwTmpSkLevel = 3;7 h. |, k; Y) k4 t
else if( nLevel > 95 && nLevel < 108 )& F4 f; Z3 ]( q0 B* a; g$ n
dwTmpSkLevel = 4;
% p6 P2 S! w; ^" a3 \ else if( nLevel > 107 && nLevel < 120 )+ I( j& R7 c, g h
dwTmpSkLevel = 5;
1 M" o+ c7 y; B' T( n for( int i = 0; i < MAX_SKILL_JOB; i++ )
; k g1 I. ~$ W! N% G {
) B e: q/ R* b6 l9 H5 o2 H LPSKILL lpSkill = &(m_aJobSkill);! b) H* O4 ?" p: C* A/ N, N
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 m& i( H" E1 [3 t {$ p" ^7 t& V$ H: c# ~, q6 S/ ?
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 p. H4 q* m( h% F D. i
if( pSkillProp == NULL )
L+ ~6 T$ f* l) ^- B& `! | continue;& K1 [6 x: _+ u
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. H) n2 b6 B# m ?$ K continue;) b8 P, w* j1 W0 V3 m: y7 X
lpSkill->dwLevel = dwTmpSkLevel;
8 n I4 q9 P: n$ p5 ] }
: f. \+ }1 Q `$ o' J# I }
3 H* I4 s6 M5 u5 N# Z: _ }7 g7 z( h) W' J6 G' E
else if(IsHero())
5 A/ O$ h$ `( k+ \ {
( I9 t9 h; `5 K7 m( b for( int i = 0; i < MAX_SKILL_JOB; i++ )
{- `' m+ h7 ^: E {
- @, M. \9 a+ j- I! T( l. j LPSKILL lpSkill = &(m_aJobSkill);0 @9 ^! G; M" G! K9 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 u2 \/ W; N7 Z9 | {
8 f( q: q+ n/ E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
- B2 X+ w7 B. V) c if( pSkillProp == NULL )
" \1 u; g) W' D2 [- S7 t continue;
4 y- R3 L9 h# F2 X k! C, F0 e7 a& e if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
5 w' l5 a% R: H; w5 l* x continue; ^% ~0 q2 L8 k0 V+ d/ @& z' S
lpSkill->dwLevel = 5;
$ G6 g4 t N7 L: W" o7 j }
$ l) z8 y0 ^, ]* E/ L9 X }
8 t, f0 E# |/ C; \8 j4 K E }
" e8 T2 |- R, [! w) Q else if(IsLegendHero())( s. `' Q6 w% w4 c# Q7 e$ y& y
{
6 U7 f" A6 d3 i: ?. `! W for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ b p. M9 W5 O# Q/ ]4 Z+ o5 l
{ V' G2 j+ O. c1 t4 P3 B. {( c/ g
LPSKILL lpSkill = &(m_aJobSkill);
; G9 H2 N: D6 [2 x. k9 P2 r& o if( lpSkill && lpSkill->dwSkill != NULL_ID )- M2 o' { N! w4 }
{
1 j! P c" R+ c; f/ U9 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
# a V, X- a, H. U9 W5 v if( pSkillProp == NULL )
; u1 ]8 A. w2 [ continue;
- n# r8 O; s: @5 s; u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& j* C/ `/ a+ E, `1 ]7 q+ r continue;- v9 C4 \4 X: Z2 p# ]2 [/ S
lpSkill->dwLevel = 5;
2 m7 v1 S1 }4 C7 M X }" ~2 p# `, p9 s3 s& c4 U, O0 u
}
; D6 Z' F: H. e9 } }0 e C0 s0 O; e; D$ [' z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans ~' I& D" @; x$ u" e8 t: z" `1 `
if( bGamma )
5 M# E2 d1 f0 m0 x S' p$ ?: ^ {6 |4 a' M& Y" }
m_nExp1 = 0;
* P- O6 G1 D: M8 }# l, Q }
G1 _# [# o( `9 @9 A3 a$ J" w
$ C7 D: e- b8 a+ ^8 i ( (CUser*)this )->AddSetChangeJob( nJob );6 o+ p3 u( ^# M8 l; p2 k! ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
. u, @' u4 E ]2 T+ z3 k$ n, J: h; M4 u3 y1 I% E$ j
6 q: r0 e1 T2 ]# q) [* \$ d4 z
#if __VER >= 11 // __SYS_PLAYER_DATA
9 T) j5 `: _1 I; D+ ]4 M# P. v g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
9 a5 v9 [* W8 q* x$ C6 s" p5 q#else // __SYS_PLAYER_DATA1 f/ f# X) n+ B1 J& u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );" o5 `5 h3 M0 C b, F1 m
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 D9 F7 E9 \2 i; Z: W$ x if( m_idGuild != 0 )
) r3 U0 A$ ^5 q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% U3 x9 u6 D ~. `9 @7 m) e
#endif // __SYS_PLAYER_DATA
4 W2 X# }# ?% I4 @* m* L \ SetHitPoint( GetMaxHitPoint() );
" {/ S X6 b) p4 { SetManaPoint( GetMaxManaPoint() );
+ B9 l5 R/ [% A SetFatiguePoint( GetMaxFatiguePoint() );- U; p9 a& u9 |$ v/ C0 Q( z9 B
if( nJob >= 1 && nJob <= 4 )
( W9 a8 a' j$ r. K' A {
) }/ z0 ?% l, d$ G& e) e1 ~6 s$ O m_nStr = m_nSta = m_nDex = m_nInt = 15;7 z% o& [* N# I5 k$ p
m_nRemainGP = 28;5 a$ }" n8 L' z+ L0 ^0 l5 @
}/ d5 Y! u i) F
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 |7 \% }6 A+ n& D {
" L7 |; q( G* j4 ^5 o# j m_nRemainGP = 118;4 u$ h7 S+ z! u5 p) k' l3 |
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, T5 k( z8 _: B
m_nStr = m_nSta = m_nDex = m_nInt = 15;3 `7 E$ q, u5 A2 [/ x( x
}
$ O; t) `/ z F( T if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
/ x/ L, o; t/ w {! O! f0 b% a4 G% I- s/ Q, j
CItemElem itemelem;% D' {, q5 \% K4 o/ Y" r
itemelem.m_nItemNum = 1;
( `: z% P& ^( [1 E itemelem.m_bCharged = TRUE;$ @/ D8 Z% f6 ]7 F: J' K
BYTE nID;$ D8 t! B" @; [' X! U
6 `, m9 H6 Q, G5 u5 c. G2 s
if( nJob == JOB_MENTALIST_HERO )
) {" x; I; d6 u/ e, } itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;; s+ v# h! g# y! V7 v
if( nJob == JOB_FORCEMASTER_HERO )
- j. g. }% K% T2 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 ?+ y; A7 i6 p( e* G- c
# F9 h+ c, q( H- R
( ( CUser*)this)->CreateItem( &itemelem, &nID );
- U8 N& x" {, f0 I: d }$ s1 V4 g, S, j6 G
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );" z. S/ J' B; D4 G" n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, m T3 K! y: }: v3 _- o9 R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 v7 T" b7 [0 L% ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# o5 c: t( j9 N$ b, @! N ( (CUser*)this )->AddTaskBar();*/6 v8 X/ A4 v* O. s# }
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ @1 W' }+ X" s/ O" D#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% p5 q, a" U) q) k5 I
((CUser*)this)->CheckHonorStat();3 `3 \. o/ E6 E( \# k
((CUser*)this)->AddHonorListAck();
8 U9 ]: x; ^8 D/ a7 b g_UserMng.AddHonorTitleChange( this, m_nHonor);4 H- D1 ]1 B5 m& P R
#endif // __HONORABLE_TITLE // ′Tà?
7 w, x; W9 x, X9 \) U6 A: {" Y6 p }
; W' |6 z, n" k) W8 m* ^- d#endif // __WORLDSERVER
% Z6 D( b! S1 I' {* }# M}
! H4 n2 y! C1 Y0 _ N, O* o# @
. R5 u3 [" [6 ?) A$ i: v然后你进入functextcmd.cpp并添加以下
9 I6 T: V5 m- R
$ u% z/ }) o- r, y4 |5 \代码: X; }! U/ O* k w2 \
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )% V0 `' k y% j" z
下面插入
; x. r. n! D) b4 Q9 n' RON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 2 b* k' P. V) h6 ]2 h# l. f# \
+ f6 G l1 r0 y; k. G4 T
然后你去
: `6 ?( ^3 e7 j/ X1 p
+ w* Y% y" n" R8 c; I代码:% J4 ]9 @6 b4 W5 n$ L* h
代码
, l! ~7 D5 P- R2 T1 l3 O8 ]$ ~BOOL TextCmd_ClearPropose( CScanner & s )" ~, r6 m( P: y! c1 q; g
{4 Z8 V# ~" F( {6 @; K$ o
#ifdef __WORLDSERVER+ `3 p6 C) n5 [" l+ n8 i
CUser* pUser = (CUser*)s.dwValue;
1 f. O% E8 y# n' \ g_dpDBClient.SendClearPropose();% J5 C% ?) K' u- S0 z
#endif // __WORLDSERVER/ A* n9 N/ ?$ D G
return TRUE;
: ~4 S4 u) u. y+ z}
4 J) Z4 j9 _6 R. l# j7 x下面插入
7 L: q* }5 Q$ T) j* kBOOL TextCmd_rebirth( CScanner& scanner )
+ C2 e+ S _( i* u{
. K2 s0 n: e4 J+ a4 D; z: z" Y#ifdef __WORLDSERVER
3 t3 D- x- m6 \7 E3 w/ N l n) a+ iCUser *pUser;
" a' D+ Q$ y! K) Y5 ]& m: MpUser = (CUser*)scanner.dwValue;
6 K3 x7 s: u# J* _if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 f3 S% S" T# y
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
6 z O; H7 a6 G: I- D$ S2 Welse& X0 Q8 N/ C; d3 u5 c
pUser->AddText("你还未达到重生条件!");
, p1 y' S! t" h#endif
' v4 P5 R8 e; w$ Q3 R3 e: Ireturn TRUE;. \1 G5 F7 u# E) l9 {
}
& {) w. }9 L9 g% ?
9 q1 u8 x, j3 G; A( N( n) X5 I+ c4 u: W) u5 \
3 \" Q; T, n& V ?6 ]: I
3 {3 C4 M" J( g$ P% o |
|