|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
g/ R3 l9 X6 U. ?% A* _# \* f7 q! D! Y; Q7 q! z
Mover.h
8 P! I* N7 x8 Y- F代码:
: m: j0 y" z, F3 O8 \, S找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 j) L9 Z3 U/ P! \
2 m+ S& I2 Z6 C# r- `3 ?4 s+ Z
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) d% [& k/ Q' x
; u5 G7 a. G7 g) J然后你去mover.cpp添加0 D& a" x1 U3 t O: |+ r
/ ?3 y* H! |4 ~! U$ D4 g+ R2 e1 Y* d) V代码:
* t9 O5 ]) \3 @ n, b0 rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 i" I ^/ H v! o4 W3 {5 L" d
{: _6 W |" e v; l, }6 o
#ifdef __WORLDSERVER/ U; @& |2 |! t" ]$ L) U9 Z: ~
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó, ~2 m% M9 H6 {, D- f2 h
MoverProp* pProp = GetProp();
& p# ^: c1 Z% A! g if( pProp )6 n6 y b1 |( F( h* z7 N A
{' d& g/ S2 _& u
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 L) J/ ]. S% z3 R7 N/ x# U8 O' U& b {
" _8 J6 I) u- V- m" V AddChangeJob( nJob );5 q% p: \7 o# G! ?; i
}else{( V/ D8 r0 [) A8 R" i
return;
3 W7 v1 p! x$ U; g- {5 ~ }7 {8 ^& p1 F( F# }- F9 w
int nPoint = 0;. ~1 f, ], O) A3 c1 q) w. I8 M
if( m_nJob == JOB_MERCENARY )
# C! W$ B: i2 w1 ]* s0 z+ t+ }5 j- E nPoint += 40;; w" {8 l$ q% \9 S
else if( m_nJob == JOB_ACROBAT )
$ |% @9 R; r1 K nPoint += 50;+ S, g0 n3 e. @7 A' J
else if( m_nJob == JOB_ASSIST )8 X5 K+ y" X, o( x _! K; g W$ e- E
nPoint += 60;! B1 E. F5 x" V2 e, r
else if( m_nJob == JOB_MAGICIAN )
. [% f! ?& X0 Z1 v8 H, M }6 O nPoint += 90;
( o5 x2 r$ N9 h+ N* S1 I7 a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )7 Q/ V5 l5 f0 z4 g, b
nPoint += 120;7 c8 j; x7 w4 g
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 f, r. ^4 u1 O$ H+ X. k
nPoint += 150;% e% B( ~) h& v# u
else if( m_nJob == JOB_RINGMASTER )4 f- H Q" O5 v7 S
nPoint += 160; U- C" r- }& x1 }2 k/ P
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& f/ R7 B5 x# |4 R$ @+ V7 i
nPoint += 180;
7 S9 @( e2 P$ l' _ else if( m_nJob == JOB_ELEMENTOR )
" b: g+ `; g( q nPoint += 390;
' F6 H: w/ z% ?9 V- E else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
- h7 x: \/ a5 j6 h( @ nPoint += 120;
; K$ e4 S& ]& A else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )1 S+ O8 z8 _0 v
nPoint += 150;9 I# I- _" z6 s" o* J1 \/ J
else if( nJob == JOB_FLORIST_HERO )3 v7 P0 a, M4 H$ x
nPoint += 160;" T( j' G3 F1 A4 _/ {* I
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
, x- e( f, e; O9 d R nPoint += 180;
5 f4 m# e9 f1 h/ N6 A else if( nJob == JOB_ELEMENTORLORD_HERO )
9 O& Z. P. J9 e, W! y7 C7 t nPoint += 390;
- B. k1 z7 i3 {! f: {
$ F( l. w. {7 M4 k8 v AddSkillPoint( nPoint );
! G1 T: ~7 K3 z3 g1 ~ m_nLevel = nLevel;$ |' @, C! b1 ?( E& o* I
8 h5 ~+ ^. y& f4 I
SetJobLevel( nLevel, nJob );; r$ z+ u" W$ l6 v+ \7 @
m_nDeathLevel = nLevel;
# [5 C0 P/ b9 O1 Y/ @#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! L7 B: U# S s8 o% k0 I if(IsMaster()). }- G" K" c+ [. v5 q
{
2 x' K5 D8 }& q4 ~& B int dwTmpSkLevel = 1;//60, 72, 84, 96, 108! _) g- }7 E# S, N/ x
if( nLevel > 59 && nLevel < 72 )
) z0 i0 i! Z# O, ? dwTmpSkLevel = 1;2 A8 u2 v7 B# I0 y ~- W
else if( nLevel > 71 && nLevel < 84 ). {: Z4 Q: f9 K' ^. [5 F
dwTmpSkLevel = 2;! @5 O& @# O; s$ @5 V2 O
else if( nLevel > 83 && nLevel < 96 )
. T5 T s0 B( I& s7 Q" P dwTmpSkLevel = 3;
) o, V# \3 d; R0 e else if( nLevel > 95 && nLevel < 108 )
- m7 _# I' \2 ~" q9 i5 Z- F dwTmpSkLevel = 4;
$ L( x* Q& u- W0 ^ else if( nLevel > 107 && nLevel < 120 )% v e+ P6 N! P. d: M2 B2 G
dwTmpSkLevel = 5;! V3 V( K8 d! e
for( int i = 0; i < MAX_SKILL_JOB; i++ ) Q8 o! F8 [/ d# j4 s% {
{
( z4 C! p& Y( w0 D5 n- J1 B# J LPSKILL lpSkill = &(m_aJobSkill);8 w4 {: G" w, c. r) C8 a0 C9 }
if( lpSkill && lpSkill->dwSkill != NULL_ID )4 [4 t* k5 v+ i* m* M; k5 ~- U
{
( x F+ b; C! F1 L( x, h/ {2 B% h ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 u) p% |$ o# w* B8 ` if( pSkillProp == NULL ): {$ c' b! \8 X! J; y ^: h4 Z
continue;
; `" X, k6 G# l8 o7 [/ F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ ^3 U7 \& P/ T+ R$ i9 Z( K8 J. _2 v
continue;
2 Z+ }# R' J4 j! y. q lpSkill->dwLevel = dwTmpSkLevel;
4 t" n8 Q& c1 B& j, v }) `, q% {! Z9 e# J+ o$ ?" Y
}1 H. n# ]+ q' A5 d+ `
}% G7 u+ J- ^. d- K
else if(IsHero())) P4 A# e, Z% _5 |; z
{1 q4 O: i6 U' k' {$ t
for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 Z9 O' k& G) {! t { , P0 m) v2 q$ D; X1 m& P0 Q, m
LPSKILL lpSkill = &(m_aJobSkill);% f& q; H4 y e. z8 R. W
if( lpSkill && lpSkill->dwSkill != NULL_ID )5 E( W& j4 _4 X6 o
{, ?% |* _4 N) ^- l) [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 x! Y8 |" q0 [* Q4 g if( pSkillProp == NULL )
' C3 D& w# E+ ~% |- w continue;
l) R$ N, D" o& l- S8 @7 p* u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ s( T# i! [, T. q- x7 o
continue;
- w3 J; v; y; p7 t+ t+ H lpSkill->dwLevel = 5;( u7 l* s* U: w
}
* t& {0 ]; m- s* G( |( j2 ^: [ }+ L( }$ ?7 y, s+ s- b* R# N
}' E5 I3 ^4 X* ^/ N
else if(IsLegendHero()); c; z/ w' T* a% t, o; d: L
{
- i+ j0 z5 r: d' v! f4 f for( int i = 0; i < MAX_SKILL_JOB; i++ )
' [! q1 u3 E: T5 i { , y/ U! X( O1 R4 E
LPSKILL lpSkill = &(m_aJobSkill);6 C% q5 x! W7 y e; U3 y
if( lpSkill && lpSkill->dwSkill != NULL_ID )
* m( u( A# P' j9 Z4 T2 ^ {' n, Y! r# P' ]3 a) M/ E. w7 G
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); & f6 i' b G3 B' _ M; g/ ^
if( pSkillProp == NULL )
4 G( ~# {7 {/ {, ]0 h' n continue;
- }% N/ U' Z" s; ]8 E if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! D- w1 M- Z5 S- T. O6 p
continue;
4 D( v }1 a! }# e( a lpSkill->dwLevel = 5;
9 z5 g. c F' K1 _$ y9 M7 D" P }
, @! N- e/ t0 g1 o; u$ O- a! Z }
@, h; t; s, P- C3 b+ @ }
4 D- P4 E* Q. c& z! X( z#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. W; v" I% C9 g' P& i4 @# k! P' _ if( bGamma ). b; [& Y" ?, L! {/ W7 ?0 d3 R
{% k$ F4 `# C3 J
m_nExp1 = 0;
$ t( q6 ]$ s9 `2 P, ^$ l }0 o( m. ?+ B5 _! h
9 K; A$ P/ E$ M8 E
( (CUser*)this )->AddSetChangeJob( nJob );1 o; b2 t) h2 E% z" ^& f
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
7 h; b( O% G2 _( y; ^# \+ T$ \. w
# k: j+ l% E# r, V$ g5 H#if __VER >= 11 // __SYS_PLAYER_DATA
( j7 V% b1 d2 ?0 d, G* [ K( { g_dpDBClient.SendUpdatePlayerData( (CUser*)this );' ^5 Q! x+ g3 m/ c
#else // __SYS_PLAYER_DATA( q4 L. } N4 _6 _5 u5 h
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) `6 }. X! R- Y {1 H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
- W' a' @! J6 N3 ^# B/ X if( m_idGuild != 0 )4 y+ K( c a2 `7 z# u
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
* y" ~! ?! i' G: q& j#endif // __SYS_PLAYER_DATA4 W. o2 e8 h ]/ d! U
SetHitPoint( GetMaxHitPoint() );* l5 d3 d P: U5 L+ o
SetManaPoint( GetMaxManaPoint() );! e; ?* Y( b7 [* S( T3 t( l
SetFatiguePoint( GetMaxFatiguePoint() );
4 ]# K7 y1 f, ?8 ? if( nJob >= 1 && nJob <= 4 ), ?) d/ o7 I# f5 ]- k
{
5 U4 M3 T5 {- n g m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 H. S7 H0 E H5 M* K" T( D" l m_nRemainGP = 28;
# X8 N! Z. R* F+ K* o- p7 d/ P }( S% U- ^8 g' f6 Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 z8 K) n" v8 B: g& x# ] {
1 ?: Q' |. `* V m_nRemainGP = 118;
, b8 @& S: O. c //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
% ?8 h* [& Y, ^7 Q# p. L( e; F m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 c8 _, [% t" P( {8 V1 ]* N }8 R/ Y# N+ X- C. r9 m T" L$ i
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
3 p0 y8 u1 h3 Q0 F5 @! N {
- X7 b2 ?. h& d1 c( i+ x2 |7 T CItemElem itemelem;
1 f6 ]) K! t/ r itemelem.m_nItemNum = 1;: f: o- c. q) _& `. c
itemelem.m_bCharged = TRUE;# Q! S1 P' ]4 K- i8 D- i7 J9 A
BYTE nID;
$ ^) t' z3 e3 Z
! d, c$ I* @0 J; v% x# E if( nJob == JOB_MENTALIST_HERO )
% K. x3 K0 O" r( O; T itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;/ a4 H* K1 G: w* E' k, ?- Q4 d" K, G
if( nJob == JOB_FORCEMASTER_HERO )
! p' _6 W) n3 m$ |# `3 G3 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 @6 M6 N) J% d5 P* T
& Y" _0 H; w5 L) j
( ( CUser*)this)->CreateItem( &itemelem, &nID );% S9 l8 R: ?' [
}+ G9 m! z+ V$ F* h: y: |& k7 O' d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ b4 e' V; |: \0 T( d- r. { ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );% A) D' M" P- ?6 [1 j
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );9 Y4 z' [' U8 I
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" p/ P1 w- k# n& N) D ( (CUser*)this )->AddTaskBar();*/7 v( s, r% {# ]
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, `4 y/ ~9 U; n _#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
8 R: s4 ^0 I! j1 o5 n ((CUser*)this)->CheckHonorStat();
$ V @2 M! m5 n" n9 D; m ((CUser*)this)->AddHonorListAck();1 }2 f* \% {+ c, U
g_UserMng.AddHonorTitleChange( this, m_nHonor);
1 ^) C, s" a" U- Q' Y2 k#endif // __HONORABLE_TITLE // ′Tà?
5 U: P0 J) L8 m! ]3 \5 U! g }
4 s/ A1 l- k0 H0 L#endif // __WORLDSERVER
]: `4 \' C2 i( @% l* l/ f) I}
* K/ Z* X9 T7 g0 s& R+ i$ O" D8 b+ Q3 D+ c" k5 W+ E# k7 `3 R
然后你进入functextcmd.cpp并添加以下/ Q# [7 k1 T4 u& M+ F. ]0 }* Q" ~
( [: d" k$ I( z6 B$ ~, ~# j代码:8 c3 _; M7 ?/ `' {
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: T* R% d1 b2 {5 s; a1 |5 p下面插入
3 ^& `* @8 O+ c. n3 `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) , `, s- m8 x7 Y3 F$ h) [
- j4 P( m8 ~3 F& y0 O% c* b& C+ |
然后你去6 M- O/ V7 X% [; w5 H
1 [/ A2 {- Z: ?3 d
代码:. r X' i4 T) v& y6 Q; u
代码
, z& u4 ` \: O) D+ T- A6 I0 F& @BOOL TextCmd_ClearPropose( CScanner & s )
' D/ G( I! |9 I! ~{
- S% o8 z9 ?% V. |* B#ifdef __WORLDSERVER/ O' N( H. e q; r4 N. k% o
CUser* pUser = (CUser*)s.dwValue;- Z! o& z* s* C3 O
g_dpDBClient.SendClearPropose();; v, _- U7 ?2 W, r8 [
#endif // __WORLDSERVER
: w! ?+ _% x$ k. O+ U; c return TRUE;
! R' o" Y( p% ~, ^# b9 k! _}
/ r. @9 w) S$ c- m# u% Z9 _下面插入& I! y5 f" a( g% Z) r) ?+ G. M8 C
BOOL TextCmd_rebirth( CScanner& scanner )
: [8 y! `6 U/ P$ n{
( f' p' [" k- A& [' t. G0 O" f, X#ifdef __WORLDSERVER
1 S, x- v! P! g, N6 SCUser *pUser;2 c2 E$ Q3 [# b
pUser = (CUser*)scanner.dwValue;
% S7 y8 {& M$ \ \if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())1 T8 e1 O) @( C& {
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
% S4 }5 e7 U( r* q. u. P5 q: }- [else' I. p$ B i$ {* v% _
pUser->AddText("你还未达到重生条件!");
! {" E% k- o4 X' i#endif
6 T9 z& H+ k% D/ ]' Y; J% B( Hreturn TRUE;
! Q" Y. I0 H0 p4 |; Z% v}
9 b2 H" d$ _' E
8 Q4 v8 O5 W7 d
4 Q6 m7 e: F2 ^3 n3 S$ O- T _" x) g9 ~2 J/ Y# L3 c7 M
7 q( s" f7 s" p7 @ Q' s, q. q9 U, d
|
|