|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel; o* L0 _8 T0 q
8 x* z" Q2 M& u2 C M. g/ WMover.h
- |$ D5 t* s8 z! v7 @8 h代码:" V/ M1 a3 N# G! K) m/ p0 {7 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% t2 l9 a8 `" N6 t5 x6 B
* V% L+ g, ]' M: R5 i$ v+ j& u w
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 5 c6 x& |" U$ I2 G* Q8 y+ `; A: J: m
' Q f" K1 s3 I# z9 W+ P( O然后你去mover.cpp添加
, d% ~# c K2 O: l# R- ?' s1 J8 r v. O0 g
代码: v P$ m, _# c7 S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) S" @0 ]7 l2 E. P# F; a' ^& R{
* m, A# ^4 l' f: @; q9 ^; F8 r#ifdef __WORLDSERVER
; ^# \1 Z* O2 l% S" J4 w // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó8 k! G+ h$ a6 v$ w
MoverProp* pProp = GetProp();0 [; X, ~7 | e) H- @. l I! |* T- t
if( pProp )- g+ H9 G5 M7 @& C: p, G0 z) y
{
h* H$ j) q5 _# D0 A, N, x if( nJob > 0 && nJob < MAX_LEGEND_HERO )7 H! p7 P3 O0 w& X
{8 j0 k$ l! U6 ]* b0 r+ |
AddChangeJob( nJob );
8 t7 V6 z4 j9 e$ _" N1 a0 t }else{5 m& W$ r4 v: _2 t. r( p% m
return;
. k. v7 E# `" _7 ]4 ^9 j }; ]- U' q3 t" j) b0 {+ D+ o2 p
int nPoint = 0;
0 K: d( ]- f$ T. a& L$ ? if( m_nJob == JOB_MERCENARY )$ v# u3 }* k) c" i% \
nPoint += 40;
: K& H0 B" k! y* k# v. \/ s* _ else if( m_nJob == JOB_ACROBAT ): @6 d' r/ N r$ r3 [0 Y
nPoint += 50;
0 c6 R/ a$ v1 b) V) r" _7 e else if( m_nJob == JOB_ASSIST )+ v0 F# K6 O: g* _
nPoint += 60;' K. e" T- m X6 l
else if( m_nJob == JOB_MAGICIAN )0 z2 y3 x6 S8 x5 P
nPoint += 90;
: K: q& ~0 B! s4 ^2 C5 @3 l else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
6 \; W8 o: n' v nPoint += 120;
- v3 n- x1 g# a0 H" W1 f else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
/ i9 d5 V0 C8 m* D nPoint += 150;
9 g' {* ^; e7 d/ _5 V' d% U& K else if( m_nJob == JOB_RINGMASTER )7 Y7 X/ v5 p/ j* f6 x
nPoint += 160;
6 _) O( G/ F, G' b* B' g& ] else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )+ w \5 ?* l0 @1 U! w+ \" a- u# L
nPoint += 180;
* F& ]- ]1 N# ?, _' \( y2 n3 o else if( m_nJob == JOB_ELEMENTOR )
% c: @3 e* J/ l0 O: y nPoint += 390;
: ~. |+ G; v0 E4 h% T else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 n+ L m$ [$ S; g
nPoint += 120;
( m9 V- K9 L$ L else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )# C X$ z; B3 i. ?6 E! D9 q5 J
nPoint += 150;' ~, U7 N. S( e
else if( nJob == JOB_FLORIST_HERO )
' F9 I, ~3 p5 G" v4 e# a1 m3 ? nPoint += 160;1 [5 p2 e1 Z7 {$ z, M$ C
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 B9 z" K# D8 ~0 U. o$ f
nPoint += 180;
& V- }- }1 q+ z" W+ f6 e else if( nJob == JOB_ELEMENTORLORD_HERO )! j4 `* s5 `( [& U0 W+ Q7 E
nPoint += 390;
" H! W; e! k x/ U; c" V- k: A; S# g* \6 X
AddSkillPoint( nPoint );4 Q9 ]4 c, J5 T S6 ?" D
m_nLevel = nLevel;! n6 m( G; E# u8 G- \# ]+ n
: W) E. _' n ?) K6 q7 w8 [ SetJobLevel( nLevel, nJob );. }- X! U7 ^5 h! x) {
m_nDeathLevel = nLevel;( U: r) A$ W# A3 J6 d/ l7 k* V
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) M& G+ i9 W, r
if(IsMaster())
" E! t; g2 o2 p {
0 x' m3 u% X- t/ y; w. K v int dwTmpSkLevel = 1;//60, 72, 84, 96, 108( m( U* c3 n. z5 u5 L8 [& A
if( nLevel > 59 && nLevel < 72 )& o: A8 B' J3 W4 n5 P/ a) S
dwTmpSkLevel = 1;
: j7 X, ?0 }/ A: e, p else if( nLevel > 71 && nLevel < 84 )
( R- A- @+ {5 |7 l( c& e dwTmpSkLevel = 2;* l% K ?) s, @: l
else if( nLevel > 83 && nLevel < 96 )1 b1 W$ }/ {$ f/ g% l& u& t! r
dwTmpSkLevel = 3;5 {1 b! B$ J+ L; V: z* C) t1 N1 B
else if( nLevel > 95 && nLevel < 108 )! {0 s$ e9 G* L- N7 L2 I) _; g
dwTmpSkLevel = 4;& y3 K2 X5 o9 C3 ?% j) y8 {
else if( nLevel > 107 && nLevel < 120 )
5 O$ [) c9 B9 k1 \- l4 H3 `9 l) b5 T dwTmpSkLevel = 5;( c, Q6 X" P) U; V
for( int i = 0; i < MAX_SKILL_JOB; i++ )
2 z) ~/ @, P$ y { ) \( v1 \! a$ }% P: z
LPSKILL lpSkill = &(m_aJobSkill);
. F: I& E( R% V) \ if( lpSkill && lpSkill->dwSkill != NULL_ID )
9 o' F* s4 G1 O! f {
- o6 Q$ x2 M& k) c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; j* ^0 g$ i l3 Q
if( pSkillProp == NULL )
/ H* @2 b" F9 @2 S continue;. Q: u! f; q2 i7 ^
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 K- J! M8 P5 `, Z- y+ Q6 f
continue;/ |, b8 z0 J. }1 A
lpSkill->dwLevel = dwTmpSkLevel;6 q0 }1 b* H) i0 I$ u2 A
}
~* c. x6 h5 F" E( ?; k t) K }/ ^6 j. i. b& ^* E, U
}4 l& b- a# i8 z7 N
else if(IsHero()) [2 R4 B1 P5 [' `' B+ Q* Z
{
! n7 r' J9 Z1 N1 t6 _& H' r for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 {* T# z3 E% d+ c# t$ F _
{ / U9 ?* f; [/ g! r$ p u
LPSKILL lpSkill = &(m_aJobSkill);
$ A( w! B! r* \4 z# K5 P5 t) ]2 s2 `; B if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 m4 y6 M* G% U ^6 | {3 z6 l2 Q0 A. H7 S" u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 U% Y, e2 w& X$ r. c$ ] if( pSkillProp == NULL )! S: ~5 { W: N' M
continue;" ^- z% U/ U! U0 g: l' l( U9 c
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 _! \% J/ i2 s0 a' S- I8 k continue;
: d4 D2 r. \' _ m* x1 S7 E; ~ lpSkill->dwLevel = 5;
6 m2 p- d% Y9 t) ]+ u- Q# g5 K+ i$ S }
& d! C" ^( n! q; F* Q! X3 ~8 h }
7 l- Y0 I* _" M% E( T7 K9 C$ W: h7 r }
$ }7 U/ ~3 a$ a6 t. v0 O else if(IsLegendHero())
9 u! h! w. R9 H w) G {
0 @1 `5 | m9 I J0 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) 1 r3 q {& {& m& w" \0 @5 e: w
{
$ m' S; M3 p" `: g& K LPSKILL lpSkill = &(m_aJobSkill);4 l5 y+ S2 J3 t, W
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 i5 e! }' T0 j! ^3 a6 C( E
{
/ o) L% ?4 q4 G" R9 Z* u; H0 o ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, X0 |% L, C0 c1 p if( pSkillProp == NULL ); Y3 I6 _% ]4 \2 p7 I" d8 ?3 `( Z
continue;
% v4 U% ?, E7 G1 r. ? C! t) k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. r: Y+ b+ Z S* c1 ~ continue;
7 B$ n3 [( G% F {" a# Z lpSkill->dwLevel = 5;) J2 }8 t" g8 N7 f
}
: j( z" a- b/ {- T }5 `- j# x: P! J2 f, I5 C& k, D7 ?
}
1 x3 n" r! I, `- e#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ x" ]. q: d% E
if( bGamma )
( k2 p! @( j; W. w& F& W5 e$ T V {8 R" o$ U' q& v3 [4 a+ O
m_nExp1 = 0;
' f: Q" w! f. f( u }8 G! L5 T7 E/ C
2 n. G" E& t+ k7 y& s+ u! W ( (CUser*)this )->AddSetChangeJob( nJob );3 n! k8 p( I$ A6 B9 E
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; |' Q b1 Q/ K% t3 ^! }
7 b. i. P6 c9 H+ g7 D! D
3 }7 D2 L8 y; n5 K+ Y! X. l#if __VER >= 11 // __SYS_PLAYER_DATA3 Z8 h9 j2 X6 D5 M4 L" ], x0 T4 x& ]
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( X2 p4 K4 ]9 \. N0 A/ B
#else // __SYS_PLAYER_DATA
5 ~9 {* r( }& R7 i- B+ h g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
8 ^9 D2 N" [2 m: a- l, c* |; l$ D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );( E" B3 O# U; l( N, L, k7 F$ u
if( m_idGuild != 0 )' M( G$ A" e D- P5 X
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this ); D h8 Y6 H6 H2 C8 M
#endif // __SYS_PLAYER_DATA
, Y7 \) T# P6 f" P, S J, `6 |" R/ m" W SetHitPoint( GetMaxHitPoint() );! d6 ]0 x+ C+ }7 n+ `2 k, N
SetManaPoint( GetMaxManaPoint() );3 E) T- D S9 {( W2 q$ ?8 r
SetFatiguePoint( GetMaxFatiguePoint() );% p9 e+ }) C: S j$ [
if( nJob >= 1 && nJob <= 4 )
1 c1 n: w+ ?+ ^" h {
' t- M3 g1 ?/ f m_nStr = m_nSta = m_nDex = m_nInt = 15;
' F6 y# U* s5 g4 T, j# C5 j m_nRemainGP = 28;+ ~- I2 N* ~! x3 @6 }
}
2 k/ ]+ g' T0 @8 J, N if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
1 R( \. t: _! W1 H. z {
0 J0 U" r8 c6 h3 k m_nRemainGP = 118;! \/ `0 w9 s9 A& {( E% i X
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;5 i0 h& V& W! k. r( S; ~: i- R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
0 A) @: `" B, `1 _/ g5 X }
8 ~% j1 W+ r. v3 S if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )3 O1 p/ y7 h! J% O, e, c
{' p& A4 i) K1 {! I
CItemElem itemelem;
# ~6 A# g W' n4 L itemelem.m_nItemNum = 1;. |' I4 O% t7 T& Z6 f" U/ }
itemelem.m_bCharged = TRUE;$ m' B; O$ H1 ?2 j# |8 R
BYTE nID;
f# O' g9 [ {! S4 J8 M3 Y
' k v; w7 R2 E T* k+ I if( nJob == JOB_MENTALIST_HERO ); S6 _) m0 @ O! ~) n: Q+ [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
+ a* |1 |, X0 K. m if( nJob == JOB_FORCEMASTER_HERO )
; i8 I: F+ B$ q) }4 f+ t- |9 b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
. G7 u4 v/ I) A2 s' r/ h
" G- }/ l/ m6 w5 T+ w& ~ ( ( CUser*)this)->CreateItem( &itemelem, &nID );
; d+ U" n; q4 L/ [5 A }9 B, [; J9 I0 k) a5 h% j. B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
; B! @; k% c( J+ l7 i4 Z& D& P5 [- A ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: S3 h( r8 y( C+ S" ~/ m5 D
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel ); u5 ~+ b/ |) F; V3 b$ {
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );/ @+ h- G% I; S: U
( (CUser*)this )->AddTaskBar();*/" M% Z5 @8 f7 n5 H$ `
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
, l5 u# X) ]$ V7 E- d) A#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
7 m: U+ `+ g/ l; e" ` ((CUser*)this)->CheckHonorStat();
. ~ O: Y7 }2 I2 h8 d0 N9 n ((CUser*)this)->AddHonorListAck();
' j; I7 `6 y3 U( K7 D g_UserMng.AddHonorTitleChange( this, m_nHonor);
5 ~$ ^6 I! Q: W; p#endif // __HONORABLE_TITLE // ′Tà?
" |6 n' d3 q5 k9 X }8 \* t% |, q+ K7 H( H4 L( d& L2 U, _
#endif // __WORLDSERVER9 l8 o( H( r; L9 V* t
}
- x3 {: v2 S# @7 P% i
. p+ N4 F' M/ x+ L% p) o然后你进入functextcmd.cpp并添加以下
& ~4 r7 j+ D0 `, t, E f' U
* X9 v: A1 e4 l% J k1 y代码:
# d! E6 h8 g2 ~5 _0 u6 G8 Z8 yON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )- T" Q8 u. N! m( P
下面插入
7 l) E9 _0 b/ u) Q& K& JON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - X/ C9 O! @+ k. W+ N
4 D& [" v+ S) L
然后你去6 M; _% `3 V% \3 _. v
% f% P' @/ J# M* `
代码:! d8 w" M9 |1 N8 X" A
代码
& A# u$ t; J8 n* L) nBOOL TextCmd_ClearPropose( CScanner & s )3 D* Y4 V- H5 H) n( V
{: G* ?5 U. ?3 d# `
#ifdef __WORLDSERVER. |8 E) B& j$ T X8 S# A
CUser* pUser = (CUser*)s.dwValue;
3 P* P- K" H% j% g! a6 j g_dpDBClient.SendClearPropose();! J* C* l) i# s
#endif // __WORLDSERVER! `2 j; h+ g6 v8 i: L
return TRUE;
" T% y$ H/ K6 S" @}2 a- u0 g B7 O5 k9 a( F; _8 Z+ m
下面插入
& F2 ~) K6 ?/ \# Q) f* ^& ABOOL TextCmd_rebirth( CScanner& scanner )
' Y* F9 f3 [/ O{5 t3 g& @. E' a1 E" q
#ifdef __WORLDSERVER
! W! g: }2 I" ]CUser *pUser;- Q. t8 G( X9 z8 k- q O, ^0 D" W+ M
pUser = (CUser*)scanner.dwValue;
; |8 i5 P; \0 _6 S6 Zif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
+ L: ~3 j& P- \( ^pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( D# K3 o2 q# o2 A+ K. }4 |/ n- c7 d
else
5 o O% ~- }, y/ Z% x2 v5 _pUser->AddText("你还未达到重生条件!");- @) [& d3 ?5 l J k
#endif
" d) E/ T3 G; Z- ^5 ?$ ~; i: b) Areturn TRUE;; @, t6 j/ v. Y) w0 Y5 y( _3 j; z
} 4 q0 c. P# O5 a- a
8 x% X/ S1 B5 x
3 F1 v5 G9 r6 g
2 e0 s) P$ _% J0 T' n
% V$ M b3 A- J3 h |
|