|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 E! s" p; q5 S! r4 h' j- \4 S0 y( K& \2 b
Mover.h
$ b- q4 J, Y) |% @" E0 X+ x代码: r# w7 @# E( B% J3 O- ^- ]
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü4 D9 F: F5 M8 U+ a: n9 R9 z
- t5 t% } @, {/ Q7 A* {' ]
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ) x7 l1 J5 ^/ g# a" x- j8 x
6 Y) @0 W4 R) F. C6 ?3 N$ o
然后你去mover.cpp添加
" s5 p; ~% A2 ^) E' O* r/ s* R: U1 {0 p
代码:
6 z0 I" H$ r/ v; a/ n$ b& ]+ Fvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
3 S+ G A! G' D0 v( ]{9 B/ R( ^+ c: ^' C: S% |
#ifdef __WORLDSERVER
$ ^6 l) p: ? U8 i. \$ y // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
) X" A5 Z3 C7 g6 \* J4 |6 U MoverProp* pProp = GetProp();0 k! K( I6 N" {
if( pProp )
4 R. V) c! w( _: q2 A2 s+ @! m: y {2 q, E q& C) W/ ]; X- v& v
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
9 G: O) P1 `) Q# y2 M' t. a$ ` {
; ]. T% X' b6 S/ n2 P AddChangeJob( nJob );
; H: [+ T! N8 T2 E5 r }else{2 B/ m- y: I+ \* X, @
return;
1 e$ V9 G3 k$ E8 Z. A3 d }
7 c8 T2 F* l* B: I7 {% I$ R3 s int nPoint = 0;% c# f9 z, V W) p- ~8 _
if( m_nJob == JOB_MERCENARY )" y% b9 V2 L, {; I
nPoint += 40;
, J) g) B% q! z! f4 T7 C else if( m_nJob == JOB_ACROBAT )9 f G) F p# g+ H" E% c0 p
nPoint += 50;9 o0 {" | M* `
else if( m_nJob == JOB_ASSIST )
* u0 C f% i. w$ g# p9 X) f nPoint += 60;1 M2 d% R$ u9 H3 \0 V
else if( m_nJob == JOB_MAGICIAN )" \8 Y/ C; s; @ H% s0 x9 y3 [
nPoint += 90;
" W8 }( {. ^- ]# c/ _ else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )( R/ d, u/ D; E4 X1 a
nPoint += 120;
1 t$ [8 r7 Z5 _8 ] else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )' x6 N5 U d0 R2 @' T* ~ m/ P
nPoint += 150;, j9 O8 g' t. l" f+ i$ G3 T9 D2 N
else if( m_nJob == JOB_RINGMASTER )
% o, u1 P/ m( Q/ x nPoint += 160;
6 Z M! d4 J. V% _; t8 W1 z" { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
6 Z2 n3 ?, R; W/ V nPoint += 180;' ?: W# t- L _% l+ D
else if( m_nJob == JOB_ELEMENTOR )
z2 j3 n$ C, } nPoint += 390;
- r7 o! `! j# R& f6 [9 \- O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
/ r* p! p! b2 J+ G8 r) S7 Z9 ~9 c nPoint += 120;
0 L8 ?9 s0 @- K! Z) {' `! V else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
/ m! k) t' X! H. K nPoint += 150;6 n% R! i! |0 v- T9 N1 [* w* g
else if( nJob == JOB_FLORIST_HERO )6 H/ c& f" A* Z2 e0 f/ h
nPoint += 160;5 d; A# G; E v; x2 q9 ~4 H; Q) T; p
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )5 m6 c; Q$ L5 E
nPoint += 180;
7 o4 x3 `, i. F6 a( s& p else if( nJob == JOB_ELEMENTORLORD_HERO )0 z3 h+ z' l9 \( n% f0 U2 c
nPoint += 390;
7 M X/ u8 G- b6 T" U4 w% |* P3 x. n1 F
AddSkillPoint( nPoint );
" m2 c3 T! V1 z+ e m_nLevel = nLevel;& n* m5 Z7 d4 P; f& D" C5 ^
- O1 h. ~" e6 `8 z0 U SetJobLevel( nLevel, nJob );. `0 {& r u$ c/ L. d
m_nDeathLevel = nLevel;6 _4 \7 u9 z# v- F/ p
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. @( R' c$ b' [7 ^- {# O3 B if(IsMaster())
5 r3 h3 D4 t) i k A0 y {8 G& u; ?; T' a
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
5 \- e5 b z# @/ A$ ^1 B if( nLevel > 59 && nLevel < 72 )
" t( {6 s" Q$ R/ t dwTmpSkLevel = 1;. u7 M- Z7 l& s2 ?
else if( nLevel > 71 && nLevel < 84 )4 O5 Z2 i- h0 ~1 I9 t8 G
dwTmpSkLevel = 2;& }0 l; n0 h' t, G# T& a m
else if( nLevel > 83 && nLevel < 96 )
# [# _" g' z% r dwTmpSkLevel = 3;. C- c% u+ A+ J
else if( nLevel > 95 && nLevel < 108 )
8 m2 ~. ^7 v, p4 @4 \ dwTmpSkLevel = 4;8 J" n4 U0 ], D: w0 y
else if( nLevel > 107 && nLevel < 120 )) F$ L* I: q) V& x5 v
dwTmpSkLevel = 5;, Z; n3 G' q# @9 h
for( int i = 0; i < MAX_SKILL_JOB; i++ ) & Y8 Z+ m: A ]- p; z1 i
{ 8 B7 K5 j* ?; R8 ]( f) k& M
LPSKILL lpSkill = &(m_aJobSkill);
( T( U( [5 u2 d' S if( lpSkill && lpSkill->dwSkill != NULL_ID )7 q9 z. z4 W& |) ?6 m! ^
{8 I% M8 ^4 j( K8 c) u N
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. I- ?5 b; U! T' @, C- T; X$ B& l) ~ if( pSkillProp == NULL )
D/ [# G7 W; ]( ~ continue; c* q. Q$ I' y; A$ X2 o
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ `- `5 a: C& s3 @6 f continue;3 x3 u# m& k& ^
lpSkill->dwLevel = dwTmpSkLevel;
. a5 e* }# W3 ~. k. V y }& k1 {% s: n; f. Y) q
}
8 r. j7 ?' X e8 M; d5 r5 I! H }% m6 _+ Y$ Z2 e
else if(IsHero())+ f: z; R2 B: f+ p( x! l5 o$ e& h
{+ N1 d+ ?- b5 ^! i
for( int i = 0; i < MAX_SKILL_JOB; i++ )
& _8 Y( i; P q9 S { ( h% p0 F1 B$ \( x$ q
LPSKILL lpSkill = &(m_aJobSkill);
4 ]/ j) W5 e& t) w if( lpSkill && lpSkill->dwSkill != NULL_ID )1 P" P ^5 v& U6 C5 X. J* j
{4 `5 k' n" x. w7 g% K- G$ C
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ( \/ K1 ~% P+ r* E) Z4 z
if( pSkillProp == NULL )# V; ]8 |7 _: p* G( K
continue;! N8 p. ]% U' y, X P) ~
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 U# R% d. V% h% j8 w; e/ I
continue;
3 k" P8 E" l+ e) A5 \, L& Z lpSkill->dwLevel = 5;
0 m6 M* _( q! M+ M }# z2 g5 j" J* X
}
( _9 a7 s9 E7 Q7 c1 g( Y }; s5 e7 l* o- d! K/ B1 Z
else if(IsLegendHero())
% v& x8 a5 r" z {
4 ^4 ^) j4 ^6 Z for( int i = 0; i < MAX_SKILL_JOB; i++ ) * h+ N0 k2 Z) p2 I5 g: V
{ & a9 a6 X6 k' J1 ?1 y# U
LPSKILL lpSkill = &(m_aJobSkill);8 C$ y. w4 p4 A
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 C/ W k% }% @
{, f0 c4 E/ W- E, q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! S' w. a- p; m+ e$ E- g; n if( pSkillProp == NULL )9 u" y' K7 |5 \: e( _9 _
continue;
- v6 d% g4 V: ^4 r$ f4 [ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# G% l) F% R/ ^7 F0 f1 X1 }3 w
continue;
3 C5 ~* H& t' V! P& Q' |' y lpSkill->dwLevel = 5;. k- _/ h& [- _2 H6 Y) R6 ^
}* N. q! x) |# f W% v: J
}
: w a3 L. e0 C7 N. q* | }
0 [0 o; t0 f) \( L, b! g#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
! g8 n- W, ^: p# y5 e/ d& i if( bGamma )
4 s9 Z: p$ w* r8 n& D {
; l5 E% D! K1 O7 \" m/ C' L3 a m_nExp1 = 0;
4 q. U ^8 ]0 i) ?/ P+ H+ u }1 W. e! L1 Q" j4 {
; a: M: v% e# \, \4 g ( (CUser*)this )->AddSetChangeJob( nJob );4 \$ O# H& i) @% ~
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );; c8 {3 K+ v M% K9 W4 K- d
+ ]! U) O8 ~2 S" f, `
% h- R' U, ~4 M$ ^, r( P#if __VER >= 11 // __SYS_PLAYER_DATA
# K# j0 i: f; f$ x7 T2 M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
& E) m8 x. z/ {# H#else // __SYS_PLAYER_DATA2 L7 v# @7 v5 k8 f+ D3 u
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
5 s/ Q, s0 S. i- S g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
! b. v( l5 \( j8 ]# _ if( m_idGuild != 0 )
( K2 {: w, ^4 N0 S( L, F# G g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );( [: V0 k# i) t1 P
#endif // __SYS_PLAYER_DATA6 q$ ^' S- Y0 n, g- j
SetHitPoint( GetMaxHitPoint() );/ i/ R1 U- ^ s! w. V
SetManaPoint( GetMaxManaPoint() );* ]: V- ?4 a$ o7 x! [" R
SetFatiguePoint( GetMaxFatiguePoint() );
& X9 l. C+ k) B* T% [4 u1 ] if( nJob >= 1 && nJob <= 4 )
- ~3 Q& I' D6 ^5 F O {- X, B4 g" k% i
m_nStr = m_nSta = m_nDex = m_nInt = 15;) N5 P5 R0 x# ^: [- y; ]
m_nRemainGP = 28;8 G( o% u# B' d& p( X t; W
}# l0 ^3 c; f2 M4 ?2 Q+ }# ~( [! Q
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
& N% L" A- D" k2 W4 { {) Z6 U, F3 \9 M4 I0 y- P* U
m_nRemainGP = 118;
6 a( t9 c+ W" F5 i //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ d1 k4 c( z4 }) j; l7 g6 D
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' f- t' R8 N/ U/ |# `. _ }
7 v$ a+ @4 \7 m1 Z( v if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )+ V( W* {, N6 t1 h5 `3 V3 B
{
' t! P6 u4 _- j* N CItemElem itemelem;7 S2 l5 ^- B7 U6 j
itemelem.m_nItemNum = 1;
9 k$ q# _) {8 [3 a0 O# Q itemelem.m_bCharged = TRUE;
8 ]6 `* y N/ H% m, ~2 T! J ]1 E BYTE nID;; s6 W! O0 M5 G- c3 }- G5 j
0 t9 N3 q; E8 A; z7 X `( O if( nJob == JOB_MENTALIST_HERO )0 x! T6 o, h& V% U5 J+ _& q
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 }: h" A `' J
if( nJob == JOB_FORCEMASTER_HERO ): y* @; [5 c, s4 [- M6 w7 w/ A3 ~
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;! m# {, W6 ~; o
# H, h) a6 m2 D! X
( ( CUser*)this)->CreateItem( &itemelem, &nID );! x4 `/ e) _( w4 p! `
}
6 ?" B/ x; a( d3 `1 f: h g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
! d! j) j' P. ?/ ]3 | ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );+ f( _, k1 k: ~+ ]
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
2 A2 B% l+ M; |7 m r( H. X /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );* [4 o4 _7 J. k
( (CUser*)this )->AddTaskBar();*/& u. X( G9 R3 o3 F s* m% [7 s
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );. J3 x$ N2 w7 ^0 A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
5 n: s/ Q* k) f( s! Q9 o* v ((CUser*)this)->CheckHonorStat(); X, R% y. k' T5 [; N7 O2 O5 }. N
((CUser*)this)->AddHonorListAck();7 \! g. W+ M7 g# m& V( |% D
g_UserMng.AddHonorTitleChange( this, m_nHonor);: F* u6 b( \. ?3 E, v
#endif // __HONORABLE_TITLE // ′Tà?9 w: ]; l( c4 i: F: P& E Q* R* x
}# a. ~8 p8 ^" l6 d2 \
#endif // __WORLDSERVER9 h0 K G0 ]9 i( ^: p+ C! H% f) _+ g
}
) i% x6 s# h# {( X0 h
, r. o& x% ?* @9 @然后你进入functextcmd.cpp并添加以下
9 U3 ?9 s* `3 C0 ]2 d; F4 P! o9 U% n
代码:
h7 @9 u4 G9 t f) H- ~; H. }+ oON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )2 g8 Q4 d. n' P5 I
下面插入
4 k- ~2 p7 }6 ~ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) 7 g$ Q) d1 M7 K7 c$ B
6 R+ f H' a. }+ d3 x
然后你去
. R2 J$ X5 {9 J3 b3 r* C
4 o% s- H8 k# \$ D9 q- d代码:. [/ d' N; @1 C! R$ B
代码4 ^, S- J# d4 b9 x8 T+ s3 n. S
BOOL TextCmd_ClearPropose( CScanner & s )
: E& U8 `0 ^6 n5 H8 w1 Q }{, |! f4 f0 E( H4 m) c
#ifdef __WORLDSERVER
* k1 P2 O: c2 ?/ y" z5 m0 }, x v4 n) r4 T CUser* pUser = (CUser*)s.dwValue;" k+ c; O+ J0 X# o* ~$ h; _5 C. |" D0 [
g_dpDBClient.SendClearPropose();4 Z3 A7 d0 J3 ?& A6 {6 v# {7 v
#endif // __WORLDSERVER4 I; z% x2 U: X9 l* J" l
return TRUE;& _0 p5 |! h6 L+ J0 a \
}8 ^& K8 H5 b7 P- _. F. t& u4 Y; q
下面插入
0 ~3 m% ]: A0 @: ^, ~% LBOOL TextCmd_rebirth( CScanner& scanner )
0 U3 V5 N, l4 L- n+ O{! ^5 P' v T6 \8 e2 Y) P8 a) n
#ifdef __WORLDSERVER
* y6 R9 C5 r% ` Z- D4 X5 G3 O6 kCUser *pUser;. L i/ _" S, w+ X e3 V
pUser = (CUser*)scanner.dwValue;6 K* w, k. X! [. p$ A6 n1 F
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
, q7 K+ x2 F$ \8 |5 N5 |pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% O' w2 {' {0 j, s6 K" w
else; F0 Y; `0 I/ g5 ?" e& m0 H+ |# Y
pUser->AddText("你还未达到重生条件!");
; l, H8 u4 K5 I2 f$ Y4 \#endif7 s0 `- w% o: o& a! c- w
return TRUE;6 S- c% I% U0 b; h# V
} 4 d7 \' a8 `: M3 q# L% I% ~
, O" Y3 J7 T3 d2 h! L+ ^$ m, n v% L( K- d1 u$ V- W3 |
. A/ |7 K0 _* l, J3 E6 X- ]( E7 Z% J3 ~
|
|