|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel& a* K$ w+ e, [; w/ v
) p; i# s. t* h% VMover.h* c) A& v/ ~" y# W6 Q2 g% A: c* `$ L
代码:- c* m8 ]! ?: P; g+ k; S9 u
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü% t k( ~' ~0 A
! j3 n/ a; O. I$ ~6 x* V1 i# i; m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
3 N# Q: f; Q3 l% C1 Y' A
5 f- K R& `- B% `. J, ]然后你去mover.cpp添加
1 S! M9 ^3 O" I, R
' F: l$ t0 K3 ?+ z代码:% _* H: W' l/ u; w6 l
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
! i4 A6 ` q4 S6 Z: u{
4 q0 a& J: P6 y1 R Y! _" k4 f/ k#ifdef __WORLDSERVER
3 G; A& }6 R3 s+ o; ~! Z% u7 u // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 b. b* s' D* ]5 P f- E0 b7 m MoverProp* pProp = GetProp();; p* X, t8 p( C0 k
if( pProp )0 V4 S P; M6 D3 z9 Y0 f ?( [
{
) r0 U- M% J$ @6 u. \6 ^: p if( nJob > 0 && nJob < MAX_LEGEND_HERO )
! S& D* M5 p, }- j3 i {
N" D, U: ^" o/ H3 @) k$ [! o AddChangeJob( nJob );4 a' j i: |% K+ q9 [0 I. B
}else{) Y: X' C' `* a1 H" P
return;
0 H; b C' M' _ e* i }& H) A4 H: ?8 ]8 s1 ]
int nPoint = 0;
; E$ ~' R* W. ^7 K+ n( ? if( m_nJob == JOB_MERCENARY )
# z- a7 M# j5 O7 F; R nPoint += 40;8 T5 b( R; Q9 U/ g. H
else if( m_nJob == JOB_ACROBAT )
8 {* _# E* L! b# u- ]% d) J nPoint += 50;+ l+ h6 V. k7 w
else if( m_nJob == JOB_ASSIST )
3 c8 I; I& I: d& B! @' Q nPoint += 60;& M# I2 o$ n( I/ F. X
else if( m_nJob == JOB_MAGICIAN )* U1 _% }9 n9 y6 ~
nPoint += 90;
( @% P1 `+ `2 S W: l Y9 a else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
3 S' z, b$ s# H6 @ nPoint += 120;
+ G+ X8 r& r- O! a8 b% J: I2 ? else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )& H& |# g2 w% ]5 u
nPoint += 150;& W* q+ Z% y; r/ c, D3 B9 d- X
else if( m_nJob == JOB_RINGMASTER )
# a4 B& B3 L2 F9 @7 N0 x4 N9 A4 l nPoint += 160;$ z# D2 o; r" @! v: c$ s4 l1 p
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! K3 ~. f K( [5 A8 T. o
nPoint += 180;' k5 c" v+ M7 @7 d+ N7 @
else if( m_nJob == JOB_ELEMENTOR )( F( D7 N0 l& M1 e7 x& l, S0 d. u
nPoint += 390;0 J3 _. S9 l0 k4 |0 Y# C% @, l
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ). [& L! |: z$ \
nPoint += 120;( h+ D. h, Y. w, }6 F* W/ k
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )5 x% s8 ~7 U& C/ Z( o8 o
nPoint += 150;% w4 ]1 a8 s: X( a o* o
else if( nJob == JOB_FLORIST_HERO ); v6 @4 J: z, I3 P
nPoint += 160;% x# M; c* k: o: O2 C) V
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) q# g( k2 M! o6 D6 X7 O4 J$ x( k nPoint += 180;
; N1 D. k" m$ v, t. b# C1 S0 Y; R else if( nJob == JOB_ELEMENTORLORD_HERO )
4 z Z) ? V# N& O5 s$ d nPoint += 390;
6 k' i6 ?# Z4 z/ j8 N5 d* Z9 A! M( X; J# Z2 X& c
AddSkillPoint( nPoint );. t! z' g8 I* G7 e; G- H) d" d7 c
m_nLevel = nLevel;
% l; i# M* d D' L8 k+ n: `& U/ t, k
SetJobLevel( nLevel, nJob );9 p# |0 p6 W% k
m_nDeathLevel = nLevel;
1 `: C/ ]3 o2 G; g1 p#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans. x3 C4 i8 m" ^0 ^; @4 {$ O
if(IsMaster())
* C& ^7 Q( l$ m. T# Q: _ {
6 f( i. n @, d# S/ ^ int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
2 R/ L2 {: ]6 x3 W& T& ^6 g, y if( nLevel > 59 && nLevel < 72 )* q3 C$ X8 v9 i' k
dwTmpSkLevel = 1;
. x) B; |$ K& j8 `6 T( q else if( nLevel > 71 && nLevel < 84 )* |- {5 x% H( c! L
dwTmpSkLevel = 2;( a& g4 d; A% _5 z, t V5 |
else if( nLevel > 83 && nLevel < 96 )- n, I1 J1 G# Y/ V
dwTmpSkLevel = 3;
1 ?& E0 F7 Z2 K% w1 K else if( nLevel > 95 && nLevel < 108 )5 _# U" X2 j7 ?: Q# V/ i% `
dwTmpSkLevel = 4;6 Z: b7 ~; I) ~ [! d
else if( nLevel > 107 && nLevel < 120 )
6 G0 u& u2 U) M1 ?) N5 |) i! G dwTmpSkLevel = 5;
v. F: b9 G# m for( int i = 0; i < MAX_SKILL_JOB; i++ ) 7 N) q% f! ?5 f: k. A
{
+ q& Q) m7 P) w* _- ? LPSKILL lpSkill = &(m_aJobSkill);$ a2 K3 o, Q& b) h& X- g
if( lpSkill && lpSkill->dwSkill != NULL_ID )
% o$ T+ h* u$ {& t$ e {! A- `! H( v5 p/ N. f. M
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 B: q2 Q" q# V) z0 G7 a
if( pSkillProp == NULL )
0 z0 w" K0 R( ~2 X' n0 Y continue;
1 o+ B2 J6 G2 u( Z% g' r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 v/ n# T5 e5 H( @2 }' k; m continue;6 }7 N3 f9 S; h t
lpSkill->dwLevel = dwTmpSkLevel;
. F7 O; k8 u% K }7 f8 W1 I% D! B% D$ }% h1 t: B9 N
}
1 I+ ~" m( _' T8 G }
8 R% p! [ G* O( X! x- {0 J& Q else if(IsHero())4 f( ]/ G: z# Q
{% K& T- p6 H, o0 E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 W6 ?% i$ P5 ?. ?' d2 _ { 5 X. a2 [/ p5 Q- v
LPSKILL lpSkill = &(m_aJobSkill);
$ U) U# N1 H1 n7 p! g if( lpSkill && lpSkill->dwSkill != NULL_ID )+ }) {' X; [- K d5 j# z/ J) \. H
{. U) m' v2 k4 Z1 h
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / l+ U E' g' F9 Y& R
if( pSkillProp == NULL )
N' S3 [8 }8 t2 b1 |- C continue;/ q( @' V: Q3 s* b, o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)0 p, W! I2 u' \& T% y c' ?
continue;
# U6 H% @5 ]7 o. ?2 D lpSkill->dwLevel = 5;1 W1 S# o, }0 c: y3 c
}
5 m+ i( I% i& K( Z2 g }1 m) W8 }( B4 Z5 r7 B- l' B0 w1 O
}2 u: E& ?. T* c8 _
else if(IsLegendHero())$ O& J+ d3 F i( B2 @/ u
{
4 n3 W! _ @: \% ~- l4 G for( int i = 0; i < MAX_SKILL_JOB; i++ ) 0 s! C. n! @1 a7 F
{
/ z6 m- ?; G9 }) k LPSKILL lpSkill = &(m_aJobSkill);+ f' |# ]1 b) r5 K3 G
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 x" ` b% [ B/ m
{/ V% F7 c" @. `7 [
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; n6 Z! w7 Y u
if( pSkillProp == NULL )3 Z8 e% B/ s: o" {7 F- ]
continue;
6 ^* q0 ]6 J7 p* g if( pSkillProp->dwItemKind1 != JTYPE_MASTER)- Y# O/ c6 m- d' v( c/ v5 o
continue;
; _* P s9 x# i! Q lpSkill->dwLevel = 5;
- w( `5 n2 E4 c( \, a5 e( c }
1 z! w2 M7 O2 O% M4 Q- S }: e* X! ~- D2 X [5 M( [
}
+ u+ R" x3 j, f- k& |" o#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans6 k, M0 {( ~+ s$ [) m1 a
if( bGamma )
8 F6 \( L8 Q# J; S4 o& A5 s {! A( E0 V6 _- H' k7 J- d0 Z" ~
m_nExp1 = 0;- I8 n- { f/ G/ \( ~* m' Y5 ~9 u2 g
}
/ I; `! w0 l: I0 ?( Z) S7 \3 D i; d5 ?
( (CUser*)this )->AddSetChangeJob( nJob );# v2 y6 J, q, v" `5 W- O( n: i
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' g F( d& n/ O% ?
2 d/ |/ U5 O ]' g: y L; I' E- \8 ?9 M) G
#if __VER >= 11 // __SYS_PLAYER_DATA
+ w* X/ Y- E5 i7 k/ o g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
1 s7 p' M' q% u4 v#else // __SYS_PLAYER_DATA2 R$ e# z( ^3 D) K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );2 K# i2 }) O% E- p0 _3 c- x
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );2 a. F `- g" F) n) k% C9 N: N
if( m_idGuild != 0 )
1 @) y" k) E# Y5 P. O; a0 F, ~9 ^ g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* V' Q- y6 J+ m
#endif // __SYS_PLAYER_DATA( K( `5 a3 c2 Q) R! u+ d
SetHitPoint( GetMaxHitPoint() );
w7 f3 A2 @( b! l2 b9 ]) e) @ SetManaPoint( GetMaxManaPoint() );
, \3 x, Y) p/ x- U; O SetFatiguePoint( GetMaxFatiguePoint() );2 g& ~+ N' e1 n4 z5 s
if( nJob >= 1 && nJob <= 4 )
: s" S% d/ Z& Y! D4 n2 j2 w, J {- e1 \: J3 k; ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' n2 h% S3 t; O8 d9 Q( n m_nRemainGP = 28;
! x2 w- L3 c6 A, x }
( p. f# N1 _0 A# k u if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )1 b3 C4 o7 m. ~5 y; L
{
' ?, l3 ?! o! W$ A' } m_nRemainGP = 118;
; |. F& G% P( S* u6 l' u, s //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 I" L" z0 ^5 b1 t @1 r
m_nStr = m_nSta = m_nDex = m_nInt = 15;- H3 p* ?3 E& F* _" U, x" ?
}. v' {1 `6 _% J( X4 y
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' J1 Q% e* g" Q, F
{
% `- |. ^; d) Q# F6 |9 p CItemElem itemelem;
6 D( `6 A. Y! k* ? itemelem.m_nItemNum = 1;
& w; F) x" X. Q itemelem.m_bCharged = TRUE;2 }) n/ l9 b8 V% W' @/ |* \$ ]
BYTE nID;$ w+ Q, @* v+ e$ Y
# e: {) @& m+ m% _ if( nJob == JOB_MENTALIST_HERO ), p- l: x3 x% ^
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;: }+ H, P: n# N+ a
if( nJob == JOB_FORCEMASTER_HERO )
" A2 B2 `9 `0 q* F# |& V: G itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
- Y$ \$ V5 F! E. x0 ?+ `
. L6 U8 N q* e8 a! p! _ ( ( CUser*)this)->CreateItem( &itemelem, &nID );; C4 s' \3 m1 M4 F1 \$ B# [( Q
}4 K+ k c1 h U" r: Q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 K8 n+ k* J1 v/ x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
R& g! n3 n, Q. J; o* x E ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );& ?% S; ]" r/ d- j6 U
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );7 P. V/ O, s" v* D
( (CUser*)this )->AddTaskBar();*/* r( ~# U% {4 F
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
- V" k7 B# v O$ s/ G#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
& @! a5 k3 V; h z) l* L0 T& I6 u5 y ((CUser*)this)->CheckHonorStat();5 h% E. ~- X8 A
((CUser*)this)->AddHonorListAck();) \6 ^+ [/ p/ D. s! v+ B/ I
g_UserMng.AddHonorTitleChange( this, m_nHonor);$ b3 ?( |9 e: ~ \- N
#endif // __HONORABLE_TITLE // ′Tà?
3 q% ~4 X) w( e4 Z1 }0 G* W }/ A; k2 h L/ b2 {/ g- i% n
#endif // __WORLDSERVER
1 z% Y/ B0 ]0 L c5 T} ' l! G. N% B9 O
1 k5 n/ ?5 M" ~; Z1 e: d6 o9 Q然后你进入functextcmd.cpp并添加以下: j7 ^8 A( f# l+ n" j; |
4 G( _) F0 a5 k" U8 h
代码:
/ A4 `; Q& E, L" F4 ~ g) vON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )4 h% F& d y2 [) Y/ [: z& O+ V
下面插入
' U8 h# w) D6 H( j+ g& a4 i2 ZON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
. q# ?$ a7 m4 y2 O* B. R! r1 [* V! E @' v3 {
然后你去
3 h, G2 ] m y, V7 g, U* X5 O( l- r# O& Z4 z5 x
代码:' K: q" I0 M+ ?9 l
代码
; E' Z7 H$ m; R5 P0 l( L: Z% OBOOL TextCmd_ClearPropose( CScanner & s )4 d2 \0 c: X l& } y0 p
{9 d: d R) G0 n' w. Z* R$ a; `
#ifdef __WORLDSERVER& i9 k' h g/ v5 G( W+ r! E
CUser* pUser = (CUser*)s.dwValue;, y* R# r4 _, {, P; j4 h, c
g_dpDBClient.SendClearPropose();. F; g3 u5 L$ n/ T$ b, a3 p. t
#endif // __WORLDSERVER
9 C0 r7 H) D1 `0 b. p, h return TRUE;
1 O& |4 e8 @* v% L4 H9 s}$ f- a& O% K+ n" O& z
下面插入 | v% }- L' i. S5 A
BOOL TextCmd_rebirth( CScanner& scanner )4 k. z" Z @2 \4 y
{0 g9 u1 }) m: A6 n
#ifdef __WORLDSERVER
# {5 ~ v8 _& u, f0 ~3 T: ^CUser *pUser;& L7 B% U4 y, v* \8 b
pUser = (CUser*)scanner.dwValue;
' U+ B. ]% U% {2 z1 W' o `3 v+ Nif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! F9 ^ f# g. Y @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
o8 l: a1 H( i9 i' s- K) ~: ~else
" K! @, i% Y" ?$ F2 ~' i+ z. s. LpUser->AddText("你还未达到重生条件!");
3 D& u/ P; j" z0 z#endif! A( ]6 J$ o& C: H8 [
return TRUE; P1 u1 W1 W' a; |0 M' X( G) Y) Z, M/ O
}
5 _0 h4 u! b6 K' V: v6 i* P) R
2 ~+ x: n" J: I0 L/ i3 s7 \1 @" N4 {( ]2 d
: s5 t+ m5 q G# D2 u# C
' F# J2 w& B% P j2 g- v# L% r" s
|
|