|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel7 S+ e4 @- j0 y5 U2 V
6 [7 S' G8 h4 n. r, s2 L8 |Mover.h$ j) S2 j5 I% n+ I- H1 ^1 s' s
代码:/ f( ~1 l# k' V- w+ B; b
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
0 z a0 Y# L; M( O% ]% p- T; U: C0 L' [* B; r$ u
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % e) A% Y- [" T$ W Y
/ n9 y5 B* m3 q0 h, H& T) W8 r2 \+ P
然后你去mover.cpp添加
9 U! O- {* W( F) n/ ?! H) U
) K4 u9 A: e+ u. f5 M代码:
3 m* d, I) d8 |3 \/ R7 w8 v& Evoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )! |' E' u! X2 i$ i7 o. p
{
8 v% b; D/ r$ I" f; B9 R#ifdef __WORLDSERVER: Y$ t1 E- e6 R* h ]6 }
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó* g( q- U8 }: M) b% M
MoverProp* pProp = GetProp();
! ^% J0 m3 b# S9 ]% m( O) E! U: m1 u if( pProp )/ c$ g$ ^+ O& t7 f& h2 |
{
- a0 \- @; r9 P. o! {: l if( nJob > 0 && nJob < MAX_LEGEND_HERO )
( N' P# W* F9 x5 ^: Y {
: p9 e8 }" w+ G& M: x F) A AddChangeJob( nJob );& p9 H8 R# \* V
}else{
( n1 o2 x6 U3 @6 i4 y6 q return;' p0 w# U7 P+ ~+ Z* [
}% F# z0 Q6 w- t& n
int nPoint = 0;
\: v" W" c' W+ B; i+ j& L if( m_nJob == JOB_MERCENARY )
- c$ n& I: v. M) R; T B nPoint += 40;
1 R! P8 x9 q S- V+ L else if( m_nJob == JOB_ACROBAT )
; `7 V; [1 f' @" f$ }+ v nPoint += 50;
% [% ~. U# C, t: G- G else if( m_nJob == JOB_ASSIST ), I; r0 i" \) _# o( [. l
nPoint += 60;
V3 L2 }6 U/ ^7 E- _6 B+ l5 W: t else if( m_nJob == JOB_MAGICIAN ) Q! ~: Q6 q3 J7 a) ?0 \
nPoint += 90;
h+ r0 j* k3 S- n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
0 N' Q J3 l! |( p nPoint += 120;- @- F4 t% A5 Y' b) L. l
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* G- H8 i( V8 X+ k+ ^; u; Y, n nPoint += 150;7 O+ L, ]6 }1 o8 Z5 u
else if( m_nJob == JOB_RINGMASTER ); _8 x% H: W/ e' V5 T
nPoint += 160;
/ d# \' N% t9 \' _& W else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )1 f$ S* s3 y7 r5 X1 V0 v1 }
nPoint += 180;
- R2 r$ ?, P4 y) P* X else if( m_nJob == JOB_ELEMENTOR )
: t" E- j5 c5 h/ Z$ S* f: ? nPoint += 390;
' y$ [6 \. K7 L9 m8 x# ?# K% v6 E; {5 q else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )7 j3 P: d+ i0 x
nPoint += 120;( B \( ~8 y% _ p
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )6 u' o0 M/ k. U$ w! W" P
nPoint += 150;0 d1 s$ l0 ?& Q' T. Y, F- X3 w
else if( nJob == JOB_FLORIST_HERO )) k% t, P$ \% U. V* k i
nPoint += 160;2 U$ H; m6 m3 n3 e) N' Q
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
5 C8 V j8 R% K. R# {4 c& D nPoint += 180;# f) |, o9 K$ _) U. J
else if( nJob == JOB_ELEMENTORLORD_HERO )5 X) o& W/ y8 _) w
nPoint += 390;2 u) V2 C6 X6 Z3 T
; y3 i) i6 q% m/ T2 W
AddSkillPoint( nPoint );' V; b, f$ ?" H0 S D
m_nLevel = nLevel;
8 Q' ~0 h% J% R0 ^
2 E/ t; y2 \$ @6 ~- L SetJobLevel( nLevel, nJob );
6 X/ y5 j$ D9 V m_nDeathLevel = nLevel;5 c- C9 F4 Z6 ^# V/ M* a: T4 R
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
3 S: r G' S v+ a D7 S* p if(IsMaster())8 f6 D8 Q1 K' J$ {) R% g
{/ H2 C4 C4 G: [" t
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108' v8 x; h( Y& J, m
if( nLevel > 59 && nLevel < 72 )8 u& D# x' z# K+ h% u4 f
dwTmpSkLevel = 1;
' {' H3 @( i" I, Y else if( nLevel > 71 && nLevel < 84 ): y0 ?# s. o4 O5 n
dwTmpSkLevel = 2;
; V9 y0 V y8 b else if( nLevel > 83 && nLevel < 96 )5 x* g" J& Q5 Z/ z) R1 e& k6 {9 ^
dwTmpSkLevel = 3;
% o$ z: J* ^# t, {3 |; \3 C else if( nLevel > 95 && nLevel < 108 )4 B9 U: ~3 u" g2 V* w
dwTmpSkLevel = 4;; {8 S% H4 {& x( Z4 N* V, t
else if( nLevel > 107 && nLevel < 120 ), G7 o" w/ f: E, i' Y+ n9 L" g
dwTmpSkLevel = 5;
& m# z @, T+ B: K for( int i = 0; i < MAX_SKILL_JOB; i++ ) - }$ N5 N8 H m
{ ) b+ H" ~" H1 v c
LPSKILL lpSkill = &(m_aJobSkill);
. L2 X8 v0 u2 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )
d9 U, s* G* v3 `, Y9 ` {
6 D: N- d. N) j) u# s ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; v& y1 C4 O4 `/ O if( pSkillProp == NULL )
. Y: A; S8 o0 i! q continue;
, x2 u' }/ K1 X% ^4 j) q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 c5 d" s, \" X! H: s, ?: X4 R
continue;& i) y- }7 L9 o
lpSkill->dwLevel = dwTmpSkLevel;
' f9 h# ~4 p% }* i/ n }
. y3 F0 b6 g: ~. i }: G/ H) J: M& f) H6 K
}
/ p7 D8 ?0 r; t/ e' ?, T6 z1 |) Z3 B else if(IsHero())
+ ]# V% o6 U( `6 q0 A {' V4 F% @4 x- a; B/ r
for( int i = 0; i < MAX_SKILL_JOB; i++ )
$ d$ A. f) I/ v/ G7 @ { * p) n' V; I. J4 ]7 g
LPSKILL lpSkill = &(m_aJobSkill);2 W$ L% i; s) w B, Y& ]
if( lpSkill && lpSkill->dwSkill != NULL_ID )
; s6 j R9 V# I {8 T" F) @7 S8 [" A6 n
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
6 t, x+ Q( Z2 e8 K& {7 f o: ] if( pSkillProp == NULL )" ]' U5 ]- M: c, q# q N; I$ C
continue;
- ?1 R0 z. ~" t4 C if( pSkillProp->dwItemKind1 != JTYPE_MASTER)$ D$ Q# l3 Y$ W. x- z
continue;" H6 {( Z, g5 K$ T& i: c
lpSkill->dwLevel = 5; I+ u* u/ R% J4 ]- |
}, ~, @- o1 \9 Z; A: ^' k3 @
}& s4 o- b6 z' p' t; ]% ?7 o) ~( L J
}( _7 B: y6 o$ i& _; C
else if(IsLegendHero()): \% T% Y- p% t5 _7 W6 |4 b" V+ L
{
" |* ^" l7 Z3 u; }. M4 o for( int i = 0; i < MAX_SKILL_JOB; i++ )
# x5 D' A* Q9 X- g" H { 4 U3 q; O( V, n4 ~# q
LPSKILL lpSkill = &(m_aJobSkill);, f" U$ f4 ?4 `; v6 w( {& p! Z6 L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
4 Y; X. x. u9 T& O5 ~) ~ {# s5 M: ^% i1 N4 y+ Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); + D7 J$ Q% k3 J6 m( H, r
if( pSkillProp == NULL )
8 a. q, K2 ~# [/ T+ x, D continue;
# H5 a3 m1 |( a if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
h2 v; t3 B9 |* m; |$ i; O j4 W' d continue;7 o ]5 s9 @* \, [, @1 i
lpSkill->dwLevel = 5;
$ S( r1 B% }; ?/ H, J7 M: O }
. R, w5 H4 r2 Z5 p8 G, | }
+ f G- v6 u& K }
& O. X! q' N, f O#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans) M/ r+ a" O7 r }0 ]$ e' u2 f
if( bGamma )9 ?, @3 [+ \8 Q7 S! R
{ t) u4 u4 u& }+ v b
m_nExp1 = 0;
0 k) |* u# d6 m) _ }
# Z5 K; N) l% ]. {: s/ {; P4 ]. p( V7 o4 D+ t9 k0 l6 W
( (CUser*)this )->AddSetChangeJob( nJob );( k: z0 y1 b' a, H! W
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );3 n, h5 I+ [7 P% G8 Z% r' p
/ h2 [' e# B* {
, k* n% I# d: Y& Y6 u; Z+ _' F9 F8 G#if __VER >= 11 // __SYS_PLAYER_DATA8 N$ M* p% I5 e1 M
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );* n0 W3 k6 g: J
#else // __SYS_PLAYER_DATA" b& y* \0 q6 k- @9 W
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
. }; F- q' |/ `8 w6 t$ A7 d g_DPCoreClient.SendFriendChangeJob( (CUser*)this );+ e0 `1 r F: z
if( m_idGuild != 0 ): r. I) p6 t: ?1 d+ S5 ^
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );4 m1 L8 s% F2 Q; W' z' o4 v3 n/ w
#endif // __SYS_PLAYER_DATA# m7 u- ~! g. _3 X
SetHitPoint( GetMaxHitPoint() );
6 G2 V3 C6 M- _ SetManaPoint( GetMaxManaPoint() );# v' S4 f2 j1 O, o
SetFatiguePoint( GetMaxFatiguePoint() );
* ?! n; `& p( j3 Z: p5 o if( nJob >= 1 && nJob <= 4 )
0 `% _2 T/ A) u, y: O1 w: H/ m {/ H, i" R6 @, Y; N& a
m_nStr = m_nSta = m_nDex = m_nInt = 15;
% d3 V8 X- Z0 t, {" l. p) ] m_nRemainGP = 28;
$ O/ o* S0 m, C5 C! M4 X- y }
# e' K* i1 S8 Q) s! | if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
; A v n( R! o3 o4 T$ s+ _ {' x6 ~9 y6 m$ _ j% S
m_nRemainGP = 118;" ?! h, b) e- h4 ]3 y
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
! I7 {9 R) g1 p! E" L m_nStr = m_nSta = m_nDex = m_nInt = 15;
& D$ L. i8 m m+ n1 E! K } x, n' l( s) `/ C. I
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
1 [, j: a2 ]2 p {
' g! C0 C* `0 q0 U CItemElem itemelem;( {" k0 C6 j! m8 D0 S
itemelem.m_nItemNum = 1;5 C# a& A; c# C6 a- L! w+ F( |
itemelem.m_bCharged = TRUE;
. k* x ^7 J d' J BYTE nID;5 v$ e1 X& z' i5 z, B: |
, a* D- ]1 N+ Y( ~) a' p+ n& O
if( nJob == JOB_MENTALIST_HERO )8 O. O! _! P6 J* t5 z
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;! J* {2 M2 ?. P5 A q$ Y# q
if( nJob == JOB_FORCEMASTER_HERO )
8 [" z9 U k$ c( d1 z3 k itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
2 O" b. b4 z, J0 }" e9 b* {7 w4 q- l: u8 Y
( ( CUser*)this)->CreateItem( &itemelem, &nID );
, U# ]" J8 |9 O" Y0 T: f1 n }
: k9 p; o! m2 m: t, f/ b4 ]; A g_UserMng.AddSetLevel( this, (WORD)m_nLevel );$ W/ u @' V+ p9 y( j$ I n
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );6 y/ H4 ]. P$ D( u- K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
; o3 E; F. Y+ o" L/ c /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
[" i: y% n* T# I ( (CUser*)this )->AddTaskBar();*/
! j9 z) T' ?7 q4 {- V ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );3 {: F' l$ u5 Z3 ], J, E7 \
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?6 [# k" ?- l- Q& h* [: J
((CUser*)this)->CheckHonorStat();8 q& q. X& N3 I3 h b6 E
((CUser*)this)->AddHonorListAck();
4 `( j+ C) k3 M- D$ f g_UserMng.AddHonorTitleChange( this, m_nHonor);* h% `7 y& L7 m) H3 m2 D- X7 ?
#endif // __HONORABLE_TITLE // ′Tà?
2 B( {) X3 P2 s/ \( W }2 k8 t3 F3 k/ x) I
#endif // __WORLDSERVER
7 c# L8 s& U Z} ; U$ m6 V5 Q: Y9 f
7 r& {. V$ F! g7 A
然后你进入functextcmd.cpp并添加以下
3 x9 l2 ]3 {0 a# Y2 D! }1 m3 `& c0 G7 `1 A; U7 B- T
代码:
) o. Q9 L2 E6 @ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )& m7 \7 i- P: f/ t* Z
下面插入
1 B- x6 v$ j9 xON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
* o4 [+ u3 O& {: z9 w( o
. I: ?- |7 D: a% e然后你去
, ^% [7 w3 y( P4 {$ c/ U2 y) v. G# F, b9 n5 _
代码:
# I z4 j, w& h' @; {# M4 E" v( d) s代码
; t/ S" T6 v5 v4 U9 bBOOL TextCmd_ClearPropose( CScanner & s ) p4 l4 n+ i% E/ z
{
6 h: {% O; v8 W a4 M, d- ~% r#ifdef __WORLDSERVER6 q9 p1 K" F8 F" ]* f7 M; u' v3 n
CUser* pUser = (CUser*)s.dwValue;
* Z$ R2 R a0 L7 ?& V- B5 B g_dpDBClient.SendClearPropose();
- P+ A" Q" j! r$ a# I#endif // __WORLDSERVER
- D# ~; X0 i2 C; F9 Z return TRUE;
2 c L8 `3 A. F1 ]2 ^ E S}. R3 x* V1 r7 S- M3 P' [* x
下面插入
: k* e8 R+ c: p7 Z: _) c B7 K aBOOL TextCmd_rebirth( CScanner& scanner )5 `2 N) H0 g- Z7 N8 F7 D4 v
{: m; J' M3 a& m
#ifdef __WORLDSERVER: p7 g: S! Z& R& @
CUser *pUser;
) m/ X7 X. T& ?' H( |, LpUser = (CUser*)scanner.dwValue;1 B# p' r/ `; I- D4 `) F7 V9 l1 ~' t& L
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()), c9 a) A E7 j/ j5 S; k# O
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);' I/ b2 J5 O! f b* d3 O. K0 y
else# ?: c0 f% K( Z, m( V
pUser->AddText("你还未达到重生条件!");
8 B, M* {9 E# @) J, V1 t% _* l#endif# A1 z3 B9 Z) p, W. d
return TRUE;
8 m* K; N) |/ s; i8 _} $ A3 @ K( k. T6 L; k
/ C' X- \7 f b. B/ x7 ?# _) U+ L7 e' \" Z
% u' _1 N$ f2 L, X9 ^/ W
# x; |" H) g4 R+ c( D1 o |
|