|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel2 s: y! I9 a( B- m4 v
9 Z' e! z& |# F: ~) M, L! t' vMover.h
7 Z0 `+ B r, v0 f& ~9 Z' @代码:
+ A9 N' J2 f; I找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
) Q2 i y" \! W$ l4 \7 o- Q7 h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
% F% A. v$ L" J5 i" w. f* T3 A, ] b; G9 h7 {
然后你去mover.cpp添加
6 `; R3 J; n: i: E0 I+ { ^7 u8 f6 J5 ?+ q- l& y" \
代码:
- T0 c1 X) i& j ]+ d, rvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 @$ O( h( n9 P: F; M& u K{
. U5 s; C# o+ B& J0 L+ s$ \: y#ifdef __WORLDSERVER. x* M* S" w( _# h7 ^
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó" h' q6 N% ]2 B$ t5 \
MoverProp* pProp = GetProp();. e8 q* r# c% a( p) B
if( pProp ). P8 h0 K$ f5 L7 q2 A5 h
{7 H$ a/ ]" H% v2 I; ^0 y
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
+ c" H3 i6 ^$ h' V- K$ L {1 C* p8 ^0 Q" R+ I" E" B
AddChangeJob( nJob );- h5 S! \, Y' _/ G
}else{
; {, J) Z6 X& N return;
9 E8 k5 G0 x" }) H- Q5 ^2 |% q }
7 s' A+ x$ p4 m% J* ^# X int nPoint = 0;
( B+ U, N6 q# i# x& W if( m_nJob == JOB_MERCENARY ); V* y0 l5 v# f: U) q0 W
nPoint += 40;
4 h o" R2 e. Q8 |' u& | f9 e else if( m_nJob == JOB_ACROBAT )# P: }0 t8 a- V- c4 o+ f" R9 i
nPoint += 50;
# i) Q. q5 k( u! \7 p7 k else if( m_nJob == JOB_ASSIST )
. _) W6 m$ m- U l1 [' M4 B1 } nPoint += 60;
+ C$ L- S" D" n% ~. p5 S1 t( Z else if( m_nJob == JOB_MAGICIAN )% b" u" F/ ?) i: R' Z- P
nPoint += 90;
- o& }$ Z- s$ g3 u else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
( p+ t: h" f2 b4 j5 Z5 K nPoint += 120;
# C6 Q: C, x! | else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )$ h: h5 a! |; V1 H% v4 ~
nPoint += 150;
9 C$ c/ t/ J, n0 D% O else if( m_nJob == JOB_RINGMASTER )
1 W ~# n$ e& p/ a& {" s% b nPoint += 160;
9 J) {% j# o( m8 Q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: R; [% w8 o6 u$ R nPoint += 180;: u1 K( V/ g+ Y# j
else if( m_nJob == JOB_ELEMENTOR )
' [, s. q- X. H) e- B& V4 z& f nPoint += 390;7 B4 D& E9 }. a) w M
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )) G8 C7 l- E2 K6 t
nPoint += 120;. E; G' F7 G* J: e4 [9 P
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ), @: R b- y8 R
nPoint += 150;* q9 g9 l! U; n
else if( nJob == JOB_FLORIST_HERO )
1 a! r) U1 W- o nPoint += 160;# J' A1 @6 A+ H5 H( ]
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
; G! G0 H7 y' I$ G* i nPoint += 180;8 j: ^* S5 H/ e; K7 _" e; U2 ~
else if( nJob == JOB_ELEMENTORLORD_HERO )7 L3 t8 n) p2 W) F
nPoint += 390;
0 S: h I1 e& ?7 {) r( v5 }- j5 E
. ? R1 `* [; O+ K$ I3 m AddSkillPoint( nPoint );6 a3 K' Z8 U1 I) Q$ @
m_nLevel = nLevel;
) V) d+ t: s$ q/ m; F8 r6 p& | `
SetJobLevel( nLevel, nJob );
, J: V/ V( w) q. d$ Z3 W1 C. r5 l m_nDeathLevel = nLevel;) \! [! ^0 X( o5 L
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, V6 E" l# z, w& g9 a h9 I3 j if(IsMaster())6 p) g8 G* k5 C0 p; }, Y" ]2 @
{+ g. f( K7 y/ W* n! O
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
- p3 ^) M( n; @* g$ `+ ? if( nLevel > 59 && nLevel < 72 )
% F: p& t- u, `% X dwTmpSkLevel = 1;
' @9 x& P8 ]) H4 k( ^8 k7 q. M else if( nLevel > 71 && nLevel < 84 )
# E# X! j7 g+ `1 T7 [ dwTmpSkLevel = 2;$ ]( q9 s8 r) D5 `# K
else if( nLevel > 83 && nLevel < 96 )) V6 U X1 D t
dwTmpSkLevel = 3;3 o+ S. K6 I% ]% a- j
else if( nLevel > 95 && nLevel < 108 )
2 z+ n2 Z$ r- o2 ? dwTmpSkLevel = 4;
' y M' \$ \, L, D6 D else if( nLevel > 107 && nLevel < 120 )
. r* f D5 @. Y' o dwTmpSkLevel = 5;: _1 i- e/ r( u o) r2 A
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) ^ h, s! l2 t9 o
{ 9 t9 N3 R: A1 h9 W! e
LPSKILL lpSkill = &(m_aJobSkill);7 }$ o% i& E7 a
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ \9 P% Q1 o3 ^2 t5 m+ C
{
1 X1 U3 o. I. {7 W5 F2 x" k ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, |6 k# v; V9 j if( pSkillProp == NULL ) W7 T9 P' v) P) W* y
continue;* K" w8 J" u/ w5 g5 A
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! t# w/ b! f9 t9 B7 z! [ continue;
6 v5 O" m9 J" G0 _7 z lpSkill->dwLevel = dwTmpSkLevel;
' O' N" j: |6 y: `. A( S9 }! k$ @ }
& V& |/ t' R/ ] }
' {# R x# X8 L3 m" U, l }
: V z& @+ {& p9 _, u else if(IsHero()). X |& H/ x- H
{
' ~7 I1 c- C# t5 Q$ u2 e, } for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 ^% \" H% N& |* ?. i { ! \; N7 T& |9 H( Q
LPSKILL lpSkill = &(m_aJobSkill);
! u" v) Z$ ]$ ^# s9 G/ z9 y, N if( lpSkill && lpSkill->dwSkill != NULL_ID )1 a# V* i$ f6 ]8 ^8 s8 L
{
( _# b/ Q' [6 o4 p, F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
Z2 R8 d$ l Z' B5 _% M if( pSkillProp == NULL )
' v: E4 I2 r1 Q8 p continue;" p$ G5 L3 b" G) b) o. ~) e! T% @
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 O' v' s1 [; s continue;
# n7 [' a# u% e lpSkill->dwLevel = 5;$ g% ^1 J. R6 e$ e
}1 I+ P' `. b$ P' y5 G# g; O
}
9 V: ?/ n& i7 |' d5 n }
* W* M* p6 _# F8 V1 j else if(IsLegendHero())
, e; O- f0 [0 o" ^ {5 L6 C4 L; n2 E. A! I% J
for( int i = 0; i < MAX_SKILL_JOB; i++ ) % y: ^7 i" s4 H" S
{
3 u D+ e6 h, M LPSKILL lpSkill = &(m_aJobSkill);
) S. I7 V% W3 E4 i. i' B" { if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ M- _, w u# a; O0 y+ b: h" `+ l/ K {
4 p6 H* `6 c; j+ {& r; v! | ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 { k X5 C4 a% |. m( S; z if( pSkillProp == NULL )
/ ?' L) d" @, N continue;1 w( ?5 r5 m. O5 V! P) b
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
- h" X# t, O) X; k: @$ k continue;
& f( l+ {% B/ R# Z3 Q2 v7 ~. x lpSkill->dwLevel = 5;
+ n) k+ J+ u, g0 V9 t }/ v+ C# x$ y3 S @$ W& K
}
1 M+ x; k* w, O" J, M R# ` }
; M( Y, J9 c, [7 t#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans" r& v% B' d8 M) E3 S9 B( c& F
if( bGamma )
2 s+ z1 @; s9 I; Z {
* Y! p6 p) L) m& |5 ^ m_nExp1 = 0;
! d1 r0 @# N( W- Y }
% G! V# b( Q/ T& B1 G/ N& K& a3 M% ]2 K# x) j7 Z Y
( (CUser*)this )->AddSetChangeJob( nJob );- ]3 @9 e! ~% `) U( s: M6 h
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );0 y+ Q& c V `# q0 w3 h" q& Z4 N
; H5 Q$ v4 L' X+ T& @
6 M: z4 r" D$ R#if __VER >= 11 // __SYS_PLAYER_DATA
% V! C9 Y" |5 N% t9 C g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 H0 j3 K5 c3 X7 i#else // __SYS_PLAYER_DATA& ]" g/ u5 V4 h3 [+ l
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. X3 `# g& E, m+ L7 w8 c7 S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 K! s6 s: Z: K& p/ k if( m_idGuild != 0 )
! d- `/ Y# X1 N H# ~" k/ D/ z g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
; ~& H% H# A1 H, G/ T. G: E#endif // __SYS_PLAYER_DATA8 ?$ b0 X; F: \' h8 B
SetHitPoint( GetMaxHitPoint() );6 g% K: ~- S3 f, ]3 o: P7 S, S
SetManaPoint( GetMaxManaPoint() );- D9 j) B1 y7 B/ S1 M! G
SetFatiguePoint( GetMaxFatiguePoint() );
) H- s% Y1 m0 D- x# P+ p if( nJob >= 1 && nJob <= 4 ), F3 C7 ^ H0 }( \* c; {
{
5 g& k/ T5 l' ?2 w! [ m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 f( @. z7 @; k m_nRemainGP = 28;' f& X" Q; o( s+ ^
}' G+ z3 H- M7 U* [' `; B
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )& J& }! t, N$ o
{
+ o8 _" u0 K$ X! p/ |. q# ` m_nRemainGP = 118;
- U+ l8 [" f* I* B! s, r4 q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
: P+ a; A! ~3 c! R1 z m_nStr = m_nSta = m_nDex = m_nInt = 15;+ T0 @, o/ y; j/ ~9 J3 ]0 f
}( g& @/ Y* l, J c
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
4 _3 h" B" |2 I {1 q1 k5 a, q1 j% r7 C `% E4 [
CItemElem itemelem;
5 f. r/ y1 |) W3 k4 [( ] itemelem.m_nItemNum = 1;$ Y4 c! b) n- E! `4 Y
itemelem.m_bCharged = TRUE;
9 s; \9 p) R8 b& C BYTE nID;0 o' _1 r6 f2 u3 X7 T
0 X4 R9 k; [5 h9 s+ I
if( nJob == JOB_MENTALIST_HERO ): l7 l- e/ g1 C: [
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
9 }: E$ z/ d$ r. a( j if( nJob == JOB_FORCEMASTER_HERO )0 X4 z* A0 }1 y6 _& ~% h7 o4 t
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
4 C/ _" a+ E* Q) | u
3 u5 u2 A: C, D+ p r7 C+ c. I ( ( CUser*)this)->CreateItem( &itemelem, &nID );
8 D0 B L5 }( o% n0 i5 Z }
& V1 `2 g; F$ d& Z" B8 l+ {% f g_UserMng.AddSetLevel( this, (WORD)m_nLevel );. N# j4 M/ {1 o& }
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );9 @0 L* v3 v/ f
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );4 d- }; J0 g( E
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! {$ M) \ `$ x6 H ( (CUser*)this )->AddTaskBar();*/# u9 V. X! j+ X2 U- K5 K
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );2 F8 z' w! t( J$ p
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
" I' X( ]& q5 W$ v1 ]" T ((CUser*)this)->CheckHonorStat();+ C* o" |7 M0 q7 R. j# }
((CUser*)this)->AddHonorListAck();
+ ~& m! X( c6 W" a g_UserMng.AddHonorTitleChange( this, m_nHonor);& R2 Z9 e- b. E( v/ c
#endif // __HONORABLE_TITLE // ′Tà?
* w! H, z9 } H% o* M }9 ~4 t: B+ D4 X
#endif // __WORLDSERVER
# q! J4 y$ m, r- f) M}
/ I7 [1 k( q& ~$ m. y4 B7 D |" C- X! f3 U$ r1 K/ `" q
然后你进入functextcmd.cpp并添加以下
6 i+ X9 p4 Q( T) r) t1 D) a6 G' I. d E9 M: W; }
代码:
4 h) G3 r9 V; h q, D# Y1 nON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ m5 |; C/ p4 M5 V) U- G/ a下面插入
1 F" Q; N' Q/ D$ C% [ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( ^# f. c. N$ s' X, x9 P! |& H* b: E8 O5 u1 X( y
然后你去# Q( B. T" `: U9 \
4 [( l; `2 A3 o$ e& P
代码:
5 H* |9 s; V }/ N1 l' S; P代码
* Q0 L! C; H' |* {1 ?' \3 WBOOL TextCmd_ClearPropose( CScanner & s )
8 z6 ^4 m8 }4 N' X{, z+ w* ^3 i& f( y0 y
#ifdef __WORLDSERVER
' |; v; k" |* x) y CUser* pUser = (CUser*)s.dwValue;3 f ^# Y+ k1 O1 _/ ]2 Y
g_dpDBClient.SendClearPropose();0 x& y; Z8 t% Z7 P
#endif // __WORLDSERVER% w8 W7 i4 x3 b( i+ v
return TRUE;
7 v1 v9 `2 |3 H5 |- d" \1 S q}
" ~/ l9 e1 J4 ^ |. A下面插入. @) j! ^$ F$ h$ o, Z" |) D" @2 b
BOOL TextCmd_rebirth( CScanner& scanner )! n7 T, U' L# [) K+ m! @1 {
{
; h1 `4 L- b; x6 d6 E! i2 P( d#ifdef __WORLDSERVER$ T( d4 E9 A1 I4 @" j# T" F
CUser *pUser;) m8 p, v% e1 r& k
pUser = (CUser*)scanner.dwValue;
8 Q( |( z; ?5 U; X* ~, t/ eif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())+ R! v4 T# P. |4 ^+ r$ q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# O$ V+ |) A, ?
else$ {$ Y3 o* Q+ J w. G
pUser->AddText("你还未达到重生条件!");+ ~; o; m) v. W8 }) I: u5 e
#endif
: X" Q3 C) ^ sreturn TRUE;
4 R" m0 {' G# s7 |4 O+ H}
, Q$ m. o- V! Y& i1 C/ i/ u- Y. j
! E0 J# F, W: v! Z, u/ V) w% }
- c( W2 D" F8 z
|
|