|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 U1 s, U$ w6 }2 p+ K& k* T% y
1 K* h( D$ l* G/ I# xMover.h
$ O2 p1 x" x/ z8 w* q) G代码:+ F6 T3 [/ [! p$ `0 l+ Z! N, E
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 e- o F. t% k5 R3 T3 q5 a
4 F* ]5 U. ]0 K1 j! f9 K3 K1 Y下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; - g4 }* j0 e6 x+ C
) W0 q& O% \* e8 E
然后你去mover.cpp添加
5 J% S" \" p5 y5 p2 p7 b. V4 ~; g) U" d# `
代码:2 A( [4 v; s) r+ j: j* k
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )9 _: g# g3 v3 r; y
{4 c, Q# _ y& h) z+ ~) V
#ifdef __WORLDSERVER
; `* g% }7 T; p `2 N' A, ^% | // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó- P% A) f: C+ ~
MoverProp* pProp = GetProp();/ T8 X# q* H# b7 l
if( pProp )
- }, x6 e+ l' }/ n' E$ k& N4 H {! R. B6 |: u# l3 E" c+ B
if( nJob > 0 && nJob < MAX_LEGEND_HERO ), Y1 q3 N; Y9 W+ U- }
{
/ h2 g3 x2 Y- y* P* W AddChangeJob( nJob ); z9 I3 w6 L$ s) H% i: B6 b& k
}else{
/ k# r8 [! W) P$ p+ x return;
+ m& D: N+ a/ d1 T- G2 d5 V }% k' t2 y' @! h4 r% U& \4 {+ w1 z
int nPoint = 0;
; e. p& a3 T$ R( B if( m_nJob == JOB_MERCENARY )
/ ~ g0 }4 ]% S: k nPoint += 40;
% u# m7 s5 ?3 D# W else if( m_nJob == JOB_ACROBAT )" k& c1 I0 x( J+ R4 R
nPoint += 50;! Q! j1 ^/ [9 b; P X5 l/ Q8 _% x
else if( m_nJob == JOB_ASSIST )
8 t3 X. ]3 R/ O( j, d5 } nPoint += 60;- i$ k$ `+ Y2 \+ [3 I; t
else if( m_nJob == JOB_MAGICIAN )
4 I$ V8 U. b) G6 X4 T nPoint += 90;: q/ N" R- e8 M% W9 c+ j+ t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
9 r1 ]3 W6 x5 Y1 ^+ K7 E nPoint += 120;2 a. [- r" ?) N# \: p, n
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ). f$ w+ y1 N5 |$ v1 o4 C: o
nPoint += 150;
' ^1 {, d' l0 x# Z& R& R7 S1 \ else if( m_nJob == JOB_RINGMASTER )
g! w9 `6 C7 q4 n7 U; ? nPoint += 160;
) y1 e2 g7 {5 I' T# G, H6 u6 h7 X else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )& p0 ?) D2 X; [. u- g
nPoint += 180;0 W# Q2 L6 c7 H9 g d
else if( m_nJob == JOB_ELEMENTOR )! A$ ~7 C. Y" g1 Z) a) _( T
nPoint += 390;
, F( B; \2 b/ l/ ]4 M7 T3 g else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )$ w) n( }- D9 b2 N3 Q7 }( ` z
nPoint += 120;
; F3 T) a5 ~2 v4 N$ b5 ^ g1 z else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; X9 n0 P2 |! ^" z nPoint += 150;
5 J" L6 K" o6 G N! p& H else if( nJob == JOB_FLORIST_HERO )! a2 V- D" E- |
nPoint += 160;
, F' j& s" d; C else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )6 n( {; W& _0 m
nPoint += 180;% ]: B) Q8 _3 M" S$ g
else if( nJob == JOB_ELEMENTORLORD_HERO )
8 I, m0 J3 a. _2 Q( m nPoint += 390;" O* X. M8 G4 e6 d, E$ L8 e
) W$ H0 O; G$ N# K" X; G8 T) B
AddSkillPoint( nPoint );
* p" e; }- m$ ?, i- u8 x m_nLevel = nLevel;+ @! g$ o" M8 ?! K
5 n- G3 s. t. \3 g- F0 Q SetJobLevel( nLevel, nJob );* J- \: A: @& X! j. M
m_nDeathLevel = nLevel;' r+ B) q7 u1 {; C k: f
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 O5 i+ Q7 q2 R* L8 H% c9 i
if(IsMaster())& R' C* {! `- R5 E# U4 b
{
% N, y9 N+ l% i5 L int dwTmpSkLevel = 1;//60, 72, 84, 96, 108$ z0 H! c w \0 Q5 L5 Q0 A
if( nLevel > 59 && nLevel < 72 )8 q( S0 }- _9 K' y5 t" O- Y
dwTmpSkLevel = 1;
L" l( [# C5 h- I1 p else if( nLevel > 71 && nLevel < 84 ), v* P$ }% }) S
dwTmpSkLevel = 2;3 I- w: I' F: {) m( r; j
else if( nLevel > 83 && nLevel < 96 )# u0 {" d7 @! {' p/ |3 H0 h( j
dwTmpSkLevel = 3;
& O6 Z& h( @4 ~8 V5 z* | else if( nLevel > 95 && nLevel < 108 )( V; D5 u1 z! ?. I0 u* @! P
dwTmpSkLevel = 4;, X+ g/ ]) l4 O4 N, L; W
else if( nLevel > 107 && nLevel < 120 )! ?3 ]% o7 g0 w1 @
dwTmpSkLevel = 5;: I. l4 s/ m8 e; P0 v. o% i
for( int i = 0; i < MAX_SKILL_JOB; i++ ) j! h$ a* O+ _5 |) G! w0 H* s }
{
6 c7 h& p6 {" I6 z) P LPSKILL lpSkill = &(m_aJobSkill);; F0 s& j6 h! F$ H1 {; y
if( lpSkill && lpSkill->dwSkill != NULL_ID )" O# U9 l' E: L9 L
{' y/ Q) t4 C; S0 F! l! v
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( ]; B% w/ D' `5 B! k if( pSkillProp == NULL )+ k- d' |% ^: d; }& F2 @7 w
continue;" t- }' q- v, d: D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
7 g/ n8 J+ R" W1 w. Y4 j& F( x continue;
: a/ W/ s J8 m; v lpSkill->dwLevel = dwTmpSkLevel;! q8 c+ a& l' \, V
}
# M1 Q* F# e8 e5 ~ }
( m ~8 m! ~5 `: a8 P. r* @- n }+ O( h1 C$ O9 c8 L4 I
else if(IsHero())1 N N4 w( i [0 D- M- m
{
( z* t; @5 t3 c% g4 |. r for( int i = 0; i < MAX_SKILL_JOB; i++ )
- k' e4 U1 w) `5 C* w/ {% T( o {
6 {5 g/ k* T: w/ u" G2 |: U: P LPSKILL lpSkill = &(m_aJobSkill);
% U2 r0 B) A) E! K if( lpSkill && lpSkill->dwSkill != NULL_ID )( b. s5 [$ A1 s- E
{
0 q: k) ]) S& \7 i0 c) v' R# F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
2 S0 R4 @- J( }; w0 X if( pSkillProp == NULL )
7 |2 J6 T' d) ~5 A0 {) P continue;
# {: L5 l* A% q- l. Q3 K if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# a6 Y' h" }+ e1 n! R: t
continue;2 W3 o5 N8 u& `6 {/ C8 l+ b
lpSkill->dwLevel = 5;
# |( E: o" N' @% W1 U }
& q3 k4 D, n: W( c% ^: R7 t }* ~2 a! ]- U' L K5 } f
}
- Q; M3 X+ ^/ f& C else if(IsLegendHero())5 r5 ?0 L4 p4 P7 L( B8 ]/ m' I
{
* x! y) ^2 {1 S& n for( int i = 0; i < MAX_SKILL_JOB; i++ ) + m% `. y: D. w+ B( o" B
{ # g( H7 O( v0 _. r; M
LPSKILL lpSkill = &(m_aJobSkill);! s. r' ]# V7 m: i
if( lpSkill && lpSkill->dwSkill != NULL_ID )0 U/ [8 G; q$ \! z. {/ Z
{0 z _* e4 O% c% W
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; D0 A' y0 N# f$ p6 \ if( pSkillProp == NULL )
2 A# u! a0 I0 o continue;
2 v8 z. k7 N0 z* X) m. B V. o! Q, t if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& k: s6 {! U- c) h: }8 v continue; R7 g, g& c7 D2 W( f
lpSkill->dwLevel = 5;
& ?6 R' I4 z: o( B M' u }& a2 ]# m4 J! z8 ~4 R
}9 N2 q1 @7 y, G6 p& [% S
}
5 J6 D* H0 `+ Q$ J! D# ^#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
6 ~: C% x$ } y0 p& W if( bGamma )
( k! {8 ?/ V( z1 L! j0 A* p {
3 t7 r$ C3 H0 |5 R. c( m- h m_nExp1 = 0;, | n1 \2 Y6 O: l3 _1 y2 e5 w* B
}
1 b8 b a2 M1 k% U& I! a8 C0 g9 p2 E; m! E f5 q
( (CUser*)this )->AddSetChangeJob( nJob );* _, d3 k: @) m% v# g' C' D
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
+ [& E4 A1 l/ b+ z
& w* [# O7 }! D) z+ b
( e5 z! }$ i2 `5 I: \- @5 W2 i+ U#if __VER >= 11 // __SYS_PLAYER_DATA! h- b- m, Z" {0 J5 t
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. |+ @, O% I$ P$ b
#else // __SYS_PLAYER_DATA
3 G# z ]5 I) M, }% y& I# ] g_DPCoreClient.SendPartyMemberJob( (CUser*)this );7 k$ }) n+ r1 c8 q# {- c4 H
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- B; S3 d- y3 B: k; B3 w Z' c$ ]
if( m_idGuild != 0 )
/ r' F% ~! d7 y$ W+ n/ k* M' x g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( F8 P( M$ d5 \ H' _
#endif // __SYS_PLAYER_DATA- V: ~2 I4 D* w; e) {; a0 n$ n
SetHitPoint( GetMaxHitPoint() );9 d: b) F8 l* U) S& t
SetManaPoint( GetMaxManaPoint() );
F# C; K) B$ ?. q6 W* t9 @ y4 ]5 t. v SetFatiguePoint( GetMaxFatiguePoint() );, Z& `: G6 ~$ m- b/ d9 b# K7 ~& Z# e
if( nJob >= 1 && nJob <= 4 )8 r, {4 M: \. g6 A. R
{
# C" E" C/ u' l- H" k m_nStr = m_nSta = m_nDex = m_nInt = 15;
: Z3 A. o8 M$ I7 y8 x+ H' i m_nRemainGP = 28;
1 Q2 q( t6 J: B4 N2 z6 i& I2 m }) _/ D( A" s! b0 Z- B! P
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
9 r* L3 C% L8 u/ ]$ t/ T {
. W* t+ b, A) [ P& z. S2 N) ~ m_nRemainGP = 118;) ` c' r: }1 m; j* e% ]/ }; u; z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
& g7 ~1 T, N/ N! _- G7 a* V# l m_nStr = m_nSta = m_nDex = m_nInt = 15;
. D, ~: A; _" q: I) Y0 b6 b5 C }
3 l7 x% Y( N* T; Q( A" P if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* i9 \1 v$ @0 @4 h {
; k" }. c# Z* h/ K0 [* B* ^ CItemElem itemelem;
9 ]6 b' w0 C# C/ H/ k: ] itemelem.m_nItemNum = 1;
* A. z' y; H/ D0 v itemelem.m_bCharged = TRUE;( v; x& P5 `" T; E0 M* c( e) D
BYTE nID;8 N2 p. s7 W+ ^6 W! u. _* {3 l
$ s8 X1 K) }* ~, E if( nJob == JOB_MENTALIST_HERO )
8 w! b! T+ Y6 Z9 v% b, {1 g4 B+ A/ { itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN; O$ D4 f [) c* q& T z E
if( nJob == JOB_FORCEMASTER_HERO )
% V( q+ |3 s3 I% b itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
% G& q$ x1 c( O7 L: v' _
- r+ r) ` {8 H ( ( CUser*)this)->CreateItem( &itemelem, &nID );
- G6 u- Y( V2 J1 y& k( ^" k* X' |; D }5 ^# U9 a- T$ D& z
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
/ u* C# }/ y) b6 ~' P# b, d ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ L% l( C A8 g! y* V5 O7 c6 d ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
, q9 K$ T1 P( S' _" P /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
; i) E4 }! o; m! Y" \# t/ N1 J ( (CUser*)this )->AddTaskBar();*/
, h; X9 c$ }3 s9 ~" G1 ?9 a M" O ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
8 [6 R4 Y# G) k0 [#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
$ m* g4 t, R( A, T9 ^ P ((CUser*)this)->CheckHonorStat();( g: k% z& X1 B8 w9 v5 f
((CUser*)this)->AddHonorListAck();7 [) I& }! Q* [
g_UserMng.AddHonorTitleChange( this, m_nHonor);; V) p% b, j0 D! A/ h! K; O
#endif // __HONORABLE_TITLE // ′Tà?* ~: d3 K: o. g4 M9 h9 l
}7 ]% S! X* j, m
#endif // __WORLDSERVER
% M7 f) B& N; O+ I}
+ A S; H8 B3 z! @% e( v
$ r6 T7 @& V2 O, a3 I' r7 A然后你进入functextcmd.cpp并添加以下3 @* K1 b8 h) V
- B! [: |) t% U$ {/ {6 ]代码:
: ]9 _8 `0 w- X8 V' k5 F `! |ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
$ g) F6 j, y: R6 ?% ?# r下面插入 N/ |) W# f' A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
8 b( ^# Y( u4 q4 d- G
/ Z2 `) k1 w, h, Q5 R1 H4 c \然后你去
1 O/ ?. s5 J0 g9 b* q* [2 e$ I/ n( K6 |3 H) C/ j- v0 j5 {( R' ]% B
代码:( j G H( U& }$ R
代码
1 r5 O* O) |1 n8 T: `8 ^% WBOOL TextCmd_ClearPropose( CScanner & s )
3 x8 q" [" J- Z{
4 H" e3 L; n/ [! H8 h' U- ` e#ifdef __WORLDSERVER. L. Z! X4 Z; g' D' h! R9 Z$ ~2 w
CUser* pUser = (CUser*)s.dwValue;
2 l) t" U# e$ O0 D9 ]4 v g_dpDBClient.SendClearPropose();+ S' P0 B, ^- t$ L! \
#endif // __WORLDSERVER
2 t e3 T" M* ?$ A& k return TRUE;& J9 `+ F2 F- C3 i9 J8 H, z- F
}
! Y U9 R5 ?8 ^ C' O0 y; g- r8 W下面插入% Y0 e) w: M( G2 ]+ T
BOOL TextCmd_rebirth( CScanner& scanner )
# t( t/ B3 z. ?- V3 [. K{
* b: G, F: p) {% e6 S+ t#ifdef __WORLDSERVER& Z- c* y& O: [3 N% b8 t* x0 c
CUser *pUser;
- \' R9 a4 B" w% JpUser = (CUser*)scanner.dwValue;
: j, g5 }! P7 j. c9 t& Pif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% p( P- G! u& ~: u% v
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);# N% h* w+ s) {7 N) b& m0 W
else; [' l( `. G }5 f6 W8 S9 c( v
pUser->AddText("你还未达到重生条件!");
+ a+ z5 A; [( v, G0 N4 S6 W& Y7 G#endif! K: d5 N8 j- y( \8 w6 W
return TRUE;+ X% O9 X+ }$ N* ^
} V' N w. w* f# _) C8 j* | |- l
, Y: F8 F+ ]+ ?) ~) N4 b, N+ B3 i# t7 p
: F* D7 R0 _4 B8 X% v
; x6 j3 D. t0 h
|
|