|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel% p5 ^1 E: {) S' ]0 k) }" D
0 G- d# Q+ h8 E1 v6 W6 Z, t
Mover.h1 n6 u* ^9 k9 d }/ `$ a
代码:
* m; e1 _1 D8 r3 t4 b6 _找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. O3 D7 T+ E }8 u% p9 r
$ J0 n0 B$ A8 P* j$ P! U$ L; t
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
0 J' [( g% D4 V3 c4 R4 d4 T! P
3 Y+ b' Y a# l, ^; h然后你去mover.cpp添加" I8 r, F6 s7 F& H
: g, i% v3 o! E- j( K! l/ T. O% e代码:
# r& X$ a' j; O$ u4 L% w3 y- D5 Bvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )' B1 @2 C' g2 E5 p/ |
{
5 c9 X' N, e5 F* K5 {#ifdef __WORLDSERVER
: T% O1 V6 L% D2 i1 }* t // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; T7 o. X! g7 _, L' |
MoverProp* pProp = GetProp();
! p: i. a. }2 ?* I; b, b B' b6 |' v! B if( pProp )$ ~1 w. R; F X6 h z% T$ m2 o. l. T* }
{
# E5 C+ y, F3 Z; [" o3 J if( nJob > 0 && nJob < MAX_LEGEND_HERO )2 V/ ?* l9 L; W! m3 _
{7 [$ f, q$ r6 `1 G- y! N. F
AddChangeJob( nJob );
* x( \9 R' O4 [* o( U. R }else{
, d% ?4 ]; C$ {2 P return;$ @& w- n2 Y4 D: N: t/ Y/ _
}
: \: K: F7 u2 B N; I$ q! Z/ g# U& V int nPoint = 0;
1 r* Z4 H( y- \+ W3 v& r# z if( m_nJob == JOB_MERCENARY )+ Z# A }/ L% C( S) i! a6 N/ {& h$ @
nPoint += 40;9 O7 w! K; X. K j
else if( m_nJob == JOB_ACROBAT )
9 N* ~1 [4 M0 v! G nPoint += 50;
, f% V3 G4 v ?' V+ ] else if( m_nJob == JOB_ASSIST )
* v8 [, Z; }% Z" A nPoint += 60;
\- J/ y Z0 c3 B) b9 w; g else if( m_nJob == JOB_MAGICIAN )' A9 ?+ G: G% d7 N
nPoint += 90;
) _5 g) m4 M0 H$ c* c8 d' I# | else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ r$ L8 u6 ]8 v: b nPoint += 120;0 j& c# I& H8 p; {. j5 r4 P
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
7 _ }6 [4 b0 R nPoint += 150;# W: K% S: Z' v
else if( m_nJob == JOB_RINGMASTER )% G" z8 A# a" W- h* j0 D5 m
nPoint += 160;
, g/ o8 z& n! a( J+ j else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 |5 g6 a. F# \
nPoint += 180;
" s" ?1 W! D. t* K5 c; [ else if( m_nJob == JOB_ELEMENTOR )
6 @! J5 y0 v& m& { f2 v nPoint += 390;
a# X; ?' O) m7 s- G4 S; u' V5 Y else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )+ z$ X. `# \% L0 H: D8 A+ W
nPoint += 120;8 }, P* w8 c0 K2 _0 j2 N5 M: c9 z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) @9 V' E3 c& A
nPoint += 150;0 W7 ]. r) X+ E" S
else if( nJob == JOB_FLORIST_HERO )% `, U0 e, y4 t* l+ W9 W
nPoint += 160;8 [3 h6 Y5 I! w1 Q) G. n. Z4 V# I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )' w4 ?+ a- J/ K$ Y7 m* i- ?& }* ]
nPoint += 180;
+ ^; g+ ^1 F7 o" k9 y4 u else if( nJob == JOB_ELEMENTORLORD_HERO )2 X' @; w4 d4 j8 T
nPoint += 390;
: q) [& D! f+ J$ y7 o
2 b+ K& ^& g; z8 L% A8 W" [9 R AddSkillPoint( nPoint );: A3 h1 S& D& k/ O% ?. P/ ]
m_nLevel = nLevel;
& P/ c2 E' v' V. K0 e( g( G
' _0 D9 Q+ `. i [ SetJobLevel( nLevel, nJob );
0 w! a" E( d3 M- l m_nDeathLevel = nLevel;
6 P/ L A7 S* a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
8 v/ P4 D% G4 d7 ]: Q& e5 b* O8 ? if(IsMaster())
) v% t) O, z4 o7 V: X {2 j$ ~) a- n; F) H% G% A- b9 `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108# s+ z9 Q2 ?: o, C0 y" {
if( nLevel > 59 && nLevel < 72 ). u( J# M! r8 w$ ~" A$ C
dwTmpSkLevel = 1;
1 E" G7 M5 ^ M9 H/ M+ p' Y& l else if( nLevel > 71 && nLevel < 84 )
/ ~# Z* A% l$ L1 \2 h0 V dwTmpSkLevel = 2;& l3 G- P6 r$ G5 v8 Y
else if( nLevel > 83 && nLevel < 96 )" {) Q$ F! |. O. q1 \2 Y g
dwTmpSkLevel = 3;9 w& ]7 D8 C- p( {0 w i
else if( nLevel > 95 && nLevel < 108 )
N2 M* y& a! o1 N$ K6 t dwTmpSkLevel = 4;- X0 e9 }# z; c2 t
else if( nLevel > 107 && nLevel < 120 )+ d6 f% }. ~8 M* ~' k
dwTmpSkLevel = 5;
, G) k) M7 k, `0 V for( int i = 0; i < MAX_SKILL_JOB; i++ )
: z4 Z( z& l% U7 Z( R { 3 `8 r6 y% |- N' _% ?, v6 t7 P L
LPSKILL lpSkill = &(m_aJobSkill);
- T: s# C& C2 l if( lpSkill && lpSkill->dwSkill != NULL_ID )
! G4 X2 m4 B' @$ Z: Z. O {
0 i* `) Z% ~' Z# P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ' u/ s- g7 f' Y. D
if( pSkillProp == NULL )* f& c' {) U4 E. n8 O# w" ^# x
continue;$ t2 a" c- y% P3 }% F# W! ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 Y8 C' n9 s. @ continue;( m0 U \, t( l% x) ?8 k" O
lpSkill->dwLevel = dwTmpSkLevel;% n' d2 O6 S& o% r3 G
}: i( `6 J$ C7 R+ v" O2 Z; N0 Z! Z
}$ H/ i7 N- i, }
}2 [ e/ G- n7 `) j+ i) X: A
else if(IsHero())8 h9 T4 L3 ]( [3 A4 L( R; a T
{
& }3 d7 a) S$ k for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 v* P6 K: F2 l% b
{
5 O' p+ S+ m/ q; r LPSKILL lpSkill = &(m_aJobSkill);2 U4 I4 i1 D1 \$ b4 H: _
if( lpSkill && lpSkill->dwSkill != NULL_ID )
K0 V/ {* N( R; ^8 v2 w {
% q% e! N4 q9 _1 P: s# e, d. l ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( W( x9 w' r) b if( pSkillProp == NULL )3 r# K' a' e3 r& ?- H
continue;2 @( t" j+ J W! ] Z8 Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)3 c' E5 h7 Z: c7 w/ B
continue;
8 R" p3 t( T$ t' ]5 V lpSkill->dwLevel = 5;
* a( }1 q/ A3 }, o% A5 r' G* ] }
8 I5 X2 H6 d8 m5 z4 B/ ]0 T }
$ Y4 e( F/ o9 Z f3 h4 m }" R( ]4 f2 X/ l" S9 C
else if(IsLegendHero()): n6 Q0 C, S; H4 ?5 e. S1 t* P
{
, G, |9 i2 Q( K0 Y8 @ for( int i = 0; i < MAX_SKILL_JOB; i++ ) % k1 ]+ w4 B1 i0 i% B0 E
{
. S+ R6 i3 C& y$ n; x LPSKILL lpSkill = &(m_aJobSkill);) w5 ]$ L2 r4 D; T- @
if( lpSkill && lpSkill->dwSkill != NULL_ID )% L0 [: Y6 Z# J6 d, E: N8 S2 X" a
{- w4 p7 w( ^- y7 A7 I- H6 `/ A
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 K I# R( e- Z1 q4 R6 l; e9 f* \ if( pSkillProp == NULL )
0 x# g$ D0 d0 t; x f2 ^ continue;
o$ W% S, P3 x7 P- J if( pSkillProp->dwItemKind1 != JTYPE_MASTER): o0 ]1 S) ]3 K2 @
continue;
6 @1 E1 v( V" y lpSkill->dwLevel = 5;. p' v& N5 y8 ?
}6 o6 I0 F' i8 V1 V" _- i
}7 g& `6 b( p& Y3 t
}
4 a8 @5 y l# y% B$ b- q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 n! d$ h4 z, T( @ if( bGamma )
4 C1 V; o* S- Z$ j {* }* J% x; l7 `+ m: m
m_nExp1 = 0;
" |/ @3 e) o4 C3 p }& b" W2 @' _" |! y
6 h. _, N- `6 v ( (CUser*)this )->AddSetChangeJob( nJob );
( U& |; d/ Q, c g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );: y0 X1 s) U$ v
8 p' A) ^( b, ~! y: {; R! W& D$ Z4 u+ M1 P$ I" N6 u
#if __VER >= 11 // __SYS_PLAYER_DATA
) \: p* n; \0 b. c& \* H; T) t g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
8 N; j* s+ ]9 z- |( u#else // __SYS_PLAYER_DATA
: t! c: m+ g; ^% R g_DPCoreClient.SendPartyMemberJob( (CUser*)this );' ?, t7 I" y* y- ~. @1 w% }
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% t8 k( M! x" m: n2 Y
if( m_idGuild != 0 )
, V2 y; K5 h( a g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 @0 o$ Y+ l# b$ j6 I
#endif // __SYS_PLAYER_DATA$ s7 Y) V/ c: f+ N- H- K: N
SetHitPoint( GetMaxHitPoint() );
: W j, d. c" [, ~) E SetManaPoint( GetMaxManaPoint() );9 J6 a- v. Z& P; ]! w8 v$ z
SetFatiguePoint( GetMaxFatiguePoint() );
3 I9 s4 ~5 X4 ^3 p if( nJob >= 1 && nJob <= 4 )- L) ^. c4 g" B6 i L1 [# H! W$ u' Q9 p
{
" X/ d3 N" L' | m_nStr = m_nSta = m_nDex = m_nInt = 15;
* V0 X. z9 N% A, c m_nRemainGP = 28;+ X& b3 K9 }$ H2 T
}
+ m) j: m8 X E1 Q! g1 ]1 x if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# \3 {1 L& C7 W3 T
{
# g1 \, |$ d. ~2 l" u' ^5 a m_nRemainGP = 118;$ A9 ]3 a6 Y/ {
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
6 A, i3 h, Y: L& Y m_nStr = m_nSta = m_nDex = m_nInt = 15;2 j; z/ @- q3 O
}6 z3 P; x8 u6 t" p1 g/ ` U
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ p: B( T/ O# _# E3 X/ Y# s
{. ]+ W# W* p4 Z' C0 o \9 }
CItemElem itemelem;6 K4 X, [6 z8 Y5 ]) d% \8 m
itemelem.m_nItemNum = 1;) k k# a" C/ f: V0 q Z. l
itemelem.m_bCharged = TRUE;* w" F4 F3 W/ N6 @- R. p+ Y, k
BYTE nID;
, } e+ U. _$ ~# X; `- [4 ~9 s+ f# z+ L! G$ M
if( nJob == JOB_MENTALIST_HERO )
) P& Z1 M: j+ O+ w itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; T6 |+ F) `2 k7 M
if( nJob == JOB_FORCEMASTER_HERO )
- W+ {& M' D: Z$ G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;3 ], e# A& N: J" x4 p2 |
7 g1 f( A8 e' v0 o* G
( ( CUser*)this)->CreateItem( &itemelem, &nID );4 q- Q+ l- m! I2 q3 F
}
9 ?5 w# J8 o4 r3 x4 W+ M" Z g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# ~3 m u6 z# n8 G# I
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );3 n9 S& F& p4 @4 [! L \
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
0 t6 k2 \ j; L1 Y4 E7 U5 Q9 F5 E8 p /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
6 A5 U1 [( F3 \8 |7 ]: `: f ( (CUser*)this )->AddTaskBar();*/" t& F f" i: R
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
' f& D1 F( O8 Q4 l+ n#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 b8 d$ F& [4 N/ y* O- X. @ ((CUser*)this)->CheckHonorStat();$ I2 ]. S! g; V% a( M0 P
((CUser*)this)->AddHonorListAck();$ p. z( y j3 n* K% x$ T1 M q
g_UserMng.AddHonorTitleChange( this, m_nHonor);! R7 _; G. k6 y K4 x
#endif // __HONORABLE_TITLE // ′Tà?$ O- I3 P+ p* R: Z$ z
}
2 t7 }8 q; X( M' e#endif // __WORLDSERVER
* X( H) t3 |) a Z; f}
) i( v+ {1 s0 m
8 I- V7 y: H- z1 K4 F/ x然后你进入functextcmd.cpp并添加以下
3 B8 j% J% d: X4 k% R2 @9 B! d1 g% t- `- X5 q& D0 J
代码:
# M" C" Y& ]& w0 s4 r* XON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ Z, l0 \2 R! ?" Z9 A4 @& N% v下面插入
) s0 }. t& b. ^6 \* dON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ S/ g# T% p. B; E& R
( ]8 x7 u+ p. D$ f1 ?2 e+ }然后你去
5 W+ K; Y7 r! W# h1 x% k8 \3 R8 h: T7 _. i) Q2 t0 w- u
代码:' u& l* h: Z. \4 R# U8 V
代码
2 }6 Y$ M4 s: D8 J0 a6 CBOOL TextCmd_ClearPropose( CScanner & s )
% r( I |! M) H" X( h% {{5 \: m! z5 ^& F- L; a: b3 v* i
#ifdef __WORLDSERVER/ y5 c: {6 H C2 H6 \6 _
CUser* pUser = (CUser*)s.dwValue;
3 Y) P9 b: B! W# ^ g_dpDBClient.SendClearPropose();6 j3 E& c: f' A6 I" |
#endif // __WORLDSERVER' W* }9 ~/ }& l: X- u1 f# X
return TRUE;+ y. Q# p* R& J% q2 c
}
0 c* k# M5 [9 D9 A3 F2 p6 s! F下面插入, Q2 \! ^4 b& b9 Q2 D0 c U! b
BOOL TextCmd_rebirth( CScanner& scanner )
# N; C( u& |; s" ~: m4 S+ x{/ Z( \/ K4 i: ?
#ifdef __WORLDSERVER$ ^- ~4 f2 s; g% M9 d1 T! U+ T2 N6 f
CUser *pUser;+ v6 X" @- G1 _: A# G) {
pUser = (CUser*)scanner.dwValue;
9 Z9 E* p _# p. v. k& bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ h# ?" {% g' V3 f& G) {pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);! l; z K4 E& \) m2 V5 d: P
else1 c1 J% t6 i$ o
pUser->AddText("你还未达到重生条件!");1 \8 t# q( e7 g4 }
#endif: x$ q- W; |9 S, `8 e. F' A' F8 u
return TRUE;" V+ Q& N! W7 K% ?
}
4 w. y2 J5 T: d5 ]$ h* V( U J6 [4 F" n* t, i: ~
T- M+ D" Y X: B
t/ ?, N( A |- \6 x1 B: A+ Z
; b) i& c2 \0 z" @) m |
|