|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel3 n! @7 z0 T# Z9 s, h0 R
& ^( T; H! _) b) H
Mover.h4 \; N9 @- f" ?3 W3 \: H7 G
代码:' I# Y) N! |1 \* Y9 X* m6 H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
; _8 C% y. z, g- y& S* f
) F6 C# c! O9 b# {( k下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
: }; K; _; p' K* }' r- T }
9 j+ n& s7 n0 ?7 e5 ]$ [+ f- G然后你去mover.cpp添加
7 H7 i" s+ C8 D( ?8 O6 U/ u( p' l. U
代码:4 z3 f9 f! U) p2 l1 G
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); F C! i7 A. |3 ?* v2 S
{
4 f% {; v8 T$ o: |1 r" H! ?7 P#ifdef __WORLDSERVER. [: o! c8 ~9 K$ a( C
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
/ g8 j! G0 s+ {$ Z- e$ m MoverProp* pProp = GetProp();+ E- d) ~! L4 [6 Y7 g" G" e
if( pProp )4 u7 V4 c* k& Z1 m
{
! \* Q5 ~; R# B if( nJob > 0 && nJob < MAX_LEGEND_HERO )0 q7 k$ P1 U- g
{
" P F/ ~7 I# v" s Q( _. | AddChangeJob( nJob );
9 k: `9 m4 x8 J3 B- A, m }else{
- T5 b$ g3 [+ {/ w {; j5 L return;" {4 ^, ?4 _' L# n, Z
}
1 K) n' k2 Z" f+ @' D) u" A' C int nPoint = 0;& o0 b5 h( d0 S& ]7 L& W
if( m_nJob == JOB_MERCENARY )
D0 J$ n1 V4 U( z, H$ V nPoint += 40;! z8 X. \( q& S4 G
else if( m_nJob == JOB_ACROBAT )6 A7 m4 ^/ Z* J9 R' S
nPoint += 50;9 A- K7 e2 ~' o
else if( m_nJob == JOB_ASSIST )
+ H# z" H |- x( k2 |+ T2 I nPoint += 60;
( E6 t* {7 w2 c( x else if( m_nJob == JOB_MAGICIAN )
+ @8 J; F9 z3 ] J nPoint += 90;
$ H* b$ Z7 l B+ |6 T2 ~ y. ~. T! o else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )! L: `* w, e+ y# d+ `
nPoint += 120;
! ^! U' w; B& e0 z3 T. Y3 ^# E else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 ?8 Q8 q9 m9 h8 \ nPoint += 150;
8 J( U7 d7 X5 T, P+ ^1 Z else if( m_nJob == JOB_RINGMASTER )7 g% T* F' L/ \7 ~: g1 A& k3 [& N
nPoint += 160;. S2 d8 z/ N! t2 r; B* U; V
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
7 E0 B" ]8 Y1 P! e2 ^ nPoint += 180;
9 L2 t0 U; l! [ else if( m_nJob == JOB_ELEMENTOR )
5 g" H, v- x; v7 ?0 t x nPoint += 390;
+ P$ U, T( J& Z/ G else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
6 E c* O' z2 A nPoint += 120;, e# `. [4 w* k% M) o" e) K- y
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
6 X3 N4 z6 S5 Q9 {* L% h nPoint += 150;
" t1 j( r7 C& q: m else if( nJob == JOB_FLORIST_HERO )
0 j) L5 ~. s: k) P nPoint += 160;& N4 `5 | W+ e& U5 ?, S
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
) b; B1 `7 Z& K+ e6 S nPoint += 180;1 i- d4 g$ f, }& o
else if( nJob == JOB_ELEMENTORLORD_HERO )1 v- H& v% K+ p' K- x' ?# E
nPoint += 390;
2 l2 M( X# c9 v0 n1 `. \: B3 {
* B" {$ j0 L- q- E' V u) m AddSkillPoint( nPoint );
+ T5 @/ u& P/ K m_nLevel = nLevel;! f! C! R' H: d; `. L
/ W" g! ?; \- R. q SetJobLevel( nLevel, nJob );
* N4 c' u. f6 j: `0 D m_nDeathLevel = nLevel;' P J, p% b0 p k4 { S
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& p7 `# {3 I8 v: m" K) s! g
if(IsMaster())
1 ] e7 n6 k9 |5 e: L {+ j7 B% P( e6 s
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
' @+ l: h, {! k9 ~; n( v8 ~) w if( nLevel > 59 && nLevel < 72 )
9 I; T1 v2 @1 C- N1 ^4 E% y8 _% A: W dwTmpSkLevel = 1;. l2 L/ j" @- r9 L2 i: c9 {
else if( nLevel > 71 && nLevel < 84 )' P! M7 S0 f; U- N9 n* g6 h# S- J! S
dwTmpSkLevel = 2;
& m2 \1 g' s6 o; B. T$ A$ ` else if( nLevel > 83 && nLevel < 96 )7 @5 u" h! ?) v2 K3 @) p' J( G
dwTmpSkLevel = 3;' V8 O3 F. X* T5 y0 v
else if( nLevel > 95 && nLevel < 108 )* j+ ]6 g: B) D$ F
dwTmpSkLevel = 4;: Y. r8 s, l$ Z3 R2 e; E/ \) t+ i/ ]
else if( nLevel > 107 && nLevel < 120 )+ z: u' A: K- r& _7 j. [+ k
dwTmpSkLevel = 5;( p. ~6 p' a+ i1 a" ^# D% B0 j
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) L. r: ]0 F4 R0 ^: m: B
{ ( @. W- U A1 `) Y6 g
LPSKILL lpSkill = &(m_aJobSkill);
1 Z) w B7 n5 {5 E7 Q if( lpSkill && lpSkill->dwSkill != NULL_ID ). q' t3 Q3 X- }7 M+ t
{: K x- {9 B! b0 L- V# C# `5 D4 L5 }
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
8 v0 A1 Y. [& G! S) Z% S if( pSkillProp == NULL )
: `9 E9 i& I8 |8 u& g+ @! O2 J9 O continue;1 P' Y, a" X2 g* @% }& e
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
* j* k( t0 E* X2 D% c continue;
- h$ M& N- ]8 f! v5 \ lpSkill->dwLevel = dwTmpSkLevel;7 x7 s3 t+ T, d, n' |
}# |- G3 k1 T$ _: ~
}
! Z _, K& u( \$ a }
% C; Y. `+ w4 E% U" V+ D0 ] else if(IsHero())& o: Z7 y9 X) g6 f% ]) S
{
5 ?7 R9 b& b+ U! n+ V for( int i = 0; i < MAX_SKILL_JOB; i++ ) . r/ F) E2 r3 s. y0 @9 m
{
1 i. o( b) \" V4 y# d2 c9 i- r0 C LPSKILL lpSkill = &(m_aJobSkill);. f6 ^; p5 f" i+ j0 u0 C
if( lpSkill && lpSkill->dwSkill != NULL_ID )
0 A' E( C* F3 \" z {
) c* D' z9 J& u& I/ o: r9 j ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # Y& I$ j' `, {' `! p, G
if( pSkillProp == NULL )
$ I2 b" n' y& Z continue;2 c+ B' [# Z8 I& V8 p3 _9 r% B
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& G5 c2 o& M- i continue;( J! o( g% T7 U+ R' i) @& b: Q
lpSkill->dwLevel = 5;+ c" y% M3 Y4 O5 S5 G2 z
}
c \) b+ ~8 K' t( T }
/ ?9 t( ?8 V" A% x }/ p/ }1 Z+ s( ?/ I$ w f w! h F
else if(IsLegendHero())$ t; x2 d$ z0 g- U4 q
{
+ w; X$ {' Z5 o for( int i = 0; i < MAX_SKILL_JOB; i++ ) # x8 O: k+ ]3 O
{
& y0 X7 L+ A7 O: X- H3 [ LPSKILL lpSkill = &(m_aJobSkill);: M* ]9 S! M( n- B4 T
if( lpSkill && lpSkill->dwSkill != NULL_ID )* Z! \& }1 M6 s- C9 j; l
{
% x1 Q3 p# W6 H. [ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 O- V( P3 j0 R' |- J4 @
if( pSkillProp == NULL )
+ a8 ~2 K6 V% j continue;
2 V+ e) {$ n* | if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# {8 r; n9 y& Z( D/ m& z" o$ I continue;
% b$ j" g! M: s9 ] lpSkill->dwLevel = 5;
! h: L& a& i# y* L/ ?$ H }1 ?2 q3 D' s, b8 p/ ~
}: e2 X' ]5 Y* i
}2 ]2 V5 O6 D- |4 i' V
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: }% r' k" e/ z! q8 a. @' e( k! n* G( r if( bGamma )
( W p' {9 ^+ I8 H. V- J {
# e8 f) ^$ h' U% K# P m_nExp1 = 0;
4 \3 r: @2 R7 v. _9 \! M }
* A& Y; ^3 C- k: E
1 Y, {# {' ^& }2 \, ~5 E8 S ( (CUser*)this )->AddSetChangeJob( nJob );3 w2 q/ ?1 U& O% j& v
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
' Y0 @9 t/ A0 j8 r+ `* C4 c' w/ E% c# r6 K0 Q' l# g
# U+ ]+ q+ S0 h. v3 ~! ?
#if __VER >= 11 // __SYS_PLAYER_DATA0 f' w. w5 _/ S$ d- T: Y) ^) [
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" @' _% O- g$ ^: ` H
#else // __SYS_PLAYER_DATA3 G/ p1 v; D6 z- q* ?" j1 h; j$ D7 K
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
9 O$ I) |+ {) A& ?0 V( K3 U g_DPCoreClient.SendFriendChangeJob( (CUser*)this );- _/ j" x" U$ o
if( m_idGuild != 0 )
& ^9 ]( R3 R, _3 q* m$ f g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. a! \! R$ `' q9 Y+ S
#endif // __SYS_PLAYER_DATA- R8 x9 g( i; j8 y* v
SetHitPoint( GetMaxHitPoint() );
; E8 y/ Z7 | { @/ I) ]+ U* N SetManaPoint( GetMaxManaPoint() );' b2 ~4 z) f% k. S
SetFatiguePoint( GetMaxFatiguePoint() );' U1 [/ x% D- V5 _- F+ \
if( nJob >= 1 && nJob <= 4 )
/ `, d3 h+ {1 G {. h. y$ m% s4 J! {, u% p- C' g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
8 c- E& h$ l, N9 i: f4 y m_nRemainGP = 28;: p1 @/ G1 { B8 O
}' s5 u! |& { z+ \' m6 ?! v
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- n+ M; S5 G1 l1 B {
" g% w! _8 q! E0 ~ m_nRemainGP = 118;! ~! }' }' J5 {3 j5 x+ j( A! P" @
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
' A( m+ U0 a6 N; } m_nStr = m_nSta = m_nDex = m_nInt = 15;$ _* E, G' C7 m! k! |
} A3 D/ Q& ~5 \1 b" H. {& c% `
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )- U2 C% j: T0 I5 G& x% Z3 Q, l1 [( W
{0 s+ K" ?8 A: }3 H
CItemElem itemelem;
/ P' f7 C; Z2 g. I3 X( n9 ` itemelem.m_nItemNum = 1;( n2 c* X# V+ n
itemelem.m_bCharged = TRUE;
; V. B! r4 P: B1 E6 v BYTE nID;6 \0 N ]% e* | b# A
/ O G3 L5 O0 E" v6 R if( nJob == JOB_MENTALIST_HERO )
) M n2 @; t5 q itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
/ r. a7 [9 ~8 }- ]! i2 x7 N if( nJob == JOB_FORCEMASTER_HERO )6 d1 X: W W: h, Y. T- N2 ^- J' @) R
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
8 ^/ Z7 F3 F: f5 w1 ~
) R/ ~$ z! v9 z. B/ Z3 [ ( ( CUser*)this)->CreateItem( &itemelem, &nID );2 R1 k/ J8 l- P& k
}" W$ ?! R: O- K+ ]
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );5 J( a1 l7 T4 i( j! u3 S2 m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP ); C* F: e/ c7 A. i# `4 Z/ o
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 [+ W Y7 e2 |$ e, S. _& b1 n5 r' _9 U /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
8 h$ u0 [/ I6 {4 T8 e6 }6 m) u3 w ( (CUser*)this )->AddTaskBar();*/
& [- O) V/ ? ?! ?1 M ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
7 Z: {( S! ^- L9 i#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?. z- h' O% d* p, z1 l
((CUser*)this)->CheckHonorStat();5 c0 b% x' B1 D6 a- M/ q- N
((CUser*)this)->AddHonorListAck();
" Q! F6 m( i7 W* } n% i$ | g_UserMng.AddHonorTitleChange( this, m_nHonor);4 j6 j8 d' f( G9 ?$ W, p9 T- j
#endif // __HONORABLE_TITLE // ′Tà?9 t. I8 {8 ?" D; s2 J
}
- m9 G/ |( |3 b+ u, V( |#endif // __WORLDSERVER
, ~7 u+ _5 z' A: j: L3 }# G; K}
5 U% B6 b1 k/ Y' G7 T0 }& ~) e: y9 Z6 F2 a( B7 y1 w
然后你进入functextcmd.cpp并添加以下
* G- l. ?1 v8 `5 f$ y9 U; ?
, t+ t5 O& N# p3 x3 ~$ X. {代码:
+ c7 z0 v9 r# U8 K4 }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )$ e. K! i5 F- O ^. y
下面插入; F! _, Z, f- d2 [' C1 Y* f* _% |5 j0 L
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) h2 p$ z, i, K' [# Z8 ]
" P+ f# B, ?3 X" h. ^
然后你去/ t: B1 G" {( F. g
+ \8 I0 i' y4 @
代码:
, I3 I; u! g5 J( r- m0 \% Y3 G0 Q代码
5 I+ J: f' o: W$ e. uBOOL TextCmd_ClearPropose( CScanner & s )
2 u5 s8 v, ~2 F{8 ?* a- y. o" l
#ifdef __WORLDSERVER
: o- P* p y, o p CUser* pUser = (CUser*)s.dwValue;% i2 r) N) R: l7 e2 C
g_dpDBClient.SendClearPropose();
' |! N) g2 {: w#endif // __WORLDSERVER
c7 R l) g/ m6 _6 S7 n return TRUE;
8 J* }: ?2 ~8 H! C}, g; B5 M: [2 }3 K% x4 Y
下面插入
t g& G! B$ A. r" z( W4 B7 x7 kBOOL TextCmd_rebirth( CScanner& scanner )
5 Q! a& f4 |3 b0 M/ p6 a: i{
4 {0 ?0 y- \# a6 f#ifdef __WORLDSERVER% r, \5 C7 n# t
CUser *pUser;8 k( z! L4 b7 o) [
pUser = (CUser*)scanner.dwValue;$ m6 Z$ f' |0 u5 T- U7 j5 ]
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())3 N9 E: A; }* h5 I Z N, Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);( @- X& v; A- f- w0 E0 [+ x4 J
else
+ V; a. W0 J2 y v' m8 Y8 cpUser->AddText("你还未达到重生条件!"); l7 A& @1 b0 U* M9 V: t
#endif
3 r/ A% ]8 ]7 m8 [) I# Wreturn TRUE;
! X; H* }( G6 v} ! @' S$ o# S5 R( W8 S( o" E
% V: I6 [, s2 `6 H
. F8 [+ K- C5 d7 S& I$ c3 g9 q
% _# [7 q* p: [9 |+ B
0 h* B+ b/ a; O2 G6 y# c |
|