|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel' ^- ^: E& Y u4 N
! l7 M v* d* F! O6 lMover.h# F0 \5 |; `$ \5 N2 ?
代码:6 f% R3 h4 `6 R$ P- ~
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü; I* f0 b l/ m+ J) A4 U
8 m$ h @+ A; m下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " A3 y+ q- b5 M
8 f" g' ]/ t5 n( X
然后你去mover.cpp添加
5 C- @+ U8 Y3 s: ]* |+ C& r/ @- {
代码:. ] [& j. Y" x. L( L& T
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
* z: u" J$ M" E: t; Q{
* p% v2 i: d4 C: i2 G* E#ifdef __WORLDSERVER# Q- \9 r4 P9 J( L+ W. o* c$ Z
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó( Z: I9 a6 W( C( E; l
MoverProp* pProp = GetProp();
8 W; m8 ^) P* a if( pProp )- V* m" T) [4 \3 G
{0 d C3 R- j; S* p
if( nJob > 0 && nJob < MAX_LEGEND_HERO )6 ^) ?+ D0 w. j V, H
{
2 J* g) u; y, F. F8 [: q" F, Y AddChangeJob( nJob );/ o" M) Z' p: l y# i$ k
}else{
2 l7 q( ?& j* N# O2 j2 `4 B return;: @- g0 _; ]1 U" Z" Z
}% O) n/ U2 X4 T* E
int nPoint = 0;
8 `, J3 h& [/ z# ]) {6 m if( m_nJob == JOB_MERCENARY )7 X; W$ R& l- l$ z$ Y8 ~ |3 ]
nPoint += 40;
0 f! q! n+ }0 G* s else if( m_nJob == JOB_ACROBAT )
2 L# p! ~& v1 J$ x* ^9 C) I nPoint += 50;" [; {: X' m* y' N3 \* ?: G
else if( m_nJob == JOB_ASSIST ); g l, d4 |( X1 o5 u2 P0 s, n
nPoint += 60;
0 e( X) B9 M& B$ ]- O; ] else if( m_nJob == JOB_MAGICIAN )+ N# K& @9 S1 y+ T0 Q3 O% @4 r
nPoint += 90;. S" V. I# z& Z8 Y) T
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 b w$ r0 Z! c0 o
nPoint += 120;
, \ z: L' @8 g else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
% [& o2 s0 S) e3 b0 w- N nPoint += 150;2 Q* D8 u/ A) ~2 |) v$ G& Q- d
else if( m_nJob == JOB_RINGMASTER )9 d& }1 Z o5 m9 v5 q% L/ v
nPoint += 160;5 b9 [% K% m7 f; A; a8 P9 {3 w+ j
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! Z* W3 [ I- }. m9 K
nPoint += 180;
/ P; e- e3 w: Q9 }' M+ ~ M else if( m_nJob == JOB_ELEMENTOR )
( P4 W* f c$ I3 ^ nPoint += 390;7 E, a0 Q: \/ V. b; g8 K
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
! ~% u+ |4 c4 l) B nPoint += 120;. @0 v& V+ x: ?! a" S0 H+ ? v7 M
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ) X# h$ V* K8 l2 _
nPoint += 150;# s& }& }# E5 }5 m( ]
else if( nJob == JOB_FLORIST_HERO )
7 B* j( c0 \. H9 o/ k/ X nPoint += 160;
( u' o6 w9 ^% ^6 t( X# c { else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
- |1 i1 d4 P7 ` a nPoint += 180;
' f( s- Y3 b/ z9 C0 b9 c. p else if( nJob == JOB_ELEMENTORLORD_HERO )) J. i* x0 A' `9 @. A
nPoint += 390;" X' C4 x5 o) A
1 t' ?' i; `/ u! a2 S
AddSkillPoint( nPoint );) ~; S. t7 C$ z4 k' t, E
m_nLevel = nLevel;
7 }* Y# W! B3 [& L$ V3 D; o: r) c# u4 R7 J- w. k
SetJobLevel( nLevel, nJob );* [( H# t+ a; m8 p
m_nDeathLevel = nLevel; t# a4 n4 X: R; I; C6 n2 I
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
2 z! q% @: o% q) M if(IsMaster())
5 D( z, T, i/ q3 y5 r0 m1 u {6 F$ N( l" t9 L3 W9 d% p
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
0 A) ]2 y2 q" E if( nLevel > 59 && nLevel < 72 )+ P, C' _$ J& A6 s
dwTmpSkLevel = 1;
% O$ L) K ~/ C) [' b, t: z7 U) O1 y$ ^ else if( nLevel > 71 && nLevel < 84 )
6 Z' s0 N- \3 k dwTmpSkLevel = 2;2 C3 V* i: P6 p7 r, R
else if( nLevel > 83 && nLevel < 96 )- y! L ^3 P6 C# C! ^
dwTmpSkLevel = 3;% G2 Q8 D" R5 r9 Z
else if( nLevel > 95 && nLevel < 108 )
0 P9 Y; o" N% w" k+ D dwTmpSkLevel = 4;
1 s0 k% {: u0 J) R( |/ |- Y a else if( nLevel > 107 && nLevel < 120 )
$ x' m: B$ a* m! Y% I dwTmpSkLevel = 5;* @3 U" p) C9 F' j4 @0 x
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * g8 y+ @8 @1 a7 A; P0 p
{ ; W) m! q- f' v, l4 ] f
LPSKILL lpSkill = &(m_aJobSkill);- k5 I* P* [, x
if( lpSkill && lpSkill->dwSkill != NULL_ID )% f! s& f# m; X" t- G. c
{
0 j6 P* D1 A4 g4 c! s( @, c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 ? e; o2 z- I0 r# r: N9 w
if( pSkillProp == NULL ). |. J+ T* ^, k! o
continue;" o# h1 l/ N2 o. i! T- ~* q; h
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
) e ~5 x# c- n2 ` continue;% r; m, i N- n. [ n
lpSkill->dwLevel = dwTmpSkLevel;3 F) b2 c! D. h
}5 i4 `2 }! z/ ]# `5 t# @
}1 d& ]( s1 d+ R6 o9 f/ \
}
) e# @, [: f$ L/ Z% ~3 l4 M else if(IsHero())5 c, t& N& i# c
{6 J) \% m% E8 x+ w! M0 m
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 E; h+ ?: c& G
{ ' Z. z, q% h( C. U
LPSKILL lpSkill = &(m_aJobSkill);
! Y" U% M2 b$ x) E9 } if( lpSkill && lpSkill->dwSkill != NULL_ID )
- y9 z/ d9 y$ w H. Q {
3 g8 Y3 T; l/ l' F) s0 Q* V9 S7 L ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
) Q9 S: Z& e6 [6 Q3 U' V8 }9 B. \* Q if( pSkillProp == NULL )/ y3 n# m! m; A! I7 Z! Q7 {& x
continue;
$ g3 ` m% c1 A- y- d+ _ ^ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. X# C4 P5 s9 T. ?+ B; y; X: d continue;
# N* I q" l" }2 ^ lpSkill->dwLevel = 5;
! p, ~3 ~6 `# i }
1 \) \- P6 G9 j& A U% x }
2 E; b+ _/ z: R; y2 ? }
) c* d1 p5 C* A' o7 Q else if(IsLegendHero()); e) E6 d0 A6 T4 w Y. l. j* {) j( ?
{, J7 B. q7 z3 r6 y
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 j/ E+ Y' g2 E- b0 V0 w( M
{
5 t# `- n( [; g' O$ Q$ z LPSKILL lpSkill = &(m_aJobSkill);
) d0 Y% K* I7 V2 j' [2 K if( lpSkill && lpSkill->dwSkill != NULL_ID )
" L2 u- J% B5 h" v- P2 i o9 ` {
, T4 c/ J* p: H6 F6 D* R ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ f D2 v; S5 E% O* h if( pSkillProp == NULL )
% r2 Q) \. w& L# o0 T' h1 W+ Y8 | continue;5 N2 \6 Z3 q" F& T8 o' H9 I8 ^+ K% |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER). u/ t! } Y1 d
continue;
! R3 O/ p a t% e& U! }. ? lpSkill->dwLevel = 5;1 [, W. P1 U+ v
}( u6 O; A0 u/ E/ `4 g8 [
}
# M) d9 c- b( W8 U( J }$ ~$ r! Z* M' e6 W6 b8 X
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! q' Q, n" J; w0 a/ v' G
if( bGamma )
5 P: b- p6 E0 E4 J- p {
. B6 r* e1 B- m( G# b1 N m_nExp1 = 0; ^ V" g& U8 N7 c( z
}+ `+ Y. k# @* m$ k3 w, R
/ v4 q/ ~( m8 Q2 o! T& ^' ` ( (CUser*)this )->AddSetChangeJob( nJob );
7 k& ^9 ?3 t4 S. ^. X' { g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! @3 q! |& v$ N8 W+ @
5 v; V7 \/ d! H' c5 I7 _
0 b5 z5 {2 {" N. K4 s
#if __VER >= 11 // __SYS_PLAYER_DATA! T+ z0 ~7 p3 L# S6 z
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 i5 V: ], S( y3 Q
#else // __SYS_PLAYER_DATA
) B) x( o7 I0 o p' k3 B& ? g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( X# R/ @( h9 K9 ?* y: x2 f
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
; W [. D6 x8 \' u' h if( m_idGuild != 0 )% Y- q9 X* t5 S [7 D
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );- y4 c& G% g& Z$ O/ S8 ]
#endif // __SYS_PLAYER_DATA% X: l5 B8 F3 ~8 A/ @
SetHitPoint( GetMaxHitPoint() );
: o5 |2 C w: [% U SetManaPoint( GetMaxManaPoint() );
6 k v3 G- u" L ?! q0 q' p SetFatiguePoint( GetMaxFatiguePoint() );0 @. z# W% Z5 Z
if( nJob >= 1 && nJob <= 4 )4 g# F. \( [0 D" d, U: x- e* W
{
" _2 i& W$ u0 Y$ t1 s m_nStr = m_nSta = m_nDex = m_nInt = 15;0 K& O" J" c# D3 g I, A3 o
m_nRemainGP = 28;
$ m8 x& K( e: x/ ^ }9 C3 y) t/ g* [ J
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
3 k) r+ `7 A- \' w {
! D5 E$ h# E7 S* g& W q' k% y m_nRemainGP = 118;
- A% e) ?: G& N' z3 E+ v8 R' q //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;- g1 |' s' m- w/ R
m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 \( c2 h* ]* S; Z& o }
% H j3 N2 j' e7 w if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )4 s/ \& Z) {% D1 L
{
0 @+ ^ [0 M2 A7 p8 @ CItemElem itemelem;! I/ E% @: S, j/ P/ E, H3 l0 Q
itemelem.m_nItemNum = 1;! c1 O$ B+ k: ^- T& P, i
itemelem.m_bCharged = TRUE;
4 }/ K7 L P- t6 T) a- S! m BYTE nID;
. b) A' K; |6 B: L% j: l) i: e) G1 U
if( nJob == JOB_MENTALIST_HERO )$ X7 y, K+ ~$ J2 C( G/ @4 g
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;) v0 l- R" ]! `/ y
if( nJob == JOB_FORCEMASTER_HERO )* q3 B' E6 j1 ^& K& d5 |0 |) i
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;4 N2 Y' `$ \# u+ s6 j
! w2 _: r7 `5 Q" V/ A E. e
( ( CUser*)this)->CreateItem( &itemelem, &nID );
Y: p3 X% ]6 o! x1 y }
2 ]( d$ Y/ V5 O# L% k* s+ n, s g_UserMng.AddSetLevel( this, (WORD)m_nLevel );9 w) v* [( m9 a4 Z& ]
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );$ b; z1 R+ z" m9 E( ^4 Q
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );3 q1 g& k) @6 J& y+ i5 R' _
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# Z" U, h) [/ h" }6 v2 H ( (CUser*)this )->AddTaskBar();*/$ K5 Y3 b( J! N' l# M
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ x/ m( d- e8 u/ [. ]6 H+ p! w
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?4 Z% m# Q' I/ ]2 Y" l7 }
((CUser*)this)->CheckHonorStat();; u( U( i. `& n* [
((CUser*)this)->AddHonorListAck();) a+ _ X6 o" ^% t T! h0 R+ t5 ~
g_UserMng.AddHonorTitleChange( this, m_nHonor);! N4 I" Z. s- M. j) W) M. y
#endif // __HONORABLE_TITLE // ′Tà?7 B L8 y' S- s, L
}
. A) b: ?; h. `/ T- j#endif // __WORLDSERVER0 {; @4 }2 U7 e
} / R/ l. i: v, H: G0 k0 d! w5 B
- m$ ?* e8 k+ p( W- l/ K1 z! P
然后你进入functextcmd.cpp并添加以下
* x. V, C# P; |2 p7 m6 M8 S1 X
' E" Q6 ]% F2 R. [8 c代码:
1 o4 o+ ]7 ^ X+ T3 J9 A6 Y- KON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 Q6 _" D7 d/ ?( @8 C u6 K/ W( r8 Q下面插入2 A* U" Y+ x e K2 _
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ; W" ]" [% t. y! v5 d0 Y
S3 y& X0 E" l( s* j) Y9 k; d- A然后你去
) k. Y( O& ~8 ]) S9 A; l0 S( Z2 d; J" a' b) r1 z
代码:. \. v0 t9 b7 {) v( k# t9 \, T' N
代码
2 u& u/ X Q/ L2 K9 {/ F) zBOOL TextCmd_ClearPropose( CScanner & s )
: h9 R1 d/ R3 ~, w& ?{
7 ^# a- p, f4 ~, d1 _6 ~4 ?* o#ifdef __WORLDSERVER# e: M& j; O/ F( u: B& E/ a2 _
CUser* pUser = (CUser*)s.dwValue;, W1 Q# I. q+ m* D- y1 g! I
g_dpDBClient.SendClearPropose();$ H8 |& L! X, W3 g7 D
#endif // __WORLDSERVER( r7 O8 [8 C! Y6 v" E& I" g9 M
return TRUE;
7 ^& ]5 f* X4 Q9 j9 u" h}. b3 |7 y v$ ?, C1 z: t
下面插入7 `$ V+ s+ q& q8 q
BOOL TextCmd_rebirth( CScanner& scanner )* e2 p, F3 P, ?6 g' O1 n
{
( o% |- S. E B, r- Q#ifdef __WORLDSERVER
( p! s- i1 p) pCUser *pUser;
+ F) _7 g: q' i; fpUser = (CUser*)scanner.dwValue;$ U a7 o6 P, ~" o
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
7 P F0 c! E, KpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);9 I1 a' J/ h( N, h9 C u' ^
else
( A% E/ f/ n4 h4 h. u* X' u% rpUser->AddText("你还未达到重生条件!");
" ~1 b( }- n- M/ Z1 P8 @( E#endif" \. x% S7 ~2 w3 S: ?' K
return TRUE;1 u1 J$ }0 T) z
} 5 o( I4 g3 G9 o' x, i0 v
4 F6 S. j6 {% q7 w
8 n& N% |) y" a! C9 N/ s: T
# P3 L" ^$ u* F' `& M' N* F$ N7 J- Q- J2 S: t" V( ?# r( R3 N3 U. M
|
|