|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel9 W/ O! C* P% L
' Z/ z4 C3 I( ^3 BMover.h
3 R4 `; ?) ^. `; l, {/ C0 g代码:
9 g* q, r! z/ z3 a找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü+ w& q3 M" L* w. z0 O: ]
3 k3 ]# A+ \* O" \下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & O9 ^" r5 T( ]% d& z2 e8 `
: n, D. C& ?* ]. x, S
然后你去mover.cpp添加
0 l1 @8 r1 q4 U# s D' \! ]! `) B3 L6 w- K" k$ Q
代码:
! l% Z7 L# M, Y2 U$ Z& kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )7 m, s3 M% n) x
{
, A, l2 S7 \" q#ifdef __WORLDSERVER
6 w$ k# U2 b7 v // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó$ l9 O+ N/ a1 `% e" `3 V& w$ c# c H
MoverProp* pProp = GetProp();
+ Z0 J* j% X+ ~) \ if( pProp )
9 M0 @# T" l- i {$ _& a; |- E, A! E
if( nJob > 0 && nJob < MAX_LEGEND_HERO ) l* c3 N# M, t5 Y* e& M+ E0 \, f7 o
{
% p" o5 g1 \# J8 [8 b$ w5 k AddChangeJob( nJob );2 h, t$ G! b+ u) q2 S$ \# d* i
}else{5 V3 N" {- p; j& t5 P1 Z
return;( X! |; j, G n% r' }
}1 J D9 N; N- N
int nPoint = 0;" [' e& Q4 K1 [6 W+ F
if( m_nJob == JOB_MERCENARY )
' c: y: J/ s1 G nPoint += 40;
0 |( O e* {- Q" w. G4 ~& U+ K else if( m_nJob == JOB_ACROBAT )
' Z# f5 ~4 O- F* O* ? nPoint += 50;
5 Z# C' n/ `/ ] u5 r4 o/ s else if( m_nJob == JOB_ASSIST )/ E8 N8 r5 d1 Q" `& d5 e1 P
nPoint += 60;, I' x$ O* T% Q8 o, l( U" L- M
else if( m_nJob == JOB_MAGICIAN )
2 A9 K& i0 }) n2 i. ]& T S nPoint += 90;8 E9 Z0 l: u0 k' s
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
; P& u7 d- n# l9 Q nPoint += 120;* |7 j O6 f/ r2 i( {4 [7 H
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )/ c6 H& i$ n" V& a1 c1 F5 `$ j. c
nPoint += 150;2 K7 C* g& w. C0 m( b
else if( m_nJob == JOB_RINGMASTER )
$ l# ?, B9 g V! N nPoint += 160;
3 R5 a" M) f" t) F else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
/ E" C4 T3 |( { k nPoint += 180;
2 Q. a5 c" P" R3 f4 V5 M else if( m_nJob == JOB_ELEMENTOR )* q! Z' d) k L" I* W1 a" m- A' @
nPoint += 390;: N8 P2 b- q% x6 B$ T. b2 D
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO ) |& u* E! k3 y1 I9 o* X
nPoint += 120;. {# S1 W) Y4 F" F4 t
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO ). u9 E' u- h6 r# v* Y
nPoint += 150;" F/ k& A2 _* N4 r
else if( nJob == JOB_FLORIST_HERO )
& r* O: d" B4 F o% E- ~1 k nPoint += 160;
# ]. i: y$ n2 [" N- U3 W& ~- _ else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
. Q2 B; P/ Y0 a nPoint += 180;
& X9 e/ u7 f2 n else if( nJob == JOB_ELEMENTORLORD_HERO )
% a( V4 N) {" K nPoint += 390;: A% z0 L& q6 h( [" |" ]
% k& @9 E8 Y, e7 @3 }; { AddSkillPoint( nPoint );8 s/ j# b( ~- H3 j$ {
m_nLevel = nLevel;1 o7 @& a' Q s6 _
" B7 n3 s2 @& C9 K SetJobLevel( nLevel, nJob );
5 p2 c# j0 t2 ?; l. p m_nDeathLevel = nLevel;( T5 `6 R o6 D. H& h. M
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
: d/ a1 ?5 O( z6 k if(IsMaster())
0 j( \& c( k/ t4 X {" I+ d1 ]0 }, r* b# c" e
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1083 v5 x0 w! I, i, k
if( nLevel > 59 && nLevel < 72 )4 [' i5 F& [6 k0 k+ c$ E2 e6 S
dwTmpSkLevel = 1;
% H; f9 H- [/ @9 Z2 k' |. \ else if( nLevel > 71 && nLevel < 84 )4 G9 @) W0 N5 ?- i/ j+ M
dwTmpSkLevel = 2;$ m9 v1 N7 F! _( f$ F3 y- H6 O
else if( nLevel > 83 && nLevel < 96 )
8 Y$ M" Z: L/ T! Z4 C3 Z dwTmpSkLevel = 3;
& ~0 A9 F9 C; W6 Y( G+ o) I else if( nLevel > 95 && nLevel < 108 )
- O5 F/ M$ |. X3 o dwTmpSkLevel = 4;
~1 M! L0 T7 {* _( B else if( nLevel > 107 && nLevel < 120 )
% W d/ ~3 X6 D7 T0 D dwTmpSkLevel = 5;( Q1 R' A/ z! Y/ M# ?, C# f! z# _
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- }' ?! h. k3 o { 6 a; U- g, ` H" H! N9 l! y
LPSKILL lpSkill = &(m_aJobSkill);1 a9 T" F: b( Q* y/ u6 H' N
if( lpSkill && lpSkill->dwSkill != NULL_ID )1 P r1 P, o- @! a. n3 L
{
% y+ Z* A, o# I% p7 f5 f$ X( T ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); % s, @& t5 H: O* C; ~! l+ n
if( pSkillProp == NULL )" o9 ?; P4 G* S# Y. E) ^+ d& {
continue;
9 J6 w/ s8 m7 Q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 [3 C* s4 b# [! ]! e5 \
continue;2 J, O) Y. ^. P5 E$ v" I, S
lpSkill->dwLevel = dwTmpSkLevel;
, R9 i/ N2 C$ _' l- L }/ j4 |- O; M$ u- ? c x3 l# w
}9 R) B, t5 W: v6 Q. m7 V
}" _/ y! ^6 X1 |7 T* l
else if(IsHero())+ v# k& p6 @( `. p+ I* R8 B! e
{
2 q8 Y2 C* r& i% N0 F for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 X M' N- C4 e3 K( Y5 `/ t
{
- J5 P4 q7 @5 t/ q3 E+ C& I3 B2 S LPSKILL lpSkill = &(m_aJobSkill);1 _. a% g* ]$ |# H; c) b
if( lpSkill && lpSkill->dwSkill != NULL_ID )3 U% `# I/ B" i, d
{4 y1 P! o, _$ V6 o5 F
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 Y# O S) B6 @4 s/ Z$ g if( pSkillProp == NULL )
8 f% [, [4 h& k0 M; k continue;4 i. ~% s! z, n) t' p2 T6 r: y
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
1 c; @ K9 T) } continue;# S W. O# U* `1 p+ B- I
lpSkill->dwLevel = 5;
) {* M; ^& R* i: M$ }, \ }
9 M8 Y# @4 A3 r$ y) O }
- h- c T/ q# T& F }
' P5 o# e) ?2 Y* i6 ]& P$ W else if(IsLegendHero())1 I) Z' {, J3 R- |6 U) f
{
Y z' @) ^2 i: h% P+ `+ E for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) o; A' ~) A4 `( k% z! `0 G
{ 5 a( X2 J( K+ A* O
LPSKILL lpSkill = &(m_aJobSkill);
, W+ R1 r0 J. g if( lpSkill && lpSkill->dwSkill != NULL_ID )6 }$ ?/ Y, d$ @/ G6 @ A
{
( l* l$ M/ I6 @$ _ ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 1 m0 x0 {9 U. j, @) @$ \( H
if( pSkillProp == NULL )
" s; C9 ]- S. f continue;
) T6 p8 }% D3 a' l! @ if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
4 J, R1 v- ]% g2 T1 c, Q continue;3 q* V# [; K7 }$ i' G
lpSkill->dwLevel = 5;
; U" L6 o! E- A; A- Z; j }
) M, x1 `* r. D+ F2 j$ v2 q3 k }1 b; h% U4 o6 e! c
}, K5 m6 \/ B& w$ S) B$ R7 h
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
/ y& U0 r4 L* _6 M if( bGamma )) ]1 U+ _1 \0 S$ F. Z2 j, k
{- Q! w7 E( f8 K g/ ]
m_nExp1 = 0;
2 t' ^( D! {* p( s7 t* J0 ]& {* ] }
' O- l1 h: i. ]# l% f m/ ?6 W& C
( (CUser*)this )->AddSetChangeJob( nJob );
( T& `/ L* s# q* V/ I B0 R l g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );$ _5 E! A @/ V# D* }
$ ?) g" n; Q. C9 d1 U7 ?9 f
+ T' P8 _; F* h% k# o2 M% X6 N#if __VER >= 11 // __SYS_PLAYER_DATA
* c$ ]5 P2 R( S4 M g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
! `, u' P; [ l2 [* z#else // __SYS_PLAYER_DATA+ k- R0 {9 O/ f! Z+ m
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. G- }* ~" R, c: b& {5 R6 ` g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
6 t! d. n7 V+ S- y# r/ e8 | if( m_idGuild != 0 )
y4 H( c P1 w' G ?$ Y: J g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );' V0 M5 t P9 Z0 X0 L& Z Y3 o
#endif // __SYS_PLAYER_DATA, b3 P2 ]$ d" s$ |* z p+ b
SetHitPoint( GetMaxHitPoint() );0 f/ J' T, w# t. Q" T1 _( ]
SetManaPoint( GetMaxManaPoint() );
3 Z0 I7 E8 V' A% [$ H( N SetFatiguePoint( GetMaxFatiguePoint() );
$ l* l7 G2 t: s7 f! r if( nJob >= 1 && nJob <= 4 )
/ N1 O- I6 Y) t' S. r4 m {
4 l( Z' s/ r- Q1 V) O m_nStr = m_nSta = m_nDex = m_nInt = 15;* \% x$ ^5 N6 Y) o
m_nRemainGP = 28;
) I: B" m. Z% O0 y }& J& L+ K: I' N7 R+ M! N( l
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )+ W# U4 z& C y* Y
{
" l4 f( N- z* }6 U2 j0 U( [' a3 S m_nRemainGP = 118;- B1 t# c: {: l) \7 {8 C
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;1 A/ l( ^ L1 m6 N U3 p
m_nStr = m_nSta = m_nDex = m_nInt = 15;
: V1 t4 I/ R/ r' J) O2 W$ J2 d* S/ Y }
, R2 D9 K; ~" y5 _: L if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
+ u5 k' ]5 ~3 s, D" v {
+ U( y& ~& ?( L3 { CItemElem itemelem;" J) B8 [% E9 P+ Z. g4 i8 v
itemelem.m_nItemNum = 1;3 V! Y4 O: Y, J i8 p- r. _
itemelem.m_bCharged = TRUE;
/ Y& K, `& y( t7 I' y BYTE nID;3 T) L7 b+ J: T& o0 v
! x2 @0 }; [. L4 E4 x if( nJob == JOB_MENTALIST_HERO )9 i5 w9 c4 b/ y4 h# Q2 Z3 H
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;0 L/ P0 S. E- `; O
if( nJob == JOB_FORCEMASTER_HERO ): s. y3 C" a K: ~4 L+ y9 p
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
* }' y2 g! J1 G9 `+ ~/ s7 p( Q
! V2 O1 `, f9 q6 S ( ( CUser*)this)->CreateItem( &itemelem, &nID );' e2 }, V1 ?( a7 _: q( @0 g2 s8 s
}
2 s6 u$ q* P' J g_UserMng.AddSetLevel( this, (WORD)m_nLevel );% u' o$ O5 o2 h4 `7 S! b0 F1 y
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );1 A8 j Q% J& @7 f4 x: d+ _5 u+ I @
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
! c6 a. @, y; ?! k- z8 W /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
9 M( N- g' a* p2 \% T ( (CUser*)this )->AddTaskBar();*/! c1 ` q' r& p3 Q1 a
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );/ B! G! m. T4 y; b |) E) y9 F: }) G
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 O3 y: l* m+ F# s7 ~, s, y ((CUser*)this)->CheckHonorStat();
! g( n) k& H5 u# x# O ((CUser*)this)->AddHonorListAck();
* n5 y8 D5 @; c8 ` g_UserMng.AddHonorTitleChange( this, m_nHonor);
+ z7 W, b6 X9 a4 q% R#endif // __HONORABLE_TITLE // ′Tà?9 P, c5 o5 L1 K! ?/ r) Y
}
* c+ I" h8 N1 p! k: _/ l# H( c$ x( p7 q#endif // __WORLDSERVER
+ G/ r% e2 Z3 z2 n# _: z1 [} * k7 a8 b" L; Z6 O6 K8 `
7 t* g7 a& @* r1 h4 t" x( ]然后你进入functextcmd.cpp并添加以下1 D" H+ Z Q' n# o8 G% E6 T
) I4 z) \8 X! e/ c代码:
0 l0 N1 n% A: y( {ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
9 ~- ~. u) y" h- `& n; |- h: ]. X下面插入
* Y2 G K9 \/ bON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) ! @# T7 `$ N/ z6 X: {
# v! P5 c- E% }1 a2 A6 ]9 J
然后你去* {- d& }% `# Y8 m9 N4 d
3 v/ y, M, N7 I3 h代码:* h8 H/ `( Y- c4 E; e' E1 L) m# y
代码3 [6 z. A& n9 \* H4 e9 i' A
BOOL TextCmd_ClearPropose( CScanner & s )
8 E. u& H2 b- X2 i, D4 `{
4 U8 b' J' s1 D: ~0 v8 f#ifdef __WORLDSERVER# W, B/ q6 V& V: X% s) _4 f
CUser* pUser = (CUser*)s.dwValue;
# P; i5 @2 ~. \; n; ] g_dpDBClient.SendClearPropose();
; p8 D- Y4 f) c* d#endif // __WORLDSERVER
( K' L: c' u1 }, |( ~ return TRUE;
8 U) B4 c) s; Z% [# a}
' o3 S# \; F# N- d) a2 T7 E) Q/ N下面插入, y& ~, b! E0 X( j+ ^2 Z: U& @
BOOL TextCmd_rebirth( CScanner& scanner ) p0 }2 P- t, k( G2 a* I8 u
{( e2 z/ j3 j) c2 A" \
#ifdef __WORLDSERVER
: u! K- a& U* h3 b6 B0 jCUser *pUser;
7 ~' P; {$ j( \! U" Y {pUser = (CUser*)scanner.dwValue;% B! e- I3 d" Y& j% q
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
/ g7 _& O3 E0 V* ]& t/ N5 o. `pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
+ V) N( S# L; p0 b, H6 Z# [9 Selse
, T4 d% p9 _1 f# U: z. u! z9 RpUser->AddText("你还未达到重生条件!");
+ a3 Q# G+ W# i( u#endif! j' a- Q0 ]2 N! Z6 w% e2 j- _: S
return TRUE;
/ a1 ]% Q, ?- A, T3 f2 ^: e; |. H/ S} 5 c4 D+ Y& w! }0 J' t2 D7 D
/ I2 Q; \/ h. j, K
0 W% k! h/ a& q I" |. g
, s+ K$ |$ e" K n8 c3 `
8 u w7 R/ T) _# o! i% { |
|