|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' a! s! p/ J g4 O+ C
* t# A, W# ^9 ]5 S! Z, A
Mover.h
- k5 m' S6 h8 h: C' w2 I( G代码:
) S, r9 t4 @' ~) {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
: Y$ v* F/ H, l$ L* L C7 r* U
) L9 T# j6 U/ C0 Y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
; u: Q5 M7 p* ^+ C& A2 g% S8 r. z {2 `6 ^* a$ _- B: Z% d
然后你去mover.cpp添加# }" k. T" |7 Z% {$ r
7 w. J% g& q3 M
代码:7 s9 z. j+ L1 w }: G n
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 d7 h# y) a. F; W
{: t5 H' A/ O/ |4 g/ z' l- u
#ifdef __WORLDSERVER
6 ]1 j! Y9 {1 {% ?" {# W5 f // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó g8 w; V/ G% ]- \2 \. O* r! {
MoverProp* pProp = GetProp();
. C, _9 I0 L' p o- x if( pProp )/ Q! F7 Z, J: Q1 k) S/ J
{
* O% g9 U% m" g2 Y3 {$ s v if( nJob > 0 && nJob < MAX_LEGEND_HERO )' J' z4 y. ?/ n/ d/ T# e
{
1 t& L) r3 Y6 J3 O# H. k AddChangeJob( nJob );+ K/ r3 g9 @) Y6 u' x: {$ R
}else{
; z. X, J( @3 R. j: R7 g- D5 H- } return;$ `1 g9 b# N Q: f% X2 q
}( K. A# V( H% B/ ?! s5 [- y
int nPoint = 0;
3 `1 \ O: i) f if( m_nJob == JOB_MERCENARY )/ M/ V* y1 Q. W4 o$ d0 Z4 `+ e
nPoint += 40;! W' E' q0 Z, N' M+ Z4 s' N
else if( m_nJob == JOB_ACROBAT )
/ O+ @0 Y0 }: k; ]8 B4 Z nPoint += 50;
4 v+ }/ H/ X- s7 I3 [( ?5 a; e else if( m_nJob == JOB_ASSIST )
% l+ `6 U; p- E4 G1 m5 \$ J% | nPoint += 60;
5 c$ W- ] s+ r: S8 K6 `# z; H' F else if( m_nJob == JOB_MAGICIAN )
- M. X2 | ^7 p* G2 e nPoint += 90;
: \7 g: m) b) G6 e% G3 H* r$ v else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 h1 [& d: r z nPoint += 120;
# _' q4 _+ q# ~* M/ D# Z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
) l* `9 @ X3 |5 t nPoint += 150;
6 |" f4 o$ U0 _( k R else if( m_nJob == JOB_RINGMASTER )
1 [0 Y9 Q: e8 W$ B3 R" k4 c nPoint += 160;
2 j2 V& }% w' H6 l8 N' c else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ X9 U$ {+ s9 f# l$ Y; D. u7 w: `1 Y
nPoint += 180;
/ S; O* v& O* y" A9 r: a8 y else if( m_nJob == JOB_ELEMENTOR )% U0 b# h3 D) J; m5 ^
nPoint += 390;
; B/ I( Z. r& x% ` else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ); T. r7 S3 J/ Z
nPoint += 120;
i! N" ^ |8 \, J0 M9 F' O else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
" n- A- x1 [3 ?$ }# n" w! p nPoint += 150;3 a8 T- \7 s: j+ _) ~. s" r# [
else if( nJob == JOB_FLORIST_HERO ), B7 d; b" M( L& U
nPoint += 160;6 J) |3 F5 n+ }" S8 n+ n
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 ~7 }4 G$ O8 s. r7 J4 Y8 f* c7 M
nPoint += 180;
4 P% F# @6 o: x0 ]( n2 N8 z else if( nJob == JOB_ELEMENTORLORD_HERO )
: J+ G& y/ H9 z! m5 x% F0 {* y2 Q# X nPoint += 390;
& u) v' U5 K i8 m) `6 Z$ j- }* S" }' Y" m# Q% B# t
AddSkillPoint( nPoint );7 d6 F* F* y+ I U- i/ f
m_nLevel = nLevel;- y3 J h5 K F0 a7 L- {- q: W
, @6 m7 h2 N9 G# e+ q+ o' K0 {
SetJobLevel( nLevel, nJob );
: z1 P* J8 s! U& a- A% u" r1 S m_nDeathLevel = nLevel;
0 u m: s, \3 q; F#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ ^8 Z5 R5 J' {( O+ N5 C$ c if(IsMaster())
0 q& D# @% I6 E, i" p" @! t {
/ d% O9 ~6 @; ~' k. m) B. C2 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108; b5 E+ U, C# c$ X5 B
if( nLevel > 59 && nLevel < 72 )& d0 {' N7 b8 r* \- N8 _
dwTmpSkLevel = 1;
9 n: U8 F5 Q' [1 }, y else if( nLevel > 71 && nLevel < 84 )
+ X, H8 }* A0 k, k1 Z3 k" p dwTmpSkLevel = 2;; x, _ d7 I% e) N
else if( nLevel > 83 && nLevel < 96 )) q; P8 L+ u3 l# J7 L5 s
dwTmpSkLevel = 3;
- N7 g7 w- C8 n: P else if( nLevel > 95 && nLevel < 108 )
3 |, S) y/ D0 V3 S. Y) n, V. \ dwTmpSkLevel = 4;$ v% h+ _9 X, Y& ?1 Z5 n5 {- O# ^
else if( nLevel > 107 && nLevel < 120 ) q1 N7 y& V& E/ s, b2 ]" |
dwTmpSkLevel = 5;7 q/ u' k# b# g8 e$ i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) . ^& T; r" W3 ?3 Y1 v
{ 5 T3 Z. e3 e! Z9 [/ D" }5 C: R
LPSKILL lpSkill = &(m_aJobSkill);
6 m" |2 d- L$ c5 V8 {. {1 y6 S if( lpSkill && lpSkill->dwSkill != NULL_ID )
, W% q. X0 j7 L% l$ N {
3 [. Y7 h4 l9 r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ E* L% W- Z- J- f
if( pSkillProp == NULL )0 X( P; t/ C1 |% z2 v6 x
continue;
, ^' l3 L _. {" s: s s if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
" _4 d+ h- I; ?! w continue;
0 ]1 z1 U2 s9 p( F- \0 Z) L lpSkill->dwLevel = dwTmpSkLevel;
+ l$ \$ X2 ^* i }
% p" Q Y( n$ Z4 K# q- l }
1 l) L% m' }) w, N1 h: R }2 v+ S! s3 L) i8 f4 n0 ]- |7 c
else if(IsHero()) o" [+ V2 \" E7 f, k2 E, }
{- Q' b7 d& ]- A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 6 h) L! `' r/ h% Z! V5 O2 }
{ ! k; M0 c2 i0 R& }2 X
LPSKILL lpSkill = &(m_aJobSkill);
& j: H, @, H( v1 R4 H' v9 k if( lpSkill && lpSkill->dwSkill != NULL_ID )* w, L, ]* p1 @4 @" v; f
{
' c: N! I$ k% Q% M+ }0 R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 b9 @/ x' @/ O" j
if( pSkillProp == NULL )
7 V/ P" w0 b# _" V1 \ R: t: W continue;% U* |- e& y D" u" v$ c3 }+ r2 Q* C5 g
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). C% u) r7 P r% Y
continue;
3 m( z: H% d6 c: M+ a4 W lpSkill->dwLevel = 5;
5 C4 [9 \- m# X }
" S+ U; @* r8 @( }$ ~* h" y }. p% M" j4 y5 _
}7 A- C- _/ I! c1 A4 Q: d
else if(IsLegendHero())
. d) E7 j1 }- G {
; V Q8 _7 Z5 u" _; K for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 t" E8 Z2 j* a3 ?, B2 O& [5 l {
) ~* a3 g# _% g- t; w0 R: r& T LPSKILL lpSkill = &(m_aJobSkill);6 d6 k: D" M9 T7 `, s2 t3 m
if( lpSkill && lpSkill->dwSkill != NULL_ID )) x) x" ]4 J) @
{
# V" C) N$ ^( a. E1 }9 j3 s% y6 n ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 `& ]0 U& B8 ~" B if( pSkillProp == NULL )
9 d. g8 k: C3 U* [* V7 A continue;. c& _* ^7 T( w. ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 m1 E7 J5 j. C7 R& d y, z continue;
0 h) O. ~/ N3 H2 Q) c- w lpSkill->dwLevel = 5;
$ x: Z8 U$ n3 M ~& }' H8 K }
9 u9 `/ g$ s( O! k2 x' t }# ]4 ~ P$ e/ n
}5 ~) X0 A6 C% x* q! ^+ q
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans2 B* M) u' i2 ^6 |3 `2 u$ V0 ~/ J
if( bGamma )/ c5 i; ~3 z0 v9 R, b
{8 e" W6 M7 X5 S: q$ C
m_nExp1 = 0;5 r4 p5 W9 j |1 h4 T$ F
}8 M' t: d) @! v) w9 l
) Z" s4 B1 ]$ J1 n( P
( (CUser*)this )->AddSetChangeJob( nJob );
0 h2 `- _ |6 X# W3 F: c% Y8 B, A7 H g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 R" L* M' |) e; B/ N5 W: O; J
! `; s! q- o# j- y
) `- w" s8 F0 M* f; H
#if __VER >= 11 // __SYS_PLAYER_DATA
( z# Z/ U- Z# P& J g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 {1 D J8 b& Y
#else // __SYS_PLAYER_DATA) h$ i0 Q2 F" K. @7 S) q
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );# f; B4 T- {( k+ D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
2 V3 {; S/ x6 s: g" @: P- \2 {" S if( m_idGuild != 0 )
( n9 C& U/ c6 i7 @( f4 o. t g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );8 e ~6 Y- f) P! i- O
#endif // __SYS_PLAYER_DATA4 W( q& v0 d* |) |! ~8 l
SetHitPoint( GetMaxHitPoint() );8 ~9 p; A! r1 ?/ a, y
SetManaPoint( GetMaxManaPoint() );
: r' m4 s4 n/ T; p- K' P+ C SetFatiguePoint( GetMaxFatiguePoint() );# s4 s3 t: c# V6 a2 @& i( c
if( nJob >= 1 && nJob <= 4 )
3 d9 e( G' p* h$ b {
: C l: T; |4 `- M) ^ m_nStr = m_nSta = m_nDex = m_nInt = 15;% {: E5 u i5 U4 k
m_nRemainGP = 28;3 _% n9 l5 c2 `) a3 K9 r% m
}
5 i$ {" S, t" H v/ ]8 ^1 B if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )) @& h7 a. b5 |' r; n% x
{: L; T6 V9 Q6 l% ^; I( O6 ]1 G
m_nRemainGP = 118;
: ^2 N; R9 ?. m: n( W! P( ~# E1 V1 ] //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* Q( E6 U2 w* Q% m+ C1 P7 [; z
m_nStr = m_nSta = m_nDex = m_nInt = 15;& E* n1 Q v. j3 N) R- U
}/ ?, u8 a- K% P8 S) f) [
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ): _7 B# N9 `; Z; F" ^8 D# D
{
% G: t- d3 |) [! U3 [ CItemElem itemelem;+ }/ z' T8 g8 M
itemelem.m_nItemNum = 1;& _9 N- V: t h ]% N, ~
itemelem.m_bCharged = TRUE;
& K6 } O s. o; ` BYTE nID;, r7 d- Z$ x Q' ~2 O% ~/ L- p
- H1 I+ K4 H* j* S* i0 e if( nJob == JOB_MENTALIST_HERO ). }5 c2 K$ c- J, P+ |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* p' J! ^- P: S9 }& E/ _7 Z
if( nJob == JOB_FORCEMASTER_HERO )
5 p) l2 C& {; N% @9 C* N7 ` itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- X9 T2 ?+ ]% P' s, r( m1 [4 T8 R# g4 E7 L' r- G" b5 r; L }
( ( CUser*)this)->CreateItem( &itemelem, &nID );1 ^% O `. h! y! T4 ^1 f7 @
}/ c2 f# O& Y" r/ R! R" V
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );- z8 A8 R& p/ V2 a
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );, G1 g; }6 {- T8 Z0 ~
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
$ U9 m# n$ G% }% ^6 y" \ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( w* z5 R/ K% B+ P- V ( (CUser*)this )->AddTaskBar();*/
, z2 \2 F- W+ m6 S7 r4 r1 E3 }" g) h! E ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 q% x0 c) m2 ^
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. k8 F" q' |0 b a2 F0 [" f2 H
((CUser*)this)->CheckHonorStat();
' x- g) u8 v7 Q7 N. X- Q ((CUser*)this)->AddHonorListAck();
8 K& `; |% c6 h- R) c) U4 T; M/ ] g_UserMng.AddHonorTitleChange( this, m_nHonor);
) _' T% f" I" `) l4 O7 y#endif // __HONORABLE_TITLE // ′Tà?
; M# k/ ^ I& N) _7 r8 R }* {/ W; F) b% D0 v" j* A
#endif // __WORLDSERVER
* T; ^" m7 I/ _! [0 n} # z& e' T4 l) E0 ~. e
# \1 b2 _ Z6 S; e, Z; z
然后你进入functextcmd.cpp并添加以下6 a& S% ^$ j; z
) F" f! O. c8 t6 P U. @) F代码:' w1 |+ y& Z1 [9 N( R' I" c
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
# e/ ^. X/ S. D; e$ Q1 _* d o下面插入, B6 |/ H" S2 @8 X' X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
$ X5 O9 t) R; X! f% s b- G2 z+ M7 T7 }1 ]9 k; Y9 x
然后你去$ [6 }0 U7 h6 M* e$ o/ u$ L
" I5 @8 S/ ~# E% f
代码:
0 X3 y: Q& U+ M' ^* m代码: I. J3 v+ J8 i# V
BOOL TextCmd_ClearPropose( CScanner & s ) `4 J- W p3 I$ t" b
{* m$ f. w# X- Z4 [( r
#ifdef __WORLDSERVER1 Z+ D, {- ]* j$ |; Q- r: _
CUser* pUser = (CUser*)s.dwValue;. _( S9 c7 _/ J: _ K
g_dpDBClient.SendClearPropose();! u4 q! N$ C/ r2 [) M
#endif // __WORLDSERVER
" E/ M% I u) l$ C7 A3 I return TRUE;
1 x' u$ z1 Y% h7 \) F( x4 [}
# t0 M& ~* o/ c3 r/ c* M4 I下面插入, B" ~& J% E& O" l- G6 ~
BOOL TextCmd_rebirth( CScanner& scanner )
9 e" h y' o' ~, S. m{
: a7 L3 u& g. R# T5 L4 f. \7 Y#ifdef __WORLDSERVER. f- h' I U p. E* _/ E. z
CUser *pUser;
; K/ l" }5 [ H1 EpUser = (CUser*)scanner.dwValue;! _$ Q' D$ \. K- ^, `0 d9 W
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
' t i1 L1 I0 ^9 _, JpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);/ ]5 {3 y0 ?9 c# G; q9 n
else" U, v, L' `6 E( c: S6 O p
pUser->AddText("你还未达到重生条件!");
- h" `7 @& B, q3 o: ]9 e#endif, q& n# u6 ? l( g F
return TRUE;$ _/ I0 |7 f( P4 N& h5 y. p* ?
} ' s7 q0 j: ^; k, X* m
0 U, C" J9 C, R/ g. s: d
! k2 A/ Q( {# a0 {+ j$ h2 L# t5 s
J3 e* @! M" d7 A9 S$ I6 y. x/ v. _' {3 h/ K& V% u
|
|