|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
4 z- \/ C" x7 X$ h0 ?' |1 Y! Z* @$ E* _, V
Mover.h( @- s& X. i4 j7 u% ?1 |0 ]
代码:
$ ?, P2 j& `& V9 C6 n找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 q! C$ K' b' J% }
& g; n; K; _7 n4 F2 h* ?下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) V) J: N4 a% V. X6 w
3 H( {. }# M9 b3 f; c! j
然后你去mover.cpp添加( u( d( M5 b% H4 t! y# B2 z
# x7 j7 ?7 z+ }
代码:
: |6 t0 }: {1 f* v( T7 F# Cvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )" L6 I8 B2 p3 z6 L% M
{
$ l1 Z0 Z& r4 r+ M) W4 I#ifdef __WORLDSERVER0 N* M: y" u; x& I; e5 s) J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó# `, z p: U( d! i( N+ O
MoverProp* pProp = GetProp();& H: m8 A$ ?4 _: F1 H
if( pProp )0 F/ Y5 T' @4 l0 L6 q' |! o
{. @, v U$ O# [9 _3 i
if( nJob > 0 && nJob < MAX_LEGEND_HERO )# ?; @3 X4 {0 p6 b
{
3 J9 j; `( B$ D7 @ F AddChangeJob( nJob );
" o( U- @0 l, } }else{
- b5 `) J: E# E" P return;
# o( g6 X! {$ H- M$ P9 z( \ }! x( T; @. B- x+ o: w; ]& L0 {
int nPoint = 0;
% M/ U" c$ D- ]" i4 c; P. D if( m_nJob == JOB_MERCENARY )
7 S/ U. }& Q& q9 r3 o: X- d nPoint += 40;
- n5 i/ D3 M9 V4 C& d0 \ else if( m_nJob == JOB_ACROBAT )
% S3 I2 C6 f/ [! N5 |$ G) R! ?& o! [2 g nPoint += 50;, }) ]4 { A) G! e5 z2 t u% E
else if( m_nJob == JOB_ASSIST )
6 T J8 K& n; U. X+ ?! y nPoint += 60;& t6 w( ?* H& i- q* d; I1 \
else if( m_nJob == JOB_MAGICIAN )
% \. [+ z: @5 P- Q; Q } nPoint += 90;
$ R3 Q" b$ k& ?# S5 Q/ J3 g9 U else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 f# i' L* g, e5 w nPoint += 120;
: R3 {% g1 K8 ~; g9 I else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )8 k2 H8 p, A% X% Z' O* {* P
nPoint += 150;5 _6 m4 w2 n$ I
else if( m_nJob == JOB_RINGMASTER )/ _& t3 d" b: Z Z: o/ T
nPoint += 160;
2 U" g+ B6 C; A4 A7 `5 p' u else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( K# u- N2 \, P/ j% B
nPoint += 180;
& _7 g. R4 e' \ P5 W else if( m_nJob == JOB_ELEMENTOR )
' I! \% Q1 h" k: P% s+ j; X0 f) v nPoint += 390;- s, l/ B4 O8 X3 @" Z
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )9 |' x. ^/ }" o
nPoint += 120;
( v9 ~% m$ T g3 n% P* q C, a else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) b6 k ]( F( y1 S8 E
nPoint += 150;
$ A3 R5 q; X( u" X* S X' |4 ^ else if( nJob == JOB_FLORIST_HERO )" o8 P9 E; b" p
nPoint += 160;0 G' @- H7 D0 F: e" [
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ) P6 v' Y }6 ~- U6 H' F8 y9 M
nPoint += 180;
* q- e- A- c+ F else if( nJob == JOB_ELEMENTORLORD_HERO )! L( K2 O/ ~. R, Q" |" E2 W
nPoint += 390;
' X5 U2 o5 u |5 ?3 b8 E* e) J2 _# F/ I
AddSkillPoint( nPoint );2 g! A7 w- l. _
m_nLevel = nLevel;
8 T/ Z) B4 w& M: j' v' ^
/ u' W+ {2 n1 P$ |9 K) ^ SetJobLevel( nLevel, nJob );
1 B s- y* V$ v3 L m_nDeathLevel = nLevel;0 {0 H( I, U: C. B, T5 z6 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans {& O+ O1 c A3 V! q
if(IsMaster())
% d% @6 I0 `0 |' ]' ?1 }+ z* v3 S {
) C" P* y. s$ J. S6 L; ]8 e6 m! p' Y4 Q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108: N: x& T! O3 x, g0 p3 C& J! E
if( nLevel > 59 && nLevel < 72 )0 v- r6 e- w, t
dwTmpSkLevel = 1;! t- _2 Q" e2 I% W; w L8 o! O0 i
else if( nLevel > 71 && nLevel < 84 )& o. n3 V [, S; @! w& P$ T
dwTmpSkLevel = 2;1 D1 O# Z, [' h) \8 @: _6 F2 A
else if( nLevel > 83 && nLevel < 96 )
' Y: m% A; k2 o9 ?9 x dwTmpSkLevel = 3;
1 a. I6 Z$ f9 ^9 N: T else if( nLevel > 95 && nLevel < 108 )# \8 U* b& T4 o$ C0 p
dwTmpSkLevel = 4;1 e) I p. Q1 m! x
else if( nLevel > 107 && nLevel < 120 )
$ r7 p" J8 D, J% A0 [1 ]- } dwTmpSkLevel = 5; ~# t* {& ^ Z2 q
for( int i = 0; i < MAX_SKILL_JOB; i++ ) $ }9 h& n1 H+ w$ s' X
{ % Z; S' d- y# s. J! [
LPSKILL lpSkill = &(m_aJobSkill);% u& S0 S" F5 U6 }% V
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 i4 m, Z M/ | x4 z# N# n9 c
{
5 g9 w# d! }. ]( J7 ~/ u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 }+ w K1 [, J( g3 o5 N' z if( pSkillProp == NULL )
0 M6 F. W. `1 R continue;
+ a& C: m. T [9 B+ C5 @: `$ S if( pSkillProp->dwItemKind1 != JTYPE_MASTER)' k# N& u0 o [3 W3 `7 c, r
continue;* R) F6 {8 F& Q) G2 r: K W% ?7 O
lpSkill->dwLevel = dwTmpSkLevel;! E0 E1 y$ j% t9 V0 Z6 N @$ ~8 _0 N: X
}! s, G3 e1 |% t W
}$ C1 a8 U& B+ L2 l/ @
}" J0 _; I+ ~7 K5 J* P6 `
else if(IsHero())
3 I$ U* ?% F$ r) n {
& J& S% \+ D( b# ?2 v for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 b; l k( b! O( [4 b9 J( |9 S% U _8 v! a {
5 l3 q* {1 H% X, J LPSKILL lpSkill = &(m_aJobSkill);
3 w# {* C6 D2 H' ~ if( lpSkill && lpSkill->dwSkill != NULL_ID )* ^" g# V/ \9 i" b% u1 N0 X- {
{
& D& Y2 G: l9 c8 O, ~ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ m7 B0 d4 _5 @8 s9 h4 e5 |
if( pSkillProp == NULL )
' O. }0 ~1 c" k& n" m, l: ~ continue;$ X7 e* f2 _4 A6 P
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, d: Z. u, j/ X continue;
* P7 o9 k4 o7 f9 y: i lpSkill->dwLevel = 5;2 G: V$ M- j1 V. k& ~
}. `" r" N' B) h# _; `! V
}' N* T- \8 N, E1 {
}
, }- [9 S. A! O- R& H# Q else if(IsLegendHero())
5 W% v' C+ J/ }5 H {) n0 M: Q; p% l, {8 L
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) A9 w2 @; t( z; |
{ 3 X( X+ n" o l8 o. @0 ]
LPSKILL lpSkill = &(m_aJobSkill);
$ V# _' J( b2 l# g+ ]1 R( X if( lpSkill && lpSkill->dwSkill != NULL_ID )
: q( o5 m8 o3 U6 s9 |6 ^1 ]! K9 p {
$ E) }+ [% r+ X ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ |/ x" _0 W4 }- v' Z if( pSkillProp == NULL )
' w4 T9 f* W" `6 Z- F/ z5 p Y; F continue;* c1 ?5 ]% [8 c. F4 H' _
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 ~2 \2 Z0 D# T( i- ^+ h+ i e6 `7 Z continue; X: `" v" y8 j6 r2 Q% @# d
lpSkill->dwLevel = 5;1 o. Y, S) o& d. Y8 P
}
! t5 @, V' N2 |4 J5 o, T }
. G0 J2 L7 a' l }/ @ }
8 r3 r. }* A/ w* W8 z+ R#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, U. m5 H: s% B6 s, O* t( F
if( bGamma )
3 e+ E6 ]" Q* ] E. b# @ {7 Q3 A' z4 u$ O& L: F; }
m_nExp1 = 0;
0 _7 o# a+ b/ l+ ]- i! S6 r }2 \# f0 f# h; X( N+ c7 g& S- V
2 {' G. E; ]9 n% n% X
( (CUser*)this )->AddSetChangeJob( nJob ); A8 U( `4 Y" s% ~$ V+ E9 z9 d
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ {- Z1 ^3 }. u8 m- C2 U2 ]/ [. G
( p* v. e3 V1 s* I2 B! ~: o% \
, v( z6 G D4 Z! K d/ G
#if __VER >= 11 // __SYS_PLAYER_DATA; B2 P0 I+ D z$ d1 e
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
. \- f: `3 Y, [; Z0 _, k#else // __SYS_PLAYER_DATA* s, k8 w1 y# _" ~; \+ R
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 D; m: h. c! e+ W6 Q% ~ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 s: l* ?1 {5 f" [, N0 `+ k
if( m_idGuild != 0 )7 t' x5 d* o( Z9 c" x. x7 {8 @* ~
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
Q; E0 B3 F/ n& |#endif // __SYS_PLAYER_DATA. e* v z3 L, ~
SetHitPoint( GetMaxHitPoint() );) q3 w' U9 j( z* m- O
SetManaPoint( GetMaxManaPoint() );( j$ Z* P/ \$ O4 t
SetFatiguePoint( GetMaxFatiguePoint() );
4 l+ Q; y/ x* L2 a, ?5 } if( nJob >= 1 && nJob <= 4 )' I( U( R9 h) V7 b" D
{
' J' E4 a$ k! s m_nStr = m_nSta = m_nDex = m_nInt = 15;
; [- C$ R" X( c# T m_nRemainGP = 28;
, D' r( O, N3 N& V' l, v }6 y) f) e; [7 k4 t) S' H
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" p+ W) J0 ?) | ]) b
{3 F( y+ b1 k8 I i
m_nRemainGP = 118;
! V2 S) b( j' S& G8 G //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* z2 {! K8 U7 Z# X$ E m_nStr = m_nSta = m_nDex = m_nInt = 15;+ t, }" H9 g7 G4 G0 S
}/ @7 H h0 e0 o: J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
& _7 i" y+ ~/ f' D {/ s+ \- j* _+ l
CItemElem itemelem;! X0 w) d" z: R
itemelem.m_nItemNum = 1;
7 Y( Z- n0 ?7 q: h7 [ {3 [ itemelem.m_bCharged = TRUE;
; i1 Z+ b+ u! u4 o! J! t! v BYTE nID;& J$ n* Y' |- b0 [
: }6 l/ z9 \& l5 b1 @% S& l e- i
if( nJob == JOB_MENTALIST_HERO )
: c2 l+ b/ P# p- d0 S" P) F itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
6 T: @# ~/ }/ l# e( z! a if( nJob == JOB_FORCEMASTER_HERO )+ |' ?: o4 M1 _9 l8 R% s
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ w! `+ F6 w3 _" {2 J; _- X
9 Q7 T# O6 k1 P1 _8 }: @: Z1 j ( ( CUser*)this)->CreateItem( &itemelem, &nID );" }7 h1 e& u, R7 F( W# C
}# b5 Z! I! \# \1 e$ C; B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
9 g9 t! q7 J# Z ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 i8 i3 g& S0 [' n ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! e0 E+ u6 Z( D5 M
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 V d3 s$ s s9 Q. O ( (CUser*)this )->AddTaskBar();*/: u" d; `6 n3 H+ t1 |2 H
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
6 b _& C! ^7 ?: |; y#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) @# @$ I8 D2 n0 k- A
((CUser*)this)->CheckHonorStat(); @- U% x" H8 u0 M9 b8 I
((CUser*)this)->AddHonorListAck();
% ^0 ~" s% b8 f( Q7 l g_UserMng.AddHonorTitleChange( this, m_nHonor);% r) T! W) J6 G( F' p
#endif // __HONORABLE_TITLE // ′Tà?
) X F* l! | h. _, X4 P( s }
; I0 w, ^1 Y, a/ }9 L* Z#endif // __WORLDSERVER
; M" E* Z2 H9 G$ [ j; I8 S} 0 c6 _7 {. g3 N
/ [- q+ }- I [) \- L# D! a然后你进入functextcmd.cpp并添加以下2 U' ~* Y; Y& W* X: p+ L N
$ | N# t, Z( w/ C4 L) j2 e* [
代码:
3 E& K7 b: F8 \" }7 n& vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )' ?- I" H' w9 h X9 ^9 N
下面插入
6 x5 A: Q4 H: E f: U' k5 z2 rON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 8 {8 t( |% v# F6 |1 t
: |5 G5 L( _7 h+ q$ B
然后你去
) I/ b7 w. g* k1 p/ i6 @. X4 ?( v; o. J# }3 A
代码:
! p% k' ?) A- ^6 s/ W r+ _& Z. F- b. i代码0 A* [, E" b# q7 K/ d
BOOL TextCmd_ClearPropose( CScanner & s )1 F3 S0 Z$ ]/ [, W/ x' n4 D" w4 t
{
- ]' `. p% i- N9 s#ifdef __WORLDSERVER R3 M/ N8 g H% T) k
CUser* pUser = (CUser*)s.dwValue;) T- T: C; `0 B, z% Y: r! |' K
g_dpDBClient.SendClearPropose();; u' A$ \8 y; \3 [/ y k& w
#endif // __WORLDSERVER
2 k" e! m# R6 }# G( r4 }# Q+ Q return TRUE;
0 R$ j0 r% n: p& z5 N}: q; `0 L" M7 ?6 W6 m
下面插入
- l9 I; U! T$ F* L7 ?BOOL TextCmd_rebirth( CScanner& scanner )4 C8 N* ` o3 T0 x8 b0 v
{# p: t+ I) ~" j8 ~/ ?2 l
#ifdef __WORLDSERVER
/ u! q5 x0 p% `' B sCUser *pUser;
, G) N6 {- z5 K% s7 FpUser = (CUser*)scanner.dwValue;
+ T! b0 D* L$ o0 Kif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
9 s I' C" F) J$ q0 Y/ ?3 n( lpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);2 B: j6 y5 O! U# b s7 H
else
9 P$ W" _3 o: e* i0 ApUser->AddText("你还未达到重生条件!");; r8 O& S2 Q% v
#endif
3 [' o4 a; d7 x6 z& Xreturn TRUE;9 S; g( N0 E" Q9 B6 U
} & n. n H' P! w2 Q( v
: j/ U8 @& l; R# w) Y1 g
. G4 n4 s4 I- V+ [; m+ u) m. c7 k) v2 T3 m" s& P
5 M! S4 }- O- s& v4 W& ~ |
|