|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel r5 j/ |, I. a/ q0 F- e
! V5 s2 t1 p! q7 w
Mover.h9 n- A/ l$ h5 V+ D
代码:. v: Z1 n u" D& `& {
找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü. C# B) W; @" \' K# n' ]4 T
6 M6 J% g* r* P5 X: a# |下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; & G* ~2 r7 V' f4 O& ]
: ^ _ Y e( X z+ I; s# E
然后你去mover.cpp添加
- a6 z1 k ]" @7 E! f8 Z( X
. o( i# T" I0 G% b) d代码:' o1 p- X7 g: q
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )) d8 H5 A% v# h [( E; f
{$ q9 ^5 q: U$ U+ h
#ifdef __WORLDSERVER5 A" E7 R9 x- D. r
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó: o) y7 R2 z% p8 s9 U
MoverProp* pProp = GetProp();9 Y2 n! o+ Y( ~0 P7 [
if( pProp )
! X+ ~- v! B4 | m$ }. N, ? {
3 h2 ~& Y' ?0 W0 e( X. [5 q5 v) S% l y if( nJob > 0 && nJob < MAX_LEGEND_HERO ): H7 ~- i9 e, R4 |0 ?
{
% B' S- w( t1 Y2 `5 A: ^- G AddChangeJob( nJob );' w( p* k D, H/ f$ R! l- C# _
}else{7 \# o2 r. l, q! b
return;
' }/ z Z% K6 |0 @" y }) ^$ q& x; ]3 k& T
int nPoint = 0;* r4 G$ |: w2 `( Q+ z, p- Z
if( m_nJob == JOB_MERCENARY ) L+ B8 }+ l* d# T/ c, [4 }
nPoint += 40;
9 [1 ?/ O* U5 k else if( m_nJob == JOB_ACROBAT )' |3 _7 O. e0 N2 [
nPoint += 50;9 f- S1 h2 p: r6 i% F
else if( m_nJob == JOB_ASSIST )# u& M/ H7 A% Q3 C" k
nPoint += 60;: X. N9 t% r9 O% R
else if( m_nJob == JOB_MAGICIAN )
0 K, F& L, F. B- G nPoint += 90;* r4 }; K9 X' F6 ^ m
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
4 L* d, E4 n2 J$ v6 b% W4 F+ l nPoint += 120;
' D4 z% g; M3 R, l% t else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
, v: Q6 E. V8 D7 z' ? nPoint += 150;
7 g1 i( {. K/ h, b- k else if( m_nJob == JOB_RINGMASTER )
. Z9 f# k, f6 \# X. l nPoint += 160;
" i" f, e1 G+ J6 v else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
( Y& c! J( [1 K6 c- ] nPoint += 180;0 e0 G8 W" r A+ d \7 Q4 O
else if( m_nJob == JOB_ELEMENTOR )
' @6 l. p4 z" e; P- G nPoint += 390;( p; g# E; g) v3 e
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
, V6 P! v$ m( c: I8 T/ w nPoint += 120; k5 X, U; n9 H% A, e
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
& n; _; `7 ~1 I; b nPoint += 150;
% | C O5 P1 K1 L" h else if( nJob == JOB_FLORIST_HERO )1 D! b5 D3 I. S
nPoint += 160;
7 ~" I% T0 L, B/ f C* z& u: @! i else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ T+ n1 y* g) s! K' N; ]; N* M% ` nPoint += 180;
+ W& g+ n$ Z$ S else if( nJob == JOB_ELEMENTORLORD_HERO )
% I* _* x* g6 i5 O nPoint += 390;
. }7 q! u; _0 y; \0 A8 `& N9 t2 A7 h/ W6 D$ ]% S+ q
AddSkillPoint( nPoint );
: A4 \: O e. M1 Z) b: ] m_nLevel = nLevel;) j+ }( Z3 H! ]. W
) C c& [9 A# X$ o0 _
SetJobLevel( nLevel, nJob );1 _# h6 L5 @9 s( B" b$ o9 q
m_nDeathLevel = nLevel;+ ?# _2 f9 j7 [0 m
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
. ?% v" l# Y6 P, M! Z+ z if(IsMaster())
0 D- ^/ t. D9 m {* Y0 F( [6 {8 c+ x+ \* x
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108& i( y2 I: w/ x |) l5 O* Z
if( nLevel > 59 && nLevel < 72 )
, S# i+ n% v+ T dwTmpSkLevel = 1;0 K* m5 Y5 a; |2 u. x. @
else if( nLevel > 71 && nLevel < 84 )
9 Q3 a; t- v$ @: \$ y dwTmpSkLevel = 2;
{8 M+ j" C! m, a else if( nLevel > 83 && nLevel < 96 )( l1 s; x8 \* |$ R' m' V
dwTmpSkLevel = 3;. e" S+ o% k! X" v4 j, c
else if( nLevel > 95 && nLevel < 108 )3 g$ [! y, j3 a9 ? Z
dwTmpSkLevel = 4;; m2 J" m6 e/ S
else if( nLevel > 107 && nLevel < 120 )
/ D3 ~8 W7 s; T( h; D* @+ d dwTmpSkLevel = 5;
* M$ C9 h5 \0 O3 F$ L# r for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) z0 J. @: B6 u' v; r; t K3 G
{
- b* C3 O0 {& ?% y LPSKILL lpSkill = &(m_aJobSkill);4 W/ C# }. U+ f4 ?2 Q9 h
if( lpSkill && lpSkill->dwSkill != NULL_ID )2 ]2 ^1 x! Z( _0 l! z8 {: l
{# d0 q5 O6 |9 U" M r
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
9 ~9 K- }, p+ p if( pSkillProp == NULL )' M ^% v# ~# W: Q" v# _6 N) b
continue;2 A* p, h. R- p2 c& M3 J& w, l
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
8 e0 S" G5 ^0 d4 T. r7 y& Y& q) J* l continue;
# L3 U: G- P( U- {: f lpSkill->dwLevel = dwTmpSkLevel;1 C- D/ M2 y! r9 T% P& J- u) f) \+ w
}( R, M* R: Z; F+ j5 @7 L
}) B- P& D! W% X8 t, m8 C4 z' P6 F1 K
}6 F7 U% s0 ]0 C( n! F7 Z
else if(IsHero())
5 f3 A& H9 i$ I- \3 z9 C {6 w* h8 K# A& N0 R' E& E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 5 I- a9 Q1 F8 n& Z0 \
{ 1 V F0 e& s4 Z6 u5 N4 `' G
LPSKILL lpSkill = &(m_aJobSkill);
# O- c4 a! ]( G; R4 Y if( lpSkill && lpSkill->dwSkill != NULL_ID )8 }; o: u2 O* V% J5 ]
{
1 R, M; v8 J2 M* X. R8 |( j# u' c ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 4 F: }4 k- ?5 b9 @- ^
if( pSkillProp == NULL )
w i g4 t# \7 m4 W5 s continue;" w" ^; Y0 z) E# B* @6 e+ T
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)4 ] r+ I. M9 t; }3 [
continue;
5 S/ B+ ]: Z! e' m/ H F lpSkill->dwLevel = 5;# G% ?. I. Z& p! d6 X+ ?% L
}
9 ^0 |2 r, z6 z4 E4 h7 E }$ b2 ?' Y! \+ t' f- ?
}7 P% ]! m e* Z; b( c1 o: {
else if(IsLegendHero())- u. v3 ?) R z
{" T5 ~5 a8 S9 r" E
for( int i = 0; i < MAX_SKILL_JOB; i++ ) + I3 `4 F( Q& k+ V
{ 9 c) C( u0 \4 g
LPSKILL lpSkill = &(m_aJobSkill);
, o, L8 |) R# ]3 v6 c; e if( lpSkill && lpSkill->dwSkill != NULL_ID )
5 F. Y% v7 r. _" z! d {3 n5 a- C5 j2 Y9 Q" z" I
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
0 W o, P3 A+ v# x& c0 ] if( pSkillProp == NULL )4 p# d# S3 Q; T+ ~
continue;
2 M) C( O% g6 {- n2 V( N if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
& F' k" Y" ]8 @) | continue;/ N( w+ |8 U2 T, C3 X6 J# p
lpSkill->dwLevel = 5;
: A4 E8 W) @3 E6 i }
; v+ k7 A, z! j5 H' E }# t$ ?; c$ L7 o5 y( @
}
3 Y' @( ~/ S2 Q#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 n* K. I; a2 r6 G2 H1 i if( bGamma )
, p/ e( S- Z5 }) L {% M( ]# B: C* {$ {, j" C! J
m_nExp1 = 0;
; b3 T/ h8 Y8 Y$ f' R" r }
' X: `1 c8 O3 q6 `( d) }4 Y
' O) D% \9 a. G3 P2 D, i# |5 n ( (CUser*)this )->AddSetChangeJob( nJob );" i' e9 z: @' m/ I; O. @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: W9 G( C2 k4 j8 H0 ]8 ]" e( _) {4 O2 u- h. k& `
3 f( ` T# v' T, d$ ^; I, B2 u+ r#if __VER >= 11 // __SYS_PLAYER_DATA% x. X3 l# C4 [0 T- m, d5 S( P# l
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );. s. p, @7 `1 n; z7 k, d7 H( Z
#else // __SYS_PLAYER_DATA/ b, C6 h3 l: S2 t: h# k
g_DPCoreClient.SendPartyMemberJob( (CUser*)this ); t/ A- H; ?7 F9 P; ]
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
% m9 {) p4 `' G+ z$ L if( m_idGuild != 0 )
7 l3 k0 h; x. I6 G( f! U1 j g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );* Z' m* c& O+ h }% J& c
#endif // __SYS_PLAYER_DATA
2 d1 H+ p3 W& V2 T5 h+ L SetHitPoint( GetMaxHitPoint() );
. A* ?2 l+ @! Z n; z9 G SetManaPoint( GetMaxManaPoint() );
% L- O6 [; i9 m) n# N, G SetFatiguePoint( GetMaxFatiguePoint() );
7 h" q: `9 ^9 \ R6 w# u if( nJob >= 1 && nJob <= 4 )
: F7 L" [0 {& ^ {
% j& o0 {; A; h5 [5 M; ?+ \ m_nStr = m_nSta = m_nDex = m_nInt = 15;
% {8 j m0 F3 V2 O/ m m_nRemainGP = 28;
! U: j& c" J2 ^ }
+ v" @, `+ X) O Q3 d if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
- u* P: A ^" C8 @0 [ {
& S1 _% r. G9 a8 C$ `- k x+ R* V m_nRemainGP = 118;
1 a# [! i0 W7 d* P; M //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;7 n' I. W+ p1 B+ |2 F! V
m_nStr = m_nSta = m_nDex = m_nInt = 15;
' v9 x4 S8 L" n$ d& J$ j% u) H: c }! ?" b* p8 w. L; I9 m7 L
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )" p. h9 k% M8 f+ @. ?. \% r3 p& z
{
3 m' g( N& T8 p! Y* K CItemElem itemelem;" Y, F. U g; k3 `) ?! S
itemelem.m_nItemNum = 1;+ ]% q* \7 |* l# n$ ^; ~! L
itemelem.m_bCharged = TRUE;) S2 T% q' ~* Y' @: X
BYTE nID;
- e% y' o8 N8 Y4 a3 p' ~8 k# `7 E4 x. E' x
if( nJob == JOB_MENTALIST_HERO )7 x5 l2 Z) g" R! h3 r' N
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;$ A$ M; z8 B5 W4 V9 p+ B
if( nJob == JOB_FORCEMASTER_HERO )
; d2 p% s1 B; d; R itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;' {) V( |1 A' k
+ J$ Q T) r% }
( ( CUser*)this)->CreateItem( &itemelem, &nID );
5 o* K) k/ C2 S) T3 z' l0 E }
1 A8 }: V. q* Z+ y g_UserMng.AddSetLevel( this, (WORD)m_nLevel );1 ? j& m3 o1 P- C
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
$ y1 y. L$ F; x8 {, G& s ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
6 ?% _% L2 ^% M( A5 ~ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
# M0 w/ B6 X+ e3 o; Y% K, i. @ ( (CUser*)this )->AddTaskBar();*/
: d: l0 h1 y& z2 L2 v9 v ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
+ L# U" u! f& ]6 o& `) ^#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
0 ] J6 P& T/ n* [ ((CUser*)this)->CheckHonorStat();
; `$ R/ w7 X# s+ z# m. a ((CUser*)this)->AddHonorListAck();) q: @+ s) H; f) H; I* @9 b* G
g_UserMng.AddHonorTitleChange( this, m_nHonor);
[' [9 n& ]! Y. U#endif // __HONORABLE_TITLE // ′Tà?
. H1 I' s4 k6 s6 S: J4 |8 ]7 v, F }" d0 h5 V8 |3 p$ a7 C8 V
#endif // __WORLDSERVER
0 |4 F h( Q+ i) {# P0 T1 C}
+ @4 \3 X& j, n! h7 }
8 H/ |: P% m+ O j+ w2 z5 m. E: o( h' C然后你进入functextcmd.cpp并添加以下
% a* k5 i/ J% @" S* y, l# G5 }* a9 p0 I9 S9 _
代码:
+ P j ?4 a. g$ N) FON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
3 \& B L" A! s! A0 h, T% h1 D: d下面插入& a8 N; b) d+ @$ U$ Z+ q
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
1 B, b; k* c9 W8 d \
8 h* r% K: V( Q( o. e/ M! ?+ g然后你去
) g) _% F1 I7 A( ^ G" _6 f
+ E+ g( R$ A) h/ E# y6 a1 O代码:
/ h2 Q7 M/ q7 m- d' F. h代码( [8 X. j9 G4 k4 t! f f
BOOL TextCmd_ClearPropose( CScanner & s )
# J' o/ C* C2 Z3 ~, U0 S5 p{. l% A" p" C S$ ]$ @) F# a6 o
#ifdef __WORLDSERVER! U2 L, q2 h, F2 l5 t1 K
CUser* pUser = (CUser*)s.dwValue;
3 w! Y% V5 e% X) v0 b% |- h5 \ g_dpDBClient.SendClearPropose();
p6 o8 D" G; Z2 u. J#endif // __WORLDSERVER
2 U) [0 U3 {( a6 w- K1 R& d return TRUE;$ A$ ?" Z1 g7 x6 ]( \
}4 ~) u A# a, M7 m
下面插入
5 Q) \" |3 y7 C9 i1 @BOOL TextCmd_rebirth( CScanner& scanner )* X% ?% B, U" {8 F
{% ]5 X( b2 {; d0 J: F- [% `8 C$ P
#ifdef __WORLDSERVER
$ c- a$ [# e/ A' C" \8 qCUser *pUser;: O! k* o$ T* M4 W1 M- r/ Y0 C+ ~
pUser = (CUser*)scanner.dwValue;
" G; {9 I! `1 J3 n+ Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())
4 u; S/ p7 x" I$ n' Z6 S5 ]! P7 cpUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
" \& O1 S9 Z& K5 s! W) V% [else
0 j3 f# R" Y- }9 h( FpUser->AddText("你还未达到重生条件!");
6 z. i; Y2 V) I#endif
' \6 ^( B% z( g3 R1 O6 k9 creturn TRUE;/ @& E' Y) Z1 d6 @, u& H/ p
}
/ y5 ^3 f7 u: w+ u& }9 a' c0 g' B- s! A/ b# z, x- p
$ O: ]) U P- V5 B
5 R+ B [" G6 |5 ~9 I0 l
4 n+ t' G3 [5 F |
|