|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, w" x7 J% Y5 F2 Z9 Q& G
$ ], Y! G, z( A9 ~6 z7 A) AMover.h( v, J, r; W( f1 f5 u% v
代码:
% X0 V3 |0 u/ ~% r找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
2 ^9 c$ @; q: W4 w- G
1 I' ~ P2 U* h3 [/ ]/ }+ Z; k5 v下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! a( F& [4 G) M& c
: d) l! _' l! T T* U然后你去mover.cpp添加* U6 z6 q% v$ v2 [
0 S, [/ |0 p, q/ r4 A9 w" b
代码:" Q, U# m6 c6 o& r3 V
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
6 y. K5 T3 r5 q! b* C{' F7 D# K I+ b& `/ C
#ifdef __WORLDSERVER
! T) Y! s) ?# J0 [* j // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ g3 h6 j# @% h" y2 h. r MoverProp* pProp = GetProp();/ e, C1 c6 H3 ^$ l/ q5 I8 Q
if( pProp )
, x( |2 Q2 c9 B& [$ d {; [6 l% U7 ~: f0 [1 Z" x B
if( nJob > 0 && nJob < MAX_LEGEND_HERO )% v5 L6 s/ S* S# |' E
{
, Y4 E0 U2 @9 d AddChangeJob( nJob );
0 ?+ E6 Q0 f9 r) K; ~9 _: n2 N }else{
, p' b+ U2 g/ @! C( p5 C# u return;
8 n E/ l: q4 _3 E U, U! f }. |3 n! M- v5 z! K! u
int nPoint = 0;
, o9 ? }& N& } if( m_nJob == JOB_MERCENARY )
* ~/ \/ x/ U! C& M ? C V: ] nPoint += 40;
, X* W! H( x3 Z; A! a else if( m_nJob == JOB_ACROBAT )
/ b7 |. A# }7 j9 O# A+ l nPoint += 50;
5 P2 F! r/ y" i/ y else if( m_nJob == JOB_ASSIST )
- E+ o, i- ]' q: Y nPoint += 60;
, m4 t8 `( m+ F! L6 s else if( m_nJob == JOB_MAGICIAN )+ D, k6 I q- Z
nPoint += 90;
( _1 s& ~( k4 V' l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! \. `0 r0 q8 o/ a2 U
nPoint += 120;
2 T/ {; w7 w4 D6 S else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 ?5 Y% U* j0 G0 l
nPoint += 150;9 j& O2 W3 x8 a9 h l- _
else if( m_nJob == JOB_RINGMASTER )8 D* [( ] O- g3 h
nPoint += 160;
% J: F0 |1 `1 o: i! W- x/ e, ? else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )# }* T+ T7 ^* `
nPoint += 180;
* r( o" `% u! M3 D! I& e else if( m_nJob == JOB_ELEMENTOR )
+ Q' I! @, a/ L) V nPoint += 390;
1 x, B( A: D7 g' H1 h else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 r% a6 F6 |' u) a
nPoint += 120;
' Y4 o3 T2 x% [9 w, [7 A* z2 N else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
7 K5 p" m9 X! | y5 ]) ~3 I nPoint += 150;
" [, N6 P) V9 O4 ^4 L else if( nJob == JOB_FLORIST_HERO )
* Z% R# L* u4 \* c; B nPoint += 160;
r! e1 [$ u% }% R: G3 S3 B else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), Y [6 b3 g4 j2 L% ?
nPoint += 180;: s9 [: L/ ?, K+ a
else if( nJob == JOB_ELEMENTORLORD_HERO )
: a, D* p2 L+ f d* ? v. N nPoint += 390;# C+ D& }/ T9 @+ Y& ?
j( `4 @$ c; E9 }+ H V5 ] AddSkillPoint( nPoint );
4 n3 z9 B3 ]$ G$ _) O m_nLevel = nLevel;
" D4 n3 p3 i4 Y2 i- _4 ]( S
1 H. W5 E* r: c9 t( w SetJobLevel( nLevel, nJob );
& V) c1 E1 K- n! @. A. J! k: h m_nDeathLevel = nLevel;' ]8 Y$ T K* T: j. I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
9 n u* b/ T6 C: ~: U8 j* J if(IsMaster())
$ j q `2 g/ }( g" S {) i5 F7 B8 k: C
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* [! D. s! P6 ^+ r5 u- r7 V" R
if( nLevel > 59 && nLevel < 72 ). w% k$ G0 U; Y
dwTmpSkLevel = 1;
) l1 i: x; e$ w else if( nLevel > 71 && nLevel < 84 )1 E: ?7 X" b5 F2 x; x" Y3 }5 d
dwTmpSkLevel = 2;
) j3 F5 t3 I% A7 L( F else if( nLevel > 83 && nLevel < 96 )
6 l |9 Y6 O0 g; j- v; B5 E4 { dwTmpSkLevel = 3;! n# N. U+ |' L! k& o8 R# j0 a
else if( nLevel > 95 && nLevel < 108 ). ?, R: o) M4 v2 W+ n- Q6 _4 E# e6 v& C
dwTmpSkLevel = 4;
I- a, M" C/ Q& w# X else if( nLevel > 107 && nLevel < 120 )
d7 v0 j1 f4 f# E% T dwTmpSkLevel = 5;7 a1 O2 E; S8 }
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( a* R% U) t3 B {
# [ ~$ A. L4 ^ z1 Q1 R7 Z3 y LPSKILL lpSkill = &(m_aJobSkill);; C' V8 S9 K2 O, B9 j. ]4 x @
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; Q' V1 [- m0 m( }) J6 p0 E4 e4 o {; u* q6 z) D8 [ I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * z. W5 i8 T. d( g$ k. H: K) I
if( pSkillProp == NULL )
+ X% i; J( A* K* |3 \7 e8 v8 ? continue;, R5 O4 j/ [3 ^7 D# A4 m2 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& Q8 Q" S8 ~; v8 }! e0 }1 O+ K
continue;
: V( _8 X7 q+ V0 `/ ?6 C' m; s! x8 } lpSkill->dwLevel = dwTmpSkLevel;
2 U# @3 F- e8 \ }% O' j5 f- m: E
}& r1 O z, L( F* a! q
}( O& G! N, w6 T4 B/ L9 c
else if(IsHero())
! _) g! g* _% J6 k" f+ p {
0 w) j1 u$ R# X$ [! C7 `* [ for( int i = 0; i < MAX_SKILL_JOB; i++ ) - y! \; S' G: @1 d& }
{ - G/ `" ~) ] e. E0 K: e+ l* K
LPSKILL lpSkill = &(m_aJobSkill);
2 ]8 x0 E) n4 [( `3 h$ X if( lpSkill && lpSkill->dwSkill != NULL_ID )& P9 ?5 R; X2 C& D+ I+ g
{
' I# @/ ?9 T: I; ^% l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); , b" A4 ?4 Z, x8 U2 i- `: t
if( pSkillProp == NULL )2 L) v: R5 t4 w7 {) j* r- Q1 x
continue;6 F6 g% f: Z& Y1 h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 A5 R( [% _' z2 S continue;
& M3 e6 b' y& B$ ?: v$ `0 y lpSkill->dwLevel = 5;# O1 p( E( I# M$ W& S8 j4 ^8 U! K
}
, ~ P, t8 T/ x9 }+ P( S }
8 C! D3 ^# k9 k/ l$ ? }% G& y% t# Z: U% H& d
else if(IsLegendHero())+ b W7 r- k* \; h7 l
{; o1 t6 B0 u: @8 X! F+ K
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- d! V2 L" i& [* Z4 {' H' T. R {
) _. @4 e* H' K LPSKILL lpSkill = &(m_aJobSkill);2 [$ P, Z ]4 o0 Q# {* _5 P
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 ] R5 I& \# `. ]" q" U) l# n6 D
{ O, x3 A; I v* G. i- H- U1 `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 A8 I7 U/ g Z0 x, W# y
if( pSkillProp == NULL )% T9 \% h1 @* O0 X
continue;: r t) [- Q2 Z/ [% y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, Z- w( m6 W; ]* H3 |! K- w continue;# \, W* b* [' b: O- V0 z1 t
lpSkill->dwLevel = 5; F4 n+ `: P/ r
}. W# {- ~7 {3 x9 w7 p
}5 \$ g% d4 D: y8 p5 f) D& ?
}4 H. Y" |% F* T+ x6 E9 o
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
+ j3 b' F I7 J1 d if( bGamma )
" B: b5 n( V5 V) Q4 J" k# r# W {
& J( t6 ]7 f# o- o" I m_nExp1 = 0;
) m3 |4 V \7 |0 B0 F7 w2 m }
. q/ q$ f Y: @; W6 l* e( r) m4 D
+ {7 c" a/ c5 q+ N% Z ( (CUser*)this )->AddSetChangeJob( nJob );
+ W7 e7 c j% ~4 B& ?( u g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
4 [% z) ]) T/ I5 `$ p# E& j+ P
' \( }/ Y0 D8 N" i; u5 h% n& m
6 p) g2 ?0 V B$ D. u#if __VER >= 11 // __SYS_PLAYER_DATA
& j9 y' }' R+ i* H2 } g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 _; w& e' p" q) x- t; p: y
#else // __SYS_PLAYER_DATA
2 J8 w5 T% t3 ^3 L- ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 C" e ~; P) q, a* l1 [ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 m# N! n0 f) L/ w# Z l if( m_idGuild != 0 )
8 W3 ~* L% F7 K$ h g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 s! [& F* j" D+ A W
#endif // __SYS_PLAYER_DATA
* S6 c. q2 z( u1 E1 E0 e3 F SetHitPoint( GetMaxHitPoint() );* x0 n- r/ R U) ?! T
SetManaPoint( GetMaxManaPoint() );! l! X- ~; H2 z! p
SetFatiguePoint( GetMaxFatiguePoint() );3 U3 `4 E1 k3 j; r, D2 r6 [
if( nJob >= 1 && nJob <= 4 )
3 }: M Y- P3 E# k; B( W! ~% S9 [ {# z/ ]2 ^4 s" k- F! g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
" k- [, F+ f& v% }5 x m_nRemainGP = 28;5 E b% ^" x Y! P" r" \5 t9 a
}9 U0 A- I( J& Z9 h; a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )5 D9 h* O# i* O1 R1 D, |
{
# u" H$ }0 a+ d1 s+ X l m_nRemainGP = 118;
/ q) Y4 `7 r9 |1 [2 f3 Q2 j //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
- q5 V' \" q S# N m_nStr = m_nSta = m_nDex = m_nInt = 15;
5 R. T7 q/ a& i! d- M2 P }
. ?" Y; |2 i U% Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 |5 h7 U: {6 t: O: p/ @: t {$ _8 g4 c/ h+ P. G6 l; v7 `
CItemElem itemelem;6 o* |, g, A. H! S9 f/ v, |
itemelem.m_nItemNum = 1;
& r3 \4 a5 }# o$ O0 a itemelem.m_bCharged = TRUE;
! d, d, g+ M' D g0 t: T BYTE nID;
/ o1 M/ e& }7 Q A6 T. B% a" t9 a
$ ]$ V- ^# q6 s' E if( nJob == JOB_MENTALIST_HERO )
4 X0 Q$ P2 \2 q: o8 A+ n5 y, z itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ U. y9 ]) {3 X# b if( nJob == JOB_FORCEMASTER_HERO )
0 T+ M6 F4 C/ d/ R5 P, T2 B itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. `2 @) u+ R1 ?) V, F; B6 d0 y8 j) I& I( t6 Z; e; O" i
( ( CUser*)this)->CreateItem( &itemelem, &nID );5 C+ I) H7 S* z0 T5 m0 U
}
, C1 E, w$ Z; C' r8 Q @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# t. q, B |7 c- k% F7 m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
" f% D7 ?0 H, u" `3 Q ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
1 f% h$ Q: ?: r& r% h /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 l0 Z0 e) h' B ( (CUser*)this )->AddTaskBar();*/
9 F7 Q6 Q: }& v1 U ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); {/ r( y+ b# G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?* g( X. v; F) w* I1 l+ X
((CUser*)this)->CheckHonorStat();
- W3 ?, r1 m1 ^ ((CUser*)this)->AddHonorListAck();! `( ^9 {3 j' h" F6 ^5 ]0 \# C
g_UserMng.AddHonorTitleChange( this, m_nHonor);" x+ ^+ [- B) w$ D8 x5 K! V
#endif // __HONORABLE_TITLE // ′Tà?
* H6 u3 ?4 _$ a; H9 b3 u1 Y }3 r6 s5 g0 B5 o; \2 }2 U0 z
#endif // __WORLDSERVER
( ^2 o4 N& v, p8 b% I8 b+ a} 2 d" F% n/ H b7 _$ `# W
! [6 Y: i, h9 k# j
然后你进入functextcmd.cpp并添加以下
& i" v' D: S7 B. n# |9 [2 C7 X6 t5 [# I: S) u
代码:' y& _3 X/ [; Z% O# @: ~
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )# l; v" w! f" T$ X3 A3 ~! O( W+ j
下面插入% \2 O/ g1 C( i: x) ^( j; B5 X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
# e1 q& }) o' [- }2 b0 K
- ?6 i Z6 c1 V然后你去
8 y, Y, q' D% @, D# m) V1 t/ q
! R% b* n9 O8 k A9 L+ X* o! [代码:
( j) K4 \$ O1 L1 D6 ]% x, Q4 J T代码: S7 T6 q: n# H- s# C+ Q4 N
BOOL TextCmd_ClearPropose( CScanner & s )- `$ o3 S7 _4 t5 y1 p2 k
{1 M) k V6 R2 g
#ifdef __WORLDSERVER8 T9 F/ o3 A$ y: b( a, n" T. p
CUser* pUser = (CUser*)s.dwValue;% h( l9 `; p7 k) m0 c
g_dpDBClient.SendClearPropose();
9 o0 |- C- }" S5 R# j" Y7 v#endif // __WORLDSERVER
3 M/ X4 l+ Y! q [1 n7 K& W3 L return TRUE;( j/ x, v$ V. H4 Y# ]( n
}
' l. A k; x% T( ?9 t. O: F, K下面插入% P; r2 ?) J( s N( {6 O
BOOL TextCmd_rebirth( CScanner& scanner )
5 }6 ^5 q2 d# o# N& A: H$ r{2 I6 z) Y, X4 U" X/ o4 G# I: H, ~7 T2 Z
#ifdef __WORLDSERVER6 h! Y w `0 M4 s e, n; b
CUser *pUser;
3 s7 H. |1 q$ E% wpUser = (CUser*)scanner.dwValue;
+ H3 y1 a& f5 K6 R4 G3 i Bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& e5 ~" s4 ]3 U& F' O( }# F6 w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( Q R4 w, d5 o0 t
else/ P/ w1 t5 {1 |9 V# x
pUser->AddText("你还未达到重生条件!");$ Y: O! v! n# f t" g+ S5 c" }
#endif
2 A) I, H, Q7 L7 l$ f2 }return TRUE;
+ u7 C$ @' @3 J# k$ J( f! X$ v$ d}
! u: `) M- p0 D) _0 t# E! G$ F; D+ l- ?9 I8 Y2 P3 ^; Z
! V5 X" D2 J* B: D4 s$ W/ P
& _; n7 t$ T, e- `
4 k0 c2 M/ z' \, M& @ t \ |
|