|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
, \7 |3 K# D. k/ t, o+ |( c
$ n* H' V+ \2 E4 i/ GMover.h
! J [( d9 |7 T" j3 ~代码:% o- C) }/ ]6 q# Y b$ s; `; j6 O
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
' G7 Z; ]9 a. k/ j+ ~1 h K# s* [
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
" @/ J# ]) i8 l" Z8 o- d- |1 u# X( J- b5 i6 O9 Z- Q) X/ L
然后你去mover.cpp添加: x7 S1 {! \! b8 {7 k; U' f5 V0 \: r, Y
7 _0 S5 L/ d {, |7 j t0 Z5 c代码:1 E5 O! J$ O) t* i* Z/ H
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 z! u7 ]# n, ^/ Z. f; s+ k+ ^6 q( _
{
) [) L- @6 ?3 J( p7 X( g#ifdef __WORLDSERVER" D+ S5 {+ I1 w7 o' r! q8 O
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; X2 O% L! w% W% [. }5 }
MoverProp* pProp = GetProp();
' T1 s1 t. A4 J, G" [0 n: q7 k- \ if( pProp )
' m" j1 U8 E6 J0 |& E2 E, N" L {/ n q- _& a2 t+ u& W
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
$ G5 [. V; c" `+ z" m {+ B: G8 _$ l$ T
AddChangeJob( nJob );& x: b. L" W, I' c: _
}else{# ^5 F; V; k4 q/ g0 h( o
return;
- L, Y/ \! i0 J3 j }2 \( Y( V6 n* t
int nPoint = 0;& Z( p' B. A, Q4 t( \( i
if( m_nJob == JOB_MERCENARY )
) n' H; a4 s- A9 {' i$ v nPoint += 40;2 H, r; `5 R* v# u6 p4 v7 u9 e
else if( m_nJob == JOB_ACROBAT )( i& q# N+ n# c3 T! o& A
nPoint += 50;, N; c6 L, z4 i) Y0 M( O3 {/ V
else if( m_nJob == JOB_ASSIST )
M% E3 e0 o. o* A nPoint += 60;9 B! D' S) @ [8 w& M
else if( m_nJob == JOB_MAGICIAN )) y, z" m* W* A# x; @) V5 T
nPoint += 90;
# `3 _) A9 S; r0 @' ]9 V, C else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( D6 w2 I8 s, l
nPoint += 120;! r6 M2 n2 r; u. M2 ]
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )9 f, D9 a/ m& f' m T8 N4 W3 J; A2 d. M
nPoint += 150;
2 a. t3 ~+ D) P4 ^- d& y else if( m_nJob == JOB_RINGMASTER ), r2 V2 W# C$ C& f8 z! o
nPoint += 160;
1 T$ Q# S: Z" t5 i; x4 I else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )% h; a4 Q% ^ s$ [5 J
nPoint += 180;* [' U, t1 w& a2 g+ ]
else if( m_nJob == JOB_ELEMENTOR )* A1 P+ e9 z9 |$ u) V( D, t; `
nPoint += 390;; j* l' b3 y( f9 @ r* C: L
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- \/ c+ a( e( O( A
nPoint += 120;: [$ ~/ {& H( w, }
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 @3 w' G! z6 b3 i& ?1 u
nPoint += 150;
* F2 U1 ^+ q0 X. B" p4 }1 c8 |( m/ _ else if( nJob == JOB_FLORIST_HERO )
7 ?' h& e, n2 j nPoint += 160;7 S; k5 k2 l& U% x2 W1 _7 w. G
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" {+ S1 s' ~$ s: h0 H. Y2 \1 m4 m nPoint += 180;
" h& I8 ~) t: j2 V% T else if( nJob == JOB_ELEMENTORLORD_HERO ). F1 N# E& G$ q
nPoint += 390;
. L& a6 ^% G0 q3 W D2 [6 i( ?( H. `* P: d
AddSkillPoint( nPoint );
! c+ H9 C! f/ ?9 z+ T- Q m_nLevel = nLevel; q4 [# i1 z. z+ [2 f! w
9 O7 q+ S4 ^- ?6 S
SetJobLevel( nLevel, nJob );
: T5 _* ~5 C4 G% m: W+ a m_nDeathLevel = nLevel;
3 u, t6 C. J( ~9 h, j4 }: e#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* d! q+ d8 F/ Z" `6 j, q
if(IsMaster())
$ e* ~* F# V' `2 i7 C7 k, E; y' W {
. x; e* p9 X9 N6 |! o int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 y" _$ Q1 O% B if( nLevel > 59 && nLevel < 72 )+ @" N2 a' Y; C$ l; S, z' A
dwTmpSkLevel = 1;
9 ^$ _5 L# d2 ?% w- B( a4 C else if( nLevel > 71 && nLevel < 84 )$ A; |7 C) ]. ?' X- }4 |' P7 s9 F [
dwTmpSkLevel = 2;
* v! `) u* a6 w6 C, o else if( nLevel > 83 && nLevel < 96 )
& |1 W8 B+ ]9 W* D0 z dwTmpSkLevel = 3;
+ O9 ] d* |, j+ R else if( nLevel > 95 && nLevel < 108 ). x: D6 R. [2 a, A* K0 @
dwTmpSkLevel = 4;
/ ?$ l/ @* h& T* S, t- | else if( nLevel > 107 && nLevel < 120 )
: ?1 Z9 n; E( O dwTmpSkLevel = 5;& x3 ^0 m ?9 i; m3 `4 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 3 A# w, ~% Q ]
{ - l2 S7 }( s0 _9 E1 k( U& M8 f! m
LPSKILL lpSkill = &(m_aJobSkill);" e% b; \4 H+ }) g/ ]! _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 }/ X( c) `' }$ J2 ^; u7 k {3 O) l7 O: }$ Z6 S0 m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 U" R& [8 v* G/ C! f, F9 O$ O- }! N! ^ if( pSkillProp == NULL )
# H' j' k# T4 [8 S4 @* _ continue;" Q. w$ e4 x( H( t) m& ~7 }) C4 [# Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 h @1 X- w3 s% k' D" ]4 i. Y' Q continue;
. B6 p9 E- ^1 x! c: U lpSkill->dwLevel = dwTmpSkLevel;
7 n, X# V% B3 ^1 X" b }/ | F+ T- ~4 L2 `& `5 L
}
s. a0 W% n" B+ _" X9 ? }; _0 C9 l; e/ D: W. [+ _9 h/ T+ \
else if(IsHero())
8 y9 D7 T8 T8 l# U" b' a {
7 g: }" B& ^# g! T/ W for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ }2 H. F m A P8 W5 T W2 o( h) E7 J { ! J7 c1 f; l! @% R' N6 g3 G6 W
LPSKILL lpSkill = &(m_aJobSkill);
) m* ]' {7 H* J! Q if( lpSkill && lpSkill->dwSkill != NULL_ID )9 u( i+ c% \% I. M5 f
{( }3 d. J9 h) L
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) H6 ~. \9 Y: t: m" n( v: e
if( pSkillProp == NULL )
% f) B! O4 ^, D" r continue;" E8 O5 N6 R" @/ E; l6 S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* K/ [. b+ Y J \) o3 _
continue;4 S# @$ L1 ]; B1 |) U* v0 {3 D
lpSkill->dwLevel = 5;
+ M. Y8 V& l' _ }
" r5 Y( z" k' L% l- ^ }
) U9 @- w- r0 d, f# A/ N; x }
1 L% F) W- x2 e9 S2 @$ Z+ G+ k else if(IsLegendHero()), d! C/ _& \+ z7 V0 c) |+ R# d- s
{
2 h# N+ [& d) k& S' r' C for( int i = 0; i < MAX_SKILL_JOB; i++ )
" G) t& j% D- ^0 C# C { ( N1 q4 B7 W: `4 Q ~$ k+ b) A8 S
LPSKILL lpSkill = &(m_aJobSkill);# ~/ g/ n& r# U
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 U& A! A2 W/ M+ a6 t* r2 d {
! P5 N" ~& B$ }* ^0 I ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 H" Z- z {+ n( \
if( pSkillProp == NULL )
* D$ |0 h/ |& [ O0 O continue; A" @* F4 P( f& }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). r) `% q) ~ L$ J
continue;
$ a, _# G3 w. B/ X0 {1 E8 S I lpSkill->dwLevel = 5;
2 I0 M& H& ~6 C/ v }
/ l5 B% O, X' R. W9 b }/ n8 ~8 g* f' B
}
/ k5 i& F# g* p; ~+ L7 a4 ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans3 e) R; E. p3 O9 o3 L! z
if( bGamma )1 e9 l7 e9 a8 w' |* T$ t# ?
{9 P, z* v! C5 ~" f# \; ]4 I
m_nExp1 = 0;" z: |1 K; O, b5 O! r
}
/ [& [) d- L" Y# M% O- w4 \! c
2 N% P2 e0 D- S7 [0 v) Z ( (CUser*)this )->AddSetChangeJob( nJob );
6 @% {. G0 a$ o! J8 q9 s, x3 O4 A0 U g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );, h; B& f6 D' a& ]- O8 g
+ h) C) ^% y. u. _
- k8 S2 ?% V6 w6 b9 a#if __VER >= 11 // __SYS_PLAYER_DATA! L$ l8 a; h/ I9 Z4 q1 @) d
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" D' j; l7 j2 Y
#else // __SYS_PLAYER_DATA
7 d# h2 ]& v1 K: `5 r; h8 x' d! q; _ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );% N. E* ^: M7 T8 }3 S$ O
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ ?* r' g/ @1 P if( m_idGuild != 0 )
" P" r3 z# _ \' e* A4 P+ q' D g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
" E" q$ i, H5 k#endif // __SYS_PLAYER_DATA
0 g$ T+ e2 Z: Q/ H4 W" y. H SetHitPoint( GetMaxHitPoint() );7 i/ d' ]. H( q- O5 F/ Q. d+ s
SetManaPoint( GetMaxManaPoint() );2 O( k. R5 s1 R% K9 |
SetFatiguePoint( GetMaxFatiguePoint() );' c; z% A3 _6 I8 {/ @- B
if( nJob >= 1 && nJob <= 4 )
6 e6 _2 ^6 Q4 ~2 ], F {
v9 @1 B2 L2 w. @$ x. u% W7 j m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 ?) a! ^$ I% a. |2 q N8 _& z: G m_nRemainGP = 28;
7 [1 u4 |( S4 J0 ]9 V( n }5 q- `. _, ^9 z" P& J; C* _ x
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )$ a0 T t7 F* l4 a
{1 D# _) j! b& v; `" g8 r
m_nRemainGP = 118;$ w6 C# f# |! s# M P
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;9 g; o1 k5 b! u: o
m_nStr = m_nSta = m_nDex = m_nInt = 15;4 k3 K& {/ z6 W2 r
}2 R3 {+ R+ U' I, \4 S4 @
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, b* I4 j3 L ^$ y H2 K y7 r' p {
# Q. Z" m+ W1 O% m/ M& L CItemElem itemelem;" W! w7 Q* V# F7 A7 Q2 a
itemelem.m_nItemNum = 1;
) Z& l2 R" F# a) e9 u itemelem.m_bCharged = TRUE;
7 r& m: W d1 J& c0 B BYTE nID;+ H8 V ?6 e. [+ ?; L2 w
9 ~& V( g! H( b. M- c7 H if( nJob == JOB_MENTALIST_HERO )) X4 r$ V: J& P. s& ?% U
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;, H# a; \ \/ \3 H S, M: U v
if( nJob == JOB_FORCEMASTER_HERO )
) g: n2 @* T/ B4 H# A itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
i( P* z% T4 T
" ]0 h( g) a8 N3 C" ?' A ( ( CUser*)this)->CreateItem( &itemelem, &nID );( B; ^# W3 l& F) V& a
}# l% U& S! Z0 [- ~ E
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. ~; F& P& x( R+ }8 _
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; P; J1 F2 a/ X2 r ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
9 b3 a- N/ d2 b3 p# a' z /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );" R& m$ b% a" w4 J, j- f
( (CUser*)this )->AddTaskBar();*/$ w4 E \9 [. ~* B# y
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );; v+ {) t* q% }& a) d7 _
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?! n- n* O# b0 q+ S
((CUser*)this)->CheckHonorStat();3 c8 q3 S1 l. j" Q0 d- ?7 K
((CUser*)this)->AddHonorListAck();# g3 K" H/ H" A+ a$ {% }
g_UserMng.AddHonorTitleChange( this, m_nHonor);
/ k: Z0 A( `: E h# D1 f8 L#endif // __HONORABLE_TITLE // ′Tà?
. C( S: h* \1 {$ f( ~8 t }
& o5 P0 \. t5 i" g" f [#endif // __WORLDSERVER
) ^7 v" |0 J% m5 Z4 I$ g} $ i- W0 K I; Q: J9 f% q: ~# f2 o
' @* s' A* r/ W' l# ~然后你进入functextcmd.cpp并添加以下& z6 x6 u' j, L: [
# n6 |5 F W- l- _8 M代码:( W; o% I7 t$ m- |
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' b" u+ k2 @5 }$ H下面插入( y# ]3 f& e9 e
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
: t9 O9 d. n$ o9 D
2 \" u; }3 X& m- w然后你去
% ]3 L4 k u ~$ U! y* c
5 ]2 }5 Y7 T" \4 X% q代码:' G o7 Q1 Z* ]1 a. F1 F
代码
) a& M% q/ G* D0 |9 aBOOL TextCmd_ClearPropose( CScanner & s )
: p' K U0 s, |{
3 d7 P8 g! x# Z% S5 x) N#ifdef __WORLDSERVER1 T- r9 e* d: Q" R# l4 P7 n- w! x
CUser* pUser = (CUser*)s.dwValue;
9 l* ] \+ |, V% e* m5 Z g_dpDBClient.SendClearPropose();
: F6 W M" X4 @#endif // __WORLDSERVER
# C& x3 G) I! F2 ~. J6 I return TRUE;
6 R/ X' i' e1 X: p2 Q}$ f* B: g; ]+ j, A5 L. D
下面插入+ ^8 S( j. h0 [
BOOL TextCmd_rebirth( CScanner& scanner )
8 v! `$ O4 N0 C- O{, `( u1 l/ I3 w" p/ l* [2 y
#ifdef __WORLDSERVER7 M8 e' l( f6 Q: n2 o! e
CUser *pUser;8 j$ O0 g% f. w( O$ p N
pUser = (CUser*)scanner.dwValue;$ x! S- S1 T" k: F! w) E& f7 b
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
8 Z7 z, d$ e6 I' e" q0 V0 cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
* w( y' L7 a, V0 x3 K5 p( Belse3 \. U+ @: A8 l
pUser->AddText("你还未达到重生条件!");' P0 \1 K1 c7 y+ Z' i6 ~, P5 s
#endif
' t9 D, O- S* L- A8 k2 ~' I! jreturn TRUE;
+ E8 [7 E4 F! d# l} ) C6 S. S2 E2 `7 [
; R# p% V( z) f0 e! O' p. Z. @, q" J
6 G% e# g7 ^ }/ `# Z8 d4 q5 V8 I
* o& Y7 ^6 V4 W. n |
|