|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel
! [3 q& z0 X, ?! B) z5 V4 F" J
6 @% Y% X. U; @, {0 [- xMover.h3 V1 W: \! w+ f$ I5 Y- e# P0 f. h
代码:
8 f' S. S0 `0 e1 l找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü3 @% V! j# p4 J4 H$ @5 i7 ^
9 g. o' N$ `9 A9 U* Y. [+ q
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; % o4 D2 M3 i+ l1 q! \
/ ]2 H0 J; V& w7 U+ T" t
然后你去mover.cpp添加) H% w) B; N# _9 Y2 q9 Z
! y8 h0 U, k( C代码:
! a6 P7 n8 F: e" p6 kvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma ); j7 @/ {# b4 A+ O1 \- F) ^3 I9 `
{) F1 O ~' X. o" i1 F W
#ifdef __WORLDSERVER5 }) v+ r9 E8 I3 c, Y5 V3 A# O" R
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó1 V/ E4 R3 A/ o7 R8 m8 a
MoverProp* pProp = GetProp();
2 _8 z0 c1 T3 G- g* v! U if( pProp )& D7 f: y- N# ]+ i5 b3 M2 b
{
: l; n% U* h% @8 Q% \% }% J* w if( nJob > 0 && nJob < MAX_LEGEND_HERO )+ u7 e; D5 u9 z
{, f& B$ x# v/ e7 x% d& D
AddChangeJob( nJob );. d! L6 e3 c7 S$ D0 Q3 D
}else{9 G( S0 j* n4 f, _( u
return;
/ u9 C0 _& Q% f* g4 p }
8 M7 g* E& j& H* m int nPoint = 0;! F' ]$ C) _" n. h$ r H
if( m_nJob == JOB_MERCENARY )
. H8 _7 K+ z7 j+ L6 b7 d2 F$ A s nPoint += 40;+ _% D) I3 P1 H" R- B9 n. L2 N# G6 E
else if( m_nJob == JOB_ACROBAT )7 e) P$ n: z# r, ?3 O& c
nPoint += 50;6 J' a: z+ ^+ r; F( h7 q0 H g
else if( m_nJob == JOB_ASSIST )
5 a9 g. d5 Y' Z' D nPoint += 60;
/ t+ x$ [" W- c% s8 p5 O, m; W else if( m_nJob == JOB_MAGICIAN )1 s- P0 |) Y- g6 [
nPoint += 90;
+ k; @- b# u! V& w else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )9 ~$ U6 ~2 s8 s9 q" G6 v
nPoint += 120;( ^# e* z' a$ U6 q$ N& T
else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
* Z4 F$ `8 k$ \' z, v* G2 z nPoint += 150;
1 K. V" i) \! ]. u2 e8 U else if( m_nJob == JOB_RINGMASTER )
f( w7 P* V! g, |* K: _$ Z* x) R nPoint += 160;
* R; `* }; V; R else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
! C3 \* T9 Q# N! f& l5 G nPoint += 180;$ U5 Q% | Q# ~2 @9 d: P& T7 ^
else if( m_nJob == JOB_ELEMENTOR )
* u6 V" [! j) C( C9 } nPoint += 390;
( U0 d8 |* k" b+ M7 E# v else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )& S9 |0 c% n2 ?4 U
nPoint += 120;
( B K, i( h0 H: b2 Z2 g else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
1 Z' ]8 ]5 J, b5 | nPoint += 150;6 U1 R1 x2 O( Y: G7 U5 w
else if( nJob == JOB_FLORIST_HERO )" i' _* E( O9 Y b) E2 X+ ~. w9 H
nPoint += 160;
3 r4 P8 W) o, q" i' b else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO ): ~4 E$ c5 C1 N0 |
nPoint += 180;7 |, z! G' {* w- D0 o2 N; J) u
else if( nJob == JOB_ELEMENTORLORD_HERO )
}5 `6 h2 }% `( {" Q( ]1 L5 Y3 G nPoint += 390;/ {7 S4 U; h0 B9 J/ k$ r
- \0 P6 c# h( t5 _% t AddSkillPoint( nPoint );8 q' `3 u, B; V% h+ x
m_nLevel = nLevel; I Q) E5 y' C
$ m- f( P3 c! M- p# q- _7 }
SetJobLevel( nLevel, nJob );: W/ j% [; a$ ~! Q7 s+ q1 E0 j, J
m_nDeathLevel = nLevel;
# w8 {/ Z: N9 @/ X0 @ n. A#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 ^- t9 |) Y9 s2 N3 E% A7 i
if(IsMaster()): ?# J3 t( C1 M( V9 r' x t& k: ^ b
{
, a3 \8 S F! g9 s int dwTmpSkLevel = 1;//60, 72, 84, 96, 108% j5 @4 W o! w3 u$ V' @4 {
if( nLevel > 59 && nLevel < 72 ); P# G' V. A+ p
dwTmpSkLevel = 1;
$ \7 d' T9 K& n$ ]6 z5 ^! P else if( nLevel > 71 && nLevel < 84 )
! Q# q% w2 W) q; T" L* M3 Y1 q dwTmpSkLevel = 2;! l, P' K7 o/ A( g) I \
else if( nLevel > 83 && nLevel < 96 )
; }2 F2 ?" P% o9 o dwTmpSkLevel = 3;
0 f; b% r, M. i else if( nLevel > 95 && nLevel < 108 ), j" q0 ?* a# R0 G( }8 d
dwTmpSkLevel = 4;5 k# X9 v( K( Q0 l: X Y) H, }
else if( nLevel > 107 && nLevel < 120 )
2 x. G6 |8 T# V0 h dwTmpSkLevel = 5;
0 C' \" t5 Y6 Y1 p3 ^! B. c for( int i = 0; i < MAX_SKILL_JOB; i++ ) / i) q. c; X0 T8 ]0 z* `$ O2 T; ^
{
2 h! Q4 A8 h; i2 t LPSKILL lpSkill = &(m_aJobSkill);
9 C% A7 S' [$ u7 E* I( j' l$ { if( lpSkill && lpSkill->dwSkill != NULL_ID )
: D& h* ]* L$ ]+ c4 F& K {& p$ ]7 L7 J* \! c; d7 D$ O
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
+ ^7 u/ ~0 L# o if( pSkillProp == NULL ). ]5 g2 r% K! p. i' Y- d( X
continue;- K! x' a& V O7 E
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
, E% S- o" R, k! V+ L7 F( [; B continue;# W; D' f- `( m
lpSkill->dwLevel = dwTmpSkLevel;4 g7 `2 n( q7 ^# P9 P3 W0 I
}+ ~/ D) @- A7 F8 h, a+ P9 f6 W
}# y" O# ~5 L! \
}
! }% J$ Z4 r% s4 D' A else if(IsHero())
o+ W) s8 l! n' m' ^# _$ a ^5 H {
3 q6 h* v- T w0 S, ] for( int i = 0; i < MAX_SKILL_JOB; i++ )
) F) E$ Y% l8 M+ H. g { + P: m$ a/ q3 m! P R
LPSKILL lpSkill = &(m_aJobSkill);
) m$ a8 t4 \ V X3 p+ X3 o) V5 i if( lpSkill && lpSkill->dwSkill != NULL_ID )5 H' ?9 P9 ^; S6 k( ` b5 M
{, Y. a1 t' ~+ G$ S! l) `
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
}- E% r9 h5 a( ~* c5 X if( pSkillProp == NULL )
3 S' |6 l+ F1 H& }1 T continue;& ?. G8 ?0 ^' A H
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)6 n6 G$ O3 t, R/ z
continue;' {7 U% ]+ D2 w+ t$ A; C
lpSkill->dwLevel = 5;
! F. `5 u' Q: s2 A }
" T$ N+ o+ Z$ j- a( o7 S# J }8 B6 R$ d( Y9 \+ J) ^2 V# V: x9 `
}
: L0 S% Q, f4 ~3 D/ Q4 z else if(IsLegendHero())
. J, i0 Y5 m% g9 J! e: M5 K {
3 a- t) ]- h! }6 U for( int i = 0; i < MAX_SKILL_JOB; i++ )
5 M+ S/ E1 y Z! L! _ K6 n3 W {
U& E! y$ c. Q5 g8 k3 u' B) T LPSKILL lpSkill = &(m_aJobSkill);4 m0 j# A$ ~+ J" F p% {9 g
if( lpSkill && lpSkill->dwSkill != NULL_ID ), }. V( J6 m t7 I! A7 K1 p# J% G
{! z; {" M3 p8 Q
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); ; z/ B& x5 V) @; o9 W k7 [
if( pSkillProp == NULL )& u5 p. k* u' Y; E
continue;# F& R, b$ O+ X- R7 d
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)* s" c! y% N: f- }3 a, [
continue;2 {2 N- T8 I2 {0 N4 k: N& S
lpSkill->dwLevel = 5;
/ H- s$ U5 A; \) } }
# n" r9 ^/ ?* e+ q6 T8 C, X/ C5 f; G }9 R( C- v& W$ a5 I# Q$ E& ~) i
}% I. I& ?1 [# A* A# o n5 a3 M$ Q) [, a
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans1 z- _) p" S. I' ]
if( bGamma )2 J1 Q/ z; B( X ?% F! Y
{- n! [! Q/ G6 c% C3 \" U$ T
m_nExp1 = 0;
) a f C! C) f/ _ }6 F# a. y1 O' {2 H: l* t
4 {/ a; `6 M% W: I
( (CUser*)this )->AddSetChangeJob( nJob );3 e8 @1 L# z* Y0 j" o& c1 X4 b/ a* l
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
# X# a$ y- j1 K, Y
& @6 [. e8 _# R- p
& f$ E& }( H& E3 M0 A. `+ e) N3 n4 E#if __VER >= 11 // __SYS_PLAYER_DATA2 G1 I& f# G9 {6 ^' w: E! B0 L
g_dpDBClient.SendUpdatePlayerData( (CUser*)this );5 T* y5 P: n2 ^' C2 V
#else // __SYS_PLAYER_DATA
6 L$ H9 @; l3 _7 h g_DPCoreClient.SendPartyMemberJob( (CUser*)this );; v' C5 @) B( F' R0 z/ p7 s# h2 J
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );7 X) {' E8 Y- O9 p0 ?
if( m_idGuild != 0 )
7 e9 ]6 F1 e$ x! X g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
/ g9 W6 ~, c0 q8 F' Z6 T#endif // __SYS_PLAYER_DATA/ O- n5 h8 L1 u: z- C E
SetHitPoint( GetMaxHitPoint() );
' E4 J9 \* }: J+ N8 ~9 V SetManaPoint( GetMaxManaPoint() );
9 c$ _- C' T3 }2 J( z2 q @. F SetFatiguePoint( GetMaxFatiguePoint() );
3 T7 M5 f# B! [' ?$ [$ A if( nJob >= 1 && nJob <= 4 )
$ d; ?4 y* w: x {
+ t! d2 s+ d* `$ c) X( V- c1 E m_nStr = m_nSta = m_nDex = m_nInt = 15;" F/ l2 l2 x H# p( d& ~
m_nRemainGP = 28;
, K, V( T, l# G }
6 x# c' j- ~! b if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )( M/ a/ b% L# M
{- n9 A# h- \) X' M i" x2 P
m_nRemainGP = 118;/ v9 ?/ ~( N; Y* X. T& b
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;! K; G! S4 ~1 w f
m_nStr = m_nSta = m_nDex = m_nInt = 15;, f6 y- r# C7 V* r% F2 p
}% ?# j2 H' I: O& h/ v& x
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO ). Y1 i8 |+ J: |; [% J" j
{
( \3 l) ?: f& D2 f+ w1 } CItemElem itemelem;6 K4 {) i" |5 ?9 F2 y# H* O$ l
itemelem.m_nItemNum = 1;
% d/ H: ~2 P! r" k itemelem.m_bCharged = TRUE;: e8 ], A& ~; K' ]- D5 a9 Y. j. `
BYTE nID;
2 d& N- T) F- c0 c+ M3 C& W+ M1 D$ x* e( o4 F
if( nJob == JOB_MENTALIST_HERO )
. j' B! e8 p- a S U; e7 j itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;- y- \% d q9 X
if( nJob == JOB_FORCEMASTER_HERO )
5 { N; a: a& n1 x+ ]" } itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
' o! m: F: P6 N9 {
7 s8 v) _8 Q. Z {. G) { ( ( CUser*)this)->CreateItem( &itemelem, &nID );- b+ |' V2 i# A( f) X
}9 t. Q* \2 {- t" C% H
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );8 S+ l3 u% ]$ ^* p3 j H3 S6 r
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ G1 }: i/ u7 c. U ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
/ A# `2 _9 }- v; j9 l2 _ /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL ); l9 e6 O+ p7 d8 W2 G
( (CUser*)this )->AddTaskBar();*/
+ `0 Q* [7 _0 p( l3 d$ u! x+ t ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 k% f- h3 d R9 i
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
9 b; z) g) `2 f, j/ F3 a* t ((CUser*)this)->CheckHonorStat();
5 x$ |" p, G& | }+ B u% M ((CUser*)this)->AddHonorListAck();
6 E5 v7 E& W \/ b$ J: M* h* ^ g_UserMng.AddHonorTitleChange( this, m_nHonor);9 [" l! a7 D- n/ V4 N/ L7 q7 H
#endif // __HONORABLE_TITLE // ′Tà?
4 h# H4 \# y7 _# Q; [- v }
9 \* C% p6 `, A5 Q#endif // __WORLDSERVER
4 v/ \7 u, B* _% ^9 B2 a* h( y8 Y} + `) S2 h; C. L2 ~( n- ]* Z6 @
4 L) G6 q5 g3 l# t0 t+ v' w( }- K4 q然后你进入functextcmd.cpp并添加以下
7 b' ?* T* J; U4 j
7 [( K- L! u9 S$ a) \代码:
; @1 z/ a8 D3 L7 D! h+ T1 o8 qON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
8 o3 f. @0 s- J! q6 U; q5 O下面插入
5 C% E4 Q# J. Z9 c* M0 a; vON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) " Y! V M+ k: W; {3 k' c
6 i1 D/ L' ?/ j9 `7 _然后你去
! H- S) Q0 G6 m5 ?
0 y0 n( m1 A* C! a代码:
9 c, k+ |* v3 l T7 S6 n( s. I) c代码; O8 ]( O2 i. U: @
BOOL TextCmd_ClearPropose( CScanner & s )4 T9 c0 _2 c0 y+ i
{, A) ?2 C) A; s+ }) [
#ifdef __WORLDSERVER
* L) y# x; F) L. G& K CUser* pUser = (CUser*)s.dwValue;
& K c3 S1 M) q" c' e g_dpDBClient.SendClearPropose();
, }9 `+ o9 R: ?# F& r! L: G#endif // __WORLDSERVER# [( |! |+ J( W! F6 b& t5 i
return TRUE;+ b! {6 X/ L# _' c
}
4 J- @8 ^: W+ l; m) e2 W下面插入" }' D+ n3 b& a6 D/ P9 D
BOOL TextCmd_rebirth( CScanner& scanner )
$ `9 u4 y0 h! F' C+ j* R2 {+ _. U, M{% G* u% g- }+ ~/ Z: O5 l h1 S. w* X
#ifdef __WORLDSERVER
m, B6 k+ U2 i- fCUser *pUser;
6 }, H2 C' f' X, EpUser = (CUser*)scanner.dwValue;- F1 h* j) S5 X# g* p/ g& u M3 E
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()) g. O+ L3 \& g) M" w$ G! @
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
& B2 [% l" X3 g8 K' yelse
$ I' @" v( p8 G1 i/ \pUser->AddText("你还未达到重生条件!");5 x. t, h8 m2 `/ z
#endif
8 j( x+ N R6 `: R* q( C- Jreturn TRUE;" z( c X! U' z8 y2 M8 w% \" Z2 }
}
% s4 u2 I' S4 a5 z+ b* T, J2 F
3 M5 `( j2 O6 H; f# h, Z+ g- A# w
# o# S/ Z- K7 {7 a8 I
, h4 W7 K4 [1 T4 s" ^1 R, D |
|