|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
& K& R. U/ ~8 ?' [3 U2 W! n9 i
* }9 f, V- t! V5 m! c7 g- mMover.h2 R. C8 V% |# A3 o9 ~7 t( l+ Z' [
代码:# J4 B- N4 @4 i- N# W+ [
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" R, D: Q" U0 q$ I
4 k, k9 ~) d8 F) B; _5 \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 8 f! ^& `! W& v a5 O" K. K
" X8 ^" Y- r4 h$ M7 s% {
然后你去mover.cpp添加
1 V" b: m3 {& h7 P
% P9 \, J& d- K7 z0 A+ E代码:" h3 ]+ y& H c8 f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 ~7 `' N* F/ J/ e% L
{
) g, m4 L* _% f5 s: I#ifdef __WORLDSERVER: ?: l0 K R# i+ R, w/ i' W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
9 I: w9 b* f# ] MoverProp* pProp = GetProp();
# o7 U' [# }8 g+ U1 w1 O if( pProp )
6 N: R. U" u2 ]3 }/ W O {
4 g4 p3 P0 V! A3 Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )$ G8 ~7 ^0 s4 W; e0 }* A1 b
{% p* M' q/ B+ E3 u' X
AddChangeJob( nJob );: x0 d, G( h2 J
}else{( u( j; l- X' k. {( s
return;& J: C3 h2 k: ?1 m9 p
}
1 p5 b; X- ? T: _ int nPoint = 0;$ N7 u2 l( I( b2 i: J
if( m_nJob == JOB_MERCENARY )+ |8 V6 m i" Y
nPoint += 40;
. i7 l7 l' \7 q }& ?& z else if( m_nJob == JOB_ACROBAT )* d4 C( \7 |9 r0 E1 N" v' r6 y/ O
nPoint += 50;! L6 d3 B2 F$ r! x
else if( m_nJob == JOB_ASSIST )$ Y3 s, v3 \* v# T1 M5 Y
nPoint += 60;
5 e9 t! O8 {- ]+ S& V else if( m_nJob == JOB_MAGICIAN )
8 u3 A% m6 G+ ]% W nPoint += 90;( V2 G, K2 h( ~. M7 H- f' c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 E! T* G4 `8 {- ~
nPoint += 120;
9 S) z, v: Z% U9 r8 Y( U% f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )+ W6 B8 Y9 m: ^, r! V
nPoint += 150;% G( p5 t" B) ?; O% G( l1 E) |1 S8 S
else if( m_nJob == JOB_RINGMASTER )' o, b O# ?& z) x
nPoint += 160;
$ W4 A/ @& G8 H9 z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )" v9 ^8 I6 E+ g; a$ G
nPoint += 180;
& t! Q8 w! S+ z# N2 C else if( m_nJob == JOB_ELEMENTOR )$ b) k/ @# F* G9 l
nPoint += 390;
9 @0 M/ p' |0 Y0 p' E, W/ g' e0 y+ R else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( k3 \' @% I! C: e* K. o nPoint += 120;
9 x" H8 B, L, |- S! R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% `- }1 |* ^1 V; p0 n: F( i2 i
nPoint += 150;: A/ D' A9 [: Z6 Z- ^/ O% K
else if( nJob == JOB_FLORIST_HERO )
! Y! q6 M8 d2 {# @( v% O8 [) p, C nPoint += 160;3 E" I% P! [" `! ?
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
X5 n- B5 e( l% ^: A/ r* ]; ? r nPoint += 180;% L" Z; w# D7 ~/ L# b
else if( nJob == JOB_ELEMENTORLORD_HERO )
' i: k/ a1 r; {+ o# `9 h nPoint += 390;5 x+ q! q0 L7 G- X
1 p& q8 d' R G0 j9 X AddSkillPoint( nPoint );$ D# K( `/ {. V( p
m_nLevel = nLevel;! {2 ?( c s3 g. n& F3 `$ }& a& x
* ~1 S" i N( v7 ]) s a
SetJobLevel( nLevel, nJob );
+ g) l7 I' q. Q+ {( V9 \/ @( s2 n0 u3 G/ c" K m_nDeathLevel = nLevel;
4 R' A5 Z' ?& `* q1 L; d! \#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans: ]3 ?2 e8 j! O+ V" C4 p
if(IsMaster())
y( t# V' K7 W {6 q& z" |2 F1 y5 N) w! z
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, R0 F, h5 S' y
if( nLevel > 59 && nLevel < 72 )
# |) T' w, k- i% N# e& R dwTmpSkLevel = 1;" [0 K5 P2 w+ W0 H* `! ?1 H
else if( nLevel > 71 && nLevel < 84 )
2 F! E& {4 v% K- f" l9 C3 D dwTmpSkLevel = 2;3 n, M5 B! R" H+ R& |- p! A0 [
else if( nLevel > 83 && nLevel < 96 )
0 G5 x7 D8 y0 B dwTmpSkLevel = 3;
6 H( ]2 W/ c' e0 } else if( nLevel > 95 && nLevel < 108 )
/ l0 z- R% D& L$ Q# k* r$ b5 s2 W dwTmpSkLevel = 4; o4 D+ N( n& U* K6 m1 q6 x
else if( nLevel > 107 && nLevel < 120 )* w) ^% M _# T9 m
dwTmpSkLevel = 5;
9 I z6 W5 D; b1 V* |$ { for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ Q: ]; l6 T. j% i5 R, l { " ]3 U& j4 h7 Q: O% x( H7 a
LPSKILL lpSkill = &(m_aJobSkill);& ?" l( |, B% \
if( lpSkill && lpSkill->dwSkill != NULL_ID )- F. Q3 T7 y! e
{6 Q( F5 Q5 |+ t* ] C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 w8 @2 U" F$ @8 y: u if( pSkillProp == NULL )/ f: b- \6 L0 \
continue;6 Z" G' s: B; {, R5 o# K' p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' D7 e" f, w! }! g e0 u3 s9 W2 m% j+ l
continue;
o- i. w" s6 e% S" y* m lpSkill->dwLevel = dwTmpSkLevel;
+ G5 R# b2 W7 T& E) R5 a" P }
% o2 {# e" P- o; ~3 [( F }& j( A3 @+ v j; [/ j9 a/ y
}& c# Q0 j0 O$ e3 m0 M d% s
else if(IsHero())) Q- _# Q, L3 Z( d
{
" R$ E0 I) }; J9 ?' e for( int i = 0; i < MAX_SKILL_JOB; i++ ) , }. ]; @3 n; }+ J6 H7 X a
{ a& E# n# P9 k* R+ m/ ]. D
LPSKILL lpSkill = &(m_aJobSkill);1 H! [7 C+ |: y0 n7 q7 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )* [/ u1 }" y: v" x+ h3 m
{
! V) {. }2 ]: k) W/ _" Y; V2 a k' a ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
* H7 H. N' b6 u9 D if( pSkillProp == NULL )+ {- r: \& f- W
continue;$ p: ~2 G# I; o9 g1 Y, }9 W# W; B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) d" R# ]- ]: i2 T continue;' V* D* {( e6 e! K: W. Y9 S
lpSkill->dwLevel = 5;
6 U" K6 _ W: U0 K }
' A* ]5 b. F4 u }0 _9 ^7 y0 x2 J: T. v
}
4 s! J/ A3 v7 }. X7 T' E else if(IsLegendHero())
) {5 H) ?' I R% w {0 {# Q: i8 L0 H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, o$ _% k6 _! P# O3 G { 6 b7 q! N5 B! ]$ J: J: z7 x2 y+ w% ^
LPSKILL lpSkill = &(m_aJobSkill);
6 q0 I' P# }3 j if( lpSkill && lpSkill->dwSkill != NULL_ID ): e5 a$ r) y" c! w2 ]$ m6 t* Y& S
{. l {! o, ?" R% ^7 h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! y" p& K% q l, H& z* _4 B5 A" E if( pSkillProp == NULL ), S" x) n# D" B; K
continue;
7 c" {, Z! a( [8 @4 F, @, R$ f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 W- ?! T. R, P! C continue;- u# A9 j1 i: y- v9 w! M8 y: \
lpSkill->dwLevel = 5;. A/ v0 d( p# J, Z
}" P4 L# k$ e c3 I% u
}
+ J, L% s6 r5 ?- g$ V& k. H }- ]: |3 T5 d0 k% Y. `4 e. Z- |- B
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans7 |6 P3 V) L% I: H$ I6 [2 U
if( bGamma )9 I0 O! j0 L3 Y1 i% J% f
{
- v7 j! Z. f$ h m_nExp1 = 0;
, ]9 k9 _7 S2 A7 \3 W: ` }6 V( @+ q! t5 @
( X" ?% ]+ c9 P8 M( A
( (CUser*)this )->AddSetChangeJob( nJob );# ^: t% `; I# ^6 u3 M8 m) i* \0 D
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- l) ^2 B8 `) ~0 U8 y( [& Q+ v& [7 u7 d6 A
! D$ l9 j. r. Y! O#if __VER >= 11 // __SYS_PLAYER_DATA$ h" t3 @* {4 o$ c- J k
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );) m6 B) r; B \; c/ [$ R
#else // __SYS_PLAYER_DATA: c: U( B, \4 r$ V5 A6 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( n2 V" i9 c/ X: T! j2 {+ I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 j+ U" Z3 Y& X9 F1 j" t0 F7 I# _
if( m_idGuild != 0 )
O& d% C$ u& |( f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. G2 y1 Q7 F8 s8 H" l% F
#endif // __SYS_PLAYER_DATA
& B- ]9 G" U! B, |5 R2 D SetHitPoint( GetMaxHitPoint() );
1 d3 v% B, V: K SetManaPoint( GetMaxManaPoint() );
& t3 Q0 h: T U1 B SetFatiguePoint( GetMaxFatiguePoint() );
1 H& H; u" d7 U A g4 m T if( nJob >= 1 && nJob <= 4 )7 I* d. R1 u6 `5 p) M
{
2 Q9 z; c" ~: W1 _: ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;0 x! x$ q; I2 g' Q7 {
m_nRemainGP = 28;
# ^6 C z/ z ]" T4 u2 M5 I }7 I+ r8 r+ @+ S4 o+ o; l! s
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
/ Q6 T3 I( s6 l6 {, @$ L {
; r% j7 k+ x( T1 Y6 X m_nRemainGP = 118;# o Q9 I) G8 D! A$ b3 V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;' l L+ K; Z- Q& m \5 s- f
m_nStr = m_nSta = m_nDex = m_nInt = 15;' P# V: u# ]) O, S/ r
}
3 Z7 S" f4 d2 k5 r6 t" p X% Q if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 V8 E6 T, a6 a$ O {
% i& v4 f* V; j) W' Q% Q CItemElem itemelem;# O* Y! A4 t0 j2 r( n4 i1 @" C
itemelem.m_nItemNum = 1;4 _; V/ Q% C$ S2 W6 k1 ?; s
itemelem.m_bCharged = TRUE;
9 w! Y" J' ]! S. @# |3 [: O BYTE nID;3 S8 ^9 |6 w8 {# z% d
+ ?$ }# T0 y! P" W4 g
if( nJob == JOB_MENTALIST_HERO )
1 b" h8 y' S' F2 L itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
, f& {* `2 b6 r% L7 s if( nJob == JOB_FORCEMASTER_HERO )
5 v( ?( V* Z7 d! D- X7 y2 w2 V itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' Z2 Z: N) @4 ~. i5 ~! f& {. k! R0 w7 ~
+ l0 Z3 u4 [' ~4 S P( o
( ( CUser*)this)->CreateItem( &itemelem, &nID );
. U# l. q$ P: K, i$ q0 {, r/ y4 u }
6 `# k+ q- F4 J; L) l& E/ b g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ _1 o. X. b/ F% C. |' } ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );8 w2 F; @( H: [. r# p
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. g4 e, ^' {' M& E8 T
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ k" \- \# Q; I$ E; L
( (CUser*)this )->AddTaskBar();*/; A% h2 u: `7 S
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! ?$ W' j- K a. h" I$ _' O#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?/ H! E" f7 k E9 N
((CUser*)this)->CheckHonorStat();
) |) E# \" B- `$ e7 B ((CUser*)this)->AddHonorListAck();' ]" P8 N) e4 P$ ^% \
g_UserMng.AddHonorTitleChange( this, m_nHonor);5 L$ j% e P- x/ q* s
#endif // __HONORABLE_TITLE // ′Tà?
, W% R* ?4 v& x* j }
) O$ H) |+ d8 f+ B ~' N- G#endif // __WORLDSERVER2 c; u8 p/ E7 L- B+ g+ y) u
}
) a% i' B0 u+ p
" K. n- [4 |/ F: a7 p7 w% {) r然后你进入functextcmd.cpp并添加以下3 ^% |" D$ H2 l; E# Y5 k
$ t' \2 b, t( \. N1 B9 Q代码:$ ]: \3 l; e7 e
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )+ n& e( r% Q, b5 d8 @
下面插入
- G5 U! `* o) C+ r2 t$ t: kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 ^7 n. D/ L. ^8 s3 i4 K
, C' N& t5 A& P: U# L. a5 W5 L然后你去' b( b% P/ b" b1 K0 d
& l, d0 G9 o8 C7 @) \% r代码:1 a+ X- e5 y# x- Q2 g+ X" g! F" G9 ]
代码
+ F) R- k/ U2 {2 p- vBOOL TextCmd_ClearPropose( CScanner & s )
c' P/ W. H: R9 ~9 m{
. [+ e0 Y6 B1 c3 ^( a#ifdef __WORLDSERVER
' u6 \" F/ m, ]3 F8 } CUser* pUser = (CUser*)s.dwValue;+ f* Z( |3 ]" E! [& J- J) b
g_dpDBClient.SendClearPropose();( l: R( b! V/ W6 Q/ D+ C
#endif // __WORLDSERVER; |. a1 x3 M/ ?( l: g n6 X! W# N
return TRUE;. ?$ U9 x1 p! m' V8 M+ N9 @& y, r
}$ G/ g, W" {' X1 p, ~ U8 D) ^
下面插入
% p: J p5 Q2 o. w5 N0 c( s0 r9 FBOOL TextCmd_rebirth( CScanner& scanner )
& x+ x! e4 a- u, W- I8 O) U8 O6 n{
) y& n# V/ J# n1 J. @& {! n! X. }#ifdef __WORLDSERVER* s4 i3 ]' Z) s/ L
CUser *pUser;
$ ]7 ~: N6 W' d4 O- ?; cpUser = (CUser*)scanner.dwValue;
. B- M) I+ P# Q* S3 iif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())5 h7 N7 u' Q+ \2 U
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% T6 S% e) }1 Z0 t8 ~: N/ }( Xelse
# V) _ }$ Z6 V% vpUser->AddText("你还未达到重生条件!");
7 n: T' C8 ]! V& b, I" }#endif
( A+ i; Q- H- K% t" [* _return TRUE;- S- x5 R4 J6 X4 p( L$ F
} * _. E4 s+ ?1 e
" O0 F. e3 R9 F' ]
; q, S3 f( `- I1 g! ]* J
8 ~) G9 O! Z* A) j' [- u( H* m. Q2 F6 u: _7 i
|
|