|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; e. O( l1 T, o- r# i
' X3 J+ q( ^4 j2 Q! x
Mover.h
; k+ c8 @. M" ~/ T/ C代码:
* q7 b9 \# h) H5 r, r9 ?( m找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. ~$ G: s" A* u# D; X# I9 s1 G
( `1 a3 s9 R! f6 T! r, u/ N
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
! k* `+ u- l% s. d7 v
9 B# w. G0 C7 l5 s! F* Q然后你去mover.cpp添加
6 c) n4 S( h; T& |1 o
/ {2 U. J$ }) O F, J代码:& k Q/ C: w9 c! \# ~! g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )4 I+ [+ T: S& m2 c
{$ e; N6 \( k, e: ^$ z
#ifdef __WORLDSERVER; T+ Q1 N' e c- O6 S
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) E- g+ ~- q1 E! _
MoverProp* pProp = GetProp();
1 k& ?2 O! G: U( `; }: F if( pProp )2 H. v3 @' W, ]( O# t% T
{
H* N4 D4 ]& s7 [ ?- G if( nJob > 0 && nJob < MAX_LEGEND_HERO )
/ x0 V" p' L( _! v+ D {
* w( E+ C& l& @: p) @; R AddChangeJob( nJob );
2 e- L9 r3 o9 R4 P }else{
! X) ]; k% ?) V8 L0 t return;
* c7 \% Y0 a# d. q+ \1 h3 \ }
* [. I" { X# Z6 S: n3 w1 f5 J, Q int nPoint = 0;5 |( D. z2 f" S8 \
if( m_nJob == JOB_MERCENARY )& ~$ m5 z% N3 O2 ]5 }8 `3 d1 i9 J
nPoint += 40; ~: e7 [: ~) {" |5 x0 E8 c% e& ~
else if( m_nJob == JOB_ACROBAT )* W4 R3 Y4 a" b5 f) g$ ^4 R
nPoint += 50;
$ T9 U! I4 h& z: C% M else if( m_nJob == JOB_ASSIST )
& E5 U' J" u3 k. | G" s3 I9 X y% f nPoint += 60;0 [# _ c L! K5 d4 d) Q/ {0 K2 h
else if( m_nJob == JOB_MAGICIAN )
1 B% u" W' T% x Z/ C$ g nPoint += 90;
$ v$ k8 s) X' L$ ~3 l7 D2 u/ q else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
8 M& p2 V) O" T0 S; R' G- A2 L nPoint += 120;
3 A' n* L4 W" J8 k7 |# Q else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
4 P8 r8 @# Y" U/ T2 h# W( w6 Z nPoint += 150;0 h) C! H# I: O$ y, v7 h
else if( m_nJob == JOB_RINGMASTER )
6 Q* l) a. P/ y6 M! E' S, ~ nPoint += 160;# I* d8 w- N: n) K+ D8 @* f Z
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER ), L- j, e0 X( k3 A
nPoint += 180;+ c- U. P7 i8 c: G; _
else if( m_nJob == JOB_ELEMENTOR )
' A8 S' v3 M( S9 q, |4 [, b7 } nPoint += 390;
( `' p) e" u& M! Y* C0 ~* L" I0 z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
3 Z; b" j( v$ y; b9 K nPoint += 120;, `: E/ c( J8 {3 A0 F, D
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); W: t7 l& r, ^( K& } u1 {7 X
nPoint += 150;
5 K/ ~! v) P3 Q8 H+ R8 D5 r" B9 C else if( nJob == JOB_FLORIST_HERO )$ Q5 {( R; _6 p( V* F8 l6 ]& `. J4 `# G
nPoint += 160;
* K( c+ l- m2 _) S0 B; Z# J2 o3 u1 m$ S else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )! h$ Z$ O% j% o! }1 Q
nPoint += 180;. m5 p: X+ R5 L$ L4 J( I
else if( nJob == JOB_ELEMENTORLORD_HERO )
* @$ H9 N* G; g6 e/ O0 e nPoint += 390;
! W- ~# v+ @) H! h
- Y6 W9 o) W, ~, \$ }1 u AddSkillPoint( nPoint );
5 s+ h+ U. C3 j' k m_nLevel = nLevel;! Q) W8 ?/ a9 p$ P1 \; I0 X3 c0 f
& R8 d# @$ \9 f+ S1 F: Q$ Z5 P4 O
SetJobLevel( nLevel, nJob );
{3 [0 c* f2 v Z m_nDeathLevel = nLevel;8 H3 D# u- _6 p* e7 `0 z( |
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
7 L4 m [2 ?! b* O, j" N if(IsMaster())7 P% I8 H5 @6 d' J$ u$ I# W9 ]; o
{
, r( A! `" e- k5 ` int dwTmpSkLevel = 1;//60, 72, 84, 96, 108+ i; k) s/ T9 F' E5 |! u" h% F
if( nLevel > 59 && nLevel < 72 )9 _2 {4 n+ |3 [2 Z: S% k
dwTmpSkLevel = 1;5 ?* o8 o( i0 R2 ]
else if( nLevel > 71 && nLevel < 84 )- g* s" h7 z0 ]
dwTmpSkLevel = 2;
8 B9 m4 x; K) u+ [- C: X# Y else if( nLevel > 83 && nLevel < 96 )- z3 W- G: J6 }
dwTmpSkLevel = 3;
( m+ a6 U6 H$ L else if( nLevel > 95 && nLevel < 108 )
+ m1 o7 A4 g/ G dwTmpSkLevel = 4;
8 [; Z! i! ?4 X; V else if( nLevel > 107 && nLevel < 120 )/ O" D e$ I. w
dwTmpSkLevel = 5;
, h5 f4 c4 Q. S* C+ J! ]4 e for( int i = 0; i < MAX_SKILL_JOB; i++ )
& }+ N% i( U# @- U { ; w. V4 q( ?* a% B
LPSKILL lpSkill = &(m_aJobSkill);
/ p }' Y" Q4 L: o: v4 C; z if( lpSkill && lpSkill->dwSkill != NULL_ID )
' M6 T6 X9 d" K2 D- O8 T( ~; U6 w, b {) R$ B- G" s! r7 \2 e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 M; }& {% _ F7 L
if( pSkillProp == NULL )
$ P, T, O$ |" ~ continue;
5 g3 V3 g+ [9 N i# I& q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 ~0 E! _5 |1 G, B6 i' z- t
continue;( J1 y9 k/ g& ^' t( }" O9 G
lpSkill->dwLevel = dwTmpSkLevel;# u& U$ c; d3 t& ?7 b
}
! H; m @' i7 L' @6 U) Q! w }! H3 y% {+ K( @7 P; U6 f
}
, _5 z3 S. V2 ^ o else if(IsHero())
5 P) @# |# x* m* O9 C {* q% ?1 U) I1 X. w+ H
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ \8 C% i5 g _- J. C: D { " y# q% M/ g" I5 h0 v, Z
LPSKILL lpSkill = &(m_aJobSkill);3 G4 ^8 I+ L2 g% [: b2 e
if( lpSkill && lpSkill->dwSkill != NULL_ID )% c4 o" O+ _6 H0 ?
{. N' D2 R7 d! z f* G6 E0 @
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" g% s$ H+ \# _% J, v if( pSkillProp == NULL )! H9 S& I, Z3 B4 L
continue;* R( r6 S. A* ]1 l; c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER); ]( s& \! V' V8 c8 T
continue;
- v& Y! S, F3 j- t/ d lpSkill->dwLevel = 5;9 }( V$ U# Z0 M
}
$ I9 X8 o1 P! R% \( g, C4 s- A; y! m }& C: T/ L {- c6 R O: g" O3 T9 z+ o
}
+ ]0 `, Q6 d% r. d( I else if(IsLegendHero())
2 {+ `8 L6 i' G; D' _; c3 M {
) D( ^) U* |9 Z- Z5 f1 i for( int i = 0; i < MAX_SKILL_JOB; i++ ) , E0 C/ S0 }! h) l6 _# B$ r$ R, g
{
" k; P# o( p% N8 T- ]* f1 ^) S LPSKILL lpSkill = &(m_aJobSkill);
# s% `$ }9 E% H# h/ \5 P if( lpSkill && lpSkill->dwSkill != NULL_ID )) u* Q7 D$ c# J7 r! o# L
{
" C9 m" O/ G8 s: M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * O1 t0 |6 R- N
if( pSkillProp == NULL )
2 E! ~; D- I, T+ B, ^ continue;2 G }' X. g E3 V
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)( I* t1 t+ v* f) a0 d5 x: ^
continue;6 z6 R: H" y0 _/ L+ b
lpSkill->dwLevel = 5;
6 ]( l$ f# ~5 S5 f& ^0 A, o2 ?$ u }
# _8 [8 a! t/ F( V0 Z }
5 K" }8 }6 I1 f3 R1 p& c } J: ?+ h& l- C$ z
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ f8 q5 }& a7 q" _; r6 ` if( bGamma )$ s2 q& V; J3 _/ ~* A
{8 C- @( k- m. Z* c
m_nExp1 = 0;
* @) ?( @' q) S2 ^1 E }
. \$ t3 v+ h6 l/ f. T; G$ E
; p% K' m* g- S8 V9 r ( (CUser*)this )->AddSetChangeJob( nJob );
2 Q- {% F0 F, K g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );4 f/ D- y3 `* Q+ d* s, d/ @
0 Y# t) I M8 C7 F$ _
; v7 Y" v3 j4 U: V% k#if __VER >= 11 // __SYS_PLAYER_DATA( R3 C' a8 m) r5 _7 j
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
) {! z6 j( _2 ]4 T" o#else // __SYS_PLAYER_DATA
2 h+ ]% s% [& M! W g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 Q/ U. A9 s/ V7 H& g& x% j g_DPCoreClient.SendFriendChangeJob( (CUser*)this );" u# K9 V* I4 A1 {
if( m_idGuild != 0 )7 V7 W7 K# {" P1 ^7 D6 x2 S
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" l2 v+ t; @6 ]; V* n. [; y
#endif // __SYS_PLAYER_DATA
& \% j B: ~( b; c: S& Z SetHitPoint( GetMaxHitPoint() );
4 c# }& m$ E$ y: |6 r SetManaPoint( GetMaxManaPoint() );
6 e, u# B v! d' L0 U- `1 N SetFatiguePoint( GetMaxFatiguePoint() );0 M: \2 y+ q9 F& [
if( nJob >= 1 && nJob <= 4 )
" ?) | \; z( V( z8 D {
1 u3 b+ K: I- Q. E2 X m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 o7 h8 k* C; I7 J7 Q m_nRemainGP = 28;
" v$ h+ c. O4 W }
% U1 c2 i& [' {6 G if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )' v& @0 U7 J0 ~( I; k4 S5 M
{/ Z2 N* c, s8 `1 l
m_nRemainGP = 118;) V0 p5 X; N7 f" W& c
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 Z% N6 D1 g4 _; N2 R0 O B
m_nStr = m_nSta = m_nDex = m_nInt = 15;
9 L6 G/ E1 w- y B# q }! U; x i3 l) `7 S
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
6 m% {1 d, ]" h+ c/ m: K {
' I5 X) b1 _9 c" Q7 z) F: _1 a* ^ CItemElem itemelem;
& y4 F4 ?0 ~8 a% q, ?& ? itemelem.m_nItemNum = 1;1 W! z; I# D: r, F' A: _0 e
itemelem.m_bCharged = TRUE;
$ l7 z+ ]2 }! G; ]( E. k BYTE nID;# N9 i2 I5 a* t/ ]! y/ ]" K
/ x$ r, d3 G2 [7 V' q if( nJob == JOB_MENTALIST_HERO )
6 i+ M3 Q/ j/ ~& K9 d itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
$ `9 J4 \/ F) X: f# s if( nJob == JOB_FORCEMASTER_HERO )
6 g2 F2 p. r2 B+ N7 M7 f# ] itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 f1 @! q. r; q; x4 e5 X3 g- `$ v2 ]* |7 I
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, g8 W& X& j _: N2 } }
- G+ ~) }9 u) ]" @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 A5 w7 d- w* u6 O% t% Z
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
( ^. W8 A1 [2 B7 x& |% x ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& c% j0 E/ a* H" E" t8 [
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
T* H0 z( I- J ( (CUser*)this )->AddTaskBar();*/4 U/ v' a! ]6 ]4 T0 j S: o
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );, T0 L6 _1 q6 l. Z, Y4 b& @: w2 @( \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
6 z& e8 g' t% Y ((CUser*)this)->CheckHonorStat();
. n; Q/ M% O9 b/ { ((CUser*)this)->AddHonorListAck();
9 c+ f; _( f1 y0 t g_UserMng.AddHonorTitleChange( this, m_nHonor);( {3 S! z- h) }3 `8 v. n8 ]
#endif // __HONORABLE_TITLE // ′Tà?
. N2 f& q1 j' w5 C! R }! s* ] K0 ]% F3 \3 A
#endif // __WORLDSERVER
p3 A% U6 a2 ~2 q} + ^; ]( v: d9 m1 ^
6 ~+ _4 e# M& E! h! \
然后你进入functextcmd.cpp并添加以下3 d1 i; e8 d; H9 s' g" j0 j
! b9 E4 l: j# w, n% m代码:4 d% [" n/ E: q
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ), V8 X$ y6 u: K7 K; H
下面插入
2 T+ O: e2 ]. o6 {. w7 F" kON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ t' w- @, [' N6 u' i
" S8 u$ `4 z4 n8 Y8 @0 v7 T9 B
然后你去
, @2 q9 W4 C9 X: s; T2 R
7 E: y! s" {9 U( \5 i代码:9 r. S# n" f8 B/ S6 T* W9 c$ G' {
代码
- G- u6 u' k& } ~, \/ h3 CBOOL TextCmd_ClearPropose( CScanner & s )9 X( h$ |& j+ O; z$ x' o. a
{1 e0 y* R- J" P& F, t* A
#ifdef __WORLDSERVER" C5 X% Y. y. O1 l/ t
CUser* pUser = (CUser*)s.dwValue;
( [- `' ~ F$ U; L% A g_dpDBClient.SendClearPropose();
/ q5 Z$ U) z# A8 |; w2 I#endif // __WORLDSERVER% o* U1 w1 @0 w
return TRUE;0 i+ ]+ N! O, l/ m3 `4 x4 ?5 ?
}8 H _. W: J# B
下面插入7 Y. m# x3 j" H5 A- K
BOOL TextCmd_rebirth( CScanner& scanner )
9 D% c- {) D8 W8 X, Z# E{
. `+ v/ }! B7 ^5 V#ifdef __WORLDSERVER8 n- E2 b9 R; c3 Y# D
CUser *pUser;
4 |2 P- r$ |' F" Z% OpUser = (CUser*)scanner.dwValue;
: A1 { v$ f) w+ N/ O; |. ]if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())8 C5 }5 e* ^; m5 u0 I
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ g7 B/ _- y1 _% E3 s' Helse
; g/ ^$ w% s' Y! V6 n' ^( QpUser->AddText("你还未达到重生条件!");# ^) q5 d1 J3 p& u- @/ Y
#endif
. M1 L3 K5 F h+ W2 E# Sreturn TRUE;
" E& x( A% u$ [7 I4 g9 F}
; W* E/ |; h* l9 s+ ~. a. Q$ [4 H+ n/ ^/ F# S' P3 g
4 m" [3 R+ r% i
' `5 q8 _+ `0 c8 Z5 f+ P& k# N/ p/ @# a
|
|