|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 n0 b* S4 C% [3 j8 L& F. S
% h/ |) e) F1 X5 o1 L6 S2 _Mover.h+ D! L' x2 L9 b+ V
代码:
8 b2 W1 D2 A$ O6 o: f1 n& a找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
" ?: K7 n _$ @3 f0 Z. X( M- D! B, u M4 h
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " ?+ l; Z5 _- E4 C
' D; @. ~0 y( d+ I然后你去mover.cpp添加
2 H g0 [1 w4 @# V) q
" N, X! T8 m, b {代码:' ^# {" C3 x( L/ K
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )- @' v0 a; i3 S( Q% R, V, [
{
# T/ w: D4 }2 t2 {: G* d# y! \$ f#ifdef __WORLDSERVER
8 |& D* E2 W. h/ n+ l" l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
; |4 O* M# H; j5 M MoverProp* pProp = GetProp();
9 p! o! b* T! i# M' `* Z if( pProp )) n, s' b: z$ X' N% f: y1 ?
{5 e* X$ z9 v! M* c8 d4 }/ R
if( nJob > 0 && nJob < MAX_LEGEND_HERO )( r5 q7 Q/ ]7 {& _ r
{% G& p d4 s) S* [+ I( C9 a9 F
AddChangeJob( nJob );$ P. ]/ S7 i8 }3 K! Q$ P$ i$ ~
}else{
3 [" v% q: o- w2 [* a2 Q1 h return;* E2 P( [" w- t7 [8 U$ p' U
}# n0 p* _$ E% x/ }/ v, Y& u
int nPoint = 0;
7 a" U( ]% y ~1 s* [* I0 z if( m_nJob == JOB_MERCENARY )
+ T3 t# Y, X. v" R nPoint += 40;+ m* w) T. |" F1 [( V
else if( m_nJob == JOB_ACROBAT )3 [9 H2 L9 T0 E4 s: f5 x8 B
nPoint += 50;
! i! d- t; J& t$ n; r+ t else if( m_nJob == JOB_ASSIST )) v u; Z, n" d% B
nPoint += 60;
- s# f0 k$ K. A5 G9 N else if( m_nJob == JOB_MAGICIAN )& l# E# t5 F5 j1 \
nPoint += 90;
. O O) n1 O) U else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )3 M9 c& I% O3 B- r4 w9 ?" T
nPoint += 120;% W. }+ N1 A8 G/ n3 X" {
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )7 h& `$ G& _% d4 g8 Z2 t
nPoint += 150;
- K* u1 v: M0 l) U) F# P+ M$ S else if( m_nJob == JOB_RINGMASTER )9 q* d7 U4 g+ L9 q( b' \$ K% J
nPoint += 160;
8 B( N4 v1 J' F/ U7 q else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )2 P" C, E# U9 t# S0 o- m; q; `2 `
nPoint += 180;
. r% D6 [# g: z' O) W else if( m_nJob == JOB_ELEMENTOR )
9 o# x6 s4 `' }! ~5 q/ D" Q! o nPoint += 390;
6 t! d( ~2 H* E2 P0 t$ t1 c5 M+ I else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
( v0 T( U1 c! V7 { a8 q5 H nPoint += 120;% {$ A0 b2 s- i; r- o/ `
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )) _3 _( l, Z [
nPoint += 150;
. S6 W ~! p4 g4 }! @( P else if( nJob == JOB_FLORIST_HERO )
4 T* r( G2 { F! T% t nPoint += 160;2 _" V( \$ `* ~3 Z
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )$ A, I9 _9 p. P/ \' u
nPoint += 180;
0 M4 I) b2 c( Q$ p else if( nJob == JOB_ELEMENTORLORD_HERO )
$ `& Q5 E m) z: C nPoint += 390;
4 y' p' S9 c/ X" A
, b% m* O8 F3 i/ ^7 M# e( Z AddSkillPoint( nPoint );6 h7 c+ ]' Z% _/ `* Q0 z4 k
m_nLevel = nLevel;
4 x# i8 o$ A" y$ B: d- k, b r3 l: ?; o X8 Z4 {
SetJobLevel( nLevel, nJob );, w# W5 ?6 C9 H* s
m_nDeathLevel = nLevel;8 z3 \4 Y6 Q; t# z6 J% b, {
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans, d' K4 x# q8 W2 V
if(IsMaster())
2 M6 [+ g' T6 f6 T2 } {& P/ s6 n7 u5 \) X& h: Q
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1080 G' u6 h; @! e: @ ^
if( nLevel > 59 && nLevel < 72 )$ T: a& x! j0 F9 R
dwTmpSkLevel = 1;/ Q# Q' J* Z W4 {) r4 K) h
else if( nLevel > 71 && nLevel < 84 )0 r9 k0 F0 z: D K# v
dwTmpSkLevel = 2;
! e; x. N/ e3 c: D else if( nLevel > 83 && nLevel < 96 ), q* h& `$ Z' ?9 P v. \
dwTmpSkLevel = 3;
2 F! w6 x. W6 J1 w! U7 p" e9 j: Z else if( nLevel > 95 && nLevel < 108 )
! L6 _+ W/ m& Y, L dwTmpSkLevel = 4;
) b0 {( h7 b4 A7 b else if( nLevel > 107 && nLevel < 120 )
* i0 T4 T' T( u% T dwTmpSkLevel = 5;
( |; z) s: k0 p/ k( V8 G for( int i = 0; i < MAX_SKILL_JOB; i++ )
; T; M6 `0 I6 `6 S" F- Y, T {
5 @: Z; n z& s0 `" J" \ LPSKILL lpSkill = &(m_aJobSkill);
4 p2 Y! g0 \: o) V) F+ [' h. V if( lpSkill && lpSkill->dwSkill != NULL_ID )8 u0 C& w( g6 a f* d. |; p1 U
{
. l$ g0 k: w" C, M9 K- W ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + w- m3 k9 A% c8 t; K% x4 u
if( pSkillProp == NULL ): \2 M$ I: q, y% n" e! ~
continue;
' a% Y6 v( |' r! o$ q' r if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" J* w9 O7 Q" M: H1 o0 {% W7 b+ j
continue;6 A: h9 F8 M" I& b5 o c1 f$ R7 T
lpSkill->dwLevel = dwTmpSkLevel;
1 `" M9 _5 n5 K0 Q, j }
! e/ K2 V5 O3 r9 K6 l* s' i! e }
) w: f) E5 @) u. U4 i }
! b, M2 b* x3 q2 | else if(IsHero())
+ X8 b: G0 ^9 @4 `6 P3 J2 Z {
+ A9 z! o$ f+ c, m' X s* j for( int i = 0; i < MAX_SKILL_JOB; i++ ) , k0 @6 P8 }$ J1 B
{ 8 T3 G' E% u8 Q2 |+ A6 D
LPSKILL lpSkill = &(m_aJobSkill);
. x' [3 U. m7 _: w( o, D if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ Z- I" F; x/ \* p* ?& { {! i# }# D+ t; {
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 0 l1 K4 _' _5 G" X2 x9 R
if( pSkillProp == NULL )
+ E' J( Z4 L2 x2 ?' g continue;
& D4 |' H7 B, ] if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
! e" a( v( o! u& T. ? continue;
- M, b( m6 ?! G8 P! l8 f lpSkill->dwLevel = 5;; J0 w$ u" ?( R. A0 a
}
, j; |8 i5 F5 R2 J2 @ }
% V+ C3 Y+ \1 y2 } }9 K- i! [5 T6 w
else if(IsLegendHero())
" x w4 J7 @ o/ F. B/ }& a& J {
+ e! o0 `% S# l3 M for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! V& F6 L5 a6 g2 g* m) {& z
{ : n5 a3 t6 j4 I, | h0 ~ q+ Q, W
LPSKILL lpSkill = &(m_aJobSkill);( ?6 S5 V+ `/ a$ k* n
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 x' _0 R5 p7 v( f {
9 d! b' Y6 G. q0 t ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); . ]. j0 C/ n4 I7 i
if( pSkillProp == NULL )/ m5 |/ \) I% r$ s) Z+ M
continue;
' a* y% ^, p- @9 D4 Z3 | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
. X0 L! x+ ?4 v- Z continue;
. H) Z3 M6 O5 ], N$ }1 l! D0 T! w lpSkill->dwLevel = 5;
& @# S6 n1 h& H: y }
. Z" }+ `6 w5 s4 Y }
2 F. ^$ ?: E8 g# e8 S/ h9 O! c! c }0 U) P. \ [) ]0 s' w) ` [( L& K5 }- |
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 D' b* C* p' G" o3 a8 H# T
if( bGamma )
* @6 L, l/ y4 z0 w' ]# I {8 L9 y ]% H) V2 ^9 h
m_nExp1 = 0;
0 R- ]( R0 m' U6 I; O+ V9 ] }9 Z& Q+ I3 M! v: e0 A; `. X# c% V
" ?* T" B" T& t2 i; L$ x8 I: H ( (CUser*)this )->AddSetChangeJob( nJob );* ~: p( f: t' V9 B( ^
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
- ` Z7 ?1 Q5 V6 U o3 R9 K
3 E& u5 N; @ L* r: k% w; K! o% C- | `3 x/ b1 ?$ H4 N
#if __VER >= 11 // __SYS_PLAYER_DATA4 D2 L. w1 y0 ]- I. m" M" a
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
$ }: {- w1 E* P( J G$ l#else // __SYS_PLAYER_DATA
2 q9 F L! w+ I% y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );( z1 w C/ p8 B, x/ u# r
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
5 Q6 J) C# e9 ^0 X( }' \ if( m_idGuild != 0 )! g, f) m0 u; \$ K& U! w
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
) P8 F# `4 s7 `+ z1 ~#endif // __SYS_PLAYER_DATA1 i# d9 Z; \# P7 n
SetHitPoint( GetMaxHitPoint() );
( s- H) i o% l9 V& d" F5 W. x SetManaPoint( GetMaxManaPoint() );
: R9 {2 L$ Q, e SetFatiguePoint( GetMaxFatiguePoint() );# ?9 G7 {) b9 I; g8 K; w
if( nJob >= 1 && nJob <= 4 )" u7 G* O: X% q
{
P0 y4 h2 p* x! c m_nStr = m_nSta = m_nDex = m_nInt = 15;2 ?7 w" I0 j* D, @# _
m_nRemainGP = 28;$ Q6 Q6 c6 {0 K8 r- v
}
' k, n3 O% M4 ~6 C if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
J# T5 f" m/ G) D2 o {
% c2 R9 X2 N) @0 G$ y m_nRemainGP = 118;7 m! J- O( ?7 c; x f% I
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 s) T+ A- j$ E6 v. F
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 G& `: r+ v/ N4 T$ s( G7 b2 N" _ }# y0 m* F9 f5 q/ A$ h
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )' }& }/ L% B% ~4 W* s
{3 b; C& _) r* j; R
CItemElem itemelem;/ Q: U9 o8 a2 k" w, @8 B
itemelem.m_nItemNum = 1;' Y$ C* ?7 ~# _
itemelem.m_bCharged = TRUE;
* W* G' L3 P' ] BYTE nID;' ~1 O8 [! a: i) _& W- ]/ ~ t" `
& y. J' W' d+ G+ a( B if( nJob == JOB_MENTALIST_HERO )+ a* @1 s5 f; V; ]" s$ j% J9 H6 z4 q' d
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;4 y. L2 m5 \+ s
if( nJob == JOB_FORCEMASTER_HERO )* t( `1 E. E! L. ~! E
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;: c6 @, p+ ~- k! F! a8 U
+ h0 J- p2 @" y: [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );. J' F0 g T2 |9 O) W2 ~7 d9 [" c
}* V( h9 _# d! e I5 F
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 y- u- S# _) F. }& g1 h) S
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );. m2 ?: l) d2 v; |4 o6 C6 T
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );. l* ?/ n Z9 L
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );% ^4 e# ] h, h. M
( (CUser*)this )->AddTaskBar();*/
1 F) Y: I D% F: ]9 z6 \) X ~/ f ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );4 c; L5 ?, U5 ]# U$ S0 f
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?" \. t# I% ]% k
((CUser*)this)->CheckHonorStat();
: a# Y8 s+ m+ B% g& b4 Y5 | ?* B ((CUser*)this)->AddHonorListAck();
0 A) k. b; S; j8 J1 a g_UserMng.AddHonorTitleChange( this, m_nHonor);8 \% G; e- u( J' J' C9 s9 X2 T$ r( ^
#endif // __HONORABLE_TITLE // ′Tà?
9 W+ O ^9 G1 S1 c }+ E( b8 J0 f( J8 {$ C- [
#endif // __WORLDSERVER
+ W/ v0 K5 y$ e# K8 [}
! Z# Y% e; R! [* ~* m- t- J# J5 e6 z* J
然后你进入functextcmd.cpp并添加以下
% B, r! h" j9 X
0 P6 w- h) u2 }" m0 @代码:
G# a: J6 F4 @$ t: m( fON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
1 m E' D9 v) a& X下面插入& c9 L$ g0 q( \: Y( r
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
4 g" L$ T# M$ V( _0 {6 I8 P; ^# t+ a# H. @. \
然后你去
- V8 d4 D v- G3 ^3 Z- L: _7 n- M
* Q3 D+ B% d+ A9 G1 A& y, t代码:& l6 K. g' S1 U; S
代码6 p! ?( A7 X6 i* w
BOOL TextCmd_ClearPropose( CScanner & s )
2 q2 q% z; [- ^0 S0 g3 x6 `; J{
% P( r! p \% L9 Y3 b8 J H. F% A6 N#ifdef __WORLDSERVER( R) V. ?3 A% x5 {. k* \. {( E
CUser* pUser = (CUser*)s.dwValue;
0 ^3 T @' f1 J; c$ k7 v3 n. [ g_dpDBClient.SendClearPropose();
0 x* L8 Z* t% y/ M' y#endif // __WORLDSERVER# J% }. B. B! j) S
return TRUE;
, d$ P) `, q( }5 ~}; S. E& J# e8 B0 [' z5 Y
下面插入1 a0 ^* h4 X. Q+ m/ k9 H
BOOL TextCmd_rebirth( CScanner& scanner )2 h+ y* V2 N, A1 p
{
+ A0 ]3 o; c/ |# V7 R& X#ifdef __WORLDSERVER
9 X P; h, N0 v8 \. kCUser *pUser;( @" B% C; j! J* Z
pUser = (CUser*)scanner.dwValue;
; E' X4 r4 d3 R* G' R* [$ m. n2 [if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! r( B! A! ]( c; K
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
8 ~6 O- l: r; m3 E e# {else
) o+ N% `: S: r5 n( @4 L& FpUser->AddText("你还未达到重生条件!");; ?& v# N+ @4 J, v% U) [
#endif, Q0 g- ~. l _1 U% c
return TRUE;8 E S4 `& d) G$ l& x: N6 ~ R
} 9 {1 z/ j) [5 Y" i& m: p+ |# Z( h: k
/ c$ [; F! n, h: B
) J& n$ K }. [) z- c
7 i' m* Z+ u6 o, k$ U8 P, G. j0 B7 L t& S+ }/ N
|
|