|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel1 T9 n7 g3 V/ f( f
7 h; B$ {! S/ i5 b7 E! O; u) R* r; D
Mover.h
- @" v5 X3 n4 o" ~6 O4 E代码:. h. Q" K" z$ j; x8 _! H
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
8 J2 f% z6 J! o6 i9 [5 c+ `8 M) j1 P+ \8 o3 \7 c* \6 o& k
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
4 u- O, m6 E& R
! y J0 q- t+ Y% Z" ?7 d1 b然后你去mover.cpp添加
: `+ U: W, i% {+ p5 t% H+ }# U: Y0 u
代码:
" t; ~( A. T5 ] f7 c8 T% K1 pvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
" K8 t' M) D# k8 j. l{
" G' | c7 z& V$ V9 Z7 ~* b#ifdef __WORLDSERVER" C5 q: @1 c* T+ c( G/ f n0 [
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó/ C! Z. w# U* ?- `( U s
MoverProp* pProp = GetProp();
@% [+ H+ k7 u1 N if( pProp )7 L M0 R# @! r }4 E8 s7 |# K
{6 U1 U- L6 t. W* Z
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
7 T* B* w; q+ `* |8 p& F8 X- } {
- C9 r6 n2 q/ o0 \* J' ?* ` AddChangeJob( nJob );$ e n$ ?/ C+ Z) P, `5 [, `
}else{
! g/ K+ }; h# W* E& v I return;( A+ y& U6 z# e) A$ E
}
3 O/ Y% G8 A( p2 |. S9 f" m( S int nPoint = 0;8 V- j1 r# z, {; K6 e
if( m_nJob == JOB_MERCENARY )) R3 b4 P2 A8 R5 B" o7 S% z4 @* Q
nPoint += 40;
: C& w) k% Y# h7 X0 \, a else if( m_nJob == JOB_ACROBAT )5 @$ S# P( |/ z; W, n
nPoint += 50;
( q9 x% u1 p# X* Y else if( m_nJob == JOB_ASSIST )! K- m2 I9 v% r. W0 _8 q8 m7 h
nPoint += 60;
. _+ D; Q* W6 t- X5 [: D else if( m_nJob == JOB_MAGICIAN ). D5 L" w5 ]4 j. z4 {0 m: P/ H
nPoint += 90;- l' b" G, r0 X3 g v o
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )+ e n6 o, m) }1 Y) w M$ a* J
nPoint += 120;5 O P/ ]; Y5 F- y) ]0 c
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )5 E. H; m1 C) d- @' K
nPoint += 150;
2 S) l, F- h- K' g. V' o else if( m_nJob == JOB_RINGMASTER )/ u9 j. D9 a; F7 f; Y9 \
nPoint += 160;
. r6 s' o. I Q. Z else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )4 g. ?* d0 j( [# ~1 ]5 l
nPoint += 180;* Y8 [( _& m! K: V/ w2 a1 `
else if( m_nJob == JOB_ELEMENTOR )3 D4 V( V* u2 ^! P- ^
nPoint += 390;
( h( Q; {4 t r/ {* X else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
. ]( h7 @6 H6 k) d* @9 L4 L nPoint += 120;
% \+ ?; [. t1 c0 N+ R else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 L8 P1 M: m7 J# k5 [ V nPoint += 150;" M6 ]4 `* W2 g- a2 Y V0 L
else if( nJob == JOB_FLORIST_HERO )
/ @7 A4 l3 U0 I nPoint += 160;
+ V: \5 z. E5 F; {) c9 f: ] else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
% |, p5 c% q% E3 ] nPoint += 180;% H. F; `4 W# H P- x* R% H
else if( nJob == JOB_ELEMENTORLORD_HERO )
) W7 l' k) R: a# d; q nPoint += 390;
) j) j x9 K, U% v5 B$ `
9 C8 M; e6 e* i& I& h' F l3 c AddSkillPoint( nPoint );% V; v8 N2 k+ U3 }
m_nLevel = nLevel;1 k. c+ j( H4 B+ O
: B, A" ?* k' ?$ ^ SetJobLevel( nLevel, nJob );
( N. {6 |2 d8 H: g# G. }6 I m_nDeathLevel = nLevel;0 c9 J* \/ B! h& K1 X& i0 L5 g
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
' r" O) N# D* _" S5 } if(IsMaster())5 P- c# [0 K: j! l+ |
{4 F; X* x; z7 o3 [
int dwTmpSkLevel = 1;//60, 72, 84, 96, 1089 V* g: c& h7 w4 S% r9 y
if( nLevel > 59 && nLevel < 72 )0 q1 `. z8 N+ x0 G/ D
dwTmpSkLevel = 1;
) E; i5 x$ O) P/ A else if( nLevel > 71 && nLevel < 84 )
; q$ R' A$ y% C, \ dwTmpSkLevel = 2;
. |, f$ {$ p' K/ P else if( nLevel > 83 && nLevel < 96 )' n/ y+ Z5 U6 S
dwTmpSkLevel = 3;
% e5 p0 k: u. M2 E3 @- e else if( nLevel > 95 && nLevel < 108 )
& ~/ x% _5 t1 f$ l; b3 ~ dwTmpSkLevel = 4;2 r0 z. Z# [/ q
else if( nLevel > 107 && nLevel < 120 )
* T B6 m& ?1 {# l8 d2 m) A dwTmpSkLevel = 5;
- z; [1 v! Z1 U. K3 b for( int i = 0; i < MAX_SKILL_JOB; i++ )
7 G$ V! E/ K1 v6 Q* {1 M2 ? { ; ?" s3 Q$ ~, j+ e4 K; x
LPSKILL lpSkill = &(m_aJobSkill);
- [+ T6 `4 D5 F% J+ w! w4 E. K if( lpSkill && lpSkill->dwSkill != NULL_ID )
# Z0 E" d; h# h {2 S4 e6 L- M2 h8 Q# \5 u
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); L& u: T3 f4 i; K
if( pSkillProp == NULL )) X8 D9 W+ Q3 {, v
continue;; C p$ Z! C0 M* v8 r* `6 X
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)% q9 b& v7 k. P0 K p# [& {6 h r
continue;
* ~/ j( Q. O6 |9 H' M; b" h lpSkill->dwLevel = dwTmpSkLevel;( g' ? _/ y/ A
}
) J% x3 U' _ k9 } J& X, J' G }# ~% Z0 H" s+ N8 I9 a; \% S9 f( c
}
( X$ L }6 F5 }6 {5 ` else if(IsHero())
7 T* Q/ H% q* c! Q {# x4 U1 {, T2 Z- M
for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 h$ j8 b- N! y: d! l" [6 L& k' ? { : a0 _! A$ J0 j# Z a
LPSKILL lpSkill = &(m_aJobSkill);9 J( T& o9 B. \
if( lpSkill && lpSkill->dwSkill != NULL_ID ): u' y2 S0 B {! _2 s
{& J v$ g1 M: ^0 M* |
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
$ s( A8 ?3 q% N& m4 h if( pSkillProp == NULL )- s0 J' F! ^* L! y( ~1 f7 K! f( I
continue;; |- {5 c# w/ Q
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 j' w2 H) H0 B7 X
continue;
/ M1 w5 w9 L6 n3 d9 m7 K+ F lpSkill->dwLevel = 5;+ ^, b7 v0 d* C! M
}+ p. z1 O. {. ?
}$ |0 u6 j2 v3 k: j7 Z% S3 G
}+ ~$ u& |# }0 o% M. D" c" h
else if(IsLegendHero())
. B# Z$ e: O5 G/ e- {5 s; o( h: ? {
" f3 [5 @5 H; E" F for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 w8 j" |6 M6 j) r3 ^. W+ | {
* a# b) s; y& e8 N' r' u8 n; j LPSKILL lpSkill = &(m_aJobSkill);
$ E# o7 ?( r) K2 c) \# P, p if( lpSkill && lpSkill->dwSkill != NULL_ID )6 Z8 R4 w& ?0 y9 B9 C" o
{
9 c) h! V0 I, P ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 X" e) F, u' R7 q5 R4 T if( pSkillProp == NULL )
( V+ V0 V; h s Y continue;
& m" S, u( M# L. }: N: Q* H7 k if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 u( g5 i4 ]$ ^" _& q
continue;
& [- R0 C- M+ i- s5 | lpSkill->dwLevel = 5;& j; q+ l$ z8 ~$ i& U
}. ]5 G) e# B0 X, ~; ~$ V
}8 ]3 {$ ]* G( V; e$ p0 X! d0 S/ G8 b+ r5 b
}, t* u* r) f0 x4 O) E
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ C7 `3 g& M" g4 C if( bGamma )
. O3 G- p$ \8 O {# p+ j. ~" a- J7 Y5 [; ~
m_nExp1 = 0;
; x5 s( Q% Z% y: { }" v$ ?, J. o D
G$ v! @ T, e& v ( (CUser*)this )->AddSetChangeJob( nJob );
! z, B0 J4 H5 b' v% P7 |2 W% @ g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
3 G( ^& b& x/ l' C2 Z( z" a/ _2 M
! f% m6 C" C! \, ^1 q* X+ f7 G, ?1 a+ x" B- B' x$ M; l H
#if __VER >= 11 // __SYS_PLAYER_DATA& F/ \2 a9 s$ [+ d
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
3 h2 n3 }$ @$ q6 e#else // __SYS_PLAYER_DATA- z" H( \) S6 _ d
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
* q! B2 D0 i" s% n: o# b9 ?8 O g_DPCoreClient.SendFriendChangeJob( (CUser*)this );* s* [" I! Y% l5 m- }
if( m_idGuild != 0 )$ e( H3 t5 @$ ?( s1 _6 m
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 |: N1 _4 ^2 Q2 W! U2 F
#endif // __SYS_PLAYER_DATA% l l6 q6 T+ @6 u, ~$ W, L+ r8 l
SetHitPoint( GetMaxHitPoint() );) p. T& N) D. e9 E" b
SetManaPoint( GetMaxManaPoint() );( w$ X, X+ m. ^& v
SetFatiguePoint( GetMaxFatiguePoint() );& h( h: Z( a R6 a
if( nJob >= 1 && nJob <= 4 )
9 L" Z# P# U p" x5 I& c7 _, ` {% W3 t+ x; }0 k: H) g
m_nStr = m_nSta = m_nDex = m_nInt = 15;
3 o! a* X- M: ?8 ~1 k m_nRemainGP = 28;4 t( w t0 |7 Q& |9 b, K
}
; S3 e* Q, C6 R2 R& z+ x* l if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
F+ C+ Z' K/ }1 f& k6 Q5 W {/ m1 q _, J+ u8 d5 p
m_nRemainGP = 118;- G- ^7 C) m% |% q% B
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;2 f* Y7 k f D5 {/ s
m_nStr = m_nSta = m_nDex = m_nInt = 15;+ z3 f5 `5 u9 |
}
/ B% C. [; H4 s. e9 y% ~ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
* z$ n$ [9 r0 b {
% e' a" ]+ M% z CItemElem itemelem;( r- [' j# K5 ], t1 o8 F
itemelem.m_nItemNum = 1;
+ f" d; m1 W6 L3 E( m9 | itemelem.m_bCharged = TRUE;
- L. A4 z0 b/ N/ [1 c7 E- n BYTE nID;9 |2 Y; d2 w! E
% ~: L: T' i' x3 h2 V if( nJob == JOB_MENTALIST_HERO ). ^0 U9 z0 Y9 D
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
# X$ X4 ~' P! O7 M0 x+ W! @3 n if( nJob == JOB_FORCEMASTER_HERO )- }- _& F5 n0 D8 t# t0 a7 @
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
/ H4 ^* ?8 A( q4 `/ ~7 r2 m( k/ t# C% Z: g/ [! N
( ( CUser*)this)->CreateItem( &itemelem, &nID );+ M+ c" t4 n8 h) ?; M
}
& h: q7 \3 i8 S! _ g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
7 t& J! q! {; a. y: R ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
8 m5 f* q5 q A6 J8 w9 @) ? ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
- ^; d% X9 d8 D+ I8 r# J /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
2 ~; b2 M: I; w, l; p" f ( (CUser*)this )->AddTaskBar();*/
% N+ K. u+ F, {! G) R4 N ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );6 S: ]+ U' z. j5 A' q0 o) u
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?2 T m6 P4 h3 ^( V
((CUser*)this)->CheckHonorStat();
, C9 C0 j' g7 t+ w+ s- o ((CUser*)this)->AddHonorListAck();3 `1 J& U2 f6 D! d3 O
g_UserMng.AddHonorTitleChange( this, m_nHonor);
7 h# i$ ?, z7 y3 y4 X0 ~/ T#endif // __HONORABLE_TITLE // ′Tà?
& R9 D) P8 z2 {: M }
, |( ]( c- C+ a( @" U# |#endif // __WORLDSERVER
; m5 F* U0 F7 \1 A6 v8 r: S0 `7 m}
1 O c# W1 q: b% @2 Y G& q( g6 p( w
然后你进入functextcmd.cpp并添加以下
F, c- ]( o6 ~7 E8 f$ @$ o
% s$ m& O2 W$ x* t% X, i代码:
0 D1 l, A# O* L9 p6 }ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )0 Y. ~7 z# e" D7 L; d7 @
下面插入2 x& e8 s! O9 _. K
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 U$ C( C' }- m: ^2 s/ \& ~# a% P8 g4 f7 s- Z0 L* ~
然后你去
+ U7 C& r; [# z) c+ M* G+ ^
& A; K. \* @7 L0 Z' e3 e( y4 [代码:7 }" e( R$ s8 m# l- M( C, N6 T
代码
7 F% Z" n7 w! l# S0 u4 e: BBOOL TextCmd_ClearPropose( CScanner & s )$ [ Q& d j8 Z! l. v/ Z0 o
{
6 u( H0 j3 j8 s2 [3 |#ifdef __WORLDSERVER
2 S' n0 A& h- _ [; a A% b' i7 `& \ CUser* pUser = (CUser*)s.dwValue;
: J" ]. i% o5 ?2 k0 V* G g_dpDBClient.SendClearPropose();# p; b2 C- D, K; P7 B2 R3 a* a
#endif // __WORLDSERVER, A( @' D X! g$ i" f2 m Z
return TRUE; r0 f/ z" n6 a9 t3 {1 p- O
}
' m' c: o6 v% ]8 ~! J7 g6 ~% W下面插入
% O! T3 Z4 Z: u0 n# NBOOL TextCmd_rebirth( CScanner& scanner )
) O8 [2 d q; \{
( \. q' r* m; ~0 l3 ~$ g4 }4 Y6 p1 p#ifdef __WORLDSERVER
4 q. l4 |5 @5 r4 p. j3 g1 vCUser *pUser;
% m6 b6 O! i D! [& {pUser = (CUser*)scanner.dwValue;) O0 h4 E3 J; A+ g2 G: Z
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 O9 D0 H* ~/ HpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);% R D3 ?4 W6 X7 d$ ?$ e4 M
else1 D5 A. I, }% F1 e \3 V/ b' ~9 L
pUser->AddText("你还未达到重生条件!");6 \. i# ]$ N) W. z2 u
#endif2 ~ [& m5 Y- ~) D2 ~1 k1 P8 q X4 ^. z
return TRUE;/ T4 d+ @, F9 ?1 }0 _: ~) B( f
} $ W! h8 i( X q! x
. R' H: ^6 B8 B3 ?2 r) d4 ^# g" P) H
3 t' h' J3 |6 H6 u4 I+ a6 N) w( z4 J" x3 E/ x) q
, e+ i8 d( l% m& x! w+ e5 X @4 v
|
|