|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; _! a& ?# N( ] S
) c9 b. R+ ~ G- L: ^7 C* G3 R g' A
Mover.h
7 U2 Q; c( i0 Q& Y代码:
! F: o8 A* J5 s找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& h7 Y: m; ~$ w- V1 |, e7 I$ |
$ X3 k% I! x# t/ `, ^- \) x下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
9 e6 \5 X7 w, U6 A2 z. M
+ q; i& U) k0 v2 u" C$ A然后你去mover.cpp添加
8 s0 ^8 ?8 d( J$ F5 A; C1 y* ^6 H$ o% H" V* Z
代码:' v! \0 R ]8 k! q2 |* f
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 i0 ~1 Q/ P! I; N1 K
{
: r) B2 E8 K+ H5 `0 ~' `; \# a% l: |#ifdef __WORLDSERVER' E# D8 N: S1 f9 X' p) p3 l
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! E1 g* a; }, u+ t7 s, X
MoverProp* pProp = GetProp();
7 t6 U% w c! p8 M if( pProp )5 {+ o) J6 {5 R
{5 ]9 Y$ ]* p" r f
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
4 K k% j' R6 H% R9 @& g {
% m( i5 {4 A! A- V; w* x AddChangeJob( nJob );( }, T& h8 X; E9 K7 p- u) K
}else{
/ _( q0 H) P; u7 k return;
3 ^/ o$ N' W: ]0 P }, y+ k# z6 ?4 W: E' Y
int nPoint = 0;6 S3 \% E2 X+ e8 q
if( m_nJob == JOB_MERCENARY )
# v) l- t0 g( M l+ j nPoint += 40;1 }, D' k5 |7 J* B
else if( m_nJob == JOB_ACROBAT )
' }- j# m: y5 W nPoint += 50;* h4 E: }( |/ [
else if( m_nJob == JOB_ASSIST )
' y- V2 f5 n# I nPoint += 60;
3 a4 I4 e( P V) C7 ^* G else if( m_nJob == JOB_MAGICIAN )/ d+ ^6 d) r( V: ^! J4 \
nPoint += 90;
! f9 N- i2 T5 v* R& P2 P8 N# I) @ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 C& t9 I5 G& p, i
nPoint += 120;0 {! ~; z5 C3 o- R [
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 V2 ~" k! q* f( q" w' S R
nPoint += 150;- }" j% ^! g0 ], r; u0 P
else if( m_nJob == JOB_RINGMASTER )
2 k- {3 a+ U I; ]& O3 u/ {. V! b nPoint += 160;% W' d- \- Z( \: n" a
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
+ Y/ [2 ] q4 |) O nPoint += 180;
7 y7 a3 p/ K4 `# U+ _3 w else if( m_nJob == JOB_ELEMENTOR )
1 k# a. _0 ^& D+ u& h nPoint += 390;9 i0 l% |( N& t% C% i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 o' Z* H8 s6 A3 e+ s3 b
nPoint += 120;9 ~8 e' t1 T6 X$ }$ W
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% D4 r3 P! y' |( K3 ?! M
nPoint += 150;
% i7 Y7 L/ c1 d1 B else if( nJob == JOB_FLORIST_HERO )* F: G0 ^; k, M4 m L
nPoint += 160;
2 j' g3 @4 W3 H, A! ] else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 X w' J+ R3 Y5 C5 v2 Q
nPoint += 180;5 m# f: O3 S9 {4 t1 P \
else if( nJob == JOB_ELEMENTORLORD_HERO )( |+ o# V4 f6 A }: F1 }
nPoint += 390;, n1 I& J9 m ^# C `( X# l
! O4 s% |3 w/ ] AddSkillPoint( nPoint );
: p7 k6 p4 G. i2 Q- i m_nLevel = nLevel;
& z- _4 y N. ]5 C* C" a, Y3 C" b. y; Y7 Q1 A5 \
SetJobLevel( nLevel, nJob );5 G4 j* v! B. R5 a% C1 X Q' H8 |0 v
m_nDeathLevel = nLevel;/ ^) @1 o) c6 A, L( L1 L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& ~% x, s$ i* r! [" j g
if(IsMaster()), _. K/ e4 Y+ e
{: A2 {8 a, k7 J7 F
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% B' @& e. J$ v) W
if( nLevel > 59 && nLevel < 72 )% A* E$ s7 r- `4 O2 i9 U
dwTmpSkLevel = 1;
) {9 H3 K. G, {2 [' I" q) ]% G else if( nLevel > 71 && nLevel < 84 )4 K# ]; @9 z; I
dwTmpSkLevel = 2;# v! R) P7 y9 D+ b! E
else if( nLevel > 83 && nLevel < 96 )" c, ?4 V. w( P- ~7 g: v1 ~$ R- J
dwTmpSkLevel = 3; m% I p. O# T# |
else if( nLevel > 95 && nLevel < 108 )2 Z8 w1 D/ e, r9 C( A6 w3 `: W
dwTmpSkLevel = 4;
& J R* U) I, k. e. I* f else if( nLevel > 107 && nLevel < 120 )
% {$ C. N& x( a* a7 D dwTmpSkLevel = 5; |, p8 ~) S A7 T m2 X* r
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + g; ?: M& g' M! e: ~" \0 n" `+ l
{ ! F7 u2 `8 T$ w/ H3 m9 p
LPSKILL lpSkill = &(m_aJobSkill);/ D- j$ Y/ N* j3 C. s9 v
if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 r. y3 X6 w8 l6 e) B {$ f! w: F% `- J, D C5 t
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: ?" t) J, D8 g9 r! ? if( pSkillProp == NULL )3 j8 j1 D2 w1 u3 f/ h
continue;
( J* W) U; W. L5 _* X if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) g& g9 m# h+ I8 }, f continue;
0 c; `2 |- D: {& m5 i lpSkill->dwLevel = dwTmpSkLevel;7 Z S: l& j3 X7 }/ I6 J6 [
}) M. Q3 |5 Y$ G U7 f) E
}0 }0 N. V0 y; w, p! q8 g; V0 A; j
}* a4 g7 j# d* n t, B# X9 ]
else if(IsHero())
7 F0 G" E" O! k9 Q: X% F. X {, g( T+ K$ `1 K/ B s, o6 u
for( int i = 0; i < MAX_SKILL_JOB; i++ )
+ t; e7 s. |4 U; {" ?8 }4 P$ ? { y2 }1 ?* g9 `+ n
LPSKILL lpSkill = &(m_aJobSkill);
+ G$ k* Y# x0 i% R: S if( lpSkill && lpSkill->dwSkill != NULL_ID )8 [1 v9 A: P' l" K
{% U- _3 h. }7 m! k9 p' K( Z
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 N% W" O6 p$ x8 s* p* P" V
if( pSkillProp == NULL )
' K6 t1 x7 W2 r$ }, {- ~4 z. d9 Q0 K continue;; N1 N3 \: L( p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 z4 ]; u3 _- w3 Q2 J
continue;
/ z, Y p( T, M lpSkill->dwLevel = 5;+ S7 h. C7 a# R8 M' P+ ?$ T
}
% |6 v- p* X4 J- l$ K8 U9 h _ }
6 X5 M" y! o/ o. b }# b: w( l" b; l4 z
else if(IsLegendHero())
' W; E6 h Y. T" V; d {' p3 c! W3 A4 k, k
for( int i = 0; i < MAX_SKILL_JOB; i++ )
# F4 n3 q% w) X2 G {
0 w, L) p q c* T& f( c LPSKILL lpSkill = &(m_aJobSkill);& r. l/ D/ O* G! z( R
if( lpSkill && lpSkill->dwSkill != NULL_ID )
, i9 H0 }1 Y t3 S0 l* i- { {
! {! u" ] u: {, I, \/ L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 ]! b2 F x8 f5 R3 }
if( pSkillProp == NULL )
6 }: g* K+ s; a7 Z continue;( r6 o8 t/ [) N& o3 r3 j
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 D8 o) j% d( s2 `3 f& W1 I; r continue;# e6 p$ w; f& |
lpSkill->dwLevel = 5;
) g2 k a9 q: p4 W/ k- Q! B/ u }" i( }- Y' R- y6 V# r. a- X; m8 D2 t
}6 f4 l$ A$ \. H+ h& @* ^
}
8 T& F6 j6 K( I; b0 X#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' I3 ^+ O- G% F: b& e; ?
if( bGamma )
0 H! L: [9 B. o/ V/ B {2 q# L! @3 \; G
m_nExp1 = 0;1 U5 y" D+ ^7 D* n
}% l% Q* B. n% R5 q
! Z) A5 n, ^2 P' l+ s. E3 P ( (CUser*)this )->AddSetChangeJob( nJob ); h0 S( n7 R# ?3 @- q! ^4 N$ a
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 Y8 s5 v: }! G; d( W0 X% G! f
" d0 v' ]9 F) i; n+ l( w( ?/ K
6 p6 t& y& C8 m& t" t0 i! E. a#if __VER >= 11 // __SYS_PLAYER_DATA
' I! l; Z6 K. n" L: k: D g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 E# ~' d a0 m! Z% @' A2 a$ W
#else // __SYS_PLAYER_DATA5 K! q. O& r6 y+ n' u" T
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
3 P7 h: a$ c( a3 Q5 t' ] g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
3 j4 f2 R) V7 U; e4 E if( m_idGuild != 0 )! T( ~: V; Z. A! U* ?
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( [" b. a7 N# h) w#endif // __SYS_PLAYER_DATA1 q6 ^( _# }8 X( y
SetHitPoint( GetMaxHitPoint() );4 ]1 I1 a& h$ ?- r
SetManaPoint( GetMaxManaPoint() );0 i7 V, R& H4 K, x0 D' B( Q
SetFatiguePoint( GetMaxFatiguePoint() );
9 t8 m. u8 x6 v7 e if( nJob >= 1 && nJob <= 4 )
' X1 m' f5 d3 l- m( E' ?/ w& x {
7 e3 |0 l5 T& J; s1 Y* m0 K# N7 J m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 W# j+ | G% X! B* G4 p- H m_nRemainGP = 28;) l! n' Z; D+ e% Z& W$ m
}
8 W4 z2 m2 D0 o) i- v6 o' S/ a6 e1 i, ~ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )* m) |' @2 Q% j& J
{& T% y W3 m5 ]5 t) A s
m_nRemainGP = 118;
! j v# O# c/ c: n, u* |* Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
3 u0 C+ o5 \. f m_nStr = m_nSta = m_nDex = m_nInt = 15;
$ j5 y6 d% H6 D- E/ V }3 x- N! J- Y! w( m" C! C! ?$ G
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). i" D% L# E0 u/ i3 S: y- I
{
9 C) q. b# _( p7 r9 X CItemElem itemelem;" _: i6 N3 c/ u" a' {# `+ B
itemelem.m_nItemNum = 1;
% n2 W. [7 h" z: Z1 `9 N+ r itemelem.m_bCharged = TRUE;
9 T9 j& z k- u! j: V BYTE nID;
1 f4 q% w8 p7 r3 S B% p4 H) k$ O. ]$ Z9 t( A% e6 K* I
if( nJob == JOB_MENTALIST_HERO )6 W3 K/ }2 X$ E* |
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) K" d6 e" i% [+ i/ u$ u
if( nJob == JOB_FORCEMASTER_HERO )
) U( I+ O* P* j( x: a itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;8 O3 N5 c3 d( x8 p$ U" ?9 ~. }
: U/ D E& s6 W X$ C6 M5 u. C1 O
( ( CUser*)this)->CreateItem( &itemelem, &nID );
! f, a/ X) \- q9 k8 C- r* ~ }4 B+ H" ]) D" D( s
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );; K4 @% v) y; T) F$ r( V8 l0 @: v0 W+ ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
# V. a; C$ c: } ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );/ e" k0 Z0 v( b1 a+ k
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( L' u% b0 J( X1 u' {/ h8 L, v4 ^
( (CUser*)this )->AddTaskBar();*/
: T" ?5 ~3 z! f8 l+ d2 S/ R, {5 G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 R1 w5 y/ P( @4 m) y8 o5 \9 w% T
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
t4 S Y9 a" {" Q) B& _5 ?# p' Y ((CUser*)this)->CheckHonorStat();
# {# }( g3 @& L% `3 ~1 r ((CUser*)this)->AddHonorListAck();7 g- n, E8 s& C
g_UserMng.AddHonorTitleChange( this, m_nHonor);' M6 Q/ P7 w/ y, a- Y, _+ e' {" C
#endif // __HONORABLE_TITLE // ′Tà?
1 ~, F, B5 J: R; H$ s }" C7 k! i7 Z9 g$ }5 d) P
#endif // __WORLDSERVER
% |' Q* F) i; [2 _. h! ~$ C} . x3 B) x9 f" p/ Q4 U
' o0 V, }- V9 _ p( Y然后你进入functextcmd.cpp并添加以下$ H% E% j- I5 M* ?' i- v$ _1 u3 v
% u" o" e( M* e% {! F L0 t7 f
代码:
& W3 \& b9 _: zON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ m! g- k; P5 K( q! T' h下面插入9 b( k4 h7 A3 B6 ^
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 b# \# G; W8 Y! @3 h6 z$ n' ~" U" I9 i
然后你去
5 u. m$ U v. A7 l
" ]+ `4 D! N4 @: q代码:
, t u. W. p: n6 z7 {' e代码2 u" p* H6 M3 ^3 I2 d. f
BOOL TextCmd_ClearPropose( CScanner & s ); n8 R* V% e3 Y, J }$ u) [3 T& j7 q
{4 n0 x5 {& \3 L: b( i3 C' r! X$ H# u
#ifdef __WORLDSERVER
# E3 K) D X$ Y# P( U6 E& E CUser* pUser = (CUser*)s.dwValue;
. L' Z9 t+ O( u2 X g_dpDBClient.SendClearPropose();
* B; E7 G& t. c" {$ t1 V#endif // __WORLDSERVER2 }; C8 }0 o& q# P9 F! A6 w
return TRUE;' d4 P8 m1 V2 s' Z: A
}) @' i7 e8 r/ k2 L2 G0 k' l
下面插入9 U0 O; e5 {$ U$ B- g
BOOL TextCmd_rebirth( CScanner& scanner )+ |8 @6 J# k, u& `' L8 ~0 s% R
{; S0 `, S. O( y1 `
#ifdef __WORLDSERVER* a! H: w* ]3 H+ O K2 y
CUser *pUser;9 ~5 ]8 k+ k9 U- c: t
pUser = (CUser*)scanner.dwValue;# K- N m. P' |
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())7 t K" l$ H* c: w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ l) g+ b8 D* q9 Ielse
2 u% g; v* Y+ c3 X- S3 DpUser->AddText("你还未达到重生条件!");. N- `# V9 l' e( P2 i1 ~
#endif
- y5 k1 l9 E6 Y; m6 w: T+ creturn TRUE;/ U C5 x1 Z$ U- Q2 ^$ Z
} U- ?; t" s2 ~9 q1 Y
& Q2 Y. { z7 H, V
H/ Q) H. X) V
' c1 M' I7 f9 K' i; P3 d
, Z2 [$ H0 e& m \ |
|