|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
$ s y4 Y r7 u M: L; A$ o/ e/ Z3 F# e$ b
Mover.h
0 N- v5 k( F. y. ~# X代码:
+ u0 c8 m& Q& a: ?# Y找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
& {: W( C- ]0 S4 f- D# s6 ?) v0 g4 D% A/ Q* W
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; # f+ m8 R; e) q3 z* A; a# G% y3 U3 H
! F% E& l2 M& u& D! T( B! @
然后你去mover.cpp添加
$ G* \1 \' N( S% H6 J& l. Q
, ^( X7 `- Z# U代码:7 ^. [( `& l+ @. M9 q: g2 N; } `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
4 I: p! q% \( x/ c3 g, m/ ^6 |{
; r7 t3 [1 c6 q4 d#ifdef __WORLDSERVER
/ o, u9 u( W/ D // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó
3 Q: s4 [' ?# s5 L5 ~, g7 G MoverProp* pProp = GetProp();9 f) ` |% ^" E
if( pProp )
0 b! h; {* f, f4 T, J; w {
+ q7 x5 t( B9 C' l& i) \ if( nJob > 0 && nJob < MAX_LEGEND_HERO )
- ? B" Q9 A5 h {! h- c' b" H! m% p o; f# {5 \) q
AddChangeJob( nJob );
Q0 L) a5 `3 A, k6 [! F }else{" f& q& o1 h! F3 b$ }( K
return;
! H* M: q ]3 W$ F1 h$ a3 w. a; ~ }3 V: |+ l. O% e- w- P% l$ A& C+ K8 K
int nPoint = 0;
: R* X2 s* M% F/ U if( m_nJob == JOB_MERCENARY )
7 X, u% Q+ i" x* g# h nPoint += 40;
4 s. X; ^9 V! J! E else if( m_nJob == JOB_ACROBAT )) B3 N4 G. } d" J% A. l
nPoint += 50;
: O$ a- ^% B8 w% `: C else if( m_nJob == JOB_ASSIST )% I$ Z1 Q# }% n Z+ @
nPoint += 60;+ a7 }; p& C4 ~" }1 ]; t
else if( m_nJob == JOB_MAGICIAN )
+ l2 v+ X! V5 n8 F1 f nPoint += 90;
# t! F8 l1 D0 X2 c0 T( D6 k$ ?+ T$ Z else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )" A: j1 p2 [0 s+ k0 j; x
nPoint += 120;
) h# m5 S, I( M4 B: n& k else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 `% ~; O( _5 b& A, L6 R8 k8 {
nPoint += 150;
4 B# H; q: E, Y else if( m_nJob == JOB_RINGMASTER )
1 }3 o. n- w I4 Q; S# \4 ~# y/ T0 z nPoint += 160;
0 m/ G- s# G6 Z' _+ ~3 E9 W7 c) t: a, R& G else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ Z* I6 r: P9 h+ ]; Q* {% U0 E
nPoint += 180;
/ H( p2 v! j$ W) |' c else if( m_nJob == JOB_ELEMENTOR )9 A- V' f7 j6 C$ |! v6 X/ W
nPoint += 390;
' ^$ f( c+ i0 S. e( S0 e0 |" Z else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )- P7 P. M* r- C! y' ~
nPoint += 120;
* |; K& b: B# \4 C( N6 u$ W: { else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )* Y% y) f- Z" ~
nPoint += 150;9 L3 T3 a, \2 T
else if( nJob == JOB_FLORIST_HERO )- M& P: [8 [) n+ A1 t' E
nPoint += 160;6 H9 ]7 ]; {9 _$ F
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )- l4 V1 } F3 D
nPoint += 180;* Q) I& @( E+ {; X% p
else if( nJob == JOB_ELEMENTORLORD_HERO )
) Y0 T! y- I& c7 e3 t nPoint += 390;
+ @; V8 k7 \+ U- H- [
2 }& W- N3 b" q AddSkillPoint( nPoint );3 d* {) b4 j+ ~* [: k- q N C
m_nLevel = nLevel;
# N) [ d- T+ d# `% F% `0 t
+ r$ }* T: N$ O& c SetJobLevel( nLevel, nJob );0 n7 F& i( w# @* D' z/ u. ]
m_nDeathLevel = nLevel;3 t6 F# U' U4 M8 R% ~" K
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
, U* J/ k K8 o: H5 g if(IsMaster())( P2 p7 ~1 |0 a7 V* v/ g$ a; Y
{
% D% ]9 B9 U$ z8 Z int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 w9 Q% H5 A `: w
if( nLevel > 59 && nLevel < 72 )
1 a' ~* [% _1 r4 m dwTmpSkLevel = 1;
1 k" ~2 D7 o- j else if( nLevel > 71 && nLevel < 84 ): s: ^8 ]9 }# x7 F
dwTmpSkLevel = 2;3 F7 m) {( _% X1 u! T+ J
else if( nLevel > 83 && nLevel < 96 )8 k6 l8 Q" t; z$ K; I
dwTmpSkLevel = 3;
- ^! T2 ]0 b, n) n6 g0 \) [" D* f else if( nLevel > 95 && nLevel < 108 )6 [6 g9 Y/ [1 a9 D# ~
dwTmpSkLevel = 4;2 M: N% G: j$ T7 s* R# P6 ?5 S
else if( nLevel > 107 && nLevel < 120 )
5 d9 O J) r8 Z# l' J dwTmpSkLevel = 5;% P& J# J2 n5 U. t N. j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
8 v: o0 \9 o- h1 X" K+ |/ y: D0 t( v { 9 _ `7 Y! h* r
LPSKILL lpSkill = &(m_aJobSkill);
) u1 l3 {' `) T/ Z# {9 g# M7 f9 e x if( lpSkill && lpSkill->dwSkill != NULL_ID )
$ [1 L9 D- P) B {$ P1 @9 i: s+ V
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 9 v: p# Q' |0 T# q: O& e: y j
if( pSkillProp == NULL )8 x Y6 v7 \- H9 G
continue;
+ S) H3 L) k! \6 ?: D) T! F if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ? v/ g# L( f( c& i
continue;
' f) a$ S& p4 l: p lpSkill->dwLevel = dwTmpSkLevel;
/ l' m; |& B: J9 m U }
7 Y. v' A, o: Q, R }
' v2 U3 I$ O: K+ \ `6 f }; n- e; n1 @( [- x7 Z# ^1 |
else if(IsHero())
0 s7 j) q8 I- T: d! b {' g) z N: ~0 B& T3 v
for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! ~1 r) P/ t2 n
{
6 d4 I1 ~ @4 y" a1 c LPSKILL lpSkill = &(m_aJobSkill);
( v% `9 V5 T% v9 J' e, D, [ if( lpSkill && lpSkill->dwSkill != NULL_ID )/ U W% B( v, J$ l6 L* G
{
' Z' N: J$ l+ j/ h, Q0 M1 Y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * t! j% h0 P& N
if( pSkillProp == NULL )" x0 O( u7 m' o
continue;
1 |. [& H }' ?: Z$ A if( pSkillProp->dwItemKind1 != JTYPE_MASTER) b" g! M2 U4 W& \
continue;
, u, A' E; C, i5 S" ~/ g4 ?# e lpSkill->dwLevel = 5;" g/ `6 A% T) e5 W0 {1 q; B
}8 {; ? U0 L' A# S
}5 S# y4 l3 G5 M( d; `+ d( b1 w
}7 v! C7 T) [, [, j/ `0 ?8 ?+ M8 C' r# x
else if(IsLegendHero()): O) X8 d! W- S( K0 Y& u" c
{
) ]8 f* {% z, [5 v( Z4 { for( int i = 0; i < MAX_SKILL_JOB; i++ )
: c2 s: n! A" w f/ Y8 j1 s) W {
/ Z4 ^3 O* S4 B# d6 X- ` LPSKILL lpSkill = &(m_aJobSkill);: H( v2 V" @$ Y! u) s) M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
- ^1 Z5 [5 B+ W5 J {' b% x8 o! f( p( C5 ~- I+ S; L( T' ~, d
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
, X$ l6 G) \: g k' k, D: ?! N- N if( pSkillProp == NULL )
7 ^8 t/ @; P( m9 `# G g& { continue;5 |& C+ b, T6 `7 F/ t) r/ }
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)& I4 N2 h* Q! K
continue;: x3 h3 R1 C1 P+ `
lpSkill->dwLevel = 5;7 l! n. w0 G5 s1 P9 Z
}% A$ X# u1 M0 S% ?' B: X$ ]: T
}' a k# ?; Q& t" c; K2 K
}% ?4 D6 X& Y" Z6 {' J
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans4 K4 R2 B9 v6 B$ q4 R' E$ {, i
if( bGamma )4 L( @7 M$ M3 u: ?; R% ?3 Z
{
" x- u9 j9 z* Q/ _) [: l9 r m_nExp1 = 0;1 K% Q: Z4 \: A7 {- \
}
8 K: _8 i8 K* @0 N
& x5 u; k5 w6 p. @5 z- V4 [ ( (CUser*)this )->AddSetChangeJob( nJob );
7 M5 i, [8 K) W g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 c( n" t+ f/ e9 o) h4 d% I# B; U, B1 F" Q. A- {8 V& f- h4 m
) |: \. R4 K. _3 v' V1 q#if __VER >= 11 // __SYS_PLAYER_DATA9 g$ k% i1 D! g' U$ s- s% s/ b
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );6 [, ]" D" M, g! C& ^
#else // __SYS_PLAYER_DATA
3 n( u G% g( S( L g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
! H) U N; I9 g3 r g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# g5 q) g7 h+ T1 i' l if( m_idGuild != 0 )3 H/ |. q; D. o. t8 T* I' G
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );" C! k5 K, Z4 C! f! C$ W
#endif // __SYS_PLAYER_DATA
! h4 A- j( c( z* l SetHitPoint( GetMaxHitPoint() );
7 D4 g. n0 F d2 V& C SetManaPoint( GetMaxManaPoint() );4 s% w; n% r' F% {7 N" L
SetFatiguePoint( GetMaxFatiguePoint() );
6 O+ ?: q) s8 V5 m( w) e: k if( nJob >= 1 && nJob <= 4 ); f1 o4 j' n, g* z
{
3 T" K V9 J4 w% O1 V% e m_nStr = m_nSta = m_nDex = m_nInt = 15;
# G: A& E4 d/ ^+ Y7 }& d m_nRemainGP = 28;
3 c; i7 f o$ E @! @ }. c$ q& [( P; i
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )" M o. F6 T5 p" g$ R! v
{
( x. k& k# J/ T6 | m_nRemainGP = 118;
% a/ t; P& s: e$ P //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;+ c4 a* n% ~& c: }4 M$ ?
m_nStr = m_nSta = m_nDex = m_nInt = 15;8 Z* V& c1 o& ]' z7 v9 P
}& s5 P: h5 X; Q: J& j. G* R
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
) Z7 U/ f% H- {: i {
: }+ D$ f/ g, I' f8 H* _ CItemElem itemelem;1 d4 q+ }4 J& O8 l
itemelem.m_nItemNum = 1;
# h5 g9 U# b4 Y itemelem.m_bCharged = TRUE;
) C i0 w5 d0 y BYTE nID;" K% p1 Q7 \* M, H
. X* z5 a% x9 E( D$ l% `
if( nJob == JOB_MENTALIST_HERO )
) R( K; B9 u' m% O itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! L- K* S3 f, d( {
if( nJob == JOB_FORCEMASTER_HERO )
# y6 ]+ f$ T. N. N5 g itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
$ ?0 M8 a% A. }, t: q, n3 K( j; i3 |1 A7 v0 w2 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );& d. u3 t- N# D4 h! x
}6 t, A: }2 h# }0 k, ^. o9 K
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
* H* h6 J" O/ B- c$ p/ P ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
1 Z- X3 H3 L# f% l K ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
7 d0 O3 Z2 G% [) `2 m /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
! s9 K% `, i+ h: A ( (CUser*)this )->AddTaskBar();*/
: |' f% P9 v& H! A+ Z9 G ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );" a& `8 U, I' w& m. U
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?% G( E. S% x. c3 R5 k4 V
((CUser*)this)->CheckHonorStat();
3 B2 h8 @8 E2 j7 L3 B ((CUser*)this)->AddHonorListAck(); m9 v: R: ^4 S* ?
g_UserMng.AddHonorTitleChange( this, m_nHonor);8 _/ `, M. B6 R
#endif // __HONORABLE_TITLE // ′Tà?
# m' z" t5 h6 Y+ s/ n( m6 ^) X }/ M4 w3 O% _( ^" N& U G/ v
#endif // __WORLDSERVER
( |7 K! Q7 F! V' r1 ]} 6 k0 T# L( Z; `
/ r4 M, N; I5 V
然后你进入functextcmd.cpp并添加以下
0 _; ~, B: s* Q7 w+ @, g* k+ u3 X+ A; l) O9 T) a3 r
代码:& m c% L" _' G- W5 T
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
: }: @) {+ A {) u) H下面插入1 S' p! n, p+ f* L" v7 C( A
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) - k0 q U- D0 ]$ |, p3 ^, g
" |" F% A# i0 G4 M' H- d, ~
然后你去
8 {$ [" u0 {9 h! o E `+ ]5 V% c" c4 E+ ^
代码:+ L, Y% X8 Q- W2 Q+ s( X
代码& {. c2 [- N* r
BOOL TextCmd_ClearPropose( CScanner & s )
# }) n( v, B$ H( f. z" e{
) i* M# G) N8 q5 A Q#ifdef __WORLDSERVER8 {' W/ v7 x: O. Z! ~! v- W
CUser* pUser = (CUser*)s.dwValue;. r9 m: T# V4 }" L7 p
g_dpDBClient.SendClearPropose();6 W0 E% o0 |6 x9 I; y
#endif // __WORLDSERVER" H* P5 f8 W* `. U
return TRUE;
/ ^' e$ s" M0 t6 H3 }( b}
2 |' _& C* H1 W; [ U) g下面插入5 }. @, [' I7 W' X) X
BOOL TextCmd_rebirth( CScanner& scanner )
1 ?6 j, C7 l0 |0 B& r& Y{! X7 z$ D- e! A. ]5 p
#ifdef __WORLDSERVER3 x9 U1 J. c F4 w5 N
CUser *pUser;
3 k7 p/ d; v8 N* x5 C: r2 OpUser = (CUser*)scanner.dwValue;: j* b- s0 l o; |. f) l; h! L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
( O' }& e8 c- N/ ^6 p- CpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);: z" C# i4 V( `1 x, O
else
4 F. |) z% {/ L+ j( p( \pUser->AddText("你还未达到重生条件!");, G- [1 v6 Y A& T8 \
#endif
! z3 b9 J) Z* E; Dreturn TRUE;+ \1 i) S* \+ A, s* v0 F. W' Y. n
} ! Q, S7 P+ A6 b+ j# ?- a$ d( I
5 ?: ]& ^& u4 b; N: C" V
9 F) L2 Y+ F- `
+ `) ~8 X, `( s; a+ ~
3 d) U+ g( Q. r$ D
|
|