|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
; }( F6 N! J2 i ~# i6 }+ M- K
" P$ B% k. k- F$ xMover.h
8 ?; n- p$ [/ x8 V' N& [代码:
% G5 |' g$ ]. p D2 X找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
3 o3 S2 F7 D* ?3 z) k! r( y
7 @ [ }( D8 C. r/ t下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: q: P$ z2 L) z$ r& c0 X
$ Y1 E( l$ B/ x: B5 |* C3 G( g然后你去mover.cpp添加
0 L5 u; t; ?6 R" g0 m9 P
- f5 G3 y9 m s3 x; {代码:
4 R( A. B& W2 R4 p4 q5 B- p7 tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ): P* z9 ^. E$ H( S
{
! H8 t3 r, H7 z7 o B: A- I+ t#ifdef __WORLDSERVER
- n" `+ L5 s& B+ H# Y2 } // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó; I9 ~2 \4 M6 ?- t1 }$ a- c
MoverProp* pProp = GetProp();
" G J) P* U# D$ m* R" E+ y if( pProp )
) j( `3 c3 N0 b a3 t6 [# v {
4 m$ f8 c4 T2 |2 b5 w7 y if( nJob > 0 && nJob < MAX_LEGEND_HERO )
: a1 U) j, R% r {" u* e1 l" J8 E. x
AddChangeJob( nJob );: {% D& e; D5 ?$ P) w. V ?) {& w( A
}else{
2 I1 r/ |/ A$ E+ R8 a' d return;( @. [3 X3 ~& r& \0 `' d
}! S6 X! C$ `. w5 H) w* A3 j2 p7 Z9 q
int nPoint = 0;
$ s8 b' N3 I d/ ?6 \, v& O if( m_nJob == JOB_MERCENARY )
5 m* v6 z# P- E) n, i5 P nPoint += 40;, k& @; |) b4 P9 L: }6 Q
else if( m_nJob == JOB_ACROBAT )
5 G( s$ M/ M: _/ `7 N2 A nPoint += 50;
0 C0 o1 g2 D3 q else if( m_nJob == JOB_ASSIST )6 }4 q# ^( k8 j- N' A. C
nPoint += 60;
$ |& T# f6 R* t' E b4 b1 E else if( m_nJob == JOB_MAGICIAN )3 f* @8 k5 ]% U
nPoint += 90;
8 B' n; J' U9 u1 D/ B4 G Y; R else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )4 c2 L' P# `' ~; B& t s3 G# K
nPoint += 120;
% I* H; {1 n$ c9 j% L else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )- C: m! ?+ u- C; F! Q
nPoint += 150;
5 D3 I) O: F) E+ h+ D2 A$ I# Y$ L else if( m_nJob == JOB_RINGMASTER )
: ] u7 `+ _: u nPoint += 160;* L6 F. w. o: j" D, R/ P' Q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- N6 I1 v- h$ W# o
nPoint += 180;( M6 I% F+ r( h. F# L. M
else if( m_nJob == JOB_ELEMENTOR )
" W0 |( s, M' ] nPoint += 390;9 Y7 ^& N- Q* m6 O! A( a v5 s0 ]
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )6 _. g+ H# M) N! {+ d" M% l* e, l
nPoint += 120;8 V) ^/ [9 I. |
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) e2 d6 V, h6 k$ c" A
nPoint += 150;
% d, X( E( q4 G ~0 p2 l& ]' h* Y" w else if( nJob == JOB_FLORIST_HERO )1 b! h. O/ p9 B1 F! T7 c/ L
nPoint += 160;5 @/ t" V# x1 v4 M, S9 _& b
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )7 }1 l' q7 e2 R9 C7 D* m
nPoint += 180;" T" B9 F6 _6 _) J' n) n- {% {. X' f
else if( nJob == JOB_ELEMENTORLORD_HERO )% u5 o7 h/ x! e: H7 I
nPoint += 390;
# U" `0 Y! x% ~, R6 k: Y7 Q, g! y8 e, l: t9 L
AddSkillPoint( nPoint );8 s6 ^7 ~, R( P7 [- V/ Z) A) \0 ]
m_nLevel = nLevel;
! q" r% l0 Q9 n) |# N" a6 j$ a- U2 A' H- T1 m0 N) Z
SetJobLevel( nLevel, nJob );
5 e: H7 a+ i0 S- _3 W m_nDeathLevel = nLevel;" O1 A1 S, ~9 O$ ^' k6 c
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. ]8 K% H( E2 @. d if(IsMaster())
+ O g# K) h8 y! ~; A {
$ m9 ]. D' ^8 J7 a int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
6 H5 V* y& a; B7 j if( nLevel > 59 && nLevel < 72 )
1 W& D. t8 A8 W+ Y$ H dwTmpSkLevel = 1;2 P/ U' X* O4 t3 X. g. [0 Z* \
else if( nLevel > 71 && nLevel < 84 ), y2 T' v5 R9 I2 W9 T
dwTmpSkLevel = 2;
" G/ H1 ?7 X. `4 T* ^ D9 X else if( nLevel > 83 && nLevel < 96 )% j% M" Y: u U" F4 ~! y& U
dwTmpSkLevel = 3;+ H) E _7 e4 Y G s, C- a: x
else if( nLevel > 95 && nLevel < 108 )% v. { c" F' f' x! o; p
dwTmpSkLevel = 4;
6 R' }- c+ X# F5 u0 a; j. |3 s else if( nLevel > 107 && nLevel < 120 )
3 n) r( E4 d; l9 D& D dwTmpSkLevel = 5;& z. f# v' }& x m0 `; \& h. x6 ]5 V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' ?8 t l' U. C3 }( ^
{
: K" j) g, M3 e2 x' D LPSKILL lpSkill = &(m_aJobSkill);
2 x; R5 y3 y3 f7 v) n! b& c if( lpSkill && lpSkill->dwSkill != NULL_ID )
( h9 s6 E' J6 b* F) H {
4 r2 Z- |& N! w( S* r ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; E0 K5 K( w# ? q
if( pSkillProp == NULL )' J \0 b$ J- a+ J9 B
continue;
# d9 e) }9 e) ]' U3 l/ z V if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# _( Y: F1 f7 n# y. X) b continue;
- j( m* Z: ?, f1 @0 f' n* @ lpSkill->dwLevel = dwTmpSkLevel;- t [$ r8 L) ^- n
}
& h6 g5 \7 l5 J+ J2 e% l }
' S! Y7 Q8 Z) G7 ? }8 K( Y; X' D8 d0 \
else if(IsHero())
$ t8 Z) e4 h% {4 B; F {- o2 `$ x, {# @9 S& z4 r& u+ @) D8 D
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ' ~: P6 I% Q6 m. D
{ ; J( a; b1 p6 l$ k6 E' ]7 n
LPSKILL lpSkill = &(m_aJobSkill);3 j6 ~8 x2 Q s4 W. w/ e
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* }& t* X3 U3 h. W {
i# R8 C% V5 @7 N2 p5 D- S& Z ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 [% [9 x' m9 w2 m' s* y
if( pSkillProp == NULL )6 A' ^! r) b! @3 }, i
continue;0 k2 Z" C' M5 q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 Z/ u# e$ Y1 A$ V0 M2 n
continue;
: i0 L% p) T/ ]; M9 b/ P lpSkill->dwLevel = 5;
; Q N. I! B( s$ @5 `) A1 f }
3 S( h A' s0 n+ e$ F: F' E( G }* p, k/ M n* s; @2 s
}" c5 x3 R1 O1 @3 r
else if(IsLegendHero())
& r" a7 D/ d! C8 o3 G/ ]- r {4 c( V7 g1 ?# C( n6 _/ m, A
for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ a7 n! }& y1 E' E& o { ( Q W8 R3 u5 b2 @ s
LPSKILL lpSkill = &(m_aJobSkill);
9 T6 v9 m5 Y8 e1 y# D if( lpSkill && lpSkill->dwSkill != NULL_ID )
) J5 b: _, _8 p2 l$ S {
, |4 g4 e% M7 @/ W8 T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; ~% {& p' W3 t8 H
if( pSkillProp == NULL )7 e6 d8 P/ i$ k% z, t& B
continue;
; _$ E3 g7 u4 ~/ d- d) a8 a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- o+ X5 Y" n/ {
continue;( f' U/ J8 M2 ~' i8 z
lpSkill->dwLevel = 5;4 L" Z1 K3 ]9 Y6 A2 x$ v
}: N$ L5 @0 q1 Q2 x& u* \0 i( |& J
}3 z/ h* b8 ~$ x% B7 d4 e9 k
}
8 b. J, H, @, y#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
& @; E `2 a% L* u" T4 A if( bGamma )5 I+ h7 @) r( U9 C9 M9 a5 A
{: E: R7 T7 C# E. m. R; n# t {
m_nExp1 = 0;& R# L2 c! q o+ z# ^6 _/ S
}, c' P; ^9 ? H: b
5 j: q- p6 H8 l- t: {
( (CUser*)this )->AddSetChangeJob( nJob );' r" ?; N- t" t& q) \
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
" v7 E$ A4 j0 ~ F% E" C1 O9 I; b) ^: k9 D/ t# ]( P" G; R
' T9 c \0 T( }4 ^1 G
#if __VER >= 11 // __SYS_PLAYER_DATA' \* r( W7 A6 i: k$ A9 I5 R |) x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( B; G( T* @! P& l3 h2 ?
#else // __SYS_PLAYER_DATA! H3 g& c8 H+ n) ?
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ u. B& E$ M% q& j/ d5 y
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );8 V! H7 K( O: N g
if( m_idGuild != 0 )' T" f* U) L1 a& C
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
9 I* z6 r5 s( G1 M' D# y: S#endif // __SYS_PLAYER_DATA5 x- D. v+ G/ c8 ~
SetHitPoint( GetMaxHitPoint() );# Z5 j [1 r' F
SetManaPoint( GetMaxManaPoint() );- ?" B( p' V/ ? r' R; O2 @
SetFatiguePoint( GetMaxFatiguePoint() );
$ ?, {/ D" ]2 ?2 e; q, H+ _ if( nJob >= 1 && nJob <= 4 )$ v, G5 A: M* |
{
p1 M' `! k8 \+ d |5 { m_nStr = m_nSta = m_nDex = m_nInt = 15;% ]4 |0 d) \5 Y/ D6 L9 x
m_nRemainGP = 28;% x4 a( }0 o" @$ F* c) r" X& x
}* T4 r) S) k3 o6 d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* C& {8 W5 u3 p! z {& h0 C+ R. W* a/ p% ]
m_nRemainGP = 118;
. ~2 N; j4 s; u# n2 b- o //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;; L4 o) U0 I# H6 i% _. V% t
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 d4 _' X. }- o3 @) [! I: U4 F }
2 G: V' H) t* M0 n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
O3 Y# i$ o8 I4 f7 O {6 b1 D$ a- i" _( c9 ^
CItemElem itemelem;
4 h; o: l z& }) o6 }% E* c6 u8 s itemelem.m_nItemNum = 1;/ O: a5 {2 G1 ^7 x/ _2 `/ m: x
itemelem.m_bCharged = TRUE;8 f2 [+ W6 {, R. ?
BYTE nID;/ d w$ H' w+ |: i/ P6 c! X
- M3 U: V' g! g
if( nJob == JOB_MENTALIST_HERO )3 a' u9 T3 t: _, R$ z+ i
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;( s6 ?. Z; H8 q
if( nJob == JOB_FORCEMASTER_HERO )
5 w6 N; t0 R1 ~ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
z4 l% k: K" p: [ B$ O! J: @0 Z4 C( e
( ( CUser*)this)->CreateItem( &itemelem, &nID );" N5 y/ X" U: v% `
}
_" w8 Y% g" r, r S g_UserMng.AddSetLevel( this, (WORD)m_nLevel );6 U) C' s. h% u
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
6 V3 A- p) ~3 P$ k4 _ ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! m7 N3 o& s( f: x/ _! R /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( ?1 n8 h9 Q6 z3 G! I4 E2 `
( (CUser*)this )->AddTaskBar();*/3 _2 N+ u$ `; q
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
! ?2 L E0 w) ?3 L' H! ^3 w#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?# q: _) M$ B7 q7 J2 s9 B
((CUser*)this)->CheckHonorStat();
4 A1 p1 B |# X+ _, X2 H6 q _& i ((CUser*)this)->AddHonorListAck();
0 R2 P2 x |. q* a* N) w g_UserMng.AddHonorTitleChange( this, m_nHonor);* f k* m- I% M3 q
#endif // __HONORABLE_TITLE // ′Tà?
# X" {3 ?: e, n& B }
5 ^# i1 e0 q& Q) Z; \7 c#endif // __WORLDSERVER
# v9 C. W. ?* B" S) L, f0 X; t}
5 H1 r' P( s1 |# x" \, K6 j
; c' l7 |- ^* h5 A* R* l; z" ~然后你进入functextcmd.cpp并添加以下
- V! A1 `& W( J) q
& g/ I- A5 x0 ?8 }代码:# w/ _, F0 U9 U; q% ?
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
( w! ~+ y% o9 P! J下面插入
2 _) o- d5 K0 BON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ' N0 h! ?6 C+ M5 F
# B6 u" \1 @2 d. ?4 r( f6 V
然后你去
, a. l* C- a! C! z- z0 d9 b% x- b1 n0 z
代码:
1 Z& T V9 C+ C代码9 z; S$ E3 X! L
BOOL TextCmd_ClearPropose( CScanner & s )
2 S4 S& o, [8 a: ?{2 T% N" x9 Q6 A$ m [$ Z5 F
#ifdef __WORLDSERVER2 |. A& u# Q( y: N# b! A
CUser* pUser = (CUser*)s.dwValue;
% @$ G; K' z. t. y: g$ B g_dpDBClient.SendClearPropose();1 i$ S$ s# e5 F/ w1 i; S, o: H) \$ i4 E
#endif // __WORLDSERVER
9 u* M0 b/ \% E return TRUE;! z/ L& q4 j' P$ L+ M1 f# O8 B! D
}( s$ p; e( m( n- ]- E- _
下面插入
( D& w$ p: k6 g- U$ [BOOL TextCmd_rebirth( CScanner& scanner )3 ~7 u0 t! O% E) P6 o
{1 r5 e* M* v) W" I% F( R5 D
#ifdef __WORLDSERVER
! [) {' `9 t3 _, Q2 eCUser *pUser;
5 R! ?5 f2 M7 ^5 U+ O# LpUser = (CUser*)scanner.dwValue;
% o Q5 S( Z" V6 N& [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, ^/ P6 d9 H9 e8 |7 D; i% I }pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);+ N9 r. n2 C0 W1 N
else. W1 Z7 n) @/ n% P! ~) w
pUser->AddText("你还未达到重生条件!");
* ?6 x7 l& H" |( f6 b8 ?( G9 J#endif' p# U: q. z& q# H# q
return TRUE;3 E3 i: t" m8 \
} 2 |3 v" z8 d( {) O
s+ m3 L5 j1 |* R! C7 {9 ~
: z( [1 r0 z( D/ w2 F- x3 b7 C0 R5 v6 k }8 y& b) z& L) |
+ w7 h; ?9 S3 n$ g, E
|
|