|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! n# S( e* W% H6 {( F
) D7 t" ? Y; mMover.h" ?: Z. n, w% j7 a% l
代码:
' c5 m6 P. ]" B. _2 C7 \- Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
- G3 `) l; p! d( b3 I" V. e! c
: C- a6 T4 i& y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 ^) Y: p3 w- l. S4 x, f5 y8 E7 s& }1 ?
然后你去mover.cpp添加
" e, z$ r [' c9 K" D0 d& S; n6 f/ C0 w- H
代码:1 D! p1 }- G/ d. T% u! l7 U' P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )1 ~# t! [$ H4 D# m( d- p/ M
{% K1 I$ o4 A9 v8 o! w4 e3 G
#ifdef __WORLDSERVER
. M; L. `0 @6 I // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó6 A* X5 [$ Y# E4 N. n" j# u
MoverProp* pProp = GetProp();
, o! d1 D# _0 `. D; ^* b( p1 a7 { if( pProp )
3 t4 @6 p0 T( L3 J: v. t& z3 E p {
3 a( h' n) }/ F# m; R/ O if( nJob > 0 && nJob < MAX_LEGEND_HERO )( q5 n0 c4 d3 [/ P
{
4 |% b/ ~: V7 w: p+ y" A. U AddChangeJob( nJob );$ U: ]- _, e" h3 g1 x6 ?
}else{% t9 |* S7 ]6 U" p% L/ J) j6 e
return;
/ q1 l u0 A9 ]6 }& A. U& O2 Y }
7 F k1 h: c U. q) G int nPoint = 0;4 n4 r' t: l( a
if( m_nJob == JOB_MERCENARY )5 S! S/ @/ ]/ C. G& u. ^5 y; \
nPoint += 40;
: D/ C' x) I& Y0 Y# ?% D2 Z else if( m_nJob == JOB_ACROBAT )$ @2 Y' E6 S, } T# O- c
nPoint += 50;
; x* B3 q+ e% `. V: f8 F( J/ S else if( m_nJob == JOB_ASSIST )
6 v+ q0 V8 P7 c6 V nPoint += 60;7 m5 | H. R4 w/ ^
else if( m_nJob == JOB_MAGICIAN )5 F6 ^: M7 X* N7 w, h
nPoint += 90;' K1 ?: T% O1 R- e x
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE ). T2 M/ B7 m" U; k- A
nPoint += 120;
" J* W! K/ S3 d4 _* Z else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )2 i- y% |% @4 ^* Q( z& j
nPoint += 150;
9 b: `' S2 S/ i9 E$ y& @ else if( m_nJob == JOB_RINGMASTER )
?3 V, B9 v4 ]2 y/ X nPoint += 160;
/ g8 u/ @) h' ?& a. g: T" Y else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
0 N. V) c* Y- q' M" a: f. B nPoint += 180;
' T2 j3 Q/ _ ]8 y6 k# } else if( m_nJob == JOB_ELEMENTOR )
; S' F7 {( W3 K( m% i, A) | nPoint += 390;
( U( R( c. W/ m& {+ L. ~" Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
5 M4 S: m0 T4 a0 s nPoint += 120;
4 I$ S* M7 P. t6 y/ i else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
4 Y# q6 N. `. ^. F2 P g2 U5 a nPoint += 150;6 s9 R" N- T- y U- D. B4 z, y) L: ?
else if( nJob == JOB_FLORIST_HERO )
. T0 |6 ?3 A0 h) h6 | nPoint += 160;* A2 S1 @% _/ K X# A7 f* z) ?
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
! L% Q8 f8 d: Z6 a0 f# y" b nPoint += 180;& n# I/ J. {4 F0 l! [2 E& O4 v) |( e
else if( nJob == JOB_ELEMENTORLORD_HERO ) X& e1 S! L5 v. d* k+ [' s
nPoint += 390;8 a) x( H) Y N9 _( P0 {
: |1 d2 |; ]3 v2 [
AddSkillPoint( nPoint );
& M3 L0 c$ j) e0 P5 z& ~ m_nLevel = nLevel;
; A# \" x& d( Z' w0 E
8 j& x3 d6 @4 m* C3 }0 b SetJobLevel( nLevel, nJob );
' _- ?, O' L- O ?! Y7 d m_nDeathLevel = nLevel;# r- q/ e1 n( u/ I9 q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& }% a; D1 W+ W# V' A
if(IsMaster())
, i) j+ l! N9 v; R8 B {
! C6 ^/ v$ e" h0 J int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 f( }$ J8 ~7 j2 x- K( d9 N if( nLevel > 59 && nLevel < 72 ) H! k! {# j; L
dwTmpSkLevel = 1;7 I4 u. g; a$ y, Z* ~
else if( nLevel > 71 && nLevel < 84 )
7 ?3 Q( \1 T2 l, v dwTmpSkLevel = 2;
5 _ ? f: Y2 i+ H; x else if( nLevel > 83 && nLevel < 96 )
* R' z" `1 B# ?# O( _3 n dwTmpSkLevel = 3;/ P" ~. p% m) H7 j1 j) M9 K1 G5 u
else if( nLevel > 95 && nLevel < 108 )
" n" y# C9 v# L0 ?+ d( } dwTmpSkLevel = 4;
4 p6 x# g3 b9 L else if( nLevel > 107 && nLevel < 120 )/ v# v; ]. Y3 p0 D3 p. h' J4 h, e0 m
dwTmpSkLevel = 5;; Q. [& J7 r: K, ~
for( int i = 0; i < MAX_SKILL_JOB; i++ ) # [! R) T" \/ `9 Y$ f& s# p
{ 1 N: u8 ~/ d6 v6 h
LPSKILL lpSkill = &(m_aJobSkill);# Q- o( @) i' h9 I. h/ s' a4 N9 X
if( lpSkill && lpSkill->dwSkill != NULL_ID )
" x; v6 E' \' t( s {
4 d/ X; n0 B: Y" Q# G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ S! _( {6 J4 m5 q if( pSkillProp == NULL )% ~% m+ f! |6 |- B9 Y6 B
continue;
! R) Z2 h5 P8 Z& g; r0 u if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 y+ b9 u. ?9 W, h continue;
( m; @) v. B1 R* e& h lpSkill->dwLevel = dwTmpSkLevel;% ?& @) ]" m# m3 U, [
}
; `: V7 I' x" n+ x: E: T }
7 ~6 ]* `% W: C' N+ D1 L }
; I D- s! P; l0 l, B q! b! E else if(IsHero())
$ m- `: N# c1 u- o# `& i6 ]- X {. Y9 b9 {2 x6 _7 a1 F! ^# w Z
for( int i = 0; i < MAX_SKILL_JOB; i++ ) " m" y, Q3 V9 L( I: n% n7 [
{ 5 l4 s5 U+ U# C2 d/ A; e( N. ^! h
LPSKILL lpSkill = &(m_aJobSkill);4 _, e& Z- W3 P, O
if( lpSkill && lpSkill->dwSkill != NULL_ID )
( n' {0 x# w" D6 M0 D3 t {
! E o# u9 V# p: m& W2 }) [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # A3 e/ p/ R5 @; \* w
if( pSkillProp == NULL ). }6 X6 z, {( y& ~, e$ I
continue;; [! K0 c) [' `+ @7 {! t& J( A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
+ N' D0 k9 S+ c, n# y4 s1 z% c continue;
+ E9 f' m" K; D+ ^ lpSkill->dwLevel = 5;
5 y8 ?5 z B5 y$ _: N5 H0 ` }4 x* d8 R5 G: a
}7 D- y2 i& W1 x8 `) p
}
/ _! o8 ?8 D% h8 R) ]' K else if(IsLegendHero())
1 m4 n b8 i- E6 N. ^/ h9 U5 ` {2 a$ Q* Z2 A1 i! V
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 2 P4 k+ P7 J& ?, s' T+ s
{ - t: e2 S6 `5 o: P
LPSKILL lpSkill = &(m_aJobSkill);
' l3 J ^) i* s: S4 Z4 v if( lpSkill && lpSkill->dwSkill != NULL_ID ); B( t; J3 @6 W, Q* p
{7 `/ a2 W$ Z+ L' R, x7 R
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! {4 ^3 `5 w. h if( pSkillProp == NULL ). q! p/ n1 C9 }+ m$ l8 w: O
continue;
/ w3 t0 m% I. Z1 F+ a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ x/ [7 Y7 t. |5 r- L& i
continue;
$ T$ Y* `- ^( e lpSkill->dwLevel = 5;
' y; q0 J& N) g' e; j* o }7 f& q/ c( T0 ]0 ]
}
& @& Y+ k; X; \" _ }
4 f q7 K% h5 x#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
# Y7 Y9 J% W3 i4 \: Z, R* O( w if( bGamma )! e. v: m* X( \. a, v8 o+ k4 [
{
) C5 o+ z& i) }8 _- l m_nExp1 = 0;
1 H1 c- A: f) z! [ }; v9 N7 w! [# c7 U. R
% U1 ]* @; a1 U3 u; X. o2 ^/ b
( (CUser*)this )->AddSetChangeJob( nJob );
, L" I, `! q1 E# Q8 @- c3 A: ? g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );# l3 m1 I) v1 Y8 n9 |
5 [0 z+ z6 i0 w; D, P# E& l0 L8 |4 w4 S G5 ]' T7 [* g
#if __VER >= 11 // __SYS_PLAYER_DATA
+ i9 \* ?: g- W3 z) G g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ N4 E$ n8 \7 Y/ c' P' _#else // __SYS_PLAYER_DATA5 E4 y' j& R. t( \, y2 _
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 I8 O, ~0 T8 s) E! t, b9 ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );: y5 r- h9 Z. x) X1 z
if( m_idGuild != 0 )* Y$ m2 i0 b# Y% a
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% ?9 c- E6 ^0 S6 f# D; q
#endif // __SYS_PLAYER_DATA6 h m% ^0 s4 U1 p
SetHitPoint( GetMaxHitPoint() ); r6 a- w8 X$ Z/ t
SetManaPoint( GetMaxManaPoint() );# ?+ u4 R9 h6 I& j: D6 w! }+ f; _
SetFatiguePoint( GetMaxFatiguePoint() );6 h; j0 m3 t% L$ n3 r5 P
if( nJob >= 1 && nJob <= 4 )
g8 x; s6 v: L5 n6 e {
) L1 q0 E7 C' Y+ s/ W- X m_nStr = m_nSta = m_nDex = m_nInt = 15;
. g8 Q% _8 u/ Z; H" P* u8 p m_nRemainGP = 28;
& P! o2 b& |9 R. X0 B3 g }
- i7 j& y b+ j p3 m+ k7 T if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )/ H, t1 J, l/ n4 H. c
{7 L" M4 `$ _; p" H( Y$ N
m_nRemainGP = 118;& n) G. w& P$ q$ N) b3 n% m! s
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;6 A3 s% B0 T* |3 Q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' b% s( e8 ], F j+ O }
5 Z/ g+ L+ a; ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ) @5 {+ C8 ^# g
{7 B( a! I! {3 V: U- b" N
CItemElem itemelem;
7 X0 _$ N* t: r5 l' U itemelem.m_nItemNum = 1;
- S r" @6 _% [9 b$ U5 m itemelem.m_bCharged = TRUE;
! z0 s4 q# Z( E5 ~! h BYTE nID;8 e) c! l5 E3 ?4 B" f# h @: E
- `& R0 w& ]" ]0 Q2 J if( nJob == JOB_MENTALIST_HERO )
' [* f" q7 u: ?# W# p" n3 V itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
1 z; l* z# q' _6 X4 B if( nJob == JOB_FORCEMASTER_HERO )/ S0 ]- B: p! ]9 v0 @2 q
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; b! U) \$ d7 e8 N1 h7 q* R
: X8 `9 \% v" L1 T1 E+ c ( ( CUser*)this)->CreateItem( &itemelem, &nID );8 W% R' r+ l4 Y) X. ^
}0 I; K3 z, `( E( B- g/ g
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
- z% `0 X/ J4 {' M$ R; ^# E ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
q0 v3 n# [$ }" D) S9 N& x9 w ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 |' |9 Y& w6 f, Q* g: o" X( Y. I /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
0 i( P: G" R% F ( (CUser*)this )->AddTaskBar();*/6 s2 x8 q7 o6 J% H7 q @! p% X
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
. z$ z4 _: i$ q: o#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?: ^2 p# j# e' m, Q9 `
((CUser*)this)->CheckHonorStat();
4 w: w, K: e( i ((CUser*)this)->AddHonorListAck();
! T" F8 _1 I h* F& S- H. }' Q+ i g_UserMng.AddHonorTitleChange( this, m_nHonor);: O, Y% p5 r: F1 N
#endif // __HONORABLE_TITLE // ′Tà?( \" A+ m; `0 x! ]1 H* o" n+ y
}
7 R& p& b9 `: c3 h#endif // __WORLDSERVER
6 _" p: ^8 m% d- c} 9 W, K9 f$ x9 R2 L! ~: [
" W, k {0 e# s然后你进入functextcmd.cpp并添加以下
& \7 P# H4 w7 p9 O2 m$ o, h8 O, q- p) l! D1 m) t
代码:$ x) I! d3 w% v% ]0 Y! b
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ): q' m1 W; b; y" I+ Y
下面插入
# V! w; g2 u1 C8 q% m" R: H4 \ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
) u$ U0 Y* a* {2 R" g. l7 H9 I' x7 L3 X8 n$ l' m
然后你去
7 U( v/ c! y/ }; B$ V6 H* G
+ r; ?/ V% X7 Y, V# v代码:
* W; H3 _% M9 t7 c4 i, c代码! {6 l0 Z1 B) o
BOOL TextCmd_ClearPropose( CScanner & s )
0 z, N% |" b! X{
0 \0 C3 w) q: K5 A+ X2 R. B' `#ifdef __WORLDSERVER
, l( s) V- Q5 N" U$ q: T8 ~ CUser* pUser = (CUser*)s.dwValue; X# c- [& f4 M9 n, m
g_dpDBClient.SendClearPropose();4 ?2 V. p' ?8 W& L( L* P
#endif // __WORLDSERVER
1 J4 v3 C7 f5 ^, B return TRUE;" W) J6 B* e7 h& e/ P
}
/ Q, F; S3 m7 j1 m% Y6 E下面插入
' q9 X5 i+ n' NBOOL TextCmd_rebirth( CScanner& scanner )) g/ Z+ |# a3 W- B& T" _' U
{
$ B9 h+ \: R8 m( u) H#ifdef __WORLDSERVER
" w# P, F. n# ^' ^CUser *pUser;' t/ ^4 D. Q; {% I
pUser = (CUser*)scanner.dwValue;
, R2 w9 m6 u, g: aif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
* `7 C: E% t# \# U8 bpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);8 u' I5 G6 M( w! S' E
else
( M }- O; I% Q) e: S! s2 IpUser->AddText("你还未达到重生条件!");$ o0 W% T, L4 H
#endif# b4 g$ H9 x# {$ {* ]
return TRUE;
2 M# l% p6 a( W, e' F3 Y! Q t} 3 a, o( c: B' G; _
4 r! n" U$ M6 E* K
- w& V5 I* M* A/ {% \
7 I+ e. ^5 D% R+ m7 L4 l- ]
" r7 C$ @% g/ ]7 c: y, _/ e7 J |
|