|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
: X$ A5 K( }+ N- [# q% P# C. I. b' B
Mover.h+ ]% [ D6 g1 f6 m) B* p. |/ \7 O3 o
代码:6 l3 K9 `* H: c! W7 R# t3 X' L$ z2 g
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* s2 E# C* ^0 k7 M
* y. [5 ?1 k4 g5 i% o L: M下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ W8 y5 d/ n4 m4 ~
* x' G: W1 |9 [6 k2 H& g然后你去mover.cpp添加- i# X8 h' f; D. I
' j3 V" A! `: Q
代码:2 D1 j0 Y8 S' a7 g
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 H2 s5 S2 R; R* ^ L) b4 d" { C" Z{% F* [+ C+ M- A( L; b
#ifdef __WORLDSERVER
( R% @7 C$ ^9 S1 h // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 X) y* P" k2 \# J& I% M: B" ?( q MoverProp* pProp = GetProp();* ?4 T" _' u& z4 Q9 f
if( pProp )! l; \% s2 \9 K" w' ]! |& o
{7 K% m6 D/ ^6 |7 U
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
) ^5 R% t9 Y5 e1 b) { {; j4 _8 J' R5 [8 O% ]/ @$ C' _
AddChangeJob( nJob );, U& `, X+ \. B2 i
}else{
: J" C( T% N$ s7 p5 f( D7 H# @ return;
, y- _+ i' T( g: f0 d }
6 {1 [/ U7 N9 A) H. C int nPoint = 0;6 f5 i9 r9 F, j2 l
if( m_nJob == JOB_MERCENARY )6 y$ p5 Z+ l& U# |9 H
nPoint += 40;
; X0 m6 \3 e$ U i% b* F else if( m_nJob == JOB_ACROBAT )+ u0 a0 u8 F$ ~/ t1 Y4 l; H& T
nPoint += 50;* \2 K- Q7 U" K/ }/ o3 a% a3 X/ l
else if( m_nJob == JOB_ASSIST )/ }( b. D( J: b9 X2 v
nPoint += 60;
+ f- O. i5 z+ n" `) d3 q2 f$ M else if( m_nJob == JOB_MAGICIAN )
( [, g, g0 H) G( k* p nPoint += 90;
" K+ [7 V% `/ S+ S else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 G0 N/ L2 e# m, P( J+ `3 f
nPoint += 120;
& ]; E6 d' g, x1 f6 \: O else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
( r2 m. |) g# n nPoint += 150;* k; I3 N8 {2 x, z
else if( m_nJob == JOB_RINGMASTER )
! ?$ ^, \" A$ J R- Y# D% O nPoint += 160;: l6 T" d+ S9 i
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )- V) p8 l7 N) J
nPoint += 180;' I& B5 D3 C. ?( L2 U, X8 E
else if( m_nJob == JOB_ELEMENTOR )
/ K4 e. h) \: t1 u2 z( g% L* m# p nPoint += 390;8 i! _, k% f/ N' W& I P8 R* m- _& Y
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
2 a( i, z1 i* C4 ` nPoint += 120;' [: |# H/ y6 h9 Z. t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 \- b% U% x7 u3 I R nPoint += 150;5 B' k$ \$ T6 c
else if( nJob == JOB_FLORIST_HERO )9 Y y! a4 r t& Q, e: T- B
nPoint += 160;
. f5 ~4 J+ ]* e: [; I else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )/ O; a6 Y. L& O( B% ]
nPoint += 180;" `/ u7 b, Y3 B# a) x
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 m! h) P! c* x x5 e& o! o/ | nPoint += 390;
4 G7 J. }/ L+ O: V* V- ~ q* M* G* J* i s" W9 M; ]
AddSkillPoint( nPoint );( J( B' T; _* _
m_nLevel = nLevel;4 X. ~$ T; Q+ i3 P
1 u8 S0 N/ C& c {
SetJobLevel( nLevel, nJob );
: T2 r! b% p) o8 M4 ?/ i) ] m_nDeathLevel = nLevel; I' Y) w$ R R* d v" n
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
) K3 q1 ~" Z0 K( E if(IsMaster())
. ~# Z" K1 R8 t8 O8 P$ b {/ ~6 {& {1 ~, i2 V7 K8 _1 _6 A
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108, U: h7 N K) ` f4 E0 L' n
if( nLevel > 59 && nLevel < 72 )
+ S$ n" }; l/ v dwTmpSkLevel = 1;: }8 B2 d7 P' {" i& G% Z8 ~
else if( nLevel > 71 && nLevel < 84 ). l H) A5 a6 x
dwTmpSkLevel = 2;& Q, r' C; x' x$ K# g
else if( nLevel > 83 && nLevel < 96 )
* a5 V2 I& M0 D8 A h dwTmpSkLevel = 3;
% X7 B5 P& J* z3 b0 ]0 R0 Z0 _ else if( nLevel > 95 && nLevel < 108 )
+ P4 Z& [. `( d1 T# g) X dwTmpSkLevel = 4;; E2 j7 r7 a! l& q% I& m: B
else if( nLevel > 107 && nLevel < 120 )
( ?+ H* M+ W" |' M dwTmpSkLevel = 5;
& f; W" v7 ]" r for( int i = 0; i < MAX_SKILL_JOB; i++ )
/ D8 \$ g7 L$ d0 b# p6 v { 0 V# {# |# M/ P
LPSKILL lpSkill = &(m_aJobSkill);
, H# u3 @/ E% b" Q( [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 g; T- s; O1 m. Z5 V% @2 t. |8 O) U M {7 F+ M8 J3 d* Z/ c+ w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 w5 W) I. \$ g; x! P9 [
if( pSkillProp == NULL )
4 v; n9 [) h4 u0 H" Z9 g+ X& z continue;
5 n% i: O, w) q6 P2 r if( pSkillProp->dwItemKind1 != JTYPE_MASTER), a2 j/ i" H: z, T' Z
continue;
# P/ g: _5 q6 Z l1 q3 _ lpSkill->dwLevel = dwTmpSkLevel;
1 t) q$ I7 w1 W3 Y }9 u+ ~& L1 ^4 J
}
3 C3 S9 y& @- E }* `# Y( q1 w: {4 N# o5 v
else if(IsHero()); A# M$ i- [9 w: u
{
* f( k2 F( y( U% N' a for( int i = 0; i < MAX_SKILL_JOB; i++ ) ( u$ U+ P# ^4 }
{
[; [; t2 t+ H5 W5 f LPSKILL lpSkill = &(m_aJobSkill);
' X# O- m. n" [ if( lpSkill && lpSkill->dwSkill != NULL_ID )
" t c* @* L4 {) ^" Q5 G {. g/ y6 A: s* s1 l8 u! d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
& J# k- a) S' P2 F' F& y if( pSkillProp == NULL )
. b( k) E8 |1 ?3 r5 E continue;
2 z r5 G+ e8 I- P- s; }* ~: k' N* b if( pSkillProp->dwItemKind1 != JTYPE_MASTER)/ O0 n; |6 I* X
continue;
& E, ^9 n) ?! u" m5 r c lpSkill->dwLevel = 5;
( d; O, M8 N; B4 T }2 y N. T5 d+ ^# }
}
/ P( u% N8 F8 C1 } }
# f" ]. e7 Q6 z8 t else if(IsLegendHero())3 A0 L. ]8 z3 V+ _$ E
{- m- b, R3 B5 y8 c. s0 r8 k5 ^
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 9 v! r/ U* J. H0 A. O/ e$ y+ {# ]/ V
{ + T# k0 O G& V
LPSKILL lpSkill = &(m_aJobSkill);2 \. ^/ z( b+ ?; I$ ]: d$ `
if( lpSkill && lpSkill->dwSkill != NULL_ID )
. O; A& z2 h1 l2 v {
2 A8 m$ V* G% I& d- r4 E ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; z8 I" K7 _. r# r
if( pSkillProp == NULL )1 H( ^. Z# g( O# E8 r
continue;) N8 L$ S& j$ {& Y& s
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 G, r. ^2 v4 W. i& a9 S- d continue;
1 ~, b( g. t$ l* W+ f0 y lpSkill->dwLevel = 5;4 x4 `" W6 K3 M: V
}2 l% [( l& P7 }8 Y. D
}
4 k' v& I/ S& E: O }
5 O. H1 ?. _) `; H: q7 z7 `9 F* ?#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
1 C, C) \4 A0 o7 R" M4 J4 z if( bGamma )6 e" q& C" Z ~; Q/ |
{
9 `" g/ E' T' X m_nExp1 = 0;$ E V6 \# N8 \& \5 M
}8 B0 Z* g9 F4 J6 N) B) F
1 ?5 R# J' ^/ G. q6 \
( (CUser*)this )->AddSetChangeJob( nJob );. Y% B# L5 b: S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );- Q, p5 h) N. @: z5 c1 {
! p- t- @+ p. k# |0 z5 t/ f, R' B( ]: [! b* u0 \- J7 `
#if __VER >= 11 // __SYS_PLAYER_DATA
& J9 C, U4 ]$ m g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
4 C8 t0 [- x6 A1 u#else // __SYS_PLAYER_DATA
: l8 U6 e9 U& X6 i' Y) E g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
0 B9 j7 [, S4 D( I/ n3 C8 H g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
$ l9 o: n- p7 l if( m_idGuild != 0 )
, l5 I1 V% |% p: H g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );% @* w9 N8 j( p$ Z' O6 _! o
#endif // __SYS_PLAYER_DATA5 v' Z7 U8 G9 i* S
SetHitPoint( GetMaxHitPoint() );- n: B) _. h: Z4 O' y' `3 s. d V
SetManaPoint( GetMaxManaPoint() );7 g8 ?2 @5 t. K1 b7 T3 A
SetFatiguePoint( GetMaxFatiguePoint() );
2 \* N- t t2 ~; L# Z if( nJob >= 1 && nJob <= 4 )
7 q, ]5 O" c; z2 C {
( l! \2 b8 t, G m_nStr = m_nSta = m_nDex = m_nInt = 15;7 ?+ `& l$ I! A. v
m_nRemainGP = 28;' a% g) ]; F5 Y2 f6 u
}. H3 v0 f+ n+ t t( j5 Y5 d
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
# i+ q7 q$ ?! _' a0 X {
7 r% y; |: r* E1 k. p m_nRemainGP = 118;' B0 k' Z- P+ p
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
, C: O4 c* f) p; O m_nStr = m_nSta = m_nDex = m_nInt = 15;
& M7 k4 Q. K1 K" \* ]2 g }
" ]* y8 R. \8 g9 a! M" R K: t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )5 j4 K4 m% X2 x4 u
{
, f0 X9 t4 x% G8 `. | CItemElem itemelem;5 K( o1 g% r3 E
itemelem.m_nItemNum = 1;
. z: N4 J: D5 l$ V/ K itemelem.m_bCharged = TRUE;
, N ^! I, G6 K BYTE nID;
9 R- u3 [, g7 J% B i$ k
; q/ S o3 h3 q% R) U if( nJob == JOB_MENTALIST_HERO )
/ z8 k! `2 N. ^' u8 J+ U. C5 b itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;3 t' U* R& ^0 e# G |- ~4 y* o, y
if( nJob == JOB_FORCEMASTER_HERO )
/ U$ G2 W U/ f. C6 e w% i itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;9 B. |0 ^+ x9 y, d9 k
; E6 I' I0 l9 y; w4 O9 M
( ( CUser*)this)->CreateItem( &itemelem, &nID );6 B0 |/ X2 a# U" x$ ~. t
}; `, x% ~. W! }! \7 D$ G% J# W/ q
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
8 y% x8 E9 K( X; a ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );; E' Y$ j9 K8 S) B/ k: F) D0 T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
& r6 S1 n* h" q9 r4 a& R- _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );. [5 Z0 Y1 Q: P" }$ {% s& P
( (CUser*)this )->AddTaskBar();*/
9 U9 f7 l. U9 h: N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );: f, o }; _$ \5 a
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?( l" A0 F+ L3 n
((CUser*)this)->CheckHonorStat();3 O2 m% k- I: E; K/ J
((CUser*)this)->AddHonorListAck();/ Z4 j% x8 p! g- {* X
g_UserMng.AddHonorTitleChange( this, m_nHonor);
0 J2 ^ _, A, N s#endif // __HONORABLE_TITLE // ′Tà?; V1 a5 Y0 Q7 e! U8 c$ {5 O6 j, J
}
) U6 Y. y/ D6 G3 q m! e, e#endif // __WORLDSERVER
8 H# r) L3 |$ [8 [9 y# `/ P}
8 p5 g6 q+ s6 A, q6 T
6 b2 I# `7 [. m0 y) \然后你进入functextcmd.cpp并添加以下
8 r8 t5 {; Q& E4 B
5 V0 z, l6 q+ O8 J! @6 x代码:
5 P0 H4 @7 }+ N" A2 t2 q5 @0 RON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )( e8 W% u. T" d; H. W/ b; k! b
下面插入
! @- I/ P) f [- @5 _1 T9 `ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
2 e: @% T4 N% l0 o8 F2 G/ ?. Y/ R( x3 L' H7 z/ `) ?3 _/ Q6 i
然后你去
/ C8 R' d# J3 P/ A! \6 J. L$ J3 q8 q. x# g5 W3 m4 t
代码:
; I" l. T) y* {代码( g! ~4 M% H) r$ s |* v
BOOL TextCmd_ClearPropose( CScanner & s )
2 k# }7 v$ S5 o. t4 x{ L2 n( l* ~6 e2 L5 n/ M
#ifdef __WORLDSERVER* z2 R, g) S; B8 q1 P, \
CUser* pUser = (CUser*)s.dwValue;1 W$ l5 \* }$ U; }6 Z' Y* Y5 a
g_dpDBClient.SendClearPropose();
! e0 e' K5 q( @$ a#endif // __WORLDSERVER
$ r1 m; x5 U4 `, e! Q A" Y return TRUE;
: v- P) p# v! O2 B( p; \6 c}
8 w* @7 x, q0 X% v下面插入9 ?9 A4 x4 R5 n" U
BOOL TextCmd_rebirth( CScanner& scanner )# N4 j9 x: c) {1 U3 t/ s! L
{
% R8 w, p; g+ H! M2 j/ k8 S! X5 @#ifdef __WORLDSERVER" S1 R" A0 X9 H" Z! Q5 [" p2 S+ S
CUser *pUser;
+ t; o' \1 p% ?" u8 b# spUser = (CUser*)scanner.dwValue;
/ U$ n; m, z) bif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( b- h. Z- G9 V5 CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( l9 k/ b' U4 ]* i0 y1 V- P) |( ]
else
* Y5 G8 u( c ^* a, N7 |6 SpUser->AddText("你还未达到重生条件!");
3 M' `% X9 w: _2 q' X+ |#endif4 S+ w/ k+ p8 b% Q0 V2 f
return TRUE;9 d9 S7 l$ q# F7 b/ ~9 \9 K7 _' R
}
" x# I9 g$ P# j2 C$ J! m
* `/ s6 y$ ?& m7 o. P9 f1 {" c8 I6 @+ N8 y5 T3 i
& ^% {3 [: \' A1 y$ N
4 H n! l4 U/ L* u Q8 K |
|