|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
1 y' V0 j2 m3 q7 e0 F' \( ?: L1 b1 O' l
Mover.h4 @ |+ c: c7 Q9 X& u8 V3 l( A' y
代码:
2 G2 k& J( L# ]( {找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü9 P8 o* P. k9 D
' d) l7 {% G6 I+ J1 }
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ' M0 L* q1 a9 Q' m1 }& j
: M! }& X# Z7 Y `0 Z! n然后你去mover.cpp添加3 V/ D& s3 R. D0 M% `
$ {, b! G0 l9 D( p4 B: W代码:* f4 ~" S$ V. Q/ Y2 A
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
# f# Q7 T: M5 B# `% P{8 W! {. \% B' J+ y( k
#ifdef __WORLDSERVER! ^) O: Y$ K; t4 x6 d7 |1 e
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó+ T7 b) t9 x+ r5 Q; A, S
MoverProp* pProp = GetProp();) D$ D. a3 u# E0 x( @1 f
if( pProp )9 H9 \0 b7 c3 Y' w. O( v
{, b$ r/ c# M4 n J2 l9 [
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 K0 X% G1 O$ U2 L! x: j. c4 m
{
/ [) A2 e: Z' u AddChangeJob( nJob );* ]4 D7 z0 ?1 d* f0 D
}else{
' ?+ n" j d) a+ A T return;8 G/ M6 `' ^1 m' E" d
}8 g U0 d! m0 ?) ?2 p0 b5 o9 S; X k
int nPoint = 0;+ c" \1 K3 c# U2 n5 t) D
if( m_nJob == JOB_MERCENARY ): g' E( U9 [( {/ [2 r% y
nPoint += 40;
: V' D$ u. t7 b0 F* v; c) N- W else if( m_nJob == JOB_ACROBAT )
8 Z8 x) t: ]0 N# y3 j nPoint += 50;) p+ N) x$ O7 L
else if( m_nJob == JOB_ASSIST )$ j. q/ a5 W6 W* ?
nPoint += 60;
, l, X; ^" N7 u ^: Z4 k else if( m_nJob == JOB_MAGICIAN )
1 ^ l- U# a9 K- W% Y/ ]6 Z nPoint += 90;9 h9 O1 p8 i9 r W
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ O, K; M5 @! h nPoint += 120;
1 Q3 |1 q6 o6 H+ r, T else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). [) ?6 T) D. T& G; L- A+ t
nPoint += 150;
+ I' a) Z& K, I5 A0 v4 m else if( m_nJob == JOB_RINGMASTER )' h! h `3 x5 y- j, o1 _
nPoint += 160;
2 C: r! j( e9 g" K$ W& @ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )( x) J3 x o6 c0 A' S, N
nPoint += 180;
+ P7 h) i: Z$ X: J! _3 k& c else if( m_nJob == JOB_ELEMENTOR )
$ }* L3 c; E' M. h6 G5 y nPoint += 390;
: g2 {! v% b$ p1 p else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 W) `' g0 X w nPoint += 120;$ w- ]9 c, r1 x G5 }- Z
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ); `7 p; b* g0 k. M( J' L
nPoint += 150;! K& |" O- r1 ]% O& ~+ ?# g& B
else if( nJob == JOB_FLORIST_HERO )
6 K0 U5 [& q# ^% ]% X- \ nPoint += 160;
0 f; B. V1 F+ v9 V. m' f else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
" M3 \6 y" L8 u4 n& Z4 O nPoint += 180;
. B; I- S' j7 a3 Z& c else if( nJob == JOB_ELEMENTORLORD_HERO )5 W& I1 B D5 [
nPoint += 390;0 I Q$ C3 i3 {9 U! p% y
, y5 e: K3 y% c2 ^! Z
AddSkillPoint( nPoint );- T/ ]# Z& t) r
m_nLevel = nLevel;
* Y0 F0 N- n; a# X* n( A; D1 |
6 e. w6 X% K$ x. \! Z$ q. f! n! P SetJobLevel( nLevel, nJob );
* }5 L% k4 t* J# y. O& p. v Y. G m_nDeathLevel = nLevel;
7 O0 [" e) m0 a#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 h9 @6 L* A. Q* t* p
if(IsMaster())
1 V5 l0 a- I' S9 m" z {
j7 s/ [6 ]2 u) J# A- K0 y int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# J) W2 _, Z1 y' @ if( nLevel > 59 && nLevel < 72 )& D% X/ N0 K9 a3 E8 x$ p6 L" v8 O- ?
dwTmpSkLevel = 1;# @7 C, ~0 b$ _' g V$ R
else if( nLevel > 71 && nLevel < 84 )
' F9 s2 n/ R8 i. b: O. v dwTmpSkLevel = 2;' s, e6 B0 }! k& M
else if( nLevel > 83 && nLevel < 96 )
1 ^0 G1 [+ Q0 `2 ^, W dwTmpSkLevel = 3;
8 F) n3 J# a7 g! y else if( nLevel > 95 && nLevel < 108 )
0 m( m7 J$ T) ]+ t; i8 c' \ dwTmpSkLevel = 4;: I' m$ a2 f) _+ W3 M* N% w/ L5 |- [
else if( nLevel > 107 && nLevel < 120 )
1 X6 T6 C; T9 `: G3 @. a dwTmpSkLevel = 5;, ^5 q) ~: `! `1 w. S' g6 z+ O6 G
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * L/ R9 X! H, u% H
{ ' F1 {5 G3 K" q/ \
LPSKILL lpSkill = &(m_aJobSkill);
1 a2 p3 Z! m4 N( [! M; b! X+ m* I0 K- ^ if( lpSkill && lpSkill->dwSkill != NULL_ID ) Q5 p- `, ~- h. `1 D
{* `- w* J, S/ z& D7 u" }! Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 8 j9 `# {" U4 ?# g
if( pSkillProp == NULL )) [) {' v. z% A- j" R! [0 Y
continue;1 n% O8 @9 Z, O9 t4 H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
; W3 O5 i9 Z$ a8 @ continue;9 h# `" \# k! G# d8 \2 n3 l& {" w
lpSkill->dwLevel = dwTmpSkLevel;
/ U0 K- `' Y! C" \8 n5 l# U }% g! O2 X+ I% m8 T9 y2 u4 b3 e
}' P! \; j( r, U
}1 y( _& Y9 X- t Q
else if(IsHero())
! O/ L: X4 Q' H4 D& f. b {
) ?# {( D. o2 U6 _ for( int i = 0; i < MAX_SKILL_JOB; i++ ) # b* _+ s# l5 T( o( y6 y
{ 0 |0 o: u4 Y C9 i b$ m
LPSKILL lpSkill = &(m_aJobSkill);
5 ^* ~9 _( N, X/ x' {6 @ if( lpSkill && lpSkill->dwSkill != NULL_ID )
8 J* K/ }$ h V { T# ?1 E3 f8 X$ y; m$ Y; ` i, d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); @9 n/ D8 e9 N9 W0 |7 k& ~0 d
if( pSkillProp == NULL ), `9 Q" |) u0 p7 H9 H$ r" z
continue;6 g+ q& f {# C1 b% ?8 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) f- C7 t$ w% {+ p continue;
% T$ u% b/ C& f% W lpSkill->dwLevel = 5;
# f# k& a2 k4 @! r }" `: s/ R$ e, w4 R/ p1 o
}- P9 k% Z" g* S6 m. z
}
; B. l; ^3 w/ l5 z3 U4 b- D else if(IsLegendHero())
; X" f: o+ U! N/ W* \ {
! P7 R l3 @" X d4 ~0 v0 i for( int i = 0; i < MAX_SKILL_JOB; i++ )
A) O1 m% G- R4 u6 o { % z' [2 Y- S9 w+ }% y2 m
LPSKILL lpSkill = &(m_aJobSkill);
0 H0 k% s7 J0 H9 D if( lpSkill && lpSkill->dwSkill != NULL_ID )5 b/ f) O) j1 s9 g
{
6 A+ v& v; U$ r2 {5 i, o: I- o# \% S ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 r& n5 \3 Z, O$ m5 y! f if( pSkillProp == NULL )
4 i( E0 X. C+ H0 Q4 x continue;0 ^% j" T0 x& r F
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). I* `( f8 b7 S5 v. A
continue;
* m: Q3 `/ {; K1 e. L# p. \ lpSkill->dwLevel = 5;
( C1 j5 t5 M( P, a! ^) d }
5 D3 l% U+ c5 _* S8 F) g3 h* w" e }
- S( g4 j( n( A9 d1 I! }/ m0 G& Z' t! J }+ e- k) f4 \/ j8 k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 `9 q# J! J: A; b
if( bGamma )! r# z0 i+ U0 ^* x" c- h; k% B
{
' o2 Q: S* B4 a2 M! c! Z2 h% Y1 [ m_nExp1 = 0;6 {, c, r/ b5 a3 m6 n
}4 b& D3 W; H' K/ \9 H' c: _
, ~0 K6 e5 W* w( o. M' o7 F
( (CUser*)this )->AddSetChangeJob( nJob );% o+ D- r! L1 X
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );2 _" u& F. h1 [' W5 W2 C" D
! @: S2 h0 _) q4 a8 c+ X
- U3 l( O D. x' g
#if __VER >= 11 // __SYS_PLAYER_DATA' y; c/ P6 x8 y# L; V; r. M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );8 x; h% D6 f6 j+ a
#else // __SYS_PLAYER_DATA
( Z7 P9 v9 c0 g+ t g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! t6 B8 j) M" M9 k g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
9 Y; j! [/ f, |& e! F! G4 P, s if( m_idGuild != 0 )" f5 ~/ Y" k8 I$ k- S
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) q, T7 `+ l ~#endif // __SYS_PLAYER_DATA
: u0 J2 r2 H% A% V4 A5 B SetHitPoint( GetMaxHitPoint() );+ Q K/ D5 h& k2 `
SetManaPoint( GetMaxManaPoint() );% m P; C7 w0 J4 u" O/ a3 V
SetFatiguePoint( GetMaxFatiguePoint() );
+ ] A% e4 Y" \ if( nJob >= 1 && nJob <= 4 )
+ E3 |6 _7 n' z0 L- T( ^" `& M$ ^ {1 s* [0 d, j1 S8 x4 F' W
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ y. T, y# s( y0 n5 U( J
m_nRemainGP = 28;5 L2 M2 o* h; M% g8 {; J$ P$ O
}# m5 m: n: O* n6 L, h7 d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( V6 f& T* b* M
{. w! f6 w {' n% h/ I6 d* a
m_nRemainGP = 118;
* p9 Z$ D5 k( _# Q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 B! h5 ^! q- J J% g l5 v m_nStr = m_nSta = m_nDex = m_nInt = 15;, d, M- W4 _# F- `; l
}
0 H5 ~6 f9 C8 b+ o! c2 K) n if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
. j% b8 z( E+ M, c1 Z- ?% z {
) {! Q( l: @5 w9 j: P, W CItemElem itemelem;+ w* g4 s1 A* _
itemelem.m_nItemNum = 1;
9 L+ H5 p! o/ M( T7 v$ x+ `! i itemelem.m_bCharged = TRUE;% m B5 F/ ]) |7 g9 I4 e9 O
BYTE nID;
5 \& _; C' w/ t/ G1 Q6 }+ y3 r9 U; W$ w' e4 u' c
if( nJob == JOB_MENTALIST_HERO )
6 V4 j$ F1 q- J7 f M: Q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
% b" x. R* i. n! A9 ~: f if( nJob == JOB_FORCEMASTER_HERO )
: l4 ?4 p2 A( u% K$ Z+ f H itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
# }- i7 I& E/ _" o; {& |
5 N4 h4 I9 ^" f& C, y/ @& ~! r. n ( ( CUser*)this)->CreateItem( &itemelem, &nID );
+ F f, p0 j8 x, u# E9 Q+ ?! U% v D& R }1 U$ k, D' c: b% v* D9 }5 Z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );! X( ~; z0 @5 t% ~) x1 m( L
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 q9 `. c y% r ?6 K$ i
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
( ~/ H+ g$ {6 R8 }. a1 K /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( t/ h& w7 H9 ~; W/ s/ l
( (CUser*)this )->AddTaskBar();*/
' `3 v, B2 j& f; y* F0 c ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
5 P, M) I$ e9 q) H+ A1 ]. r#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) V8 e B9 I, Z/ n) P8 X* N
((CUser*)this)->CheckHonorStat();7 o& L \6 t- Q: F& z1 |% v/ ~
((CUser*)this)->AddHonorListAck();$ C: _+ B% Q G# V- O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
* Z P0 x) `: p1 H#endif // __HONORABLE_TITLE // ′Tà?& ]0 L0 e( w/ C! d* e: T! J. |$ I! k
}
H* B7 Y& x' \3 @+ g#endif // __WORLDSERVER
4 B# C' c; V1 f, w' V}
2 T' l- T2 U+ x; m$ O! Z) Z3 V
$ l0 e& f/ W0 W S$ k8 H' I然后你进入functextcmd.cpp并添加以下! D: ]* [1 |) r
, K$ x0 r+ u( J0 @: G e代码:
3 |+ V7 F: N$ g7 B' J6 d y2 b( |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )1 R6 g* I7 `+ u w3 c2 _
下面插入
: G# m% G$ Z. {" T+ D* w: r' gON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 O1 P4 s+ O, d8 t4 f( t
0 @% \: F9 j; G9 E/ ^* ?8 s8 Y
然后你去9 W* L# E( h+ ^2 v- Y% |
) H/ E& e0 h2 s% e6 o+ d) u6 B' ^
代码:
0 {% W' w" ?/ S u6 S代码8 H. d8 u' U% Y6 P
BOOL TextCmd_ClearPropose( CScanner & s )
. d: A/ `1 `! b: ?! z{
. t) X J% |& ^, ]& D( D0 l/ Q; r#ifdef __WORLDSERVER. V3 W5 ^, }; h! I+ E
CUser* pUser = (CUser*)s.dwValue;! n) ]1 G# s- [3 T0 a
g_dpDBClient.SendClearPropose();
: G) u& C, ^- [3 }#endif // __WORLDSERVER: I: [# ^8 J( g7 F4 P
return TRUE; k3 H7 K: E9 _. s1 T ~ K8 t
}
3 \/ B9 k" i8 k3 h% ~: \3 t下面插入4 n, e, d8 c5 ]- E j' s/ N
BOOL TextCmd_rebirth( CScanner& scanner )6 {; L( I3 g# q( q0 D% i
{ d7 ^+ I$ w" t+ m
#ifdef __WORLDSERVER
( j/ ?6 v s+ l/ l d; iCUser *pUser;
]! O' g) e# s) h6 [8 ppUser = (CUser*)scanner.dwValue;
4 W3 Q4 Q: D- W/ Wif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
. m2 R+ D7 Q r, Z1 g! }$ NpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
1 `% b8 D }0 u H) \' Relse
3 ^( p* E6 l; e% C" @4 kpUser->AddText("你还未达到重生条件!");% j' u6 X: b8 b4 p
#endif' N! ?) I/ J5 L) B! ?
return TRUE;( ]2 a; t1 e5 d. d- D
} * S7 W" }0 ^% m" n: ]& h
% m4 z- i1 y9 H9 n$ a: w$ N# m& Z& Q
4 H+ s4 L. P, N& ^1 A8 {! V4 a: ^; C2 N3 G0 u$ O B; j
7 C2 O+ t- X( w, ^/ w/ ?/ F, T
|
|