|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel6 U1 P8 A$ o. z& v$ i) r$ n. n" X
2 _1 C- E6 i' V/ q
Mover.h2 k6 r% H/ H. o7 C4 u4 k
代码:
8 W; w, J; L# }4 t: y6 y( H1 p找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
w! q, b6 d7 k7 k2 j6 }) [! w4 \
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; 3 [4 N* K8 M' O8 p, v
. o3 g, i! B1 z* { C然后你去mover.cpp添加
* I1 I" h( s! B3 i
5 b- K1 g, X/ {- h- h代码:
- G& U! r# K9 c: o- avoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )% n" E) A; ?; X" v' u
{
0 [" E6 }1 b3 T( C4 P. N* f5 G#ifdef __WORLDSERVER5 K9 e1 E+ A# X! ]
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
$ e+ i8 r4 {' f MoverProp* pProp = GetProp();% S8 f4 Z' R4 M8 l
if( pProp )0 i! `* a4 {( Y3 n8 C
{- `' o8 t1 j, U( |/ G0 }
if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 `4 b: E5 I! T1 A% ~4 k
{
5 j' G- x2 [" Z; i AddChangeJob( nJob );! J* j- C. l3 ]# t
}else{
I- v4 e4 Q: ]8 F% ` return;$ `0 r" e% O* ?3 @
}
, I7 ` k: H% L- ~- T int nPoint = 0;$ ~ ~# P. @. {! }+ q# p5 }, }
if( m_nJob == JOB_MERCENARY )/ i. Y$ h3 S3 _% \4 p
nPoint += 40;
. o# n8 n8 \6 E! q: G3 u else if( m_nJob == JOB_ACROBAT ), R- p$ [! i. b! J t
nPoint += 50;
6 A% `/ |6 l' q1 w2 Y else if( m_nJob == JOB_ASSIST )
! @4 ^% G! {4 F: z( L4 J nPoint += 60;
/ a y6 z S; H. z4 B' i4 _ else if( m_nJob == JOB_MAGICIAN )
2 u; _+ k+ F3 q6 N nPoint += 90;+ [2 r0 M% l9 f$ K( U6 ?
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 v m! w) H A8 | nPoint += 120;
5 v5 o6 K' p$ L- @$ | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
$ c3 Y3 O4 [* p- j( O z9 F, k: |- ? nPoint += 150;
6 R$ G/ F/ c# z6 A: |, a1 ^3 L! k else if( m_nJob == JOB_RINGMASTER )
" b4 e) l- ?# O$ } nPoint += 160;
2 |5 A6 k5 a; I3 m else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
% |7 v; N9 Y/ V9 K5 e nPoint += 180;$ p# a( g4 K6 z) R- {- b \
else if( m_nJob == JOB_ELEMENTOR )& u3 M* [' R# b7 U5 M
nPoint += 390;* x# g P9 D8 ]. i
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
) m. {$ H u" R! U nPoint += 120;
; A( p7 s. ^5 b! h( J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )$ ?0 [' D, A4 `& ]0 F
nPoint += 150;4 Z5 c7 ], |! R; r; I
else if( nJob == JOB_FLORIST_HERO )/ I: Y+ D% s1 F- Y- E. y
nPoint += 160;/ F3 A' a! b4 E( |% B, g) h$ C( h
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ o6 c, ?4 X, l% o2 }
nPoint += 180;
& ?" M% k9 `* ^ H8 d7 i else if( nJob == JOB_ELEMENTORLORD_HERO )" T- W# Q% a: S y. F( `9 a
nPoint += 390;
+ x. [7 t6 }' S4 w$ g$ {4 I5 R, |+ J* s, c$ P
AddSkillPoint( nPoint ); b+ c7 f& _- o+ t2 H0 ^2 \9 m/ f
m_nLevel = nLevel;
. Z/ S1 Y9 E" q }; b1 ^0 q) N3 I; b) ?
SetJobLevel( nLevel, nJob );
" c7 A W) Q* t m_nDeathLevel = nLevel;6 x, ]$ r! q8 m
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ e# S: o7 ]: Z3 y: e9 x, l if(IsMaster())( m# \, y! b6 V1 o) q
{
' R: \/ u4 l" I z1 v5 t) y5 M/ t int dwTmpSkLevel = 1;//60, 72, 84, 96, 108. u! [5 t9 O, i: i1 j3 @ d1 I
if( nLevel > 59 && nLevel < 72 )/ x) m9 V- w4 j P9 G8 i" N
dwTmpSkLevel = 1;
s3 j/ i) H8 w4 u3 e else if( nLevel > 71 && nLevel < 84 )$ E$ b3 L& t. z" ~* q a+ o
dwTmpSkLevel = 2;4 V1 U' O2 e+ l# G/ D# L6 c! B+ o
else if( nLevel > 83 && nLevel < 96 )
6 s& p0 |$ _$ ?& i' o) Y dwTmpSkLevel = 3;/ ~" I* g% ^- J
else if( nLevel > 95 && nLevel < 108 )0 M+ Y0 E! I8 s4 q# r# w" J" R4 F8 ? f
dwTmpSkLevel = 4;
( f) i2 g5 Z% l* Y: K* ?* M else if( nLevel > 107 && nLevel < 120 )" T/ {' j$ q/ I
dwTmpSkLevel = 5;1 a' T# i/ z( p) o; B
for( int i = 0; i < MAX_SKILL_JOB; i++ ) - L. `2 O% s! K6 U" o! q
{ . L/ P- G' V7 h8 _: l w
LPSKILL lpSkill = &(m_aJobSkill);
" F8 F% W1 z& D1 }9 M if( lpSkill && lpSkill->dwSkill != NULL_ID )
3 i6 U1 C! l' [ {
: J4 A! W1 J% ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
: P: Y( w0 ]& r% a6 B/ ] if( pSkillProp == NULL )
4 {+ K* H- W& H1 w4 n! @* c7 V continue;
1 [" i. g$ I& e if( pSkillProp->dwItemKind1 != JTYPE_MASTER): s- }% g3 j+ n
continue;
/ S" g W# W, s) n7 u1 I lpSkill->dwLevel = dwTmpSkLevel;
: A1 R, k: k D8 h$ ]" {1 W }
8 X8 @+ b; v8 P3 S. X } B8 L% K4 G8 o) |1 K' l$ K
}/ _! }% o w% b7 D, Q
else if(IsHero())
: g1 B4 _* g/ ?- b2 G3 z {
" Z8 o$ L7 l' L7 g( A ]3 n for( int i = 0; i < MAX_SKILL_JOB; i++ ) , w+ f* d! p. J X
{
7 }1 n( Y/ I; V k. x7 F LPSKILL lpSkill = &(m_aJobSkill);
' G/ s [" a3 C3 z if( lpSkill && lpSkill->dwSkill != NULL_ID )
- t0 ]/ h- B3 ?. P# e* U) h e {
! P7 R. _$ A7 u, B" p' v4 J# ` ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 L0 h3 L+ Z# k, I3 z
if( pSkillProp == NULL )
* Y7 v% n) C- e, l2 O% i) q$ _ continue;
$ H& e5 ~ B1 L9 G- T# l/ f4 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 W" B, d! r K4 J" K; _6 B) }
continue;2 D1 u4 G; U/ X, o" S. @5 l
lpSkill->dwLevel = 5;" J9 A6 s# p* `4 t
}) w* i% Y+ j ?' V& @$ j
}
" x3 |( @5 x( r# L. t }
. C+ `8 W* m' M% |4 |/ h1 x- ] else if(IsLegendHero())6 e. \9 P; J& b' \& E0 z
{
( @; d& h3 c7 E9 p for( int i = 0; i < MAX_SKILL_JOB; i++ )
) F- I& y0 X9 m, I% \% ]( y* i* l* n {
5 ]7 U- O* T- y, p LPSKILL lpSkill = &(m_aJobSkill);8 ?3 v1 X8 ` ]' A" P
if( lpSkill && lpSkill->dwSkill != NULL_ID )
6 l+ S3 ~8 {$ d# v- d7 g, r0 K { q% d" p5 z- V& H5 B, J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * N; U0 B8 k5 K6 O3 A9 h9 R5 |2 n
if( pSkillProp == NULL )
' W& X' S. W) W; {- p# H/ m continue;
2 Y9 L2 y( O$ o0 Y$ g y I$ @$ p if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
% K# W0 H0 g5 i u( a$ T continue;( p4 q3 h: H8 I8 m$ W
lpSkill->dwLevel = 5;
4 R1 ~4 H2 |) n0 p0 [ }6 y2 T2 \' I# I
} z/ V6 |: H) q' ~
}
" f/ ]4 {" j* Y( O; G& M#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) z! d; V7 ?$ f" N; n( v
if( bGamma )2 t: V6 a }% A$ v6 u2 s' }; ]- z3 U% i4 H# }
{
. ?# ]& l% V- n m_nExp1 = 0;/ m' Z+ F1 B/ R+ q2 r. e
}
R8 Q6 w2 b, R3 ]% L
* c8 Q; h- U% A6 {% h4 C8 P: T ( (CUser*)this )->AddSetChangeJob( nJob );
! _7 `/ H4 i7 A2 D: ?2 x7 e& ?. z* f g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );6 O; P, m- t) Q' @( [
5 x- H: E8 M9 a: H0 t6 v. u% A L9 a6 q" r/ u
#if __VER >= 11 // __SYS_PLAYER_DATA. `4 D" t0 Y9 h+ l: m1 O8 d! X
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 z0 E! q4 c- @- z- y6 W/ P
#else // __SYS_PLAYER_DATA; r. G% K( c8 g" S2 Z# t- u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 w% L, e9 T' g( d; x$ U$ m( \ g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 p+ B" K2 z+ M+ Z
if( m_idGuild != 0 )
. z3 }* F9 ]1 z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
5 ~7 k$ n, j6 {3 A X7 ~#endif // __SYS_PLAYER_DATA& d0 }4 B1 c) X( o, n
SetHitPoint( GetMaxHitPoint() );- w. I& h( Z- p$ P
SetManaPoint( GetMaxManaPoint() );
h$ b g# z* l, n! Y" l- A SetFatiguePoint( GetMaxFatiguePoint() );. { c/ d Q$ m2 }. }, f3 P* F
if( nJob >= 1 && nJob <= 4 )
: Q8 D) s6 `0 C( B3 R {: u( y: p. [3 ~# W+ q
m_nStr = m_nSta = m_nDex = m_nInt = 15;
4 y7 Z) A1 D4 n7 K! ? m_nRemainGP = 28;% h4 r4 ~" O- W4 W
}
. e; Y$ k4 G! d7 f# A- }" T" r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )# ]# c. B: R8 ]. s6 |
{* d7 U N7 ^& G1 d$ M2 b( K
m_nRemainGP = 118;3 R6 B# x8 L2 H0 G# ^: R: U2 K
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP; ^ x9 w$ T0 b) F9 A
m_nStr = m_nSta = m_nDex = m_nInt = 15;! n4 J, O; m3 ?1 @
}- I$ G. K8 M& c4 \' ?' k: f( q- `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
, Y& }% y X* v7 g {4 H8 r) L4 M6 A7 p3 K
CItemElem itemelem;
1 d+ I0 A9 }* M4 I% W" Y itemelem.m_nItemNum = 1;/ Y+ N+ Q# f* y- F& D8 p3 [
itemelem.m_bCharged = TRUE;
* i! T" ]* F5 B( j3 b7 I% W BYTE nID;
) N1 V$ h) A3 k! T" A* B- d
7 i/ G* b* ~% P$ n3 o) ?( B7 e if( nJob == JOB_MENTALIST_HERO )6 t) I0 Z9 f( D& V( _0 f
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
3 N2 v. g; x8 G, E- H E if( nJob == JOB_FORCEMASTER_HERO )- O$ F5 o. h7 F! R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;1 k% z1 m( w2 d: A3 x+ {3 t1 r+ B
/ E' i9 y9 _( |- X
( ( CUser*)this)->CreateItem( &itemelem, &nID );" U: t Q0 x X
}
6 Z, P& D# f/ _6 ^# f4 @ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
# W5 ^9 P V$ s+ y, W ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
; F, K" i5 R8 } i1 c9 c' q1 y2 s- a ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! N# w+ h) M' i" }/ ^) g8 |) Q /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( @! N' b8 Q5 _. E' Z5 n: \
( (CUser*)this )->AddTaskBar();*/
( |% b2 M- u& ~4 B6 C# S; o+ ` ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" U) `7 Q, Q% ]! x5 Q
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?- ]! N4 \, I" W% ^8 P5 \& w0 `
((CUser*)this)->CheckHonorStat();* |0 k7 }+ A0 i
((CUser*)this)->AddHonorListAck();
3 n+ R+ u* v+ x: _ g_UserMng.AddHonorTitleChange( this, m_nHonor);6 G5 k ^( e. w; ]+ R
#endif // __HONORABLE_TITLE // ′Tà?6 D) k! H/ _; \8 L; z \) |1 w e
}5 m( f/ y9 ~$ l: ], w6 F
#endif // __WORLDSERVER( ?( F. F0 {( |3 N+ E( h
}
% k& y4 e7 [( F G. {! X0 e) `+ g: G2 Q3 S3 Y2 M- O3 @
然后你进入functextcmd.cpp并添加以下, e4 v* J6 S4 N, g9 f' T
( h( p& c/ a4 ]1 Q代码:
$ n; f0 M3 N4 qON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
; L8 m; @! t6 p" Y下面插入. P" x3 a( f+ K. v7 |6 u
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) $ V- N: N: d% w/ J2 E$ [
& k1 E7 f% I6 I, x然后你去
8 m5 r$ H+ L3 Q7 |# I9 t i2 q N8 n2 k: q2 ]9 g1 P
代码:
$ _( p- H- n. h: X( j5 U; W% N代码! I. P' Q2 g m* M
BOOL TextCmd_ClearPropose( CScanner & s )1 |% w, Q1 W4 l; d1 m8 P, N5 `
{
" o& F; a0 @& i3 Z1 B6 o J#ifdef __WORLDSERVER. z; K# T: p- J0 P& @
CUser* pUser = (CUser*)s.dwValue;! n; M) \- O$ v+ U7 w1 p1 R3 n
g_dpDBClient.SendClearPropose();4 \/ O( i& ?5 h1 s( P4 d& s0 k
#endif // __WORLDSERVER& q# e# C2 o' A7 G! H
return TRUE;+ l: Q# z# ~3 ~4 A" c* T
}
) ~% n8 k. `" n* U下面插入# \5 w' a% y9 J; x3 Z' L) l
BOOL TextCmd_rebirth( CScanner& scanner )3 _4 u& ~ T8 S! y0 }( c3 E
{
5 S" j" B8 N* p5 e N#ifdef __WORLDSERVER
; C5 |# {: }4 q7 m2 w$ WCUser *pUser;
1 }% l4 p, N8 `6 r5 |pUser = (CUser*)scanner.dwValue;: u I8 i* r5 c) r/ \# O
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())& P2 A8 K% [ H- D
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& _0 j7 f' e& \) f
else* h/ E& D1 Z, n6 r8 l+ `* A
pUser->AddText("你还未达到重生条件!");
& D: E! e/ Y% E$ V! z5 M' E4 B#endif
' [! [5 K+ W& }+ L {return TRUE;0 }2 t# |5 M+ A5 X7 l9 x4 ^) d
}
9 O! i# n0 _$ G. B" ]; [* o, Y( g+ Z7 }( ]+ w8 L" E/ @
: V6 S! _) ]7 |! e7 n% W
: E. m0 J9 V4 W: K. f. T( o. n' B; j$ }' ~) [
|
|