|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 ]/ @- t* `4 T: F
! Z- |4 R0 c) N6 J9 ^8 {
Mover.h
3 }- t5 k; I( R3 i* U代码:) S6 k( O# Y9 L: v7 y% t' w
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
% C7 u7 b9 C8 s6 `# V* p; v7 e1 u! O8 n i. ~+ n; P; L# W/ j
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
) F0 c! O0 g! `# Z4 I' x- C' J" e( q5 i* J# d* l& G
然后你去mover.cpp添加 ^6 m q: e* G& H, P- I6 L
$ {; _+ W- j' N6 y
代码:
& M: k" Q) n" R) r2 J6 r) p. gvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: `2 g- K" U2 i) i{
7 |, ?* m# n6 E4 }& ]#ifdef __WORLDSERVER+ V, E8 U7 L3 \4 l2 W
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" G- q: x9 R9 N' V3 ^9 p
MoverProp* pProp = GetProp();
& y/ b9 h$ }7 J9 i0 b5 } N if( pProp )
4 z0 P# @* D; r3 ?/ q5 e {
# t% Q9 C& m4 n* g. T* w2 ?: o if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; m( Q0 x8 E! E* R$ G {
0 e1 ~+ B, h) j# P p AddChangeJob( nJob );
9 _3 A( y: j* S }else{0 Q2 D5 r" M# S% J, q
return;2 j9 B& p. _5 B% L- J. v
}, N" k) U/ V% H, r' G6 ]
int nPoint = 0;" O, a/ W; X' R" T% \5 T1 p1 J
if( m_nJob == JOB_MERCENARY )6 R2 O* X) N+ r9 p3 d
nPoint += 40;
5 ~+ U) ?' o, T. C5 A8 S else if( m_nJob == JOB_ACROBAT )3 T9 r1 \7 n+ M
nPoint += 50;
O9 Q# g. y& I5 a' {5 _ else if( m_nJob == JOB_ASSIST )
9 {* L3 Z; G; F1 w! C nPoint += 60;) X. i* s" `+ X; L
else if( m_nJob == JOB_MAGICIAN )
" C, m6 Y" l3 C' o" a* m nPoint += 90;
9 C- h4 N7 c: F) \ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 J$ c# @( w1 h% Q; g" O: d# W p
nPoint += 120;
; V) q8 D& ]3 h9 E8 T0 G4 ~) R else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )) x S+ e4 d3 ~6 W
nPoint += 150;
6 _& r% \4 {9 E/ k1 M$ R else if( m_nJob == JOB_RINGMASTER )
7 `6 w7 f7 i, n nPoint += 160;; K9 l, i/ G5 a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ X/ @5 P1 _* o N, Y nPoint += 180;4 p ~, r4 L7 z8 W4 |* R
else if( m_nJob == JOB_ELEMENTOR )
, S. f) N- k$ p& g8 P- d2 A nPoint += 390;
' Q6 _+ N# K( D. W. F2 l/ Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 T1 E5 Q) @+ C8 K nPoint += 120;. y# M/ f4 R+ p9 `, R
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )2 P; ?, x1 J# J2 r2 t- B" |
nPoint += 150;
, m7 p- F0 [2 \ else if( nJob == JOB_FLORIST_HERO )
; c4 h2 X. T0 y$ Y. Y/ f3 \ nPoint += 160;+ b, I" v4 s4 K2 O. F# N
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 h) E3 N9 {, f0 D1 T2 G nPoint += 180;
. \. m+ a( S3 I+ ? else if( nJob == JOB_ELEMENTORLORD_HERO )6 G1 ?' o# o* h4 n# ~% T4 A
nPoint += 390;& P v7 U. [7 c( f) l* Q, ?
0 X5 |# B+ g! @+ I/ ~0 l9 e! j! G AddSkillPoint( nPoint );( a1 E6 \/ t& c4 y2 M0 J3 _+ m
m_nLevel = nLevel;% V7 o/ M8 o5 t9 ?2 u9 \
9 {0 W( n% N: Q; s; P4 K3 U. A
SetJobLevel( nLevel, nJob ); W5 m: @2 t; U5 F: l' N
m_nDeathLevel = nLevel;( n% z g. S6 Y }: E3 |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 Z9 s" l" G5 y& {- K! z/ @
if(IsMaster())
/ W# | g* M$ q M {. q, T, m3 X0 O. Q, e: s" e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
% p) |4 z5 V9 d" R if( nLevel > 59 && nLevel < 72 )
$ z/ Z2 n. H# H' U* N dwTmpSkLevel = 1;
$ X. M- _) U( [+ a else if( nLevel > 71 && nLevel < 84 )
! H' i! [+ R" z% [2 V dwTmpSkLevel = 2;
: N7 ~' G9 T; Z$ t2 x9 N else if( nLevel > 83 && nLevel < 96 )
5 I9 C6 k. M/ V/ G0 C dwTmpSkLevel = 3;4 E3 O; | B' X( `! \9 W' B; f
else if( nLevel > 95 && nLevel < 108 ): U! B! F7 _. F% y Q
dwTmpSkLevel = 4;! Q, F4 E- p& P
else if( nLevel > 107 && nLevel < 120 )# W" R6 h/ Z8 o. P- a; [8 \
dwTmpSkLevel = 5;
/ p) B) z( v! L for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 }! K3 x4 r. }9 d& Y {
v9 s; V( l3 o q( U4 S* E7 w LPSKILL lpSkill = &(m_aJobSkill);
; x8 _$ a+ r1 q' j if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 p: j9 j! c6 o2 i {
/ ^) Z& V5 E6 a6 a9 q9 x# v. N ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); : r: M+ c6 P. N& K- v) b4 j& L; O
if( pSkillProp == NULL )
5 C) @, k- _0 q; v5 s2 }6 ]: d2 x continue;- z; F; ?* n q9 K: b- e# w2 D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( h k" G. }% t |% V1 s3 _
continue;
% ]) h4 s# F, \& V* a: I lpSkill->dwLevel = dwTmpSkLevel;
" W* b5 X. R. K' x }
& q* [+ D$ x7 N) M/ i }
% {4 K" @1 Q, |) [( w6 a. v }
8 C* X1 ~" L4 D8 E; h. [ else if(IsHero())# S' l' G) w! d
{3 S c/ \* U/ d& O
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ Z9 Z T3 i( w2 q: ~; k4 ]0 t* k* v { ; i3 P1 v, e; A7 l( S- D$ e
LPSKILL lpSkill = &(m_aJobSkill);
3 d$ n, ^0 G( L; t4 R! _% \& [ if( lpSkill && lpSkill->dwSkill != NULL_ID )7 w, Z) \, d2 W' i+ [0 H* n. k+ F
{. F0 N7 b2 ?5 |6 W2 t& T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
7 s8 k O: c6 @; ^6 L# d, ? if( pSkillProp == NULL )4 d. u+ ^, V! s9 a0 {: o& A. a
continue;# R/ `; O4 ~1 _+ K" X N' X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 K) k# j+ E* d2 M# c8 f( g
continue;
3 \: A8 ^/ b7 K7 ^) H# ^2 Q# u9 n lpSkill->dwLevel = 5;
9 G) {9 u) Y: O }" g, P6 \% D0 R6 H+ K4 ~
}
M! O2 ?6 `0 j, V }; q! H8 f& v% F
else if(IsLegendHero()). @) e6 P1 j8 }! {
{1 h8 s" I' c2 P4 `9 [5 S
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' O; e* [% I, _* o! l* P1 p
{ , J3 H3 H" l; h1 Y& Z8 H
LPSKILL lpSkill = &(m_aJobSkill);* N! Y8 H/ @" Q5 t
if( lpSkill && lpSkill->dwSkill != NULL_ID )9 @4 z( C% K& U- z
{
. J4 O, E1 L4 W+ k7 y5 p' C0 d4 x+ W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & G# C% }' m9 q9 r6 X6 m, V& `
if( pSkillProp == NULL )+ h0 |8 a7 ~7 |7 A
continue;
2 e" O, G7 i& S8 {) d if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 b' u9 k( ^8 F/ `+ ` continue; |. K* C. E: S- y" l& V. f# i
lpSkill->dwLevel = 5;/ R+ J/ ?8 |0 d1 w6 r- C" k) ^
}/ _0 l; u3 \* B
}* l4 U0 Z# T; y( s1 \( _) A h
}8 J9 k0 y# s/ T) D V& k! Y) Z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. E2 E7 i4 K6 r& a/ C- T# A; ?* Q if( bGamma )2 h$ h8 U! e6 G) I
{- t0 R5 ?) ?) X7 y4 Q8 J
m_nExp1 = 0;! L# k4 P9 ]" e" w2 O9 z. ?+ i O
}8 v% D# V3 k! n; ~& c
# k" x j2 W" u0 Q( F! O' |+ q
( (CUser*)this )->AddSetChangeJob( nJob );
" `% \: \2 R) ?( k7 y. P g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );* A" x( {( D* c
$ D1 n7 t9 O f* @% Y
* [! G2 Z A- Z* W Z7 O) R! l
#if __VER >= 11 // __SYS_PLAYER_DATA
, ^# A: v6 E- M; N d g_dpDBClient.SendUpdatePlayerData( (CUser*)this );0 z( ~# G' ]$ `6 c. S
#else // __SYS_PLAYER_DATA# P+ l3 D0 k2 C' Y- @9 ]
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );0 l4 J$ ~% B+ t
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 w, Q% X& p9 p: \
if( m_idGuild != 0 )
. e* \( R8 a7 t/ B5 {, }3 t! j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* u# X2 l, U3 f# ^#endif // __SYS_PLAYER_DATA
, x) j% O* v2 _4 A# @ v, d8 m# T) ~ SetHitPoint( GetMaxHitPoint() );8 s5 M; _9 c$ m m( R) i8 w( _0 i2 z( X9 c O
SetManaPoint( GetMaxManaPoint() );9 I/ l2 e$ C J$ ^8 N( O
SetFatiguePoint( GetMaxFatiguePoint() );$ m* P6 c" `8 k6 M* d7 f
if( nJob >= 1 && nJob <= 4 )# `/ h6 j! p8 V1 i- }
{& F+ p" |/ v1 `5 W
m_nStr = m_nSta = m_nDex = m_nInt = 15;7 r! Q, ?4 A( Y8 A: J+ R
m_nRemainGP = 28;
% u) S: f" P# V8 P& {; u/ C }7 T: N! Z) w. [. _4 D. a
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
% P! X1 _4 O p$ m0 C9 U {5 j K" v. E. K3 b1 b, \
m_nRemainGP = 118;
6 W4 _+ G5 H. I: t$ Z- J //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;) N: |5 m* F& A6 d3 m
m_nStr = m_nSta = m_nDex = m_nInt = 15;' C! L$ R8 k' J/ H9 ?* Z
}
- ?# F6 K4 J; K8 e1 C if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ P& w6 F& q% e {
+ ?# z8 q* R5 b CItemElem itemelem;6 \+ M! H! c, A$ ?, L
itemelem.m_nItemNum = 1;
; f2 F) u& [$ T; _, _+ V. L ` itemelem.m_bCharged = TRUE;
1 B# N3 M8 y8 C; w2 W% H" e BYTE nID;
1 |8 f* g" b/ B2 C/ j+ ^& Z/ s2 h- H; u
if( nJob == JOB_MENTALIST_HERO )
+ H* e4 q. Q, ~% T1 e3 _: ~ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;* b3 K- h0 W7 a/ B( g1 S6 e0 j7 V
if( nJob == JOB_FORCEMASTER_HERO )
; ~9 w9 B* q0 R; W# T: L itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
j" d, ^- }! r6 V/ j0 C. v, F
/ u+ M, y+ T6 h) Z ( ( CUser*)this)->CreateItem( &itemelem, &nID );
. J& k5 Y8 ?" w8 t8 J: E. _1 r; x2 { }- x% W0 M5 l0 u
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& E2 u& F* U3 y2 P
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; |/ w; ?6 `$ ^0 O1 T1 A0 S ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ ~, B- d$ D1 i E /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% O/ F+ a* ^4 ~4 \' T7 x& b
( (CUser*)this )->AddTaskBar();*/
9 e! j; z. f" l8 o9 x ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ T/ j! ]" c5 z; h9 T5 `
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 }. ]& M, \# E ((CUser*)this)->CheckHonorStat();# q7 S5 H+ Z5 q" s8 q
((CUser*)this)->AddHonorListAck();
# e4 D1 ~, G% | g_UserMng.AddHonorTitleChange( this, m_nHonor);9 ` Y; G: y; i0 S. S8 h- s
#endif // __HONORABLE_TITLE // ′Tà?: P! V- v f' _6 W4 v3 i+ y
}% T T2 P- c! ^ w
#endif // __WORLDSERVER
% ?1 \! Z9 T; q2 H6 t; \$ ]} / Q7 e+ U% s% }% t9 U m5 l: l
1 q- T, P( r+ I' {" O2 _7 r
然后你进入functextcmd.cpp并添加以下
, t! J8 Q! S1 y7 [4 ~7 Y7 T) Y8 n' I7 T
代码:
" J9 |. ?6 F7 }2 s6 L6 \ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): V$ o& v+ A: F# _
下面插入
9 m7 a' t F; q+ |6 S& YON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ |. C7 ]) T; X: A5 U4 Z/ U% y# Y
1 n1 G& f: R' c) O
然后你去
1 U' M4 D$ V$ n* i1 C3 l0 i7 F8 `8 C- h. K: `; p7 A* v
代码:
5 s$ ~+ S& |# i6 _1 l- d/ d ?! E代码6 X9 ~# |% P! I! ^" h; d7 u% d) D
BOOL TextCmd_ClearPropose( CScanner & s )
# b, A# e j! |% c% e{& n, R: _* H4 M9 I
#ifdef __WORLDSERVER0 V5 J; i* b' w% x( }2 H3 V8 [8 u
CUser* pUser = (CUser*)s.dwValue;
% V7 |3 [- h( | g_dpDBClient.SendClearPropose();3 i0 }# n( F L' y5 m6 n1 H
#endif // __WORLDSERVER* B8 y# I9 M: N8 E0 R9 _
return TRUE;
$ s" f* {8 h! K}. }# `+ m4 u6 t0 t
下面插入* k: ^% |4 [5 q+ |
BOOL TextCmd_rebirth( CScanner& scanner )* ^2 p6 Z! B3 }( Y O
{2 P1 @2 e3 F4 j; o! X
#ifdef __WORLDSERVER
) g4 Q9 U c/ xCUser *pUser;) K9 ]: o" C4 |# o/ f) p7 [& O
pUser = (CUser*)scanner.dwValue;* s7 z' H$ g3 {! A
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). e/ V( {6 o$ B' e
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
w& s# M }2 h3 selse
+ X) p' ?9 ?; B3 Z: l K* \pUser->AddText("你还未达到重生条件!");
& S" }9 W; j' R#endif. p3 X/ L$ {) H1 [7 @( \1 w0 n% M
return TRUE;
5 g% T3 s) s+ z) f; [}
! h- c9 b- J4 a2 a, t5 ?) S8 v7 _& j6 N- `) V
3 [$ `1 Y& R! x* S9 l! Q8 M( U V0 g
& T- F }$ `( L( ~$ F! Q
! @. n- Z8 l# \5 s
|
|