|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel8 k6 p8 M1 n8 M+ \8 W; z# Y
4 w- D3 v$ x1 b6 z
Mover.h3 k! l4 ^6 l" l7 R# r% ]: \
代码:
6 y. r% i. {8 S' \+ D4 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü Y N- I+ N* G3 f3 _
5 V% G9 X5 c8 c0 B6 A下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; / Q; p! f# ?0 L# ?- M' X8 b; I$ D- @
% g3 ~- {; P* Z4 l- }然后你去mover.cpp添加
o6 \! K) Z3 p# Q# @; C5 n% }5 z6 m: ^
代码:
9 a6 _3 R" j5 N" D; [void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): z* A8 Q3 q' |, o6 g# X
{" U0 X! Q6 m7 \9 {4 Q6 E6 h
#ifdef __WORLDSERVER
( X+ D5 ]) J; h3 d# c6 [7 N3 i // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó2 Q# H1 v. P+ z. t
MoverProp* pProp = GetProp();. l& g; V' Q1 \0 N# a
if( pProp )
* A3 U1 T# x; i; D {
) x3 V' h& D5 e- f if( nJob > 0 && nJob < MAX_LEGEND_HERO ); T H: }7 s+ m2 R4 Z) Y; N& K
{
' z+ U" I4 y! \5 P3 r$ v AddChangeJob( nJob );
" o1 z7 Y' L$ V o6 ? }else{1 p5 @1 O& T) x T( G; |
return;
3 Y7 L, c5 x- A! P3 G# a$ W }9 @8 H7 x$ T2 M% o: h
int nPoint = 0;2 U! J o8 i; L, t
if( m_nJob == JOB_MERCENARY )
! V0 Q- d. w; |( a0 i, Y* s j% O nPoint += 40;2 V" U# V t4 F K( |
else if( m_nJob == JOB_ACROBAT )& q# F+ N6 V I8 }
nPoint += 50;
$ i! W0 f: G6 ^ else if( m_nJob == JOB_ASSIST )4 G7 N$ R# f# B/ T8 ~; C
nPoint += 60;
, b9 N3 h b' H2 t7 T) a7 J1 e else if( m_nJob == JOB_MAGICIAN )
7 y/ y% q6 t8 G6 W nPoint += 90;+ [- |8 ?! t3 j1 m7 b' Q! `
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
7 p1 A7 J. y' f: z nPoint += 120;
- E- r, s8 f. F: \, r, [ else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 Q3 f+ d4 E8 Q4 c
nPoint += 150;( V0 [( w9 m' _% ?1 H
else if( m_nJob == JOB_RINGMASTER )0 s2 S' V& a1 T
nPoint += 160;
. Q6 S9 M* e- p; A5 m+ S8 a+ G. r else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 p7 l+ n' j; r
nPoint += 180;* W5 v$ `0 x0 a; ?0 l( T5 t1 N
else if( m_nJob == JOB_ELEMENTOR )$ p4 o% E" h% E) l9 p/ p" H
nPoint += 390;& K3 A! y! u7 u" S8 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
$ t# L3 o" j: {/ \' x nPoint += 120;
( v' F _+ l! i) O+ v else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
! v: _) T5 W# w( r3 y" j nPoint += 150;# b5 t' k" n; c7 j
else if( nJob == JOB_FLORIST_HERO )! m* T, m9 p4 s5 p7 {; d% q" o: I
nPoint += 160;
( z1 P* z/ w1 M* {% S: x% d else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 \0 H' r4 y5 c- m, @8 x- V$ w
nPoint += 180;
1 x; w4 {9 V6 ^4 m k else if( nJob == JOB_ELEMENTORLORD_HERO )
& G9 M; y) G6 U% |1 n nPoint += 390;# d1 ~! }; g* X- B, X
2 y y2 O9 X& Q6 M9 z. [ AddSkillPoint( nPoint );
2 {: k9 k" f/ _( P, b0 Q m_nLevel = nLevel;6 n" k0 b8 h7 D: z
3 w$ }- n, T' G
SetJobLevel( nLevel, nJob );8 a; A9 F- W9 p. Z: F! S
m_nDeathLevel = nLevel;
5 _9 g! H! ]. l2 r) O- W#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ K; i. N& ^- R5 z; ~4 U$ q3 G if(IsMaster())
* y# g3 L9 t, H) [5 O! V4 u7 G {
' ?+ {( o* a$ ~+ Y: a int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: \/ C7 K' G+ ?4 a9 l* G
if( nLevel > 59 && nLevel < 72 )
* o0 l& j* z* f- o) [ dwTmpSkLevel = 1;
# E& z F/ @5 v1 H else if( nLevel > 71 && nLevel < 84 )% i! H9 G `) ]6 d$ I
dwTmpSkLevel = 2;9 t* h9 m' ]4 G
else if( nLevel > 83 && nLevel < 96 )7 V W7 d$ _# ?) d G+ w+ U
dwTmpSkLevel = 3;1 n1 S% U$ r8 T/ S0 ]
else if( nLevel > 95 && nLevel < 108 )
; A/ c2 L8 {5 S: j, `. S dwTmpSkLevel = 4;# k g/ k% F3 r9 V
else if( nLevel > 107 && nLevel < 120 )
1 C' ]: I6 y7 r$ ]. U. \ dwTmpSkLevel = 5;
1 r# m; q. b7 q: g7 r2 n for( int i = 0; i < MAX_SKILL_JOB; i++ )
( J% |: |4 f" l0 ? { 7 x0 o; V5 N* h
LPSKILL lpSkill = &(m_aJobSkill);5 ^. @5 \6 m3 Q
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 b; ~* t% B' ^: P; r
{
* o8 g# k. ^/ k: ]9 [+ b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. E% f0 c" Z# a6 [! q/ N- d if( pSkillProp == NULL )
/ s" g/ T9 i5 h& l# [$ w continue;) d3 |& A5 l- I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& l, _, q) t( Z' ~$ q/ d
continue; a W5 C1 [2 t6 W8 a5 K+ d
lpSkill->dwLevel = dwTmpSkLevel;
$ X g0 g2 l' k* t- Q' K2 b }1 y) x6 P* Q8 B% o! U8 v
}
0 @& ]" g! o: F8 y8 b; z+ r0 v }
) _. p0 I% Z' e4 ^ else if(IsHero())8 ]" g' @- G2 r. L1 K
{
6 f' s5 `7 N4 g6 e4 w4 }) Y* d for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' G# b. h/ e1 R- P3 [, a
{ 5 t d- l& _2 T% r
LPSKILL lpSkill = &(m_aJobSkill);) f- j: f3 |5 e+ s0 J( c$ o
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 c- p& ?6 F1 f# ?( S7 Q
{& h8 w( r) W0 z6 J( B0 N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( O m7 V, E; ?. N# o if( pSkillProp == NULL )
. ~ U% i# q8 h. a" K) y continue; @$ U% {2 ?9 P0 ]7 e3 C
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)+ f: ?( a7 \6 B' k
continue;8 R! {- I- J" ^6 S
lpSkill->dwLevel = 5;
( a. \% w( g5 f7 i9 v& y1 \ }9 u, j, p$ n5 J+ f* i
}& h+ E+ V4 b$ p- D0 ^" D
}
( e' [$ X5 M1 q( L+ p else if(IsLegendHero())9 e- K- `% y( F/ P
{3 W- c+ D' Y" s3 I9 ~' K' Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ^9 M: {0 ]" L/ D v. V) J
{
2 r' Y& }4 |; f K! l: C$ ^6 S2 v LPSKILL lpSkill = &(m_aJobSkill);& }; e8 c f( \! Q+ c
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 ]6 G, f& |0 A+ z
{4 q I. Z2 F( H Z2 F( s
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. |8 V( h: f* D% E, F4 t+ L7 }( l if( pSkillProp == NULL )2 P6 z `5 J- a
continue;
* m4 I4 l) w$ ?9 b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% V5 k5 A! ?+ H& C6 x# P9 H* A
continue;
( z: l% N1 N& y9 }/ M; w lpSkill->dwLevel = 5;
( v% B2 ?3 G! R8 k+ D+ X" ] }' {5 ^, Z- } W! S
}0 c( k6 H1 N4 m$ K3 g% n
}3 E$ B0 d: G; K1 J9 R0 X6 H$ p
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
h6 i0 S$ C. v% u; A" |0 n if( bGamma )' F5 P2 h+ @) f' k4 Y. o" K
{
2 r' u: N0 Y& U" b) d# B. l% s4 R m_nExp1 = 0;+ Q. s/ f w2 L4 m% d' T' e# Y* B$ U: Z
}
" H1 i+ `: E& g* {; n( ]8 _% }0 D- r. {/ o! E6 m
( (CUser*)this )->AddSetChangeJob( nJob );
% Q9 e W( ]( @% G& y4 O g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );5 m* E) y, J# B" v! o) B1 r, M `
% \$ { d' F& w/ a \/ ?
; Z: l+ ^) b E#if __VER >= 11 // __SYS_PLAYER_DATA S9 ]( b1 m* a ~5 N2 B u
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );3 r; x- t5 R' i7 r
#else // __SYS_PLAYER_DATA* v5 A3 a8 t' ~) w
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
# }8 N. y" h" ~8 s3 H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ T7 R! u7 k( S# {1 { if( m_idGuild != 0 )" z+ m" h$ W; Z1 ^& `8 l- a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
% [6 j y' z) f. |/ W& M#endif // __SYS_PLAYER_DATA$ k# u$ U3 S" ]( R
SetHitPoint( GetMaxHitPoint() );
- z% c; S) e D9 h% O* t" T SetManaPoint( GetMaxManaPoint() );0 G0 N: A, N& P. k7 V
SetFatiguePoint( GetMaxFatiguePoint() );1 p3 E5 c6 p% a$ i# J
if( nJob >= 1 && nJob <= 4 )
5 X# W, O7 H5 o3 {+ O {
x3 U# n9 x" a* x& [ m_nStr = m_nSta = m_nDex = m_nInt = 15;
( O4 l( g( p; ], Z6 L/ z% ` m_nRemainGP = 28;
( U j0 v g5 m4 w5 y. K+ h }+ E& q8 g: F) z, Y) Y$ U
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )8 d+ i u: M% `1 t
{2 i% i3 P8 g: _# ~8 U0 K% d
m_nRemainGP = 118;
9 j0 A& E: Y8 d' Z% P/ } //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, G! w! m9 `# W0 W m_nStr = m_nSta = m_nDex = m_nInt = 15;" @9 F- [: l; C) O0 f: A D. _0 S
}, p& `# X' Z! G- L! \& c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ K" y8 F, d$ r {- Q% t; }/ g. P0 x t
CItemElem itemelem;
, G+ Y" d8 S2 S$ Z itemelem.m_nItemNum = 1;
1 X8 h, d6 E7 ]" R5 e itemelem.m_bCharged = TRUE;/ s; L2 i$ w* q8 F6 W
BYTE nID;# n) e: X* D2 \
7 E7 [2 e& m; \' ] if( nJob == JOB_MENTALIST_HERO )
% O+ z7 u0 q2 |' p itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ k3 j3 t( `- E! A! ], w8 f& I if( nJob == JOB_FORCEMASTER_HERO )7 C' H) E) ?( Y0 z/ r
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. F' R8 O* \# d
7 p1 O& {( {: A$ t- v ( ( CUser*)this)->CreateItem( &itemelem, &nID );
1 [ o2 l- W/ y- i% m; a4 [ }
0 J* }7 M, v u6 k5 ~ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 z/ v0 {2 _0 z7 G+ q6 k5 w; M ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 d% T O( K, w. {% j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
# T+ r# ]% X# y% ?( b /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
1 {: s( p: i$ S' O) n/ N) \2 @7 U ( (CUser*)this )->AddTaskBar();*/
2 e# M* G" ~2 A, j( A" S0 m$ R3 m W ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 l8 S6 w% e" `6 [* O0 b0 P
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
; i7 {$ q& u6 t5 I* j ((CUser*)this)->CheckHonorStat();
* _% ^4 {- ^( z+ j6 K' T ((CUser*)this)->AddHonorListAck();
* J! d E" L4 M, x( j7 H- L" \" V g_UserMng.AddHonorTitleChange( this, m_nHonor);6 X+ M$ m9 K# x
#endif // __HONORABLE_TITLE // ′Tà?8 |) t3 w b& p/ u1 A& u0 d3 V {
}
1 Z4 Q( T1 `! c9 X& b#endif // __WORLDSERVER- @* e$ z0 q4 ?. z9 P& |" G
}
& [* Q9 p2 J, F$ C& E
( [4 `% g" ]" U6 l$ v p然后你进入functextcmd.cpp并添加以下; S/ E7 _( I6 X
; P I, Q1 C/ n' Z0 j1 ^: V. B
代码:+ d8 s, C; H a7 R+ y
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- l: A7 t8 w1 K, @- ~
下面插入
+ E+ ~8 \- _3 a6 Z) b2 s! WON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
6 t. G6 ^8 J9 D6 E6 {2 R' ]0 ^3 }0 @0 C3 x, O
然后你去
9 ~0 F1 s8 N7 {8 _0 R. L
# \' t; e6 S+ p代码:
0 e; M' \7 W( q2 G Y代码2 W* Z7 a c+ N$ _
BOOL TextCmd_ClearPropose( CScanner & s )) N' f! V& X1 Y5 ?
{. V0 A) U. Q5 q% b
#ifdef __WORLDSERVER" \" I2 E n" K
CUser* pUser = (CUser*)s.dwValue;3 W* K9 ^/ i6 g
g_dpDBClient.SendClearPropose();; g) b" d& i, z. o
#endif // __WORLDSERVER
0 L4 Y$ ~7 _7 h! q) {; A$ V4 k0 N return TRUE;: D ~: q* ]( ]* h F6 I B) k
}! J1 S% P- |' i ]5 B" Y+ s& u
下面插入
5 J) Z1 h0 c6 z; l- h6 @( `BOOL TextCmd_rebirth( CScanner& scanner )6 J8 h- D6 ~0 ~
{
7 {6 Y/ F9 X0 y#ifdef __WORLDSERVER
* ?3 C8 F0 m$ p$ o( F5 H- N! [+ N! Z/ ZCUser *pUser;
! ?3 _/ {3 y0 k; ?; V- npUser = (CUser*)scanner.dwValue;
) L) n- q; _& m8 |if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 [" ?; h+ z+ u+ r; J
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);0 ~6 S6 W$ ?; _0 s, T
else
# o2 r2 Z) w ?: m( M, Y; upUser->AddText("你还未达到重生条件!");' T9 M( {# }8 t; k! |
#endif
6 @ b* f( r t+ {- W; P" Rreturn TRUE;
. I# f2 P9 k, N}
! Q. o7 P3 A# J- b( N; f, Y! ]: b$ R1 Q3 P6 Q" `
! e7 E# z; }$ z! a g
6 |" O+ }/ |5 N% g% S# |% d( m1 f9 [; j, @% z' N/ Z4 b
|
|