|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& s+ {2 U- U3 z6 ~2 O4 B+ x
2 q+ L5 {; V! j' m/ p4 mMover.h" C: Q' C) U- E! `% E3 @; E
代码:
* I. c$ |& w6 z Q找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü D0 `/ s1 G; P5 s/ ?9 [! k8 ]
( r+ ?, v+ h" n( F下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
# r$ F% [' [2 x8 I
9 @( C" x( V1 _/ Z4 P$ w然后你去mover.cpp添加) ^2 y4 F/ |, w+ T- j1 |
9 a2 f$ v+ ]$ s# ]0 L7 U7 x代码:
6 o* R3 T* n8 q1 [" l% V G, d6 @void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
: T: k/ ?# W- P6 a$ o{
7 H# s+ {2 g; N5 I r) Q#ifdef __WORLDSERVER8 O4 [& \" U7 J- x% @1 J
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
4 m# L& J3 P4 } MoverProp* pProp = GetProp();
& k0 R9 a8 I9 f" N3 u if( pProp )( J1 Z' }+ F/ d/ m+ F1 @
{& J8 T/ W* y! b# P
if( nJob > 0 && nJob < MAX_LEGEND_HERO )' ?9 l% t; j5 {- z4 X3 j
{
$ y$ ^6 f% ~) [9 q7 q5 a1 q% I/ v* l AddChangeJob( nJob );- r. y, } H# Y6 a1 _1 O1 T% P+ j
}else{( v/ |. y1 d4 z6 a D5 t+ S# f
return;9 W7 _6 F7 L$ x
}% m, o- A2 ^) A8 G
int nPoint = 0;& |. L) v, P; d. F- \0 j
if( m_nJob == JOB_MERCENARY )4 V+ j4 G) R& D4 _+ e+ X
nPoint += 40;
4 O5 M- t- V+ x2 b1 A; J else if( m_nJob == JOB_ACROBAT )' M& Y+ b1 p3 w% ]6 F. O
nPoint += 50;3 S: ?" g3 k9 G$ E I- H: k* V
else if( m_nJob == JOB_ASSIST )0 s; u6 g6 L( ~5 o/ F3 V% P$ `
nPoint += 60;
1 T9 G0 L' `, J else if( m_nJob == JOB_MAGICIAN )9 h9 t1 c9 Q! \3 z/ o. S8 T& M5 C' D6 N+ h+ F
nPoint += 90;* h* ^- M' V% D0 M' ^" B
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )$ h: L# c& s0 ^, R7 q
nPoint += 120;
! z+ D( e7 r8 w7 { else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
' {# R' n2 }: b3 X! ?6 ^ nPoint += 150;
1 h7 X; A3 W, s/ }6 u1 K else if( m_nJob == JOB_RINGMASTER )# S r" B% H- V8 n! Q8 p5 y! M1 \
nPoint += 160;
6 B% z1 q$ e- \ else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 t' \7 t+ O) O: T6 [
nPoint += 180;
: z7 n) A3 @6 Z9 e$ S/ d7 F( ]7 L else if( m_nJob == JOB_ELEMENTOR )
3 `; A% Q: I. s. x: h nPoint += 390;
2 u" u4 D) D5 h- Y; b$ O4 q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
' }* O# {6 u" z- P! ` nPoint += 120;1 ?, v9 V# q$ ]4 t5 n
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& U! ~' [2 _. L nPoint += 150;
1 K6 T- a$ G7 u ~ else if( nJob == JOB_FLORIST_HERO ); |( Q3 t }) r9 L1 o+ D
nPoint += 160;% N3 u+ }+ {3 `- I8 a
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
1 {4 S- f6 g" O; Q6 | nPoint += 180;
% V" F& g* L) q7 F6 A' k else if( nJob == JOB_ELEMENTORLORD_HERO )
1 X' L* Y# ^( `# _. ~ nPoint += 390;
$ X: X% M& W2 c0 j1 d% C0 h+ b1 h# Z/ U4 [
AddSkillPoint( nPoint );7 c9 q( b7 t* W4 J' y1 f0 i+ f
m_nLevel = nLevel;' t0 U0 h& H1 P7 E! G1 M4 T
8 x7 I3 q. \" o' U# \% |/ f, Q SetJobLevel( nLevel, nJob );7 O' D3 t1 n \& h5 u5 i# u: ^
m_nDeathLevel = nLevel;' [% T; O6 \8 {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" y; ?9 t& S" D m$ _2 a5 X2 F0 r
if(IsMaster())
" n* H: [8 J. S* I7 ?# d( K {
1 o" p# a! w4 I! k* i; g int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ Y" o+ c; O# S6 P: r if( nLevel > 59 && nLevel < 72 )+ _) q# t0 J5 F" Z+ S- ^
dwTmpSkLevel = 1;: ^4 D, k7 }3 v; P- O) S
else if( nLevel > 71 && nLevel < 84 )# q% [' G. i- Q c
dwTmpSkLevel = 2;9 A5 S9 |- s& k# ^6 ~! _
else if( nLevel > 83 && nLevel < 96 )
% P) Q6 p3 X! K% P! g dwTmpSkLevel = 3;/ \# e7 m7 g1 s3 r; B
else if( nLevel > 95 && nLevel < 108 )% `0 ^; m/ u5 I B7 p6 |' X* f/ q
dwTmpSkLevel = 4;8 n* I9 D) w7 G( |
else if( nLevel > 107 && nLevel < 120 )
8 J' W3 [" U1 J+ ]6 Q& u4 B; F dwTmpSkLevel = 5;- B# P: n2 P/ H% I( e4 j4 w
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" g; j8 N4 F. p { + ~4 O: z' W% D3 l
LPSKILL lpSkill = &(m_aJobSkill);
7 Z, Z$ j; m+ Z1 w if( lpSkill && lpSkill->dwSkill != NULL_ID )- m5 g d# W0 x( n, A- y
{$ T6 `4 T: o* i+ |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 G% O2 \! s9 H- A5 r% @ if( pSkillProp == NULL )
1 X1 t% T3 L. X! w4 _ continue;
2 ^5 A+ u$ S+ G; v if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# B4 a' K/ N. s8 p3 |; r
continue;
; e+ M. O) R/ @. I6 t lpSkill->dwLevel = dwTmpSkLevel;
1 K' y/ t4 w+ z1 A }
. {; z+ k( J' v0 b }
* T+ h5 N/ p, c( o$ v9 m+ G# Z }
7 x$ s& o3 c1 A8 S9 _# ~4 | else if(IsHero())
. q+ @! ?; [* r3 C* D, m {
% e' T2 T# l* S+ }/ Y4 m for( int i = 0; i < MAX_SKILL_JOB; i++ ) 8 v! b0 T: K1 \0 W* v2 g
{ p; e/ F6 `1 ^8 M& c( ?
LPSKILL lpSkill = &(m_aJobSkill);0 W) T# T( S' K. ?
if( lpSkill && lpSkill->dwSkill != NULL_ID )* }0 X) ?0 B( k U$ ?7 S
{
! S# N* E& E3 r8 l6 @1 f ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; p/ v. ~9 S' Q! k7 V, R if( pSkillProp == NULL )5 a) a a8 |% g f
continue;& ]" c4 S% w" H: S
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 W/ U, V0 W p5 D4 z/ o3 y# @0 _
continue;
/ m: E3 o1 U! c& t* C P' u" ? lpSkill->dwLevel = 5;+ a4 p, n+ ^2 H2 j I1 j9 j0 Z
}5 O4 q& w) n0 ^, K: d: I+ {
}
: P* X3 u$ o4 k" r' E* V! E4 \ }$ ]$ F4 X4 ?/ _ W. L' }4 J( j3 a
else if(IsLegendHero())
. Y' r- d* E. ~/ Y5 P' l* y {
8 p' C- x' _. a& g" f for( int i = 0; i < MAX_SKILL_JOB; i++ ) " e4 I' f9 ^! I: m
{ / w, z& w# P3 h* d' ]' r
LPSKILL lpSkill = &(m_aJobSkill);
4 e, v6 {3 j$ O/ o if( lpSkill && lpSkill->dwSkill != NULL_ID )) y" [7 M3 c1 g6 w) S' x0 t/ P
{
$ c* }# w+ B& H7 e2 L( j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); " m8 c4 f3 M- [8 r. K. K
if( pSkillProp == NULL )
7 w* Y T( j9 D! I! h" W. m M9 j continue;
8 |. s: {- ^, J if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 p: f. L- Y" J9 h0 j% Z continue;
4 v* V$ j6 K3 q' U& W4 F lpSkill->dwLevel = 5;/ I; b+ J9 I% L5 b: m' U7 V8 O- N
}! ]: w# v5 q& h' N( s9 v# G
}
. |4 D. U: O& R; Q, ?$ |1 | }& i+ _: O* z4 u! ?5 q6 K
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans' s( i" x, [! h1 k+ ^. \
if( bGamma )& u. B" f% C3 K: w& p6 s
{8 b$ L( J( \8 ]; h: v
m_nExp1 = 0;& `8 z+ \5 `' b
}
$ f z- o8 N" K6 c
4 Z4 C* k \- r& g1 F ^# ` ( (CUser*)this )->AddSetChangeJob( nJob );8 l4 g8 [3 x0 r3 b: ]2 P, v# R
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );1 w: h0 c% w* ~ v1 P' {
, j/ ]$ z# c9 z! C" E
, P9 x* @2 }; b+ ^/ o5 X% t# \, j#if __VER >= 11 // __SYS_PLAYER_DATA A: q. p% @: G2 _# C! l2 Z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" J; G" D' E4 P; ~9 I" c
#else // __SYS_PLAYER_DATA
& D, g; i% |; A g_DPCoreClient.SendPartyMemberJob( (CUser*)this );+ o- `4 k0 N5 e* H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
, ?* O5 ?5 X) _& F9 B6 W1 H5 E if( m_idGuild != 0 )
/ ]1 W2 X* L' v+ e* L' S g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
6 B( F. n$ D& a" `" a) S#endif // __SYS_PLAYER_DATA
; M: g4 e) @* l4 X. j- z- c, ~ Q SetHitPoint( GetMaxHitPoint() );. }) W! j A0 @9 y
SetManaPoint( GetMaxManaPoint() );
9 H( L: e& s. {$ F, C; s" O6 g SetFatiguePoint( GetMaxFatiguePoint() );! c8 E0 z* k! h
if( nJob >= 1 && nJob <= 4 )
3 U; K% w8 R. J, d8 l! J+ I {
. U' U+ }! [6 B7 z m_nStr = m_nSta = m_nDex = m_nInt = 15;* u9 ~& T$ d+ G: b4 s! R9 Q( [
m_nRemainGP = 28;% ^* n6 M* z- d9 y" F; Q
}. D0 B3 T6 ^1 \/ F, T H& y9 p
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
4 ?& T7 \7 l' ~2 H5 k5 } {
+ ?4 s5 }8 C& R% I: f) d m_nRemainGP = 118;
/ ~1 a& t" d0 S% s0 i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;, ]! C3 G0 `8 b) R b8 K$ C
m_nStr = m_nSta = m_nDex = m_nInt = 15;) t3 {" c0 u0 C0 v8 y
}
. N- S; {1 H& Q9 g" b9 G7 E if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )7 ], O2 R/ y' x+ R( S
{( |( }4 x4 Q! i9 R
CItemElem itemelem;' ~, G5 q4 d/ [3 R5 H& R
itemelem.m_nItemNum = 1;. F4 U5 C9 J4 \) M# u# M' ^: O
itemelem.m_bCharged = TRUE;9 Z) _! N! H+ Z
BYTE nID;9 u* B2 t8 b# H3 k) Y
/ |2 V" |( f5 A" b0 {& Y! G if( nJob == JOB_MENTALIST_HERO )" c6 A# @ q6 W# I& C3 V0 O
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;8 \/ j3 P" E1 @5 S' x* x0 w
if( nJob == JOB_FORCEMASTER_HERO )
) K9 @1 Y( c6 X7 i- B" Y itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- N3 y1 V/ N5 a* _( m
8 s1 V/ v/ c# Z6 X4 I ( ( CUser*)this)->CreateItem( &itemelem, &nID );
' T! m3 A" k9 `$ Y( ^- F }& A4 x* y. o) c3 U! S0 |8 E3 t
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );+ Z$ I6 A9 T/ S, i: w* w9 r' c" k
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. [' T" T& Y& C( F
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );; h% \5 c1 X8 |/ c7 q! N( l
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
% {5 d. s4 Z& ?) B ( (CUser*)this )->AddTaskBar();*/ c. E1 j1 L$ b! U$ A' A
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ ^8 c: q+ X W( z" b) D% }! L#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
3 m* P7 n4 Q$ v ((CUser*)this)->CheckHonorStat();# A" M- w: U7 }2 |- |8 a
((CUser*)this)->AddHonorListAck();: d/ P" S p; f' C6 _0 W
g_UserMng.AddHonorTitleChange( this, m_nHonor);1 ~6 @& h0 y4 s* Q
#endif // __HONORABLE_TITLE // ′Tà?1 H# d% c, h% i3 }+ B! k: C5 w
}
: W# n( S8 d+ T" L4 @0 e6 i! w0 M$ j#endif // __WORLDSERVER
8 ` C" q% @4 `} * o8 N& X8 j0 P" n, S
' e3 w; d! Q1 L+ F+ A, O
然后你进入functextcmd.cpp并添加以下' e7 J: x* U( E0 l2 K! V; d
, F& v q* H( w' L# V. M* M" f# Y代码:$ Q! q& J* Z+ b* q# g# R
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& R4 r9 B) q; ^7 `( X" {7 o' u
下面插入- |) J# J5 X0 _2 z& K& d5 ^( f
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) % q( [5 W7 S" [" R$ S. \
3 L j( X4 G% |+ P+ e然后你去 v& T! k, {) [# G- ?9 t! c
4 X: b, Q( m1 N* T- b
代码:' T7 @# j1 G# M
代码
" s% \- }% j( X* q5 n5 k3 UBOOL TextCmd_ClearPropose( CScanner & s )
% g( A% p/ w- V& Z{
. M {9 ]# ~" O$ C$ ]1 V7 B#ifdef __WORLDSERVER1 b- I K% D3 W
CUser* pUser = (CUser*)s.dwValue;5 ~+ x4 N3 K8 i ?7 i: l
g_dpDBClient.SendClearPropose();6 J2 l7 U! ^# u! Y; `% o* f
#endif // __WORLDSERVER# q) r% \/ R0 p
return TRUE;! j! V- h6 _- a! O
}+ [. V- F$ ^& U0 Q" r# w) r
下面插入& Z! G& N, }9 D$ H6 W7 O
BOOL TextCmd_rebirth( CScanner& scanner )6 ~+ O# G: [8 [( j1 i
{( _& v( W$ e3 y: M5 P( ?2 j% F+ W
#ifdef __WORLDSERVER! u2 w4 y" F. E. x) Y3 e
CUser *pUser;, s( D3 @& y! C
pUser = (CUser*)scanner.dwValue;
7 s) E* c8 [6 @9 C; Gif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ h8 `) q7 n3 S5 L3 M; X0 zpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" O7 d- _6 O! M- `4 Telse
. J { L0 r) b' G" U7 HpUser->AddText("你还未达到重生条件!");! c5 M& \5 W; e9 z/ Q) C i
#endif
9 Z3 W7 ?5 ~- v# Y# }$ G0 preturn TRUE;
9 }' s3 X& H4 ~0 A0 i}
) S" a) X2 C6 C
k; }2 q, T) U, s1 _; [; i" Y3 O R& n4 X0 {
& Q) }9 w1 B$ M, Y! E% q. y4 d
) s7 @5 K% {. T8 Q |
|