|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
" f$ n. s* j* N. H- e7 ^* q
4 k. ^8 A% J2 H" J" s6 f' \: BMover.h0 j q' b, h0 e
代码:
" s: R0 x5 T* [2 L9 @; r- v找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" m q3 {$ M3 y3 M* ?' z
& ~' M/ S- I, P- p% S8 D" R下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! |. n8 U+ p( B1 b# S# P' u! D) U1 ]4 F% n
然后你去mover.cpp添加
- t; r- E M1 N0 u! m1 D3 t
! e- W6 }9 ^* o$ s8 R代码:
3 m6 a" z' f5 M" ]/ Rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 m$ e! Z9 H% r3 f( o/ k{4 y+ n& v$ J: o* f" q
#ifdef __WORLDSERVER
6 e! s" r: z2 g9 Y) S5 v/ ^ // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
. M. E0 H+ ]/ c* s5 y: T MoverProp* pProp = GetProp();
- e& x9 Q' N* f0 v if( pProp )' {2 f2 z/ f7 Y1 y, p
{
2 @. D$ C) V j( K if( nJob > 0 && nJob < MAX_LEGEND_HERO )
# M- M- y8 O# e6 [5 [( y% _! K {: m4 E, O- H2 P6 z* O
AddChangeJob( nJob );( j7 O) ~# H; W9 }
}else{
4 a5 T2 Y1 t- ?1 X, j y% J% {, y return;$ p( ~0 b# w- a& j% p& v
}* v R5 G& \6 [: c4 g5 K
int nPoint = 0;
2 n5 x- e" }; U9 v0 p: W& n/ B if( m_nJob == JOB_MERCENARY )3 {$ ] ^0 K4 C2 F: H. T; |
nPoint += 40;2 [- z5 ]0 [6 K5 N' P7 U& H8 M
else if( m_nJob == JOB_ACROBAT )! r6 z+ w& X' \9 h
nPoint += 50;
, m9 e+ I) e5 `2 d+ B! C- h$ O' e( y else if( m_nJob == JOB_ASSIST )0 I0 a% I8 B$ m5 Q1 z
nPoint += 60;
* m5 l1 w/ e. {) {/ R else if( m_nJob == JOB_MAGICIAN )2 K! P( t: D# n9 z# c) M _5 T1 f
nPoint += 90;; r+ p& T! ~$ H8 }6 P1 Q
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# V0 K3 r. a' [3 q
nPoint += 120;- U* u( |# ]7 v! F. I
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 |# R5 V. Q7 d" C! h0 a* L
nPoint += 150;8 O2 E, h+ E/ g$ {& ^# M
else if( m_nJob == JOB_RINGMASTER )7 U J( j) N" h! R
nPoint += 160;- T! q5 V; h# R: v2 v `/ P% S
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- T+ g2 \9 c7 r1 n! U: W$ U
nPoint += 180;: a$ |6 I; u, M/ _. R
else if( m_nJob == JOB_ELEMENTOR )
4 y2 l' V+ F( L8 H |4 b nPoint += 390;
8 u) @# I/ R9 U( O$ I2 q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! T5 I- q# q. |: z& b) h nPoint += 120;: X" j3 z2 J% q0 D \% R9 Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), ~5 J/ Z9 X2 w. E' I
nPoint += 150;& I2 b: r1 {- U: v
else if( nJob == JOB_FLORIST_HERO )! l& q4 H* [- Y8 o6 x$ a
nPoint += 160;0 _" o$ C1 N' K; h5 B3 q/ Y
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 |6 s$ D8 r6 d2 W nPoint += 180;! z6 u+ w- t( }2 f1 S
else if( nJob == JOB_ELEMENTORLORD_HERO )
2 o7 H0 U/ r: W7 A* i nPoint += 390;
# v( n" Z8 L6 }+ M
- z5 x9 ]7 a, X0 `6 M* h2 E AddSkillPoint( nPoint );
) p) P+ I6 J7 ~( j# q m_nLevel = nLevel;: w9 R( p6 m4 n+ t* Z3 Y5 w6 v$ }
2 ?5 p0 ?/ M' G
SetJobLevel( nLevel, nJob );
% \& e! F2 e e4 v; N. i. K m_nDeathLevel = nLevel;0 m( o" x! I' k7 P( G
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) f5 g) `- r' F+ o" s L7 D if(IsMaster())
5 `. o9 Z9 A( t' e' ^ {
9 H# z& r$ ?9 l int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, R* W. A% q7 S. h# U& J" t8 d& G
if( nLevel > 59 && nLevel < 72 )
$ y" B$ |: K; z dwTmpSkLevel = 1;+ e' C! U, H7 F! R- e
else if( nLevel > 71 && nLevel < 84 )
+ c/ K8 W# q- `4 }; f dwTmpSkLevel = 2; `8 ~* }! l$ K3 [( F
else if( nLevel > 83 && nLevel < 96 )1 c6 V$ G5 {4 Y0 x/ f+ {
dwTmpSkLevel = 3;
- M* B" z7 ^( D$ A9 p else if( nLevel > 95 && nLevel < 108 )
9 B+ ~) I/ O, J; {$ R; E' f dwTmpSkLevel = 4;9 {# @* R1 J: |2 f) _
else if( nLevel > 107 && nLevel < 120 )1 Y( M" e9 k4 H% o$ v8 j
dwTmpSkLevel = 5; n0 }* \) z- I- h ]
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) X9 @6 a9 |! p* x3 O$ ?; C+ `
{
1 b1 w" S7 d2 M- J3 k8 c LPSKILL lpSkill = &(m_aJobSkill); h$ Z) e4 _: z5 D# P k
if( lpSkill && lpSkill->dwSkill != NULL_ID ) R6 q& K- Z) l2 @
{
/ ]; Y. W0 J6 S& B4 p4 [- r: x: c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 q1 F& K/ Y" e! z2 ? if( pSkillProp == NULL )! G6 W: M. _2 K+ t
continue;2 H* J. n- I* l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 V$ f }$ L5 v continue;7 e/ f4 i0 Z# e, Z0 V; C3 r; w
lpSkill->dwLevel = dwTmpSkLevel;4 b4 ~$ b7 ?& g% f' E ?4 `8 ]
}6 b! L3 O5 }" k$ s' Y5 c
}
. b, z6 A- W9 e- s' F N }
$ S* y6 P* U; _2 H3 {! D else if(IsHero())
1 `2 Y8 c- _$ ~ w {( J3 g, |0 t( v) N' B6 @) e
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 L- e7 n; V' C2 ~1 @ {
; V, n6 S# X, h. R LPSKILL lpSkill = &(m_aJobSkill);
. \3 ~% Q1 W6 N if( lpSkill && lpSkill->dwSkill != NULL_ID )2 {: M0 Z+ H1 r
{
$ O6 O1 l( X% A; m0 W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ) O; `! [ Q1 T) ]
if( pSkillProp == NULL )$ A3 ]! J2 l# `, @
continue;
: | }& n9 _6 G1 f' ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 R5 R5 I0 s3 A# v/ W, w continue;
. y* ]' [ o7 H lpSkill->dwLevel = 5;
) G1 q7 T0 T5 r' s: Y! N; D# n }" R+ Z2 b0 ~4 w) Q0 N: w
}1 v/ R X/ o' y) t6 N
}
2 \3 v! {7 {) c8 V( P else if(IsLegendHero())0 W, m7 J" p: A+ I+ }
{
. h% k0 H$ S9 }4 d( |6 z for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 b# ?! L" Z5 r% A
{
- Y, a9 E- s! j& x. o7 ^. J LPSKILL lpSkill = &(m_aJobSkill);
; |( ]# D6 A# O if( lpSkill && lpSkill->dwSkill != NULL_ID )8 Z$ t- K3 ]* Y
{
4 w/ x. D8 ?- J/ ?8 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # A* r& O) @; Q6 Y( ?8 _: M
if( pSkillProp == NULL )' e8 H, J& T) S* {
continue;$ [6 c2 t6 ?2 ~0 z
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# J2 k# D5 @$ e: W continue;
$ A. v; i) t% z7 s0 r! e lpSkill->dwLevel = 5;6 F6 }4 T! Z) g3 m
}7 A/ {- l8 M3 B. ]: x/ Q9 n5 l6 j
}
8 h K, q) o: U }" [4 g5 P# e+ T1 `+ T
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans# e! O: ?! N- x+ s
if( bGamma )
. c: q0 [$ V2 t8 y/ l {
5 U0 s; B/ ~% Q+ M3 a m_nExp1 = 0;5 M0 B: s+ s2 B. U; q' `& h; x( {
}
" _8 K5 h7 d n3 t' k! `+ x0 F& y4 [5 \6 t
( (CUser*)this )->AddSetChangeJob( nJob );% x4 c7 d5 N6 P) H6 Z2 e6 o! `
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );8 j$ x- c" F8 E
! m5 T, d+ C0 }5 X: ]6 z' P. R; F8 m& Q
#if __VER >= 11 // __SYS_PLAYER_DATA% w. a0 c5 f% P4 t! \1 I
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
: z: D( A$ K* j8 N' C#else // __SYS_PLAYER_DATA
0 }9 ]3 m: x1 j3 I6 P- A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
" X; {0 H& y" @# |* |3 Y g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 t2 ?' V2 a; w' Y, i# w3 @: Z. t if( m_idGuild != 0 )' I- ~) x7 l, l* x' j% `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- `9 m; e- h+ u6 ]
#endif // __SYS_PLAYER_DATA
5 c e9 D2 Z% D8 g9 G% Z& Z SetHitPoint( GetMaxHitPoint() );" Z! X% z# r3 M! b+ c+ m7 `9 V; |
SetManaPoint( GetMaxManaPoint() );
( f& v, A+ Y* v& o r SetFatiguePoint( GetMaxFatiguePoint() );. C" l+ M( i' x/ t! Y9 ]
if( nJob >= 1 && nJob <= 4 )
) t: ]. u- H& g; [$ T. a0 E {$ K3 r( c$ q4 j# F7 I
m_nStr = m_nSta = m_nDex = m_nInt = 15;& m5 D4 J! c: _. z- U( V2 N0 a$ n! `% S
m_nRemainGP = 28;
. j, X5 l4 |, c9 @$ X }
5 C* z" c( r9 \ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# Z$ f. _# d6 H, \: I: H8 e
{& c# \; T7 J* g
m_nRemainGP = 118;
/ C* t' J B# C( u, c3 u //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
1 X3 Z$ L! B8 M) C& h( }. f m_nStr = m_nSta = m_nDex = m_nInt = 15;* `- J6 @! I% O" p5 x% Q
}4 N2 e2 E; y L! o) }; s# g5 C
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )# P' p5 p( r/ l1 e
{
2 t; f3 g7 b3 B7 s CItemElem itemelem;' Y5 S) B2 o) G3 N
itemelem.m_nItemNum = 1;
* j# p5 N& ?# ? itemelem.m_bCharged = TRUE;
: b$ K( M4 [* c1 F5 z7 L# M" Z BYTE nID;; a, `1 e$ [6 R6 G* @( |% y1 E
& L K! Q9 u6 W- U0 {# u" Z if( nJob == JOB_MENTALIST_HERO )
7 [/ _# N C; L# u3 _ itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! P0 S* O2 P/ |( a. ]6 ~% p" ]
if( nJob == JOB_FORCEMASTER_HERO )
( Z% Y8 Z# {' Z5 N itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: L: S& }4 D2 B2 @6 C3 u/ t! z3 j a
6 E8 T* M4 I( b- L' |8 S7 k ( ( CUser*)this)->CreateItem( &itemelem, &nID );
: d; H+ z! Z1 c# f" e# U8 n8 b S) G }
6 g; o# I `$ z# g" S2 { g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
) O7 F/ o2 H0 B; q6 u" m* ` ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
) r9 u& T. W- [& y2 f; C) P$ ?& ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );* w1 `' p* ~+ w( i) W
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
K/ g/ e" j6 ~ ( (CUser*)this )->AddTaskBar();*/
" H5 M; S3 Z0 e& o/ r' T0 e1 B ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, O1 M( I8 T9 _" m3 |$ p#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" i; X1 G: F# p ((CUser*)this)->CheckHonorStat();
1 N" q( Y1 w# a4 G# ` ((CUser*)this)->AddHonorListAck();
! q2 [2 w3 q; o. ~, | g_UserMng.AddHonorTitleChange( this, m_nHonor);: F' e) j. e( T2 [+ L4 G9 \: N0 Z
#endif // __HONORABLE_TITLE // ′Tà?6 e' w* \( x9 Z: _
}
4 W/ L1 d+ T/ {8 Y, T& J3 u#endif // __WORLDSERVER2 O `9 z# s8 A3 V$ B
}
$ C5 y5 u+ o+ y2 d: l) g. A0 o! Q0 z/ F4 l0 ~
然后你进入functextcmd.cpp并添加以下" c0 \2 \' [) S" j, P
& C4 s. M( K: G5 G G- [% Y
代码:4 U: A9 X# T8 c/ D2 ^2 f
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
& O' F5 H/ V2 u6 m! E/ a5 F下面插入6 Z& U& B/ o8 q6 k, V: M
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - v k+ j1 B; v2 A: K* k
2 ^. c- I' m" \1 a- g- A
然后你去
9 C7 ~, b1 T" W
' e. A# {; P& a+ i2 w( o, {代码:
+ j+ b5 k+ Y8 i8 j( C0 l4 b代码1 G! U- c% H i: U& S
BOOL TextCmd_ClearPropose( CScanner & s )
/ [2 J8 B; s2 x. S0 W6 K{
5 z k/ L' J% R2 R7 B#ifdef __WORLDSERVER
& F7 I; _0 [$ A8 f; N CUser* pUser = (CUser*)s.dwValue;
3 W0 W, n* Q9 m5 P7 f6 G: Z, H4 Q g_dpDBClient.SendClearPropose();# p9 V, M# V5 ^* @+ p! n
#endif // __WORLDSERVER
, P* {, z1 [6 r return TRUE;: q' E& b0 e: c. N% Y! _0 ^
}; U4 F5 f$ i( A* S, s5 g0 |5 d
下面插入. t0 X' R3 T& h2 T0 [& h& K! I/ a
BOOL TextCmd_rebirth( CScanner& scanner )
0 z* }6 z( r/ `$ `{
$ w+ g8 z9 g2 i- Q. X5 ~9 p/ C3 E#ifdef __WORLDSERVER
1 V( i! L* C4 @CUser *pUser;
4 B: M4 Q2 p* w6 c& a6 F2 ypUser = (CUser*)scanner.dwValue;
0 A* K5 b% v! N2 a7 H' _! T# Yif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 |4 Q8 w+ g/ |% L
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);" d! @5 O5 q% D* ~0 f6 \
else
2 @7 a0 K( t2 B' p) ~8 ypUser->AddText("你还未达到重生条件!");; }4 q3 { @4 \7 `* U
#endif* c, R# ]+ d9 A- }0 o2 T/ T
return TRUE;
8 w2 d6 i4 o9 U7 f0 D+ u# P}
& f2 m) f0 G" P. ?) N4 v: K; q- v5 N; ~4 u) l7 [$ B
1 {2 W0 s( g3 k k& k6 ^- _
* j5 d# a9 L' i3 M9 Z7 i8 S. ^1 n+ S- i* i
|
|