|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
/ \6 J# Y8 m8 c# |* U, s* e/ n0 p( c1 @ D
Mover.h, x: m$ l' ~! f5 |3 N* Z) R
代码:
- \; R n$ |0 f7 Y; s9 z找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü/ H9 K' n, D5 B( q) E6 S5 b% Q
$ Z0 y, g( P6 \: H/ r下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 Z/ t1 Z+ L, f
/ w2 |7 y/ G3 V* l
然后你去mover.cpp添加
& D/ z& \- O( Z" w+ I9 Z8 a/ }0 [+ @+ u4 S9 r0 ^
代码:
, A# F' s: ~) N# R7 W0 zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
8 E; E) y% U& B7 ] f* H{
" o e5 D/ O4 c#ifdef __WORLDSERVER
! h' r7 k6 P, Z$ d // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ B! @( K4 R" c5 Z8 }2 C5 \
MoverProp* pProp = GetProp();( a k: h' H5 ~4 `% Q$ a
if( pProp )
5 ?7 l/ `; }5 h- B: k* i {
4 x6 A' C5 r( J }- ]& |$ w if( nJob > 0 && nJob < MAX_LEGEND_HERO )
, V/ X' u! D$ p {, w4 _1 h# g$ w* {& E5 V
AddChangeJob( nJob );
. E7 x6 p4 `/ A( v% q. q& Y1 T! x }else{
/ w5 P& e$ Q* D& M return;2 F( u1 M4 M4 `8 [
}4 m7 o$ T% W4 f9 @, a, ]) P6 d
int nPoint = 0;8 H$ l( `* ?# j8 A* ?9 y8 W; {- y
if( m_nJob == JOB_MERCENARY )" ^, M1 {* H8 B4 a
nPoint += 40;* @+ f' S0 ?7 ~$ J
else if( m_nJob == JOB_ACROBAT )
8 k9 V& c7 C7 l8 e! b nPoint += 50;; ]. A' U7 ~5 x
else if( m_nJob == JOB_ASSIST )# [- C0 x; [: C+ J2 {
nPoint += 60;9 w, a2 n- e# b2 ` Z
else if( m_nJob == JOB_MAGICIAN ), S: c: @% q# w( B' m. h3 s T& f
nPoint += 90;
$ r; |9 p" L) r, J$ P2 t else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 e& a' B+ L/ n- V nPoint += 120;
# @: U5 q. Y x else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, v5 k8 x7 n- K: ?8 d7 |6 X nPoint += 150;* p3 E: B9 Q# ~0 B+ O5 D
else if( m_nJob == JOB_RINGMASTER )
; i4 w! M# C( k- G4 @2 r, D nPoint += 160;
$ X* c i5 w8 \: G. H else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ @, e" c2 s: G- W0 _ nPoint += 180;
+ r/ r$ p: H/ y else if( m_nJob == JOB_ELEMENTOR )) O" z2 W. s' o0 g2 ~! o
nPoint += 390;9 T; ]; c/ U+ P# z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 d" N. o# W5 ` d
nPoint += 120;
0 B% K, X: p( T( ~ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )+ N }4 N5 A3 q! Z8 f6 B7 N" o* e
nPoint += 150;
/ p( E6 r% v& s9 }# h3 B else if( nJob == JOB_FLORIST_HERO )
* C* w4 n4 \* V. B$ U nPoint += 160;- @4 i1 A& Q! W: k3 t
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
7 q$ L* t5 g5 [/ R nPoint += 180;
5 F, P* v; H# a3 F ^ else if( nJob == JOB_ELEMENTORLORD_HERO ); K5 T& L9 q4 D& A! D. @6 d4 ^
nPoint += 390;5 M J; o k' I$ a
2 O( ~( w Q$ c/ ]7 i AddSkillPoint( nPoint );3 s& A9 N2 l/ N8 U
m_nLevel = nLevel;% H/ U" | b, j+ ]0 m9 [/ `6 _7 D
- y1 f8 A$ J0 _, B' r SetJobLevel( nLevel, nJob );
% g( P2 t# I; y6 O* ]: i m_nDeathLevel = nLevel;
, z# X) j; ?% s7 b1 X. ^#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 Y2 q* R* G( N1 O7 @4 v g
if(IsMaster()) @* t' \% d s) `: L1 G
{
6 |+ g/ I9 G0 H, W int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; J! Q0 I6 i# g
if( nLevel > 59 && nLevel < 72 )
9 i0 n2 ^& f! \/ C# R% M+ N) j dwTmpSkLevel = 1;
1 t6 ?0 U4 D& t) ~) w) t! ]/ k else if( nLevel > 71 && nLevel < 84 )
, I5 M1 a% I8 J% w ]/ ], Q G/ I dwTmpSkLevel = 2;0 x4 i3 l. y" _# `) s
else if( nLevel > 83 && nLevel < 96 )
{; Y+ n3 |$ c. s z: \* B dwTmpSkLevel = 3;' ^, I9 E$ `0 H" ]! |
else if( nLevel > 95 && nLevel < 108 )4 \% g4 _. k; P O9 v5 O" o( O
dwTmpSkLevel = 4;
$ T4 K" N% L; p5 Q- g( b else if( nLevel > 107 && nLevel < 120 )
4 F4 s# L) w+ c4 X4 E% w dwTmpSkLevel = 5;* b, K+ M% a- o A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 @& }! I/ F" F3 j8 e* ?8 I0 j
{
! D' G2 p1 K) \; A$ u2 F. ~+ f LPSKILL lpSkill = &(m_aJobSkill);
6 [# M3 b7 E' ?: t3 D if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ b- A7 l! p7 Y& Z) d; @* E {% y% E* h; Y6 O3 y) z; x
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) H X' o) b7 P1 Y2 h
if( pSkillProp == NULL )
6 k0 m5 b2 y; B continue;7 m" x* r4 e8 u. n
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ L( {. B" p9 ~' A4 v' L- e continue;
2 Q. B- @2 M- f2 Q, ]; { lpSkill->dwLevel = dwTmpSkLevel;/ ]$ Y2 o3 z6 _3 V
}1 b3 w2 O3 a7 a3 G, K' Z5 Q2 h
}
& r- n( ~1 l- D$ ]7 \" w2 C% D }7 E0 e6 C' z: C% C: s5 \
else if(IsHero()): Y! y5 C# K$ I1 E% a( I' a
{3 y2 ?# D3 {( H
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! M7 K* j3 G+ i/ ?3 V4 d" ?/ L
{ 5 o) D- S9 `$ I S* I f
LPSKILL lpSkill = &(m_aJobSkill); n/ c( Y: s+ E: H
if( lpSkill && lpSkill->dwSkill != NULL_ID )& L$ H3 L9 }4 d
{
1 F8 H# d$ O: ]: R, _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) j5 n% p E( u' M
if( pSkillProp == NULL )
- o" F, j. ~1 ]* m6 T; W4 J continue;
$ _; H+ n4 ^( m: F+ @2 v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* N/ D' i9 i+ i/ t: E' c$ \ continue;
7 {" ?- ]+ w0 g lpSkill->dwLevel = 5;' o( J$ G- x2 D$ z% {" i# S7 W
}5 Y+ g9 P/ w4 ]3 ?( c, i2 T
} Z. ?: h2 P1 l0 O7 {
}
. o5 s6 `) n; r5 M else if(IsLegendHero())
6 V" U, J- Z' D7 \: d6 { {
- C! w. n' V5 @! B9 x( B for( int i = 0; i < MAX_SKILL_JOB; i++ ) - f, o, P" f3 ]5 u% d3 c% _0 U3 v2 T
{
. S3 u' g) ^3 B3 G4 \, V: N {, z LPSKILL lpSkill = &(m_aJobSkill);5 t) m$ `. }7 r6 n3 a5 F% d, U
if( lpSkill && lpSkill->dwSkill != NULL_ID )7 o- b j X* I7 _9 g
{* z/ Y$ H7 r( Q" V4 R: n. M& V- S6 X
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & ]- S* ? h, n) [2 O& E7 @/ v, E
if( pSkillProp == NULL )9 w2 J @0 K8 I/ C7 H2 l- m
continue;9 r. B9 ^$ N1 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 B! r6 E: J! ?& X' E ]) _5 K
continue;
$ D7 _& Z& h: I; H7 `: b lpSkill->dwLevel = 5;
+ U! x3 h6 o9 H3 [- C" n }
# v8 w1 s; _$ p2 c) Q }
, f1 `6 ^8 L; w9 x }
3 C, `# q0 q4 ^1 ?" m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ @6 a' C1 G1 G* g- k
if( bGamma ): m/ D6 @5 H0 S$ K8 z8 w I) T
{* f7 k+ p" b0 w9 a1 o0 z. A$ b
m_nExp1 = 0;; l/ F+ p! z9 N4 P# d5 ~$ Q
}9 H" M( J9 a0 _
" f8 s3 a& c- h! o% {# E
( (CUser*)this )->AddSetChangeJob( nJob );
8 y4 H3 d! V1 h g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );/ s! m& D/ d& w: ^
L7 F5 c1 H$ a; E
/ {6 }+ s [7 L& c* D#if __VER >= 11 // __SYS_PLAYER_DATA1 G% D$ r, e2 b" k N
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
5 M8 [0 @+ r3 E3 x1 E1 H9 d#else // __SYS_PLAYER_DATA
- Q$ c% O" d1 {' p g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 |/ [7 n2 p( W# @, E: w g_DPCoreClient.SendFriendChangeJob( (CUser*)this );0 E7 U; s- J8 l8 C/ g8 M$ ~
if( m_idGuild != 0 )# Q. _1 {( D# ?: c- [6 g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( ?7 U( h$ G4 n1 N/ {1 F#endif // __SYS_PLAYER_DATA
$ [: V) {) J& d# g% { SetHitPoint( GetMaxHitPoint() );
( A! K& o, j( M5 ~3 Z SetManaPoint( GetMaxManaPoint() );
" n" v G l& [' N8 F SetFatiguePoint( GetMaxFatiguePoint() );
( ~( G4 c5 m8 | ^- A1 B6 q, I if( nJob >= 1 && nJob <= 4 )
" C: ^9 }1 Z B5 y* W {3 W- E0 M( ]9 W8 l
m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 l) d! u$ p5 p) \ m_nRemainGP = 28;4 [8 a+ O1 M: U, F3 N Y# Y( ~5 b
}% i! O1 v% U' E2 }9 S8 ~/ l% H l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ), f6 |* f8 N$ R6 y7 i5 {
{
1 d: b- r7 f7 I- l, [0 G1 ^ m_nRemainGP = 118;
4 q+ k% F& [' k) f( t/ [6 K# E //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;% c5 ^3 u& r" f, ] c
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 c2 E/ t( z9 O
}% M$ q: Z$ |9 ]+ h! |! v; ]
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
# ?; t( M. |& f5 t E. T {& U b$ R. M% |# J
CItemElem itemelem;" r/ ?& q- ]! }; q% j4 H
itemelem.m_nItemNum = 1;
8 Z8 |/ {4 h, j2 J itemelem.m_bCharged = TRUE; W/ [- W" e; n2 K/ G! {
BYTE nID;
^0 o: Z: ^1 ?
! z% y) K. K) A. o, b if( nJob == JOB_MENTALIST_HERO )
1 N k4 a, J7 Z& j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% ^9 u4 e& `! m5 r+ w if( nJob == JOB_FORCEMASTER_HERO )
' Y$ @! t2 n9 l+ ^ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;& X' s) o6 d) O) ?/ S
s2 g8 D' V2 S9 a3 n ( ( CUser*)this)->CreateItem( &itemelem, &nID );$ S! \ O+ M/ S
}8 R/ f' q* V$ F* z5 V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 n* G. R7 y/ K8 \' v
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! X4 |0 h5 ^# t$ c8 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );+ C: i0 I* J6 {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );' Q) H# h) R0 x: o1 d- ], ]' Z
( (CUser*)this )->AddTaskBar();*/
# p6 n. m3 H# z+ z& Z- T ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- m7 A# w. A6 h ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?; A* p4 R/ r. J( t: }
((CUser*)this)->CheckHonorStat();
5 G: y4 `1 E% B. v8 C( _) s ((CUser*)this)->AddHonorListAck();! _/ a% b p, y4 f6 u
g_UserMng.AddHonorTitleChange( this, m_nHonor);# L1 P S" ]+ l% z
#endif // __HONORABLE_TITLE // ′Tà?
9 { }: B5 T; h8 v6 u& S8 R7 Z4 I }
3 }8 y t$ C, L a7 {5 q#endif // __WORLDSERVER! Q# J, w# \$ [4 k9 M
}
; Z) o. x( a$ C: f1 ?. [) H8 S2 v& [- f
然后你进入functextcmd.cpp并添加以下3 ?7 g2 o- T4 f: }
i" d0 \5 @6 v0 \) X
代码:6 L& v! V& p( k8 ^$ c: V# o- v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ) v' ^; ] Q# L# l3 b
下面插入
" h6 ^ ?" K+ F) q7 W; w! m. o" W2 hON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 4 y, Z4 I8 r. {. _' ?5 d! T! i
: t! k) l1 N/ C5 {0 O然后你去
# r: k; V U# {% x
; O7 W5 `# x& Q" k代码:
6 X% I. P( a8 k/ K! c8 u代码+ s8 q. a! {* x* Y
BOOL TextCmd_ClearPropose( CScanner & s )- v* n& ]! t: ?- v. l0 D% b
{& S4 G6 u1 F* q" d
#ifdef __WORLDSERVER+ A' x9 }4 B! A& i: H) B1 G, ^
CUser* pUser = (CUser*)s.dwValue;
6 a, |8 J' Z$ t0 G; k g_dpDBClient.SendClearPropose();4 F# W- l [; @, v& E
#endif // __WORLDSERVER* S1 h% Z- i8 m
return TRUE;
* {- h4 [% v0 `7 M" |}2 }# `* D1 e# O' s
下面插入
) c! k% d" H6 E8 o* F: w# r: gBOOL TextCmd_rebirth( CScanner& scanner ). y) E0 W+ W+ |/ ?) b" p
{
, @5 l Y& b% x, }- q& t#ifdef __WORLDSERVER
- I. R ~7 s# mCUser *pUser;
; Z% @ _( X& }4 H! C' XpUser = (CUser*)scanner.dwValue;1 i. a/ d- w. F' S- z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' a$ W3 C+ M' X epUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 K1 O/ [& ]7 ?2 felse# V* d3 M4 W5 y) m$ r l
pUser->AddText("你还未达到重生条件!");5 R+ D/ L8 N8 P/ m" N N
#endif2 j# J7 D7 @& j3 S# G4 ]" B5 O, W
return TRUE;5 _) P& T- }! Q- Y
}
6 t* v6 x* e) D4 G* u9 c$ M) d y( m2 I- O+ f7 N
2 E) c7 b: \2 J$ W# x. e9 I ]+ {2 M: L, x" y0 V
5 M0 H' X% U' t
|
|