|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
- ~& y" T7 ?2 @8 L* d
4 N: r1 a4 c* _Mover.h
5 E' S+ ~6 H! `! L代码:
9 M5 }! H) g& P0 A2 Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü& v1 h8 p, S1 f$ d7 `) s+ J* r
, S, p1 H/ }1 Y% X% K4 |. A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
$ `) V7 B5 Y8 Z# |( |0 Q6 u: G; |( u5 Q* S8 f" D
然后你去mover.cpp添加
* F# D e% G" E% c0 K' ^+ ^2 j4 }) i8 o0 a. U0 V" i
代码:- b( k' u9 @# t& m" a8 j k% X+ P
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) t1 u4 z6 a5 E% T0 l! Q" P
{1 h) Y2 S: a% W# x& I G% u; e5 F. w: T
#ifdef __WORLDSERVER: ^$ M4 \, @1 h
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
+ m6 g" W$ A+ @3 H* r# j/ h MoverProp* pProp = GetProp();
) H* `) O6 {" @+ ]1 s6 G% H( C- d if( pProp )
1 `% h$ Q- _4 r# R {
8 R* U% Y& ?+ K" I" @; P if( nJob > 0 && nJob < MAX_LEGEND_HERO )
; {; N3 s* X4 n {8 T3 C2 ~% _/ @$ V' u b/ K, G, z4 |% e
AddChangeJob( nJob );. E: m* A% e0 k$ k( V
}else{" d8 K6 j- W1 y6 v
return; @. Z3 \- T; K' r; z, [
}5 F! _' ]0 j* V0 a. Q
int nPoint = 0;
3 o9 Q* o" a; p! D/ ^4 B1 @1 Z if( m_nJob == JOB_MERCENARY )
% C6 G2 x+ p6 A- q7 m t& j. a/ U0 O nPoint += 40;! D5 L- _; \% }% o. [" E
else if( m_nJob == JOB_ACROBAT )
! i1 z' t6 y% W5 A6 Q nPoint += 50;
: t5 ?, j' P9 R, W+ k$ O else if( m_nJob == JOB_ASSIST )
9 t5 g+ h$ C% I nPoint += 60;
( S3 z. P0 N1 e1 ]4 _' j; V else if( m_nJob == JOB_MAGICIAN )
* ]" d( t1 z2 \; k* ^ nPoint += 90;" j6 S4 C% M( Y$ m9 J- \$ {- o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )# X, o$ Z$ V& N
nPoint += 120;% s! a! T, l, G
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 R$ o% g* y5 Q1 q. r
nPoint += 150;: o0 l: [! l( o8 l, v d
else if( m_nJob == JOB_RINGMASTER )
. T2 Z" R/ K, d8 Y nPoint += 160;4 j' i; O& m, i& k+ R
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
1 e3 A5 U- S5 I H: u5 S nPoint += 180; @, ~" y/ V8 ]" x, J
else if( m_nJob == JOB_ELEMENTOR )7 Q! H/ R: M9 L" N7 U
nPoint += 390;
* X u5 W/ D5 Y9 `. R* M else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* I1 g, x; C& d9 Q$ F nPoint += 120;% M* b; j! I; W3 _3 x$ U4 b0 w
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )7 i1 X4 R7 F9 }
nPoint += 150;+ A" ?' U9 j1 n3 }' X' f/ v
else if( nJob == JOB_FLORIST_HERO )
- B' q0 G% f$ ~/ A8 p$ ? nPoint += 160;" h, P i& A7 Y6 e) u$ H
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ), |4 n! Z' C9 m, F' \
nPoint += 180;5 ?8 X0 R' {) r0 @) w! c
else if( nJob == JOB_ELEMENTORLORD_HERO )6 n1 b+ n4 O! Q" \; V/ h" k
nPoint += 390;
) M# t; O& z) r; {4 l0 T* G( @1 Z) z
AddSkillPoint( nPoint );
% ?+ H, t. I& m5 D+ Q- x0 G m_nLevel = nLevel;
7 R( b7 G- E4 p _' @6 \+ v2 D6 C4 n6 b! E2 `4 Y: s
SetJobLevel( nLevel, nJob );% k: T- T& M1 J2 d
m_nDeathLevel = nLevel;: y0 C) E- \( A5 C3 K1 M
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
- Z: a2 T x0 O O if(IsMaster())2 I0 Q! B& a" k5 q! m
{
& j8 L e! i7 U int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
# b4 F6 U" a$ i! Q2 h$ s" w if( nLevel > 59 && nLevel < 72 )% O5 }7 r3 l! ^3 C8 S
dwTmpSkLevel = 1;3 S/ X ]2 ^9 l3 K* I" e) J
else if( nLevel > 71 && nLevel < 84 )
* m$ P& f% w" U$ E dwTmpSkLevel = 2;
8 d& p5 J% H/ E# D else if( nLevel > 83 && nLevel < 96 )! k* g- `) I2 M8 f
dwTmpSkLevel = 3;
) u1 w4 i9 g3 j5 K4 [2 d else if( nLevel > 95 && nLevel < 108 )+ r: V" T: g7 i2 b9 Z
dwTmpSkLevel = 4; c; h- M( \- C/ K1 r* ^5 U( _, j
else if( nLevel > 107 && nLevel < 120 )
5 n; v5 `" J% n% T$ g dwTmpSkLevel = 5;2 j0 @, K! ?- b4 L& y6 F; ]. n
for( int i = 0; i < MAX_SKILL_JOB; i++ )
( k3 b. z. d0 s) D9 ~ d& u6 M9 { {
) A, |* t9 ]. [* L8 y. u2 p LPSKILL lpSkill = &(m_aJobSkill);
) G) ^' g$ ~% p4 f! d1 d X7 Z if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ _; \) m5 d" N! V {
3 I2 c- l) m( _4 G ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 7 R7 P, E2 z. l/ r, N- L C5 w
if( pSkillProp == NULL )' S W/ R% L8 `( a5 W
continue;
9 m. K L+ w. Z if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
9 G8 i: B5 ^# m/ H continue;) J4 h& k1 ]; A% _
lpSkill->dwLevel = dwTmpSkLevel;' d) ]9 Z2 q) [. M- _- h" L& |9 T: g& n
}: y1 J- A$ f T1 j {! I
}, Z i9 `2 U0 [* P! x
}" y' C$ T% k* B+ o* W. |
else if(IsHero())8 g$ e2 {, _/ R/ P9 u9 K
{
( h z: q$ K) M! g9 y0 R for( int i = 0; i < MAX_SKILL_JOB; i++ )
% m' L5 }% ~; G" E; j( D" m { 6 }2 d3 p: d0 T! a7 U, J
LPSKILL lpSkill = &(m_aJobSkill);+ p/ J L# x$ p3 j& g1 J, `
if( lpSkill && lpSkill->dwSkill != NULL_ID )+ ^/ P) b' B3 K' d" G8 W3 H
{. w% e) [. i* O% B& d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); $ E: Q* L, R% [6 ^ g4 H: s
if( pSkillProp == NULL )
2 }0 b0 N% G i# {7 |# h+ t6 a continue;' z( q4 Y0 ?. i( q# ?
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
3 n# f# E" ?$ [) j' f continue;
$ D/ A. `1 w- N: X lpSkill->dwLevel = 5;
8 g! `+ X6 M& O4 o m! L( v }% j t% l4 K8 Z/ _
}
3 ^6 K N D7 s4 Y& t# Y" R8 ]! E } Y1 A; Y6 m9 V/ ~
else if(IsLegendHero())1 A, Q; g# s7 m% |) p _9 H
{
% M# R6 d- `& b% g4 O2 |# { for( int i = 0; i < MAX_SKILL_JOB; i++ )
, k! t) o0 \# Q0 {' m {
' U; O) e/ m4 `" ?" t- B S: F LPSKILL lpSkill = &(m_aJobSkill);
+ h. L* K$ I% [' U6 }- K0 h( e if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 w$ x* @# f) b {# g( P/ v% T% f R" m
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 3 i3 v- v: q5 [
if( pSkillProp == NULL )( J' _; O$ C/ a8 ~
continue;
s/ ]6 s7 c" M4 w; Q S) ^: z* l2 ? if( pSkillProp->dwItemKind1 != JTYPE_MASTER)5 q; t, u% E2 u" {
continue;# J w) S' R) ~" i8 A
lpSkill->dwLevel = 5;
* k9 X6 h f- b+ F6 q% Y }0 G# ]8 @: Q5 K4 g s
}7 }% R2 u8 J- P: B6 z
}$ x5 P# r4 \0 ?) z2 k
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 U0 J3 Y! W( |/ y$ c if( bGamma )
& f) E7 b' g t& {- _- O {" t8 [2 s& f! F2 x; l$ `
m_nExp1 = 0;$ {4 j0 g- l; K- _; Q# x
}
; t" T- d/ m( v; g8 R
9 J9 \) [$ r6 w. p$ O) d- H- ~ ( (CUser*)this )->AddSetChangeJob( nJob );2 @! ~( h: V; g
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );! I9 ]: b/ a; D
9 e3 U( L; [% r/ i8 s/ F
3 `7 A* g1 \: B j" `7 ?" g/ f# K
#if __VER >= 11 // __SYS_PLAYER_DATA' M7 q5 j9 H' R
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 v: s2 @3 X; B' `& F' w: ?4 W4 h
#else // __SYS_PLAYER_DATA- V) O2 a) m" f% x3 B# D9 {
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );* X1 X( p" }2 X, c; _% r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% C9 }# ~. m( E+ R. C; a
if( m_idGuild != 0 )" q" g' O3 A3 g
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );9 o: F0 a2 m e9 F7 }) J8 O' c
#endif // __SYS_PLAYER_DATA
1 z7 r& ]- S) i2 P% w SetHitPoint( GetMaxHitPoint() );
9 A6 U* M; |1 A SetManaPoint( GetMaxManaPoint() );
5 p5 P; j- o9 p" l& n T SetFatiguePoint( GetMaxFatiguePoint() );
& t( z1 z8 g6 {4 b. q _ if( nJob >= 1 && nJob <= 4 )' Y: C4 y7 C8 V2 l
{
( q! E) C, Y H5 ? m_nStr = m_nSta = m_nDex = m_nInt = 15;
! F$ W: ?8 d0 q# e: L { m_nRemainGP = 28;5 y6 g4 [: j: o# `. G, |9 N
}
: \+ u/ ]- O7 Y if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ). k. [6 u/ m9 C% D
{
! [1 `4 r- ~7 K9 v- u8 I ^! e9 w m_nRemainGP = 118;
8 ^& W# z' a! Q6 ~0 e4 j' R //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;8 n0 z5 x3 p/ k h
m_nStr = m_nSta = m_nDex = m_nInt = 15;/ ~0 k9 r, k4 ?" Q7 f7 X# u
}
+ s% ~6 Y; y3 F0 @* ?) ? if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )2 G5 y! J$ l- T' m5 v( Y
{. b1 K( g1 K5 j" @5 r4 G* F
CItemElem itemelem;
& w4 R( [/ L1 k& e$ d) a6 K itemelem.m_nItemNum = 1;
- _, b* L$ x3 _- S1 [& a5 z itemelem.m_bCharged = TRUE;
7 M2 M, A* p7 q0 z% y* J8 Z BYTE nID;
- D% v& E9 Y4 {% y
& }' c. W8 ^7 J3 ^5 V' d! N if( nJob == JOB_MENTALIST_HERO )
6 w7 c+ q1 f, I" p/ m( q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( N% j7 I" C. B) p if( nJob == JOB_FORCEMASTER_HERO )* s2 M4 {: o, d! A( l6 D: ^7 U7 U
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;/ E6 }# f- q0 I6 m: C% O
( [$ @8 N& @5 J% r. W" M* J6 w) G
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, \* _: _8 h1 t }
* Q2 I [1 K% u0 [4 n g_UserMng.AddSetLevel( this, (WORD)m_nLevel );# ]1 n7 @# o! v4 T; q# k
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 S6 o- i. i2 b" {, I
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );6 h% _/ M) j6 O4 _' Z; g2 s& C1 Y3 @
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );0 j. a5 D: F1 S1 O7 ~9 X
( (CUser*)this )->AddTaskBar();*/
2 v6 _$ H S8 y1 o% d. n3 { ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" U$ P. t4 {: A
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 F) o4 @, H5 g+ T& m, v
((CUser*)this)->CheckHonorStat();
8 ~! e6 r2 }0 B" t1 o+ E$ ~: ^ ((CUser*)this)->AddHonorListAck();. _* Y4 s0 @6 B; @# \/ o3 S
g_UserMng.AddHonorTitleChange( this, m_nHonor);
3 y2 z) x% y$ e& a! P! ^3 A#endif // __HONORABLE_TITLE // ′Tà?* M* M0 j) Y* l( l
}
5 F; O- m( z+ m/ q6 B1 y#endif // __WORLDSERVER
4 \. {8 q$ u* C8 u$ E$ ~$ J} ) S. p8 F% V) P# i' s, a; k
3 U8 h; k9 w. E: ^5 q0 Z1 M
然后你进入functextcmd.cpp并添加以下
B7 j4 X" _! I1 P8 x( K
* ]0 Q; p' Z) V% c代码:' E" ~! q+ C X4 c8 o
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
) }3 h$ L q: K1 y$ l2 F% o下面插入
! { h" O9 W; f7 D% D" K3 FON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) v3 a& I2 A- N9 P
6 K3 y- `$ E6 o+ j! C! ~然后你去
% s, p: \2 G3 h8 p
4 a: _/ H2 c( m; x! E' s代码:
; s0 X) ?- ?8 Y4 P代码% [' z5 Z- o2 U/ [" z$ Y
BOOL TextCmd_ClearPropose( CScanner & s )
1 \1 c0 ]4 f5 V; O, W6 }{
, }7 @5 I$ P {8 K# [#ifdef __WORLDSERVER
# V# d2 S1 Q; g" W& c9 f; N1 h CUser* pUser = (CUser*)s.dwValue;# p3 w; B1 D% A/ c% R
g_dpDBClient.SendClearPropose();/ r/ w1 R/ J% P3 F
#endif // __WORLDSERVER, i* C2 V) x" X/ T
return TRUE;
# J" u" `2 F* v; b7 c6 Z+ U2 |}" i7 O! v0 v8 \. X
下面插入
9 Y: f. o% n1 y5 e/ M: GBOOL TextCmd_rebirth( CScanner& scanner )% x7 P- \5 }) d: b) r& }
{
/ [4 u6 E6 {/ S* a( {# B#ifdef __WORLDSERVER
4 X0 `, U/ `0 ^' h: h$ w0 T+ ?% NCUser *pUser;
0 r! N+ A* ^9 k0 JpUser = (CUser*)scanner.dwValue;; d2 k7 o1 C2 Y7 V; ~* [
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()). J$ @8 F1 w1 c( Q
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);- E' H# ?; S/ F9 h/ @8 ]0 @
else; M$ ~/ \ B% x, b
pUser->AddText("你还未达到重生条件!");
* o. a0 r2 a5 ^7 {#endif
9 C" C; u: P: Jreturn TRUE;
5 O Q% C2 k# J2 T7 ~} 8 }1 w' r [* I) d# \
4 y! O+ v/ z% W7 U
6 L D7 H0 c7 R4 i* n$ N6 k1 N- F; E$ A' t& N
, d& [5 D& s. w% |) b
|
|