|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! f' H, u& b6 `2 h& ]4 H8 I
+ Y, s& z; A7 y$ K8 H% K4 J/ c( K+ EMover.h
/ z% n3 w4 ^+ _" ~" ]5 {代码:
, ?( }6 I" Z- F) ?/ x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü' ]7 Z' S8 p" X3 J$ C
( W$ t0 q+ W: I0 G
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
& ?2 q& b1 M4 N6 C" A
+ u/ g) b* T6 d5 J4 }. F+ h然后你去mover.cpp添加7 f" `; w! [! e) ^2 ~0 f. O# l
- X7 u0 x( f/ y6 {3 a
代码:
) i* m. U: X* w/ M( v% Zvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# g* N. k1 i( E& a! o{
$ H4 Q' B+ Y6 d0 T7 I; [' r0 h2 a#ifdef __WORLDSERVER9 [5 Y, t2 [1 X7 ]/ t. p* t# u
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: d7 H" r( `- S# O. ?' G1 ~" e: b& Z
MoverProp* pProp = GetProp();* e' r7 A4 r+ S1 p
if( pProp )
$ E7 ]# Z7 W/ T+ B! L) W {
9 M. w- Z5 m, D if( nJob > 0 && nJob < MAX_LEGEND_HERO )% Y* C, ?2 ~; r5 D: p& W' H7 ]
{
( ?% t% f: D; V' L8 E; c AddChangeJob( nJob );' l% \4 L q. N G& p. M/ l" h9 G( K
}else{
n( H1 S ^2 B/ I& y ~) u t return;
7 X% j2 Q6 u! c7 o0 s" q$ i N }0 z( V: s* m% Q }) h5 m
int nPoint = 0;) g# b9 o* k8 J7 S% ~ h& o5 [0 X
if( m_nJob == JOB_MERCENARY )( O( `5 P1 A% ~& [9 |8 l
nPoint += 40;
7 U2 k y( v1 }1 V; } else if( m_nJob == JOB_ACROBAT )
! f. ?2 `. {$ T" J: S0 x$ a nPoint += 50;
1 B# m* z, s, m$ k/ _! i else if( m_nJob == JOB_ASSIST )8 c9 c4 Q G! n7 r! e
nPoint += 60;
$ Q/ @; J# ?' N# y" `" H else if( m_nJob == JOB_MAGICIAN )" ~( M8 ~9 R0 G' k/ S% ^& M, F
nPoint += 90;
& P: j# R5 H/ @ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
) u! }3 t7 T: O. L3 l nPoint += 120;% V1 `+ { A5 _1 M8 |2 }2 @9 P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
- N5 ], @1 L1 H. }0 T& h nPoint += 150;
2 _5 \" O+ j7 s% ~& r else if( m_nJob == JOB_RINGMASTER ): q% I' L, A6 {" g* v
nPoint += 160;
3 d9 r' c5 Q& g5 p$ d" V else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! V: ]) m4 z* T t& G0 v$ t nPoint += 180;
# d. g- L* V; q# C else if( m_nJob == JOB_ELEMENTOR )9 f% H- u" Z d$ x& a& c
nPoint += 390;% w1 f8 {# n# K+ Y( k/ ^
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 J6 l. ~1 G. ? D: _ nPoint += 120;8 s' G2 z% Y$ A" ~7 _8 K
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# z( B3 e5 A1 g) K
nPoint += 150;
# q N& e8 |. j1 q) i: r. a else if( nJob == JOB_FLORIST_HERO )2 m: k- \1 O/ u- _: c4 F* i
nPoint += 160;
1 R0 P. z8 b- T( G1 A0 J else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ |1 ~1 b6 _' x
nPoint += 180;0 H6 x& A4 V$ u- \& M
else if( nJob == JOB_ELEMENTORLORD_HERO )9 _/ n _4 w1 b! j) m
nPoint += 390;
1 u0 S4 {+ c% x! Z# i$ U- y+ L0 F1 t+ d& X v' v4 H
AddSkillPoint( nPoint );
& S4 N/ }% @% t- W8 c m_nLevel = nLevel;
A6 w" o( Z0 k1 y( t( Z8 B0 }: F! J' t. d6 T
SetJobLevel( nLevel, nJob );
! L5 H5 |6 h& ?8 ? m_nDeathLevel = nLevel;
5 J8 z4 [( M: W, ?4 J* p5 J7 n#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
0 {; \+ n) w' v6 ] if(IsMaster())
! ~9 x: \( z* Z* o {* y) G: S; d8 D: e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: w o/ B4 |; d- X if( nLevel > 59 && nLevel < 72 )0 m" f3 ^. i l4 U+ w4 b- t
dwTmpSkLevel = 1;# y: L7 j3 f7 Y, ^ t0 D
else if( nLevel > 71 && nLevel < 84 )8 N% X9 S7 c7 ?- k5 o5 [5 E( t
dwTmpSkLevel = 2;5 n3 V) x6 j1 l) P, ?% {1 x
else if( nLevel > 83 && nLevel < 96 )0 }: P8 y# q9 n; s! `' H& m
dwTmpSkLevel = 3;2 o, x9 G2 ]0 `7 H" t
else if( nLevel > 95 && nLevel < 108 )
- ?. Q- T, H$ X dwTmpSkLevel = 4;
5 B! @6 x/ Q7 x" c# y9 _, X else if( nLevel > 107 && nLevel < 120 )- H9 M( Y5 a9 k2 Y
dwTmpSkLevel = 5;: v' S9 Z- p, R) C/ H& P
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 _) K" p& ]! t2 S
{ + z( s0 {' s! I5 J. M' ~
LPSKILL lpSkill = &(m_aJobSkill);
4 f0 b2 ]1 |4 a2 `$ i$ s! [6 Q if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 |. t& ~4 i3 _. J% \: G/ y5 b {, \. e4 N3 c' O7 a" g
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, ^. C3 b/ D: ]4 t8 Y7 ?+ T% Y0 H if( pSkillProp == NULL ). C4 E5 g& W& o9 Z3 Q1 |5 k3 ]
continue;
7 y* d, G, S7 t. \$ c2 o2 D if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* Y, n. z W; {% V* _2 O( N
continue;, |1 ?. ^7 ]- Y0 U: \" R/ ]3 p7 B
lpSkill->dwLevel = dwTmpSkLevel;
( E$ {3 q: O! l, A }& C, U' R2 |/ s; o5 Z M A0 w
}
% A1 j* b9 d) A( [) q0 I5 Q8 g3 L }
6 ~- \7 e# _- A `+ H else if(IsHero())
7 i: x' ?- t4 r3 j$ M2 q {: t6 U" |6 [% Q( [
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 I8 i* r* R- r, V4 q
{ - i6 | t% s a1 A
LPSKILL lpSkill = &(m_aJobSkill);# [( \; c7 v1 t1 V* F
if( lpSkill && lpSkill->dwSkill != NULL_ID )/ ?/ S7 b/ Q# N) ~" u( l: P
{0 u- G4 X0 Q6 j0 U' q7 U% {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 2 w( A' }+ x6 q
if( pSkillProp == NULL )
+ h& a1 M1 r2 ~! h2 i& X continue;
% y7 Y' E6 t& G5 |' I5 T& w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- i9 A/ p" \' {4 G1 W+ v continue;
* `( x. e+ t( o+ O lpSkill->dwLevel = 5;! ^6 H& u) }" \
}
( K3 Q; L2 z9 ~- G: ?9 A }) C3 }; o1 x; [1 C7 ^3 d- f
}
& \/ X& g5 e! q4 X H else if(IsLegendHero())
3 O2 X# K' S: K% c; d( A* @. o {3 o$ {3 m1 k1 y/ c; F
for( int i = 0; i < MAX_SKILL_JOB; i++ )
: Y! v/ Z# g; O6 S6 ^ { V9 \& o$ L9 i
LPSKILL lpSkill = &(m_aJobSkill);1 M- t. u Y% ?) x2 s! t$ D" A
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 E6 P$ r% k% ^$ _' f) N+ a: Z: O {
8 b8 D5 m7 E2 h% Y! n/ \ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + C1 \6 O# o0 H
if( pSkillProp == NULL )
, _& u/ c' S w2 O( z6 _' X continue;
) m9 |$ `$ t- `: f1 l if( pSkillProp->dwItemKind1 != JTYPE_MASTER)8 }7 l+ D# C [: ?% | i3 G
continue;
0 I- U, D) v/ a! g+ X! k lpSkill->dwLevel = 5;
2 c! t) m6 l( c U `0 Z }3 X8 ]0 T+ q: v
}
+ X$ ?7 E- ^, D# d3 g. @$ w+ N) a3 l }
# @0 I1 l1 W) F* d1 ~8 E#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans* Q7 c- e. ?. ]- g9 g2 [
if( bGamma )
% S: L% {; W$ C# f6 K+ K {9 f- U" R. {. k1 R
m_nExp1 = 0;
, d' t1 Q1 o8 m$ @, z2 q% p }
' p$ _9 k% Q4 e9 ^: l, b, S; \2 r3 A( b+ ^) @9 K2 @: [, o4 R6 r: ^
( (CUser*)this )->AddSetChangeJob( nJob );- D1 y* g' P/ i C+ l5 I, K
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 Z& @, U& M9 a7 k# g {! K
2 q3 {# o- S8 Q z' n: o
1 p$ W* a9 G; q
#if __VER >= 11 // __SYS_PLAYER_DATA. u& g5 q) ]( d+ m. m
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! _4 l% J# r% E4 d' G#else // __SYS_PLAYER_DATA
6 f. \; b3 U9 v, N4 y, @ g_DPCoreClient.SendPartyMemberJob( (CUser*)this );& t+ v7 x# s4 J) X; I
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );# g" p; b: |) A- @3 b* ?; R
if( m_idGuild != 0 ), Y( i1 Z0 e: Z6 N2 @9 _5 R, h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
& W# g8 ?( J& i, l#endif // __SYS_PLAYER_DATA/ D7 P D/ s. [' m
SetHitPoint( GetMaxHitPoint() );0 X6 s X ]( W, G
SetManaPoint( GetMaxManaPoint() );
1 n8 F- a4 i. V2 S }1 Y3 f SetFatiguePoint( GetMaxFatiguePoint() );- } _1 Z3 z! d7 F
if( nJob >= 1 && nJob <= 4 ); n& p2 J _, J- p
{+ S8 |' \4 |" w6 `2 r7 i9 p% W
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ M2 _6 _ ^# U. p) @' {7 l
m_nRemainGP = 28;1 R% V( h3 n( \9 C
}
3 K6 i$ c$ }! I2 {" y6 ]/ U* P if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
" H4 Q; r0 i& z* t$ a {
* X; I) s$ f! i& s+ o! O% z5 | m_nRemainGP = 118;8 F% ]3 W: D# q# j
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 P ^! U* h( t& i2 D3 i6 ^
m_nStr = m_nSta = m_nDex = m_nInt = 15;
# i- }% ^: @& L: u9 H; ` }
9 S( P7 J0 E# {! ^ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
" e) A8 f. x5 @0 y {% M+ b1 G* R6 u
CItemElem itemelem;: _! V; }; O$ W1 j0 V/ C
itemelem.m_nItemNum = 1;
# P0 U/ I C& e" V. T9 _( @ itemelem.m_bCharged = TRUE;
, ^$ i# _: R' B; ^, Q$ B8 c6 a BYTE nID;
% K* b4 i! `7 D! R; `! ?
; |- F/ {1 @" b if( nJob == JOB_MENTALIST_HERO )
! O3 G% M3 h8 f& ? itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
) c* A+ ] F4 e- s if( nJob == JOB_FORCEMASTER_HERO )
4 O0 P& N$ T+ f6 I. T itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
( s/ H2 i7 z" A, v }( p9 H- z$ M/ _$ K( ^
( ( CUser*)this)->CreateItem( &itemelem, &nID ); ?5 @) t- H" r/ n
}
' q" C7 d8 F# ] j% B: ~/ S: C+ D g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 J) h8 | H! D* n+ p5 G3 E+ I" A
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' C8 P C" o* H' X0 G
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
A9 H5 c8 p2 I5 j/ y /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% h8 K5 S( m) P |3 e! N7 F
( (CUser*)this )->AddTaskBar();*/5 n3 U0 V5 a4 {+ k) j- ^. q9 o8 E2 w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
* j3 j, y' {$ n* [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?& W7 c/ F) G1 f R+ ?
((CUser*)this)->CheckHonorStat();+ c$ z" J7 o" Z% g( w
((CUser*)this)->AddHonorListAck();6 Z' m, a9 @) U% L9 `8 R
g_UserMng.AddHonorTitleChange( this, m_nHonor);
4 { e0 ]6 q1 {( s. ?( `: Z#endif // __HONORABLE_TITLE // ′Tà?' z' M) |% F6 T4 q7 S8 X
}
' m. c1 }6 k d9 u+ N#endif // __WORLDSERVER
) M8 ^8 P- l' V9 `5 W; `1 k}
; K& M1 F ]. O5 h
2 D. C: m" E/ j( J' B/ h1 i然后你进入functextcmd.cpp并添加以下
- f$ q0 i9 w$ c+ u8 ~; K M$ p. W) W( W4 t8 _
代码:# O( s8 G9 z; ^) v: z1 v
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
* p1 c0 R: P1 A0 [) r; G1 G下面插入
6 Y: [! d! x: Z* U! d) j. J1 nON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 d' U- D( y3 o1 o% n
) |$ C( W. K. S; P; A3 y2 Q+ a然后你去! D" |5 D/ s' Z8 O2 I0 e7 |
" ]/ p- Y' v: q6 D- k代码:4 f4 w5 z9 z. t2 t- v8 b
代码
6 O( _8 e# m. w% ~6 KBOOL TextCmd_ClearPropose( CScanner & s )5 |% R( h) n+ Q8 C" v- n9 a6 A% ~9 j6 p
{
) q7 G! u. n+ ?1 |! e7 r8 j8 o#ifdef __WORLDSERVER3 C+ l/ G2 m6 B& K
CUser* pUser = (CUser*)s.dwValue;
% z! E! T$ I c$ j, Z3 p g_dpDBClient.SendClearPropose();
" p! d& o9 Z# F2 E) Y8 B: ^- {#endif // __WORLDSERVER
9 O0 M {$ m8 e7 a; T return TRUE;" V/ K: H4 t, s6 k
}
) H# E$ A! B+ o- |. ~- z9 l7 m下面插入! w8 B" G7 o8 l4 v! ^+ }! d3 G0 H
BOOL TextCmd_rebirth( CScanner& scanner ). Q. r) g" h- x' y7 W
{
2 }( g' p# ~; H) \9 L; [+ C, P, s#ifdef __WORLDSERVER
7 E v& p) @# o, q1 CCUser *pUser;% M) J8 n% D2 ~: k( \
pUser = (CUser*)scanner.dwValue;
8 d( O- P9 g8 I8 U9 q5 Uif(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) [% C1 F6 i& b! i
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. U- ~, l/ A% u1 ~
else0 M a2 K' S4 J# m( V/ [
pUser->AddText("你还未达到重生条件!");; X8 `: T# w4 A! Y2 T" T5 K; w
#endif
+ f* g& V' P. U# d" h! z% ireturn TRUE;7 ]. D2 a0 U# V/ _9 {
} ! n5 P8 Z( \$ Q e0 z2 X
& o$ x$ P! v0 M% c. R! y6 d
1 B; u0 a3 s T6 l! Y$ t' o4 j u' ^7 }
+ V$ [7 {$ T, s' r; H, P( \
|
|