|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
3 w; e- Y* M, E3 o
3 ] {" F! L+ k' }& ]& tMover.h5 F" v" P, M1 Z: @" p
代码:- ~! A$ \) l! C
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü" n# P& t ~7 \' | P" p3 s
* o' a; B7 s; _2 u0 I
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; " i' M# b& o# b
: b' g5 r( ^5 u然后你去mover.cpp添加
0 d3 U( D1 p- z4 n5 j4 {7 n9 L! F l& K
代码:6 i/ L/ v9 ~' {" l/ N3 S
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
) |" n! E5 a. e2 b{
D* P* _8 R7 B5 U) E+ G#ifdef __WORLDSERVER
K5 \! p! u3 i* n: q // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó! b# ]7 u( a3 R+ L1 {& r
MoverProp* pProp = GetProp();, w$ H U& r3 c* n
if( pProp )
2 b$ N, f2 m! ^7 k( E {
# \$ N' E8 T2 u* V4 ? if( nJob > 0 && nJob < MAX_LEGEND_HERO )! V% [( N6 b6 q7 D- w4 \- s
{( v$ D' R9 N3 F$ H) H+ p
AddChangeJob( nJob );
8 I9 e! V& P: c, t }else{
0 l$ S! r4 f. Y) b5 J7 ?8 J return;5 J3 Q6 p* I4 m/ X% ? L
}
" i* v5 \1 l" Y. u( O2 g( c int nPoint = 0;: \7 i* i% v- w5 S7 S, v% y
if( m_nJob == JOB_MERCENARY ). V( M P1 u% o. {& @
nPoint += 40;& `4 _3 l, x. a* Y; \
else if( m_nJob == JOB_ACROBAT )
4 O$ Q0 `# w6 h: u' U/ y: _- u3 ^8 g nPoint += 50;/ ~, D* k8 [$ q4 B8 V! ?1 |
else if( m_nJob == JOB_ASSIST )
1 h8 Y. w( B$ T! d, F nPoint += 60;
: M$ M$ z' K l- _0 ~" V/ @ else if( m_nJob == JOB_MAGICIAN ), C- [! M9 H$ Z" h) x) L4 I
nPoint += 90;* }2 B0 Y+ {* _2 G" i0 `5 \/ w
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
' v7 q9 q7 T5 `4 D9 a P. V nPoint += 120;
# s) y2 F: w# T" H else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )% [! O, G; i4 p0 e8 d9 B1 f
nPoint += 150;2 y6 O X/ s) [) t2 K& z }6 L
else if( m_nJob == JOB_RINGMASTER )5 o2 Q3 }: f8 |8 z; N4 D
nPoint += 160;
7 X# \$ e5 h0 { else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
- o) [, l p% S4 R. N nPoint += 180;
. F. ?# u2 ? |6 } else if( m_nJob == JOB_ELEMENTOR )
4 ]; I y/ @, o q% X# u9 v c nPoint += 390;
* |) Q* k9 @6 I$ Q! C% d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 S6 j1 _3 L! {
nPoint += 120;
$ |2 t* Q" \' X/ p J else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% K/ ]2 M) I) P. [. v
nPoint += 150;9 K& C( P7 N$ l1 q! R: l
else if( nJob == JOB_FLORIST_HERO )2 f: a6 ^7 C/ E
nPoint += 160;
1 ~: n! `9 c" t: ?9 I- F+ y, ` else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )8 p$ X1 ?* d/ p
nPoint += 180;6 z8 G! g2 k* f1 A0 W3 K
else if( nJob == JOB_ELEMENTORLORD_HERO )
7 X9 p" P! t; z& u+ d nPoint += 390;' r( o* ]( O3 `( ~2 Z" k, `1 m
/ h. H/ n* q% s x AddSkillPoint( nPoint );" ^# k2 M" t" F0 }8 ^
m_nLevel = nLevel;
+ ~+ Q* V. L4 _7 d' y9 d- D) ]# x5 W' D8 i% s/ x
SetJobLevel( nLevel, nJob );# S" x: d" B( ~( H0 m
m_nDeathLevel = nLevel;
4 j/ Y- r1 C* r#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& s0 M* J; e5 J) {& m4 w& ?
if(IsMaster())
, U" g' {/ G0 k' o4 g# L6 | {/ X6 S) x6 c6 b% O# O
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
7 q4 |5 O. u, k- K) M q if( nLevel > 59 && nLevel < 72 )
) N5 `! n6 P* M8 ` dwTmpSkLevel = 1;( ^7 i2 G2 a( b, \: S
else if( nLevel > 71 && nLevel < 84 )
5 X) R' j( R6 [$ u4 V dwTmpSkLevel = 2;' }9 |5 F9 b; k" U8 G6 I* H, t
else if( nLevel > 83 && nLevel < 96 )" v# H: x: X% l1 T8 t! M ^
dwTmpSkLevel = 3;) j# f1 p- C1 ]; b) \& g" s
else if( nLevel > 95 && nLevel < 108 )4 H7 v' q8 A. w' V
dwTmpSkLevel = 4;
/ e7 y& w/ E$ l5 d else if( nLevel > 107 && nLevel < 120 )
! d* }$ t# F& y dwTmpSkLevel = 5;
- ^; |5 T3 C$ g* i% r for( int i = 0; i < MAX_SKILL_JOB; i++ ) % }4 y' F+ @& u' i1 ~) J! N
{ # b+ K+ w/ j: r F; \
LPSKILL lpSkill = &(m_aJobSkill);2 [/ E. b4 B7 S- Q7 M C9 F
if( lpSkill && lpSkill->dwSkill != NULL_ID )
1 y7 r( \3 v" L/ o {
5 M0 u2 X8 I$ h% y ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
( f0 X, j2 w$ q0 [# f8 J if( pSkillProp == NULL )
" S2 c6 E( R0 e8 C. V/ c continue;
# c0 ]' K! d# E4 m0 _0 a7 ?' k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
' U2 ]. H, j" u2 v3 c$ A: g continue;
; A; I, X" m/ p8 ^/ x5 g) I lpSkill->dwLevel = dwTmpSkLevel;) R* d& X6 J, Q$ m; |! d9 l
}5 {6 n, _8 t0 x5 [
}& [4 P8 J9 M6 H9 P
}( Z* V+ k8 H) f% x$ q; R
else if(IsHero()), l, J: [6 L X* ?" q: }
{
6 O- U- m) T3 i9 J for( int i = 0; i < MAX_SKILL_JOB; i++ )
: C9 ]4 V" \7 Q$ m4 b/ ]* z2 c {
) E2 _6 c. }9 x& v! f6 p LPSKILL lpSkill = &(m_aJobSkill);! w# r3 Z3 ?* H
if( lpSkill && lpSkill->dwSkill != NULL_ID )6 ~0 o4 h! ~7 J7 i
{5 f- g; k" r) I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ ?, ]3 o) i% n/ g8 v if( pSkillProp == NULL ), R! d: f4 {& Y @, ]( m
continue;. ?# _$ ?* S ]1 R2 V0 |
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% t! p0 @0 A/ f& ~
continue;
- N7 I) B7 P4 \# J3 f. ^# Z) F& n lpSkill->dwLevel = 5;1 J- y" ]0 p' n, n! M, A
}
# j4 X6 V; h+ M9 W' }1 Z" S) D N }( F m# Z4 Z% e; W
}. C- y# [' t4 {. }
else if(IsLegendHero())
+ X8 r$ ^( ]8 j; \! g$ b {0 o1 t% H d$ Q! K
for( int i = 0; i < MAX_SKILL_JOB; i++ ) , G4 D i# C/ N j4 _
{
. n! i% |: u+ e ~2 F LPSKILL lpSkill = &(m_aJobSkill);
0 U" ?( ]4 Q" z/ A: r } if( lpSkill && lpSkill->dwSkill != NULL_ID )" q" C1 X' z1 i" }& C9 F
{1 s/ T) N: K7 f" ]& g! |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
. r, u0 m/ a, Z2 A, @# L if( pSkillProp == NULL )4 A* c% T9 g, N2 Z% \
continue;
4 D+ V/ S C! _. w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
6 k4 K1 m; m7 T& s4 t( ` continue;
9 c8 l A2 |! q- x7 [! {& A lpSkill->dwLevel = 5;
, g7 c) g7 v; d. t2 v8 Q8 A9 z }
2 b3 |% B; ~1 ]# { }1 j. [# Z" y6 D" a0 J u) d, x% D
}* @: ]0 g* a+ X; g
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans+ M# e/ w, D$ S5 N) e O
if( bGamma )+ [/ u/ _4 t% x, s/ T% V9 F
{' c9 ^5 J8 Z8 E U) Z/ P4 l
m_nExp1 = 0;# v* I- [5 X6 N. u
}
# ~0 s% b/ ~- N! ?0 C
0 I0 _$ u6 M- t: _6 d& M- a ( (CUser*)this )->AddSetChangeJob( nJob );
* A1 p# B+ ] p g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# l! p e6 a. o/ f( X& s1 N# V
% f1 l" W* x/ I. W
1 F" V4 s$ b" q- a0 Y#if __VER >= 11 // __SYS_PLAYER_DATA) B0 ]( U. C2 |
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );( f4 f" L* ~- }! k6 J
#else // __SYS_PLAYER_DATA( w" `- k" s) N, T2 B9 @7 v
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
& o1 d6 G' ?: } g g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
8 ~4 i7 F; o. { if( m_idGuild != 0 )' H7 B) M# f7 f: R! I
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
' k% x/ B3 T3 B( [+ k: G$ O' k#endif // __SYS_PLAYER_DATA
+ q u# P z T8 Z: P1 `' Z2 a SetHitPoint( GetMaxHitPoint() );
. @3 `) D$ s) p) h# E6 ? SetManaPoint( GetMaxManaPoint() );
; _$ [9 Y6 P) Y8 u2 I8 P# {, V% A. P SetFatiguePoint( GetMaxFatiguePoint() );( a' }& ]/ N s. G7 W1 L
if( nJob >= 1 && nJob <= 4 )
% P% q* v, s! t/ ]% q+ Z {
1 r" s8 l& n8 J2 o( x m_nStr = m_nSta = m_nDex = m_nInt = 15;% P, T9 U5 X2 N4 }
m_nRemainGP = 28; U {" n5 w" P, C
}
) T" A5 o" A8 Y6 |, a% |) s" r if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )2 y4 t9 i. B3 }3 H4 \: X% l
{
$ m5 k$ L% m/ I* V m_nRemainGP = 118;
) V) d1 a% ^ l( H! W! y# N //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
. h! O4 m& H+ z m_nStr = m_nSta = m_nDex = m_nInt = 15;
, E* d+ L$ Q) X }
' M0 u' K/ `3 o) p# p' o: \" J1 L) Z if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
8 z1 x% O3 B, [; x1 D$ r0 i9 V0 X {& Z/ u* _# }' k; X. z5 T h7 Y
CItemElem itemelem;
- l5 O" J, z7 t/ ` itemelem.m_nItemNum = 1;
+ X# D6 ^+ G9 E4 f# @1 c itemelem.m_bCharged = TRUE;
8 O; u9 L8 [' x# l; } BYTE nID;' v" ^7 Q/ [- k* l, l1 f) ?0 o
, V" {0 F$ y0 t) J: Y
if( nJob == JOB_MENTALIST_HERO )
% K9 b* R. R5 U! J itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" l: Z! O1 E: n% w7 }' ~& E4 M @ if( nJob == JOB_FORCEMASTER_HERO )
" C$ o5 r8 ]* u9 v8 Q itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
0 y6 U3 A2 V/ D" u7 a: n$ B z$ ~5 F. \
( ( CUser*)this)->CreateItem( &itemelem, &nID );) C- V( g" C2 Z7 F
}+ q& R, ?* u9 \. B' i5 G7 d
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );2 c8 `3 x7 t/ l0 R5 G8 B
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );2 _, v5 U6 u$ L0 n
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );! \ a" X& B* l* C; s. Z
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );5 X! H9 C! m3 m. y7 j+ T
( (CUser*)this )->AddTaskBar();*/
s0 {' r1 X, r( F ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
9 k5 H7 P I! L0 E+ g# E#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 D) M" R, c- l* u; L- Z1 F
((CUser*)this)->CheckHonorStat();
- H" u- G& O0 n8 g( n6 \ ((CUser*)this)->AddHonorListAck();. C: _+ ], g9 T2 l9 J) e
g_UserMng.AddHonorTitleChange( this, m_nHonor);! K% x# I. j0 N+ Z2 P8 j
#endif // __HONORABLE_TITLE // ′Tà?
& A% v8 U4 ~5 f# m" [4 b }
, J6 ~, M f, X$ ^5 {$ @+ ~#endif // __WORLDSERVER( _1 S; T7 B. R1 I" o% q0 U2 a
}
, [5 [6 ~; T% u4 `+ I$ c* [; q3 ^( R7 \
然后你进入functextcmd.cpp并添加以下
" x4 K8 I4 ~3 S0 X* Q! H& I) {% g! k& F# |. G7 V3 D
代码:
% M8 `: T6 D3 Q2 h5 b2 AON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
/ M/ ^5 G* p; `8 |6 c6 w3 r下面插入, R. O& h& P v) k: X
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ J0 s# u8 T$ |! B8 @0 `% o2 t+ c, S$ ?( |; C/ @
然后你去9 N/ ~) F' M3 G2 v. @( x# a3 P
# C' g" B5 r( N9 P( `" L5 e代码:# i" R d% m0 Z7 j+ i. p
代码
' m( v F. I E1 h3 h* V0 sBOOL TextCmd_ClearPropose( CScanner & s ); L z8 c, G. i" a
{/ v$ T0 f% ^7 n" d! b# c
#ifdef __WORLDSERVER! M, d. Z1 B0 }/ y; }
CUser* pUser = (CUser*)s.dwValue;
6 I1 p# I2 q9 i( c' c g_dpDBClient.SendClearPropose();+ y% c$ Q: x0 Z& L# c7 O
#endif // __WORLDSERVER
0 _# T w& H2 [ return TRUE;
" t6 R6 N; o8 `) j7 v3 P8 A}
/ g4 T6 B1 }# \# H' Y下面插入5 M2 R( [+ L, O! k
BOOL TextCmd_rebirth( CScanner& scanner )
) x8 S) x3 C5 ]8 d8 } c* _{8 Z8 X' o) ^. L9 m/ ^# W" t0 T
#ifdef __WORLDSERVER' W% B9 Z- S: F
CUser *pUser;7 F( ~/ Q t5 R L/ I. O4 S
pUser = (CUser*)scanner.dwValue;/ v6 T, @9 E. c' g4 x* B
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())! y5 j8 [8 ~: [ h! Z" \; l
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);& T7 P' m1 o. k4 q2 m" x5 j; K
else* t# `" {% j4 }
pUser->AddText("你还未达到重生条件!");: X, c" u9 L! R/ h; M' f
#endif; M! o& T, w7 L; v
return TRUE;' `6 @, o2 ^+ y/ y; o+ G
} - f! ^+ h) n ~
1 O3 P3 [9 g0 {$ X4 Z$ m8 l
4 c6 T$ w8 L0 B" E4 p( `
# @: E" I v7 L9 V+ V) c% J! J# P) c- A3 {; U( s
|
|