|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
0 v4 h! c1 J" r5 W3 _8 L& K
( ?$ l9 ^ d2 k0 oMover.h
8 |- ^1 \/ H- Q$ w7 W代码:
6 L5 s3 r! P. V" c+ c/ j找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
1 Y, u; v' c4 N; n, l8 Y; K) K, ?3 Q9 S0 |1 T4 J1 |
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
2 U; \$ O1 k, l7 p9 ^! u k6 m/ P s5 U4 A4 C m" m! b
然后你去mover.cpp添加
2 F. Y( B D; V& d: n& |) x1 P7 A- a! Q* m* g" a- t
代码:0 Q6 e3 @9 d, m6 D" j. }0 Q* `
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
7 Z0 x4 @1 _) U2 m- s! g- [{7 ]/ @& a: u1 w! A6 X
#ifdef __WORLDSERVER
9 N9 J0 ]6 v* ^8 Y" l // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó) o# k3 W1 Q F3 g2 f8 v' [
MoverProp* pProp = GetProp();9 o2 e! Z) K6 J0 }1 H0 Q
if( pProp )
1 @( [$ D0 V) h) v+ c {
4 P+ O7 n' b/ u( X5 x. O if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ U) C( [3 S" E4 `' q/ C( c5 Y2 I% S- M
{7 @2 B) V3 N2 F- a& }# D
AddChangeJob( nJob );
4 W) M! [- {0 u/ M* g3 n }else{/ K( T' K1 |; C4 [, v
return;
# T4 w& m/ I3 J8 n; X; j+ I' X }/ k: k2 A: P% w: J& n) l8 H" \
int nPoint = 0;/ l! s: K# n | {
if( m_nJob == JOB_MERCENARY )* d9 ^) N# U& ]8 J
nPoint += 40;: o. W7 A/ n/ {1 f$ ~' D
else if( m_nJob == JOB_ACROBAT )1 o. }% C4 E. ]
nPoint += 50;* m p @% |" }" `" Q
else if( m_nJob == JOB_ASSIST )
6 m! I9 q' Q, [; v1 U u nPoint += 60; U6 P6 P: Q6 p+ R& l; [$ J
else if( m_nJob == JOB_MAGICIAN )8 M# t' l( b& Z* f- W) u- ~6 P1 T
nPoint += 90;
" d h5 e* m0 k- n else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# x" _7 C4 y/ E. N! k. q nPoint += 120;3 R% K/ X) q- e9 I- L6 o
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )4 w0 t7 l' { l1 S7 Y
nPoint += 150;, y) N. u7 ^, j @
else if( m_nJob == JOB_RINGMASTER )
5 C4 A: \; m2 l6 Y$ ], Y nPoint += 160;3 m, N j( C. t1 A; E# \. ]8 b
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
* s& g- ?8 n0 Z) r4 l nPoint += 180;, g" a7 ?# I0 n& y
else if( m_nJob == JOB_ELEMENTOR )7 C, W& u9 U- h2 P
nPoint += 390;
' Y8 O1 @) z) C) u. O else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )2 a9 v8 Q! Q7 Q9 }5 c& W! x
nPoint += 120;
/ V9 z7 j3 ?: O/ X else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )/ z& x d! X5 [5 q# u
nPoint += 150;1 D' t% A+ z ^' r
else if( nJob == JOB_FLORIST_HERO )9 l. q" M/ I- {' M$ b6 r: I4 p, ]7 x
nPoint += 160;4 {( s$ A) O( p& B. {
else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
/ E$ v: j( B; y9 o7 Y nPoint += 180;: a6 {4 D0 m8 V, h7 n
else if( nJob == JOB_ELEMENTORLORD_HERO )5 H* {' x3 t% f* I( X
nPoint += 390;
7 ?; J/ ^( ?( J- F
, v/ x- J! x- Q/ G7 L2 N AddSkillPoint( nPoint );; i+ M7 R! k: K/ [9 D' Q
m_nLevel = nLevel;. e+ F8 M; S7 s, X6 n: O
7 G7 S6 [- x7 p4 L. l9 ]7 @6 A SetJobLevel( nLevel, nJob );4 z8 B* X. ^( `$ o" q R, h7 n/ G) t
m_nDeathLevel = nLevel;+ j$ P X; s# V, v& B, o
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans! E+ s! d7 W2 N: `, t
if(IsMaster())
Y, H* q# Y z2 X0 r6 Z {
5 p( x: t5 ~" D1 h* X( P& q int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
. q0 d; {' g, C" }0 E if( nLevel > 59 && nLevel < 72 )# _1 B' G) k! c6 h; B! S/ C
dwTmpSkLevel = 1;! C4 ]6 N+ v( Z; E8 S
else if( nLevel > 71 && nLevel < 84 )% R! w: n$ p% W+ r% ?% S
dwTmpSkLevel = 2;
! U, r f5 {' h' D J( S else if( nLevel > 83 && nLevel < 96 )# B. T3 G7 k0 A: q, m3 T
dwTmpSkLevel = 3;
$ T2 {- n6 Y& o. l t else if( nLevel > 95 && nLevel < 108 )
- I5 P- H, D( K4 Y% z dwTmpSkLevel = 4;
0 o; p& E6 E7 \2 ~5 {. @; L else if( nLevel > 107 && nLevel < 120 )8 m7 [- p6 L+ P& s$ W6 D$ X" |0 R
dwTmpSkLevel = 5;1 \" ]7 G. @8 q% r! L; c
for( int i = 0; i < MAX_SKILL_JOB; i++ )
0 B$ l+ R# ?5 w* ~ { 9 N8 c/ \; }% c7 C: W
LPSKILL lpSkill = &(m_aJobSkill);
1 w7 s! d. Z" Q+ w: j& w if( lpSkill && lpSkill->dwSkill != NULL_ID )8 t5 g6 M% O- ]4 Z5 ^8 I1 l% f
{
/ A; i5 w8 n/ g2 g ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
5 ^- f% Z2 Z" U# ` if( pSkillProp == NULL )
1 r6 M& i' n, f/ _7 ?9 X continue;+ M" r5 k; ?* @ [# R) L8 G% {
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)) p( r0 \4 Z% D) j: l
continue;
0 _6 s8 }" L# Y& `) Z* _; z lpSkill->dwLevel = dwTmpSkLevel;4 v' t9 \0 F' o6 }6 P- @( ~/ Q: Y
}
: C) ~& S; y' s+ K }
+ U+ M7 w1 X; V) ~ }
3 o3 H* l# U) L" n' K else if(IsHero())% h4 x: _ I" R/ U
{8 Z3 ]: ]1 r! O" h' |# b) p* b
for( int i = 0; i < MAX_SKILL_JOB; i++ ) * t; H" Q; _* T
{
8 }( ?6 b; i: ~; T# b1 L, N6 s LPSKILL lpSkill = &(m_aJobSkill);# S% ~: @( c6 K* P' k
if( lpSkill && lpSkill->dwSkill != NULL_ID )! n& z' n7 c, S1 k1 @
{$ A0 {# g9 a2 I8 b$ J
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
; ~: Y; j/ U# g- e" Y if( pSkillProp == NULL )
4 A, K2 b% W/ v! u. h continue;: @0 D. y% c E, P; I
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)! P* i' }) j" b, L0 m
continue;2 [1 m% d7 {! Y0 T; b# O. p" w
lpSkill->dwLevel = 5;* d( o! J H5 @ c
}0 a- t( f) o5 F1 h
}
+ s7 D+ u5 x3 U4 h }+ `# E, B8 P$ n& D) {
else if(IsLegendHero())# q9 T2 Q6 H3 R! f9 G. R3 V8 L! I
{% d! W2 R+ }( |; d4 g0 \
for( int i = 0; i < MAX_SKILL_JOB; i++ ) / d4 \2 p& V" G
{ / W s, m* W1 i6 }! d% p
LPSKILL lpSkill = &(m_aJobSkill);
% G" J) }& {) v$ Z3 U1 E if( lpSkill && lpSkill->dwSkill != NULL_ID )' u h: i9 b0 x. _1 @
{* Z4 a5 X% ]4 B0 u% ]" R- h3 w
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / d6 v, T; c) E! C% W1 w: l( @& Q
if( pSkillProp == NULL )+ K, D" H6 G( H5 o; E6 |' F
continue;
" j) [; o3 c* T$ s" ?* I if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ q, ?7 Y+ G; b. j$ R continue;
7 {0 j1 c8 ~( E9 f lpSkill->dwLevel = 5;
# A& W* t9 S# C' ^2 [ }
/ u6 W( D @( M: o8 { }/ g9 k( u! B" N6 }0 Z# ]5 Q
}
: M4 m8 r8 ~1 ?* |#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans8 T6 Z, q0 A3 Y4 Z8 o) ~8 u& U
if( bGamma )( R" V2 e. S |% P( e8 S1 V# S* X
{5 y% X- o- b' e/ S a8 o
m_nExp1 = 0;3 Q- c; h1 T& V8 w4 ~7 @" i8 F4 A
}
* M& C8 K6 D' D+ a- U0 N9 u: g$ R( j1 q3 C$ f# b
( (CUser*)this )->AddSetChangeJob( nJob );
7 L. ~; E% _1 }9 G+ m$ d g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
: s9 A9 I* u; ~. p% G8 ^" s; B! j
7 g$ e3 s5 G0 S( |/ U: z U' `0 t! F& P/ X+ t. N/ z1 ^
#if __VER >= 11 // __SYS_PLAYER_DATA8 \: a- ^) \: x
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );" {$ z# e, g- B1 i# n1 V V
#else // __SYS_PLAYER_DATA
. E0 l# H1 a$ x$ a4 y g_DPCoreClient.SendPartyMemberJob( (CUser*)this );5 c$ J& o; ~; S2 Y! S
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
+ U- H+ G& E; f2 k; n& n% F5 {! O if( m_idGuild != 0 )* G5 ?$ E, y( j6 |" Y. R" G8 J
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );. f ? u# X5 r) j& t, x: J
#endif // __SYS_PLAYER_DATA4 c1 l, v# m& x
SetHitPoint( GetMaxHitPoint() );
1 U6 [8 s# y' t+ v2 g SetManaPoint( GetMaxManaPoint() );
# x& G4 Z. S4 ?' F* l8 e SetFatiguePoint( GetMaxFatiguePoint() );
/ ^5 ]2 K, l0 d4 R if( nJob >= 1 && nJob <= 4 )) G( q j5 g/ t ?* u, S
{9 `" H# Y" P1 {! I) J0 L
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ F" D% L* ~/ Z0 H% q+ t, i, B0 D1 `' G m_nRemainGP = 28;
$ h& H; E$ g ]& |: } }
; F1 ? s* D- Y6 ?: @& h if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
( v$ e2 |- s1 o {! u4 m L4 { l8 g9 ^3 w
m_nRemainGP = 118;
, J% p6 ?% p# i$ B: C8 t0 I //m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;* Z2 y" f5 c$ p# ^7 z7 V' O7 l' b
m_nStr = m_nSta = m_nDex = m_nInt = 15;1 m P: x) t. X% Q0 ^6 T Z) x D o
}
1 P! W; N& A% l if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
$ n# B2 z9 Z9 j+ ?+ a {# n0 s8 H6 M9 t3 t+ u6 \& c8 _
CItemElem itemelem;
4 T6 q, m. L G7 W itemelem.m_nItemNum = 1;
% ]8 Q' i u# M( _ itemelem.m_bCharged = TRUE;. k" d" d! T/ R, Y/ J% l) f& F* o
BYTE nID;
# J9 y$ d6 c. ?- ?" H1 Q; }- r; [4 `
if( nJob == JOB_MENTALIST_HERO )
, @+ U* T) M E9 H% q3 r itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
( O x' q' ?$ ^& ?- }8 j if( nJob == JOB_FORCEMASTER_HERO ); `6 U+ V" r* n* l5 S6 W' I
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; k/ \* @! L) }; @$ P+ ?
$ g+ S1 K8 v* @2 S: |: K
( ( CUser*)this)->CreateItem( &itemelem, &nID );
0 S( m/ O( r" e }4 b( b. ]6 _3 g1 B
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );
. z: x3 U! a3 v ( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );' _) T9 i, l- q; M% K
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );" m W4 E" [/ o2 W4 ^, D
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );( s. ]: q9 s2 U1 ], H% e
( (CUser*)this )->AddTaskBar();*/( s# z* v y, G0 f
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
m9 W+ A9 Y* n1 R0 y7 t#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?) L0 J: _; R) F6 [
((CUser*)this)->CheckHonorStat();
4 y6 t5 Q! h# V( ?0 V9 }6 a ((CUser*)this)->AddHonorListAck();
$ n6 U+ d+ ]/ \1 p g_UserMng.AddHonorTitleChange( this, m_nHonor);
! W. i* R" E" a9 s#endif // __HONORABLE_TITLE // ′Tà?
8 u3 n( r) b/ a& z }
) w8 ]2 C8 O& r8 R- W6 A6 B#endif // __WORLDSERVER
; D, T, a3 b* T" H' J; M4 h% y: e} 4 ~9 ?/ @: v6 d3 ]; |) Z* U
# V4 ]9 D" |5 v; d然后你进入functextcmd.cpp并添加以下
0 ^/ L# C) c4 q& A2 n3 u
! ^: d( _; J" @# L3 I9 o+ ?代码:
* S- W! `8 M* R: ?" z3 _ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
" C; ~& E" Y6 h下面插入
1 t- L! h# p* L. S$ P/ CON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
- c+ Q* d$ s. A. B! i' D
# P0 U8 X. t8 O L4 t然后你去& S h; }! x* f
7 Q4 Z) i1 r& L/ O2 ?
代码: v9 B" |+ }/ c, L, Z
代码" e3 l; w3 z: r2 p, y8 J
BOOL TextCmd_ClearPropose( CScanner & s )9 F; t( e& m4 B& V
{
+ v. O- P# } P* l#ifdef __WORLDSERVER8 |* X" t+ L. X5 V& t7 d4 A
CUser* pUser = (CUser*)s.dwValue;
$ p( o: a1 b; v4 S g_dpDBClient.SendClearPropose();
: k# x* f, ?1 V: k' ]; C& S#endif // __WORLDSERVER
# h4 O' f: A* H$ M return TRUE;
1 t8 Q1 {) g- s}7 i) S& V$ `* B
下面插入
* t! a" Z1 s1 G" CBOOL TextCmd_rebirth( CScanner& scanner )- U/ N$ W5 P! i4 P- B& W' ~; o$ a) p
{
6 T1 v" K w1 s. Y#ifdef __WORLDSERVER
2 x% }0 M7 i) R7 ~CUser *pUser;
6 B6 D1 n" W0 |pUser = (CUser*)scanner.dwValue;$ k5 J2 r' Z1 A3 p; ^
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()); r& n+ x7 P ?( q+ f0 e w
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& H9 A# U7 u- D# Y: S9 b, i9 _else
$ V% u6 c8 o3 v, \" RpUser->AddText("你还未达到重生条件!");0 X) m' ]! o! q+ q! |
#endif) c- T2 E4 C. h9 c
return TRUE;: J* H( R* @' ^. Q1 E
}
" {* d7 _) B! B4 L) l
: L8 t6 `4 ]1 q1 r
/ x9 \3 E& l7 H. ?! a, o5 W; O) P' j# H! n
M& G$ Q+ B8 z( b* i/ ?5 O- L) T8 s |
|