|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
. l$ j {6 q4 L; N, `! c
2 T& x0 \; M$ K% Z0 l& m: Q$ z0 d# sMover.h% X0 ]$ K3 k& O4 P$ g
代码:1 |4 m" w) I) e& F1 G
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
4 C- U3 H9 s$ W8 O" V9 Q
j& J* R- E* B1 u/ X下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' M; x7 ]5 A: ^! ^# I0 ]6 G* @ j
6 d. z7 k1 {/ i2 Y4 U* @
然后你去mover.cpp添加
1 R v# d. k1 _3 m1 A
3 y; \- q6 @- r/ K' B6 A1 Y# @ @- a6 x! M代码:
, w- S8 b% x, }1 }void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 X! c% P0 S, a K
{
( c4 c$ K+ S: E Z( n: j#ifdef __WORLDSERVER0 _2 R% Q. Z4 J& K7 q/ x
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ E% J$ b$ ~) d$ d) s MoverProp* pProp = GetProp();
: L2 f2 i& _0 i/ m if( pProp )6 H# ~* Y# s9 c# a: q6 e
{( o5 X9 K: X( M% K3 V4 w# ?; P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
% A; f1 B6 B$ X% g9 s7 |- F {( ?" x9 u7 a# S2 M v' |2 ~/ J8 G
AddChangeJob( nJob );
! t9 a' U8 W1 @' T }else{
4 q% _) c! r0 u+ V return;& L" ]8 w0 Y) a+ u
}) K5 {& H; s) J
int nPoint = 0;& b; T: H' v8 v- g7 \* {
if( m_nJob == JOB_MERCENARY )" A1 ^* [' q9 {; N
nPoint += 40;
2 f1 C+ E! O& P$ x/ Q+ ]( M else if( m_nJob == JOB_ACROBAT )
) n8 O7 X0 R8 R. K& A: c( `8 N nPoint += 50;- p# K: H' s$ T* Z) r' Z5 R
else if( m_nJob == JOB_ASSIST )
* A& K$ E" [5 v nPoint += 60;
/ W \) U6 h* I# H% }! n else if( m_nJob == JOB_MAGICIAN ). r- Z& n, u' t7 e' Z
nPoint += 90;
3 c/ f$ K. S; g- G& {) S" `' m else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
$ w$ n' n& ?1 ?0 n: i8 o9 [' ]9 d7 w nPoint += 120;
0 D/ |: [2 M" {; @. e( s6 I8 F else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% N- \& _9 I* r9 ]3 h
nPoint += 150;1 X1 P2 }0 h, e, B3 D# h: i. u6 d
else if( m_nJob == JOB_RINGMASTER )' z4 J+ M" v* Y% n! s
nPoint += 160;
6 Y0 ^3 g; {! ? else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )6 S+ O, m |7 X* R+ G1 x" ^3 Q* R
nPoint += 180;4 Q4 p, c, i: q8 A3 G5 @) m
else if( m_nJob == JOB_ELEMENTOR )
8 S8 ~- \( `3 w: ^$ g3 s+ W nPoint += 390;) _, ^- I, q/ _' M0 K/ A. y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
& i: j7 M% \8 ^5 J! H5 }0 a( r" ] nPoint += 120;
, t$ \1 k* q& o$ a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) _5 C8 |/ H: z# }! K9 }# ^
nPoint += 150;- m( ^. k/ y- f' P, L
else if( nJob == JOB_FLORIST_HERO )
3 R* |! a& T9 C' J4 | ~ nPoint += 160;: p$ Z, [" r9 `, Y5 d p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), R- u9 z B- t8 U6 c4 z
nPoint += 180;) A2 m3 Y- N! i/ G
else if( nJob == JOB_ELEMENTORLORD_HERO )
4 ^. Y2 ?" K& \6 V8 J, U nPoint += 390;9 x* {( ]: B9 b, d0 Q; w5 K
0 T5 {. g5 F' {; X. a AddSkillPoint( nPoint );$ j/ b9 I8 e" e
m_nLevel = nLevel;# }; `/ H( ^4 U- x- I& ?6 {, Z6 T# o
" D2 T5 t5 y& Z; `, u: @: g SetJobLevel( nLevel, nJob );) k9 R; [0 r8 ~' w. J' R
m_nDeathLevel = nLevel;
$ x0 I. m5 Z# y1 ~+ t& e8 h; w# G6 }#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ a$ T! T3 S" g$ o2 _2 d6 ^
if(IsMaster())
% x, q5 s0 @" l* e8 l {
2 [, E% p0 l) R! h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ i. i: A/ t, A1 u! _2 A/ I! c
if( nLevel > 59 && nLevel < 72 ): j$ ^* @$ o. ~ @. g+ l! x0 L6 V
dwTmpSkLevel = 1;5 x0 ~! {2 p9 K# ]& v) |
else if( nLevel > 71 && nLevel < 84 )* K1 _: l* k% D
dwTmpSkLevel = 2;
/ s m# s5 x( v' m& O else if( nLevel > 83 && nLevel < 96 )
4 W$ K/ B5 F- Y- W) |, V dwTmpSkLevel = 3;
) G% ?6 U" @0 g* g4 ] else if( nLevel > 95 && nLevel < 108 ) a! Y* C9 X: S w/ [
dwTmpSkLevel = 4;9 |7 }" n( q; q9 f. @
else if( nLevel > 107 && nLevel < 120 ). {/ q8 r6 Y0 D; d7 p+ X0 y( E1 y
dwTmpSkLevel = 5;
' _$ Q0 b0 Z- L! Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) f1 t2 |0 X/ h& i
{ ) [/ a8 p1 t" S
LPSKILL lpSkill = &(m_aJobSkill);
% N G: H) l) X$ Q4 U( X4 b) y if( lpSkill && lpSkill->dwSkill != NULL_ID )
& x/ F: M. C. e" T. v {$ M" x$ o4 i: U8 l. L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( A0 x; _" u B5 v2 J2 y5 ~% o- X
if( pSkillProp == NULL )
' C+ {$ b) ]: f X continue;
: q; l9 B" u+ F8 N" i2 f if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 x. u$ F8 y. P continue;( ?- I+ e5 D% @8 |
lpSkill->dwLevel = dwTmpSkLevel;- q6 _5 h8 n4 W2 G4 K, M8 ]
}
9 ?1 _+ o. X% X! l8 X2 F% P }2 w; P$ N0 o1 {, R) ?1 w
}
8 Z, N4 E3 P8 ^- p. b7 a else if(IsHero())
/ A0 M8 A, x. ?) F( w( u, x {
& E1 {* Y! Z: F) l% A4 F) O4 Z for( int i = 0; i < MAX_SKILL_JOB; i++ )
; h6 @' z" i; ?* I3 ?* p1 r+ A4 o% F {
, e# k% O6 C" d3 X# l4 G LPSKILL lpSkill = &(m_aJobSkill);) f3 l0 x0 l+ Z3 S
if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ }; v& ?0 z( D" N6 Z" H' M {
+ D; V- Y: Z8 Z# [# z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ R' M. x' V: ?5 B- I o0 W if( pSkillProp == NULL )6 ]+ d5 w8 f b, u [, A' J
continue;8 a% @, m3 |' Z; o6 w7 d0 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 X+ V5 I# J% {& B* v& M
continue;% u: v. p6 |4 L! B0 K
lpSkill->dwLevel = 5;
+ N- c+ c3 E! `* r" [ }6 u) M- }( ~! ~, t/ w! C
}
' p% f# q& J) |% o+ c }
5 ^+ L; Z, b9 S0 ^- T' @ else if(IsLegendHero())
! l/ B5 d& H5 T# ~2 X5 S1 ~ {1 s4 q& `8 K% R4 Q$ J% m% P$ o
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! R) X1 M5 X: o& I. l3 a) `1 u
{
0 D2 h z8 c3 D& H& M LPSKILL lpSkill = &(m_aJobSkill);
6 a7 ?6 l# W5 Z6 V# F4 h# K if( lpSkill && lpSkill->dwSkill != NULL_ID )0 O& w* t; r, `1 {- g
{- I7 @- t) e4 v8 {# o) M8 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 |3 j; y+ V D; i/ @ if( pSkillProp == NULL )& ]$ M' N# V' F; R4 ^: K" n, n
continue;
" u2 K6 O% \* C, {% {* J, h if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) e: G) W; \: a, _: N& Z7 N0 s$ x
continue;, j/ O- w9 N2 E: ^( U
lpSkill->dwLevel = 5;
- E) C' ~4 r" L- L }
- ?4 |& z- k! y9 i, H }
" F# I9 c8 S+ g2 ~9 r }6 ~, f% o+ X. _1 I
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
5 Y* c: S; M8 H9 y2 } if( bGamma )
) j+ B0 r; W( ^* a5 M/ ~6 V9 U3 i {
6 ]7 B0 o6 _ N4 ?1 N* P3 X: k m_nExp1 = 0;/ T9 q" f$ C0 `' o# T( y
}7 A% @% {0 K! V( N7 }
& F% `3 o/ z+ M" E4 A4 W5 P+ q
( (CUser*)this )->AddSetChangeJob( nJob );, l9 e- f% f: K& X5 _5 O7 L, n
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
% A5 T, H: g* \$ W/ P. A8 u% V, k2 Q) T( [1 {% @" J; D0 B" ]* p! U
9 z- k# @ k b# e) d. D
#if __VER >= 11 // __SYS_PLAYER_DATA
- y& ~ |% }2 |* p1 X g_dpDBClient.SendUpdatePlayerData( (CUser*)this );: Z! G+ ?$ z' K L0 b U, v
#else // __SYS_PLAYER_DATA- P$ h: B4 N" w. Z. ?
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 V1 L, Q; ~1 Y) y' { g_DPCoreClient.SendFriendChangeJob( (CUser*)this );/ z# K8 z7 I! S! a
if( m_idGuild != 0 )8 G4 _7 t1 z8 ~) Z9 n
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );+ e; Z$ N, x* `2 C% x
#endif // __SYS_PLAYER_DATA4 a9 ]1 \) F. z1 C. |# |$ d! c
SetHitPoint( GetMaxHitPoint() );1 x% h2 ~: W8 O% O1 x$ x
SetManaPoint( GetMaxManaPoint() );
7 W- ?% k; ^: X9 C' \ SetFatiguePoint( GetMaxFatiguePoint() );
7 M2 ?7 W3 w. D4 v, k1 j! t if( nJob >= 1 && nJob <= 4 )( s# ]" T; F# Z$ z# |
{' V" L; h# r. l9 f, b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
+ Q+ l6 } k$ v, p m_nRemainGP = 28;" g( Z$ w4 I: R$ M7 S- \$ k$ i* a
}& z; Z2 @" b4 q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
. T% Q4 e* W5 F( Z0 { {: _. @: S! n" i" x6 w& I) Y
m_nRemainGP = 118;
" ]- u0 z( [) M$ h% f //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 Q+ N3 ^/ N; E2 n
m_nStr = m_nSta = m_nDex = m_nInt = 15;$ F: Z6 W; Y" A, b
}
- [* U$ a8 t& o) L7 |/ _' u0 X$ g if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 V6 G) }, }' M# |. Y
{
' ~! E5 y+ O" \ CItemElem itemelem;
7 r$ p) n% `5 f# p3 V ^* Y itemelem.m_nItemNum = 1;" s) N; K3 g( W0 Q
itemelem.m_bCharged = TRUE;5 h- O) C4 t7 s
BYTE nID;0 l B0 H, [( ?) a0 n, I
# v" P/ C' F" G U( z) L
if( nJob == JOB_MENTALIST_HERO )
2 g) P# T( v0 [# I% l itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;2 r/ A5 W! F; f) A: Z/ k4 F4 E
if( nJob == JOB_FORCEMASTER_HERO )
2 A, v+ \7 R& j% {+ L2 t9 r& z1 m itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
: D5 x6 A9 z; q7 X
* D* m5 P$ s R% b ( ( CUser*)this)->CreateItem( &itemelem, &nID );, J! r4 m0 h: Q% z+ }4 G
}
& |" P/ c2 J8 C: T) B: C g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
4 y4 z Y( g- Z# K; i ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); ^8 I1 g6 o; f% T' \5 ]( m8 Q- t
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );8 \& ?" ]1 Q, f: @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );! B9 U" Q2 {2 B. A4 s# W- Q1 L
( (CUser*)this )->AddTaskBar();*/; S' l3 ^6 ]; \# K) c
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
4 V' g* i# w4 I. t! [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 d* ~& S7 z& [+ [! M! q M ((CUser*)this)->CheckHonorStat();
' J# v; c: P1 _& i1 D ((CUser*)this)->AddHonorListAck();
4 \0 N/ o$ J1 n1 Y g_UserMng.AddHonorTitleChange( this, m_nHonor);6 ]9 \2 @- g1 r
#endif // __HONORABLE_TITLE // ′Tà?
/ H8 `+ z! T) J' p }
2 E$ F, W" S* L1 S T. b& T* x& Z6 u' z#endif // __WORLDSERVER' u( _7 o4 ^8 ` z! i9 ]
}
3 N0 m; }! X; k% p- N+ C" U, a3 f# D: |- S1 Q# ^( V" K, p( j6 U
然后你进入functextcmd.cpp并添加以下* f& o4 E1 G% Z! C. c7 I& J0 m$ t& M
$ Q' \& l! g0 J, D& T
代码:, m6 F, W) G I9 @7 q/ h# J
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )6 j- j( z: j m% _" h& d
下面插入( S: G! d& L8 j: F, I5 W" C
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % v7 \9 u. R* n4 y
" A" v! Q) Z! l2 n J! ]$ ^
然后你去, U" ~- z6 Z+ D' w# Q8 J
% F+ u% s9 N( [# N! V
代码:
- S1 s6 Q: s- X& t5 l$ B# T代码
; x! p& u9 o+ Q3 o5 s# ?3 lBOOL TextCmd_ClearPropose( CScanner & s ). m0 N9 Y5 H+ _# c% }1 m
{% f! a+ Y4 ^& ]+ `# v
#ifdef __WORLDSERVER
% @4 I+ Q* f! E. t( K1 C CUser* pUser = (CUser*)s.dwValue;* u% e! ~ e* m' _3 L+ x( ~
g_dpDBClient.SendClearPropose();
: T$ g/ l# Z' e& Z$ a#endif // __WORLDSERVER
. M+ M) t* O9 ~2 W) D; l1 ~ return TRUE;
! P9 ~6 b# z7 F}8 y3 s+ o* V# F! M5 ^0 B
下面插入
) X$ Q* L0 m! V$ Z3 E% YBOOL TextCmd_rebirth( CScanner& scanner )# f1 ^% B! m0 {1 h3 t
{6 W+ } |. D1 ~; {
#ifdef __WORLDSERVER
: L$ U/ y9 b. I; |% g/ UCUser *pUser;3 @- w$ ?* R4 d0 S
pUser = (CUser*)scanner.dwValue;! }# ?# L9 U4 o. H% j+ ?2 y
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* E" M# `5 F4 ]pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);6 m! f1 ^' A3 Y8 K9 Q' D
else- L1 J8 @* z v8 a2 @% E( Y( r
pUser->AddText("你还未达到重生条件!");$ S6 F* l. @4 K- l2 f
#endif
4 f% t3 \& N; h6 [return TRUE;' {% i. B8 C- D5 s! \
}
; F1 Z: c4 Y7 v% ?
8 ]! x. j! k m2 Z" m4 L, Z
) M# Q) {5 M! U0 P$ g1 U. k4 E/ G$ P( U0 ?4 O) Z
8 @$ j1 g7 u0 o: E5 o6 o3 A- N, G% T( m0 y |
|