|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
5 n4 R# H1 v+ d: @! ~: a
" U: M8 @8 l+ B. HMover.h
4 I# A7 A9 P% e6 ^1 Q6 C: k代码:* U* P) O6 \0 Z$ z
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
9 m% O4 g% \0 A7 W
) \5 q& J3 i8 Q. o& N下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 p$ O( N8 Y! G9 k1 x1 H
( G# D6 N& a4 d, h+ w6 [然后你去mover.cpp添加8 p5 `2 Q( j& e" ~( I8 l& E
! D0 [: @7 d8 F/ S( A( y1 }
代码:
0 M9 U7 ]3 C) l. q) W+ Vvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); f# [& M4 ]2 m3 ~- ~# j6 x
{
: g& j" l/ t: A. R5 f8 B3 @#ifdef __WORLDSERVER2 n* `) h4 G- Q
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- a) U, _ d' m: F
MoverProp* pProp = GetProp();
5 S" _5 b s# n) D: c if( pProp )) ~4 S& s, J5 c7 \
{
( U) q- E4 j* Z4 Q if( nJob > 0 && nJob < MAX_LEGEND_HERO )% x, X' W0 f' D: V; @0 F+ [* t
{
7 {) {* \0 J, S8 v, R AddChangeJob( nJob );
" M1 |0 v; l6 M( S; p* s- W/ o }else{# g" a$ W$ W7 F& e
return;) e: W) N, ?. c* a( j/ M
}
) y8 j- j4 j! ~ int nPoint = 0;
* N. X" H4 @. P if( m_nJob == JOB_MERCENARY ); p4 u6 i# T: p8 H! k! R
nPoint += 40;
7 J! ^$ R7 o2 t) L else if( m_nJob == JOB_ACROBAT )( N- j# m& R1 G) S" z
nPoint += 50;
5 [7 w7 J0 z) Z2 v/ I$ I9 [ else if( m_nJob == JOB_ASSIST )% {/ i0 a1 w1 }
nPoint += 60;/ J# J5 M& o9 E+ _: b/ P
else if( m_nJob == JOB_MAGICIAN )8 j: w' S4 Y5 {% b+ B/ t1 ]
nPoint += 90;$ z3 x* C$ C" F T! c
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ V0 N* B* j. ^: z0 B1 d1 g% i' y7 M
nPoint += 120;% p0 d2 f. l" Q. h7 r- y" l5 Y
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ F4 \9 a V, c) I6 { nPoint += 150;
1 l+ R/ q1 V3 P) \9 o) V else if( m_nJob == JOB_RINGMASTER )
3 X" m1 h7 _, ~ F' h) k nPoint += 160;, Q8 t @; D9 T
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )0 C! ^( k5 |* ?6 L3 S8 @$ O1 m
nPoint += 180;
* u7 R5 F( N; W else if( m_nJob == JOB_ELEMENTOR ) ], `/ E- e+ G+ C
nPoint += 390;- i0 `) B# e' j- ]8 P' O
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). b& ~* ]' i; n
nPoint += 120;9 M/ {9 X) Y |: H, |. p* \
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
) X e `7 j6 a [7 w& s nPoint += 150;! B% K' w) o# i6 j- y
else if( nJob == JOB_FLORIST_HERO )
, S! x6 G3 P# y2 B+ [* ^4 l nPoint += 160;4 o3 X1 i) s! ^: I" k2 Q/ i" a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), A$ y) c* A! _9 _
nPoint += 180;
; ]1 B# U3 A$ h else if( nJob == JOB_ELEMENTORLORD_HERO )
0 ]# B3 G" T4 P' v nPoint += 390;
9 \; o/ S3 N t, X# z& L7 I0 r, R# A: f! W3 Z. D
AddSkillPoint( nPoint );: } h& u- {) O8 K
m_nLevel = nLevel;& J' e% R' r6 D1 H2 n A
$ h3 F* _, ?6 D* c: t% P SetJobLevel( nLevel, nJob );
. V' ?' ?/ e3 I" o7 v+ F m_nDeathLevel = nLevel;
* Q/ M- w7 g# P1 j#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ J- h3 j; X9 d6 r* w
if(IsMaster())
- M4 [6 z( Z0 X9 I* H {
' D7 v" w7 _. }, D7 ~2 |/ P) C& y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
/ m" k' D9 }$ c( c& W if( nLevel > 59 && nLevel < 72 )
% k+ c- K2 \# u6 p dwTmpSkLevel = 1;9 D5 H6 S' G) a3 c
else if( nLevel > 71 && nLevel < 84 )8 V& ]7 ~. U# k$ L$ U+ Z$ ?
dwTmpSkLevel = 2;
! v( ^( Q: C+ Q4 S! Z0 G# K& _6 S: ~+ N else if( nLevel > 83 && nLevel < 96 )
7 Q4 f9 I. E2 h" C- R dwTmpSkLevel = 3;
9 F% B- h( {! X0 x# B$ m- a else if( nLevel > 95 && nLevel < 108 )
; N/ h R! k; g: v dwTmpSkLevel = 4;+ A9 I+ r: q5 t1 Q. Z* R9 F& Z) J
else if( nLevel > 107 && nLevel < 120 )$ r1 W0 I3 g' u2 T8 }
dwTmpSkLevel = 5;7 B6 Q, {8 w/ o
for( int i = 0; i < MAX_SKILL_JOB; i++ )
H4 s# R' n9 J { 9 J' u+ C- `# s
LPSKILL lpSkill = &(m_aJobSkill);% q* F. i- w9 t# |$ _- J) U9 j, T
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ u. ~$ t! U( I9 S+ K1 r
{
# G0 @7 g* k' j" d ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . o: C* ~0 p6 a. v, z7 B9 M; t
if( pSkillProp == NULL )
' w2 P/ b# A) n- t/ z' s. w! i continue;
3 s; C, p. ^- \* |7 k3 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; W0 K$ ~+ P. X continue;6 Q$ D2 _3 ~2 n0 M1 `
lpSkill->dwLevel = dwTmpSkLevel;# H, n9 @: f- l0 w
}$ z+ j. D5 h9 p$ _. y
}# O; m D5 ]* b$ F$ V. ]0 G/ \
}4 q! i9 ]( Y& M
else if(IsHero())
8 d5 @! i! d H5 O& x7 \ {
1 q6 S0 r' [" B+ ~$ { for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 q9 h& X' s2 V* B; `: R6 ~/ i { 8 J/ i+ v+ s, s/ ]7 R. D4 ^
LPSKILL lpSkill = &(m_aJobSkill);
% _3 O: W8 o7 t* u7 ?( n if( lpSkill && lpSkill->dwSkill != NULL_ID )5 l! N0 B9 b9 H* W y) E5 q! V
{5 S- q- K V6 ~2 n. C1 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # W$ B% z7 w1 @& t$ T: w, K. T9 w
if( pSkillProp == NULL )
7 h7 `- I4 [# B% J8 ` continue;, G& [& _, {( B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
0 b! @& }" u' p Y9 [. O continue;
8 j) q$ i3 A# _$ x lpSkill->dwLevel = 5;6 N: Z* E* X4 W3 q/ ]* M- L/ A
}
+ ^- w7 n( v" O, v }
6 I2 X8 Z2 S9 o! k }: {; M3 ?7 x$ [# E2 M6 F
else if(IsLegendHero())
/ [; S/ w+ `7 ^! ? {
8 t3 x2 K/ m I! V/ v" h for( int i = 0; i < MAX_SKILL_JOB; i++ )
9 @! q" G1 Y, h4 W- ~ {
: K @; v) f u! F) b LPSKILL lpSkill = &(m_aJobSkill);
1 r, N' P; |, g0 I$ D if( lpSkill && lpSkill->dwSkill != NULL_ID )9 [6 H$ d D. ^! V$ v+ T
{8 @; i$ X0 W; N+ u7 t6 p
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); - h4 J7 d& @2 \% A4 n6 X: \
if( pSkillProp == NULL )
. e) g0 P# L8 T0 F+ n1 v continue;
$ Z9 |& N# n _0 J9 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) i2 ~, u! N3 S continue;
) m h+ P( X9 C0 N! W lpSkill->dwLevel = 5;
+ Y7 ]) U2 b" G3 E; k }
8 h0 Z( _9 Y. P* ~0 C5 ^7 j }
% A( u+ L3 L( w" V0 q- C ` }
4 q Y& B, Y m#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: H* ?' S! y% M6 G, O; @3 z if( bGamma )
P, ?$ |3 B/ o" \( L' ^ F {5 f5 x' H$ ~3 p0 u0 P4 q# A2 F5 t- i
m_nExp1 = 0;
8 y }+ l) ]0 X, I% M$ ]) @ }
& {( S: U% B- p
2 o8 ]1 h* X+ q* O3 { h2 ~: L ( (CUser*)this )->AddSetChangeJob( nJob );
1 u/ G% m$ s* m- l5 H5 F3 n g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
$ }) f# W h. f" c3 d9 z
( t% W, c; o" Y. }( X1 s" {. r5 j
4 ]- i- l- N' Y" }# _#if __VER >= 11 // __SYS_PLAYER_DATA. K$ Q) t0 l% x! U' ^
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" x- |& L& L% z$ u) u
#else // __SYS_PLAYER_DATA9 m' ^2 l; ]) I: G7 m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* A0 y+ Q9 [1 l( @& S* W
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
1 g2 H$ l4 V: u if( m_idGuild != 0 )5 P" ?9 ^9 m6 |! U2 W0 {2 w: ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* M( j1 X; V4 J7 R- K5 P
#endif // __SYS_PLAYER_DATA
1 j1 ~$ g% Z0 ^% z: c- p SetHitPoint( GetMaxHitPoint() );
/ [3 ?& Z+ w& r SetManaPoint( GetMaxManaPoint() );
0 p& _- C; I8 Z. K1 S) ^; g SetFatiguePoint( GetMaxFatiguePoint() );; P! O0 j8 K: R" ^% r5 n
if( nJob >= 1 && nJob <= 4 )1 c) A& t! b$ N9 H) P" g! d1 `2 x7 ^
{( v7 f& Q+ d; v) t& ?' D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
! k8 u1 ]; J/ S8 `9 c1 A m_nRemainGP = 28;( M9 X. [4 G8 ~/ I$ M$ _
}
. f2 S: z/ s9 C4 c# o if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! l' p0 H: B/ X4 I {
; Z e- t+ b9 g9 G m_nRemainGP = 118;
0 F9 \' s+ q) w; D" S0 Y! J* A //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 w6 A2 X) r+ o, D, \3 d; @; s' ?4 c m_nStr = m_nSta = m_nDex = m_nInt = 15;6 G9 M5 t c% z5 c0 a4 p
}; t) b& }" w8 F% [" N0 y6 t
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 E* j. A0 t4 i9 `* M# g/ w/ L9 ^ {
% V* P1 S Y; F CItemElem itemelem;3 p" I7 ? W7 \/ I) G( D
itemelem.m_nItemNum = 1;/ [) p' T9 `% n5 _ E8 h* I- M
itemelem.m_bCharged = TRUE;
# I' j1 s9 c/ K. z! l; t$ Z BYTE nID;/ U5 M( g3 X9 ?
' f0 S( d- M) Q5 P+ p if( nJob == JOB_MENTALIST_HERO ). N( \; [! s6 a. r. ^4 W8 t
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
4 b8 [ g: |: i4 T) F2 H if( nJob == JOB_FORCEMASTER_HERO )
- Y3 Z: T |! W! a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
! d$ p8 s. o# g' n# |& x8 R- c0 g3 R! Z, X0 i# V
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ f, l6 Q- ~2 H0 x) `: r! w1 z; M
}' ~2 e2 L) f' U0 k: y |
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; O: N! I# P. h ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );! S& H( g4 u! v9 q* N
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 Y% o% C; U6 c$ @ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
( o5 o2 p1 m5 f9 J) } ( (CUser*)this )->AddTaskBar();*/& F' O$ z+ N# n1 K# [$ i" w
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP ); [4 c: C. e" H% ]- n! ?7 y
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" n, a) r+ o1 l1 `% z3 X ((CUser*)this)->CheckHonorStat();0 ~7 A5 J4 d. E8 w( ^0 p
((CUser*)this)->AddHonorListAck();
* X- g q$ Z ?. `, v# u g_UserMng.AddHonorTitleChange( this, m_nHonor);$ L- I. q9 V Y$ r4 |' K8 _! Z4 J
#endif // __HONORABLE_TITLE // ′Tà?
9 V9 `4 I9 y) D }
; Z/ z. I6 E+ } R( @0 ]! a$ \( w#endif // __WORLDSERVER
' @4 O8 ^4 ]. q1 Z5 ?}
. \# q1 f. u u" j) P" Y/ p. z& R' m" Z& ?
然后你进入functextcmd.cpp并添加以下
& I: Y1 u/ q: ~8 ~
8 w: V8 ?0 d8 _2 O! H代码:/ B8 g9 f" U9 P4 ^% Y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 V) s8 m0 |: V% C
下面插入" {3 r+ W# s! ~" h
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; h5 Q7 r ^ Y# a* S& J0 q
b' A" ?. U+ r. s) `/ Y/ p然后你去
& O$ F- R W9 M
2 J, [1 G5 y* d9 J, h! W代码:' a8 z$ G9 _+ f, K8 {' B; J
代码
7 o$ h1 T3 [. s6 `9 Q( }BOOL TextCmd_ClearPropose( CScanner & s )
6 |. K p0 N9 _7 y0 a# v0 g: N{& K& W2 k. o0 | N
#ifdef __WORLDSERVER
; F4 a k l# e% h' ^, `$ Z1 a9 } CUser* pUser = (CUser*)s.dwValue;2 L. U3 i: G; `* g$ k
g_dpDBClient.SendClearPropose();
: q# _6 D9 ~; E6 i9 ]. A( T4 ^#endif // __WORLDSERVER
' H4 F+ C! X9 M( _7 M( L return TRUE;2 \2 N' J# `5 K( i4 L- w9 i
}
# [6 m8 @! P4 Q2 V& A# ^' Z m下面插入 ~9 S5 E( H5 T% b8 l2 L- o
BOOL TextCmd_rebirth( CScanner& scanner ): z4 x1 ?$ ]. x: y( n
{
9 r& O, f& \6 }9 A5 q6 M" Y$ I#ifdef __WORLDSERVER
7 B" M9 w8 j; e8 A3 g9 tCUser *pUser;
$ B; }+ u" g5 ]& ApUser = (CUser*)scanner.dwValue;8 r- M' N2 X! e0 l
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
$ }3 i( L7 C" ^8 `' VpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);. d5 M2 ^6 N/ R( G# U+ {, ]. i" R
else$ K0 U& B+ J: }* r+ | m6 u
pUser->AddText("你还未达到重生条件!");
7 ?: N w8 i9 x2 L#endif
; O) I6 f" W8 J: U% H+ ureturn TRUE;
* Y/ G6 g0 ^3 I}
% W( r, Z) E) Q+ p9 E, B( @, Q$ B6 C
, @9 E6 @/ N! V* f% s* M. b
: ]/ d7 `. Z3 U v
5 L! q3 x* D7 x& Q. w7 p3 u$ u |
|