|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel0 z$ _% T7 x) T* i4 B7 o
9 D1 }' k' ^' Q8 W+ F' h& RMover.h
6 d' r' J& h, c7 b' g( J" Q) g9 C代码:
1 [5 I9 {& i* O! Y* d找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü1 u" g C+ S: p- }$ Q; S
# i$ T: J0 m# g3 z7 L4 X9 D' Q下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) T% a8 V7 r: a5 Y1 J3 u& F6 N2 o
! T- J8 k, h; i7 J7 _2 O
然后你去mover.cpp添加
3 [0 X6 b c$ i0 J3 u5 r% A! e. ^9 m5 s' Q# Z' |
代码:1 X$ [' {, b1 Y) S; s: X
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- K, O, R) B$ `' I- O{
& t8 K# H% V- o7 w7 j; s, ]/ j#ifdef __WORLDSERVER9 l* o, E" d# E
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
" C* O5 e* X0 {6 g6 P e/ o MoverProp* pProp = GetProp();- C7 C9 p0 t9 {5 N$ p! E
if( pProp )- b8 k8 ], N6 G# h! t( X# U6 r
{
3 y8 E t5 X4 ]) w( J$ z6 R [ if( nJob > 0 && nJob < MAX_LEGEND_HERO ): x% d0 v# \! M: M
{5 A" b. J8 B/ ^/ e6 }( X, Y
AddChangeJob( nJob );: V4 _ V, L* q2 ^! [3 L) @- }4 u" `
}else{
2 w( v4 R s* e3 Q3 r return;
% b1 ^. P9 s- c1 t% }. h7 F L }; Y9 k' }9 C5 {8 ~, M9 U8 S
int nPoint = 0;. K4 n) r, v9 P' o" b# w
if( m_nJob == JOB_MERCENARY )
. }4 w1 D' H- u: L6 k nPoint += 40;
+ G7 f6 ?& R+ e( t, u, _ else if( m_nJob == JOB_ACROBAT ). }! |' B+ M" A7 ^* b6 I' J
nPoint += 50;
7 L0 d) C. l) c* H/ E else if( m_nJob == JOB_ASSIST )' G4 Q3 @$ `- E" A) |1 H( O! |2 j
nPoint += 60;
$ t' i6 I4 ?- w- u1 I else if( m_nJob == JOB_MAGICIAN )
: V/ }. F7 l1 e- b3 K8 p# n nPoint += 90;
, v3 ]8 s3 L7 L$ y& {8 p% c& \" a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
! _0 a, M: Y/ v+ \$ N nPoint += 120;: R+ V- _' f* N* O0 F' s
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
3 |7 @" f1 a g+ E2 A9 q nPoint += 150;
$ y- }- @) s; c* Q8 @$ ~5 c else if( m_nJob == JOB_RINGMASTER )0 {' Y- o* U' t$ i# Q
nPoint += 160;( o/ ~( R9 R: @* W
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )3 O6 ^& Z ^7 l1 W* a
nPoint += 180;/ T% |9 B D- M* g
else if( m_nJob == JOB_ELEMENTOR )$ z: N4 x) n/ H0 D( d
nPoint += 390;
4 {2 k8 G/ |% G& n2 V4 z0 { else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )3 L7 I2 {# w3 K5 w: X8 X" o) x7 _! G
nPoint += 120;
3 Q9 s' c. @3 d3 ~; Z; }. c else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )4 n* S0 }! Q. U* r0 c
nPoint += 150;
, E. e# E, S, u2 t- q else if( nJob == JOB_FLORIST_HERO )& L$ I0 o" c6 Q6 p1 t
nPoint += 160;
1 g# p* h) O7 m' t- N) V8 b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
9 B5 n$ p o" w) [" R nPoint += 180;
7 n$ ]8 I9 I9 X5 G else if( nJob == JOB_ELEMENTORLORD_HERO )3 N R# i' p1 M% ^6 H
nPoint += 390;
/ d' n# K+ i) X& Y* p4 [' Y' a# {3 }
AddSkillPoint( nPoint );
5 @# U, B& u. C4 x m_nLevel = nLevel;
F0 x9 r# [, n$ ~3 z5 D5 b# c7 z0 e& T
SetJobLevel( nLevel, nJob );
3 H! n' A" y0 E' Q+ S& @9 J m_nDeathLevel = nLevel;
) M ^" h, s- ?; `" x! x0 a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. \' k" H `8 V! ]# z if(IsMaster())
$ r* [" N3 |% B2 F- C {" [7 n7 P/ N/ T+ t( V
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
" V0 x# F: l2 T' [; z' P! B if( nLevel > 59 && nLevel < 72 )3 D/ \. ]! B: c! U
dwTmpSkLevel = 1;
& x. T; b9 Y0 k$ J8 E9 G- u) }" H else if( nLevel > 71 && nLevel < 84 )0 X9 t$ ]! o( P, F/ ]
dwTmpSkLevel = 2;: F) Z$ f3 b" e' L- f& d1 d2 k* V
else if( nLevel > 83 && nLevel < 96 )4 l6 H/ _* [# d7 c+ A) K4 D
dwTmpSkLevel = 3;' A n$ V: S8 ^8 _
else if( nLevel > 95 && nLevel < 108 )
h! S* E+ T/ ?( e7 C dwTmpSkLevel = 4;& o! p; K. F0 G& U+ t3 k
else if( nLevel > 107 && nLevel < 120 )
7 _1 G" C8 C2 v5 M$ ?: i' F! Q dwTmpSkLevel = 5;
8 V. z, |; b' C* ? for( int i = 0; i < MAX_SKILL_JOB; i++ )
6 I1 Q- _2 H% ]2 C/ M! S { * Z2 l: C: w( F( J7 b
LPSKILL lpSkill = &(m_aJobSkill);
" j; r6 Q* f6 P if( lpSkill && lpSkill->dwSkill != NULL_ID ). y3 G; A0 q+ i+ E5 U# s7 F H2 x
{
6 T8 q& M: N3 ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 {# ^4 n* [$ v+ [8 S+ ~8 i8 z if( pSkillProp == NULL )' j7 W/ O3 `7 m/ q4 M& O
continue;% O, I* T6 }! G- d Z5 K$ R ?2 y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER): s% T$ Y, k1 f. y
continue;7 q& \6 _! d% y% i. S
lpSkill->dwLevel = dwTmpSkLevel;( H M& @6 _7 l8 n" S
}$ x7 S3 z# [3 ~$ Z: _
}! R2 U$ ]( Z4 H8 Q; a+ F ]
}
7 R* U8 r2 Q4 ]" y else if(IsHero())' K& W; H' Z# q) C$ \! a% A& n
{
* ^) U, ~- X" {# R. ~! G% R for( int i = 0; i < MAX_SKILL_JOB; i++ ) " `& F4 m9 J" \1 g
{ ) B8 ]6 v- E: P# ^
LPSKILL lpSkill = &(m_aJobSkill);
2 k! R/ B; Q5 r+ ~" A% d( i if( lpSkill && lpSkill->dwSkill != NULL_ID )# G% v0 ]: x% b( E; P4 S9 @
{
" M0 p0 Q- j8 r4 U9 x$ l" O2 N5 U ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ o" M2 m3 H8 J if( pSkillProp == NULL )
1 ^! k I9 O6 |- D' C% b k% | continue;! y- V5 B) l4 [( E' A6 y! W% A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ o: V* C" u$ h0 p x3 u continue;) M: O/ y0 o. u& U8 H
lpSkill->dwLevel = 5;
8 n4 H7 a/ k0 `& \) ~ }- W* Z8 `. F% m4 T5 A2 u5 F
}. p. e2 h. G; G3 m4 k
}
8 W) t" y5 K5 f4 [* e else if(IsLegendHero())
/ w0 w, d9 s' Q# P% J+ E9 B5 K {+ |6 ?6 o2 K# E( w& C( @9 c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 ?$ m2 o. U9 u9 k* Q$ N+ c+ b \& v { 8 k8 W# i o- |
LPSKILL lpSkill = &(m_aJobSkill);, E5 A' ]- E+ W: I& x& |
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& q& O3 z. q/ Z- D {
5 t8 b8 H/ c, P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
3 i- j7 U7 L' I1 ^, p$ l, u8 s if( pSkillProp == NULL )
/ J; @8 }& o. _8 I& `6 }& \, M; F continue;
! }9 _% e3 \+ P6 X+ l$ ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ ^9 O0 Y5 Z7 \9 v continue;: L* f. F3 X5 V! A
lpSkill->dwLevel = 5;( h$ Z1 x& e4 G$ a& k
}" F1 q; q4 s7 Q2 Q+ m" y6 a! k
}! Q/ B. V* Y% a! z, d {4 n: v
}6 ?+ {) G m$ }( ~! |. X% X$ D( t8 L
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans i4 [' L X, @; K
if( bGamma )8 d2 u+ p3 g1 M! l
{
3 D; D, o! y8 w8 k m_nExp1 = 0;
" L5 k8 D+ [8 N6 u }
5 K k4 `. s/ O: ^+ W
3 y% z& g& H3 i B1 H% l ( (CUser*)this )->AddSetChangeJob( nJob );; R& F6 u" H0 i+ t! E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
( @; \+ M" k/ G/ Z' A
# a3 b6 p% @; m4 c0 b+ T/ w: P7 x2 W, I+ `4 X
#if __VER >= 11 // __SYS_PLAYER_DATA% h% b+ R0 _$ _+ l3 m( x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
2 h O2 l7 Z* ~' {0 d R1 z#else // __SYS_PLAYER_DATA: j5 p0 K7 C! ]6 s& J
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. x, v* b" i. c( l8 j, ]3 o g_DPCoreClient.SendFriendChangeJob( (CUser*)this );6 A+ e: e+ A8 x$ `" m
if( m_idGuild != 0 )
: i. t8 m# d C! A% q g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );0 g, g, k ~8 \" @* Y
#endif // __SYS_PLAYER_DATA
3 Z U, l: T$ h( b& `" @ SetHitPoint( GetMaxHitPoint() );
2 Q% t' x1 o# r- q9 \# c3 R SetManaPoint( GetMaxManaPoint() ); L/ T, r+ h; A
SetFatiguePoint( GetMaxFatiguePoint() );
* {2 n$ w, V. E if( nJob >= 1 && nJob <= 4 ); A2 a u; \- h5 H$ T9 m1 K0 [
{5 @. F8 q& g7 ]; n( Y- x& m& E
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% |! p0 {6 P: J' h m_nRemainGP = 28;: Y: v( m+ S& v/ J' E
}
+ n7 r4 Y+ {- w; u( [ if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& i5 u; R7 a/ D+ v2 H; y
{
. p' d: [+ |9 e0 f# t; v m_nRemainGP = 118;8 b3 \5 h$ N; O0 E$ ~6 ~. B4 C& s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;( u0 A' U/ I4 b
m_nStr = m_nSta = m_nDex = m_nInt = 15;
- N& [" d+ A6 R( e0 y }
2 W5 l/ G6 V* G7 ^. _ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
5 z9 f9 C" V- `: f1 R {
' h: \" u. G# d. ^ CItemElem itemelem;
0 N( ~: \/ G. u/ c3 G) a# E& x itemelem.m_nItemNum = 1;
5 {7 X5 V u) D1 L itemelem.m_bCharged = TRUE;3 @1 A$ I7 Q, R, j/ w
BYTE nID;
) a" ^8 ^. g0 f' G1 F
* K- l* w2 p$ r! B if( nJob == JOB_MENTALIST_HERO )$ C2 ~* W/ U" F* k9 q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" ~& g: F2 H& O! g; y) a
if( nJob == JOB_FORCEMASTER_HERO )) r/ w$ W8 }# J( [& j0 i+ Y0 j
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 _/ b. H7 d( `# H9 w H: A' M
* j( I& k! K* k+ ]$ V, d
( ( CUser*)this)->CreateItem( &itemelem, &nID );% t) R, E( }4 t
}
1 V5 y; \; H5 l g_UserMng.AddSetLevel( this, (WORD)m_nLevel );/ t6 o9 m$ h8 R
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- o" J$ A% U6 P7 k5 i: b- d
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
% L1 A9 h' n( }7 E: F /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
- l. T/ I, i6 L. d" d" P+ W ( (CUser*)this )->AddTaskBar();*/
; \' o% i& w7 B# b! S1 R ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 m) w; j* X" Z
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
- X( B: t+ _: {, l3 Q4 E( S ((CUser*)this)->CheckHonorStat(); r9 f8 [4 L& L4 Z0 t8 K a
((CUser*)this)->AddHonorListAck();
. b4 m, c `" ^! u* k6 V g_UserMng.AddHonorTitleChange( this, m_nHonor);0 Z' S: p( {! Z: D* S# T
#endif // __HONORABLE_TITLE // ′Tà?1 o$ V8 W# _. n: |8 N7 i# f, v
}
0 M- v: ]- k6 r3 ?( [& s#endif // __WORLDSERVER
: b+ p, I1 y: x}
0 |5 n3 z2 Z7 [5 R2 O* g$ x, U% C$ x, e$ |$ m# m
然后你进入functextcmd.cpp并添加以下
$ G9 a6 ~4 q5 ]4 f/ h1 {! X
3 @" a" y( M+ x代码: e" A1 r* @5 s# M8 f8 z ]
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
5 @' [: h" F$ Z6 j& P% J i# y下面插入% U5 w L4 _ ^" h0 i& z
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) . y, x6 Y2 T$ Z3 C: e& u& [. M
+ p: y! R: d; s
然后你去& N+ T7 }* B; W9 ~, i& k* T, X
. {4 `, i+ @& b; ]代码:# c6 o: f/ `; L3 @ l4 i9 C( z
代码
" \2 _/ X, \- L! m8 kBOOL TextCmd_ClearPropose( CScanner & s )( f! j+ D1 W. X* U& Z! B
{
7 i& N! o; N: Y2 d5 `$ |#ifdef __WORLDSERVER1 X" @2 s8 X! n' H2 f" J
CUser* pUser = (CUser*)s.dwValue;! L1 a% \. x Q3 N O, I6 z% _; ]* |
g_dpDBClient.SendClearPropose();1 Y+ Z. W# c$ u- w- W
#endif // __WORLDSERVER
M, B4 c! ` A6 s, ` return TRUE;
8 M- C, d% Z! }$ O}* V. ], A# x( w3 i- D* b3 B
下面插入1 f" w9 r% r7 K) v0 k
BOOL TextCmd_rebirth( CScanner& scanner )& w- e, ?8 q9 ?
{
* }/ C; e" e C( a. Q9 M#ifdef __WORLDSERVER; x" f# f7 G" }9 @
CUser *pUser;5 j, q2 l) s4 }% s
pUser = (CUser*)scanner.dwValue;2 V9 ]8 C8 W8 c) c! B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. {' [2 c' R% o7 O0 DpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);4 n+ f: p/ v: `- _ g8 B6 w0 o' c
else
' w& b9 o: [: D* ^! w/ opUser->AddText("你还未达到重生条件!");0 I9 V) U+ L8 l5 p
#endif' L, L$ I$ S- U& e* V" i& S3 Z
return TRUE;
) f* A4 j! C1 p}
! V+ {% z" M+ C, s6 H" M( q4 C% K/ d2 p" i
6 w( e4 @; P2 F* V" [# t" z8 p' I* u6 S& g- a, i: m
/ ^9 m) O5 V2 i& R1 q5 Y/ L
|
|