|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel$ Y& w2 M2 ^% }6 Q% S9 M1 _! f
/ m: N8 k, f( wMover.h; C J( z" `' _
代码:
! o, [7 o3 J" u6 A5 T3 ], o找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü
. C4 S& D+ f5 x" _" @" h C) R, g
1 B9 m& u: l4 R4 N7 p下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
/ l, U. S; E9 F& c3 l: b' U2 u; l# K+ m& X
然后你去mover.cpp添加& x% l" @# U/ Q0 Z
* G* I: i$ s0 y
代码:
* e6 C0 A7 {; d! c3 E, ~void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )6 K) C! E' s' W, u1 p2 t
{9 y1 z+ T' A/ w6 l. ]- Z
#ifdef __WORLDSERVER
: Z. K7 |4 T- h7 ^% v: q: p // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó. r0 a( |% ~3 H, L7 R0 b
MoverProp* pProp = GetProp();
& a. }! f( [0 w' C. j- ]1 J if( pProp )
. P4 a# O2 G6 e {# E; j3 [1 l6 m7 Q3 Z! J
if( nJob > 0 && nJob < MAX_LEGEND_HERO )
1 j) U' @/ a2 q2 o! l {
/ \( t' E8 ~2 q; f AddChangeJob( nJob );
* S' x! d# j9 h4 y8 s5 R9 r }else{! G, ]5 f! }& K- i$ x2 p! Z- n4 o
return;
: l2 }% v* x) `& g } F4 ?$ V- ~4 u# n1 l v$ }8 a
int nPoint = 0;
7 c$ W, N( R: Z! |1 ^2 W if( m_nJob == JOB_MERCENARY )
7 {) G, {" l( Z/ \' [7 v) R; U nPoint += 40;# {+ v# D- x* {8 v8 p9 ?
else if( m_nJob == JOB_ACROBAT )
( \+ P% T8 J# z% |* S nPoint += 50;! m2 W$ Y9 {# Z. g1 i
else if( m_nJob == JOB_ASSIST )
) e& h7 c( k- r5 ?$ P nPoint += 60;
d0 R- S3 ] R* g/ V6 ~ else if( m_nJob == JOB_MAGICIAN ); L' b# g) _/ Q
nPoint += 90;0 {; k& }1 I% U, t
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
+ n, T. B! M3 e+ H& \! @6 R2 e nPoint += 120;
' E# t3 {& u) f! [/ J3 J4 B else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER ) [# _! s3 h# l& e$ A2 Q1 z
nPoint += 150;7 ?+ J& l# S8 B5 d7 `& h. H
else if( m_nJob == JOB_RINGMASTER )2 @2 P: N* u% Z$ ]0 v. u0 [
nPoint += 160;' `; [5 a1 h5 Z0 \' }/ v, n
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )
: e6 L9 `% R: p! q3 k2 z nPoint += 180;2 z/ |* l$ _# j- R* \' ?
else if( m_nJob == JOB_ELEMENTOR )$ U! o* F: @7 p' N a% Z( w0 G4 q
nPoint += 390;5 n7 }* p+ y+ j3 h& i7 o X
else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* @" [* y4 s# J6 H& O nPoint += 120;
3 B/ L4 c* m) b% \ else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
; C( |) p, Z+ V nPoint += 150;
, }4 V8 v% C! h: u) c else if( nJob == JOB_FLORIST_HERO )
- P( G l6 c- L# o, v( C nPoint += 160;
+ Y! @5 m# G0 A% v! u' A& E else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )0 X# C# O. f/ w1 N
nPoint += 180; Y# `! E, V1 x; r9 O+ W% E
else if( nJob == JOB_ELEMENTORLORD_HERO )
9 P }0 L( ?# J/ v: z nPoint += 390;! L; I. N8 y7 {7 B# ~+ Y. w
. [/ q9 h0 M; z6 g4 I% V AddSkillPoint( nPoint );
( c) s, _' t0 T& h: _# Y+ e m_nLevel = nLevel;7 B) S6 @) e! l0 P6 Q
( h8 t9 X; v# A8 X: z SetJobLevel( nLevel, nJob );
( \9 I/ ~8 ^' V0 e; T m_nDeathLevel = nLevel;
2 V$ o$ ?# c. v) G! G#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
$ E0 m$ s5 B5 d- X+ O( } if(IsMaster())
* u f7 k; Z8 J5 k! M {
7 U! E* O- m5 v% @) c! h int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
: x) j+ `4 T) O+ T8 N9 R7 v if( nLevel > 59 && nLevel < 72 )
: C3 M0 o$ [5 E; M1 o# G9 @ dwTmpSkLevel = 1;7 [% {" P: Y, _3 u6 y- l! k3 W8 s
else if( nLevel > 71 && nLevel < 84 )/ K! Z" B3 j$ b2 x1 L0 ?0 o. F3 z
dwTmpSkLevel = 2;
* @6 v4 b, B# k" C2 R T; K! J$ o else if( nLevel > 83 && nLevel < 96 )& `8 u9 p. s. D' i
dwTmpSkLevel = 3; N, E0 Q5 M( s5 I' J. p# D
else if( nLevel > 95 && nLevel < 108 )
2 u! Q# f0 P2 X. n& q9 w dwTmpSkLevel = 4;
3 E5 D8 P+ c4 V* } else if( nLevel > 107 && nLevel < 120 )% P3 m6 j. P- I& x* _( o+ `. h
dwTmpSkLevel = 5;9 o3 G* D. z- f0 H: e* C/ W2 |5 y! L
for( int i = 0; i < MAX_SKILL_JOB; i++ )
, z4 J, k0 S. V; n {
- S# p+ z) G% { LPSKILL lpSkill = &(m_aJobSkill);! D7 J1 n& _# i) L
if( lpSkill && lpSkill->dwSkill != NULL_ID )
& M; k3 ?2 k* c9 h- P$ ^/ `+ O9 r {
( D# r4 w, O& z" ^2 J2 ~ m( v; }1 x ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); * g9 K, ^( ~; e9 [% }
if( pSkillProp == NULL )
& Z: y" U$ `2 O& p$ q continue;& v Q0 {- r2 g7 K+ H' b8 M
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
$ I4 C5 z* F' G8 s, E continue;/ [) B# K6 ~) c
lpSkill->dwLevel = dwTmpSkLevel;
' G/ y/ T; r4 { }8 d/ S% o9 p+ q B; A( S
}
. w3 a/ `! ]' s1 i9 q3 N Q }
4 j H1 }% T5 H0 t else if(IsHero())) i; [( D, j, u& D
{ n5 x; t7 {: X- X' g
for( int i = 0; i < MAX_SKILL_JOB; i++ )
) H, ]. ?" g% ^2 j6 o! Z6 o { , F' \! ^/ t& L+ I |" n. Y
LPSKILL lpSkill = &(m_aJobSkill);8 t9 w+ s' R R# s
if( lpSkill && lpSkill->dwSkill != NULL_ID )
S/ G* c U% M$ w {
0 {9 Q+ n5 s$ w3 I2 V6 F ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); # X, B$ b) J! |/ |) k3 x: m
if( pSkillProp == NULL ). S" C- v$ V; R2 P: |* S
continue;
5 j J' V' C. M if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# Q' n: Z( {# _+ u G continue;; n, q; r$ t8 f& w
lpSkill->dwLevel = 5;
+ Z! Z. s) Z7 \ }
) \9 t" y6 D" c }+ r. |: Z% q$ ~; f. }# J
}& B3 f% b; S3 l2 ^' G$ T( @4 X+ a
else if(IsLegendHero())
4 s: h9 D3 I9 [9 \; W { h: ~% _, u% }- Y# E
for( int i = 0; i < MAX_SKILL_JOB; i++ )
' h- f$ M# u+ c- O1 ~3 c! d { 3 w. Z, i' `+ ^) B1 m, q
LPSKILL lpSkill = &(m_aJobSkill);. M% a. v8 O- m0 p2 q
if( lpSkill && lpSkill->dwSkill != NULL_ID )
7 D8 q* X; C! R/ F {
0 S f9 Z9 o7 J) k; b ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
" D: A. u# x$ _! U if( pSkillProp == NULL )( g/ H/ L+ h" w9 [* M
continue;! L8 N7 Q, o' h& b8 k/ | S, x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)9 l! e2 E1 j1 A3 z0 Q. V
continue;' N6 @3 J4 t0 A5 R; z5 Y
lpSkill->dwLevel = 5;
7 `$ @4 F: a) |/ M* Q }* `7 Y I4 v3 K% k. e, A& O
}* G% M; _( i, ?; s& s! }- G: R
}
* n. _0 j; ]/ ?. @#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans
4 L/ g/ K0 E8 g. l2 V+ I) k if( bGamma )& R# i: |1 k. A2 I7 G
{
$ m9 Y7 x$ h+ z8 a0 p5 A m_nExp1 = 0;" z1 s4 P o8 s9 ?' u7 L3 W# k
}' x# q, [, G3 k* y" h/ C& E( w
* f. t& w B2 u+ p+ z: T6 ^& G* g ( (CUser*)this )->AddSetChangeJob( nJob );9 p* W- _. e4 ~) X2 ]
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
9 A" ^, H0 T6 U" n8 J) S
& \" u6 z2 K n; X9 R& a; e% U+ m& F' ^% o# m9 _
#if __VER >= 11 // __SYS_PLAYER_DATA
( j* j ]) `) u4 \! l g_dpDBClient.SendUpdatePlayerData( (CUser*)this );7 r( q/ H1 r2 Q( C+ R- \" C" @
#else // __SYS_PLAYER_DATA7 x* z$ n& [+ Z; m- L, x. b1 r
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );
2 S' G% f1 P3 A) r- D g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
# J' o/ D7 b# f/ C9 O if( m_idGuild != 0 )
e; I& R: z4 ^6 M1 Y) c% } g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
( i' G: E! [4 o" ?0 Z( E- \) e#endif // __SYS_PLAYER_DATA8 d! A- p( a2 V' \& v7 \
SetHitPoint( GetMaxHitPoint() );4 j; i* H8 t" X4 G
SetManaPoint( GetMaxManaPoint() );
. w6 j% b4 W+ ]7 ~) R# L SetFatiguePoint( GetMaxFatiguePoint() );
% `, f8 F9 H' q if( nJob >= 1 && nJob <= 4 )
% N& F$ G) j. D% ]: P/ P: d {
* p& E$ s3 X$ Y$ p$ y2 [ m_nStr = m_nSta = m_nDex = m_nInt = 15;5 T! X% z* g4 @
m_nRemainGP = 28;
( K( k8 Z' p) e* ]0 _0 s F( ^ }9 w* w" j: S2 D2 _+ ~0 Z
if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
* R1 F7 l3 Z* u$ g8 U T/ a {
, j4 U4 ~) j2 T R, S+ k m_nRemainGP = 118;9 S5 k% I# F* h3 z
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
9 ]+ s* a. B# q$ m; v8 U6 l- Z, z m_nStr = m_nSta = m_nDex = m_nInt = 15;
( E* P1 D; |1 P$ G8 S% f }
" G M/ i: F+ y$ }/ n+ z' K, t if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )
9 L/ c1 P( r' Q* w& U7 R$ G {/ i* n6 [, {: g
CItemElem itemelem;% w \/ i" _( p% G' }0 G- x
itemelem.m_nItemNum = 1;; [* ?% l2 n4 t2 h# t
itemelem.m_bCharged = TRUE;' f( D$ X' g" G
BYTE nID;
3 H$ `+ d3 C1 [; i+ Y" _: q& F+ v& Z* Z3 W3 \+ k) K
if( nJob == JOB_MENTALIST_HERO )9 N! ?# |+ [( b
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
5 V2 G" {& A, E. L1 N" E8 U if( nJob == JOB_FORCEMASTER_HERO )/ C: H2 z+ r% z3 k$ S/ w
itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;; o- Z/ P9 u; r; u
) O2 q) T) }' d% a6 [$ D ( ( CUser*)this)->CreateItem( &itemelem, &nID );
( O- V# l4 y$ W& q1 ] }
8 H" k, i8 B9 Z& p; q9 |& j" w g_UserMng.AddSetLevel( this, (WORD)m_nLevel );& F: T# J0 W& F' D) A3 x
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );: K) ]5 U5 L) Q6 Z C
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
+ S) O, h3 i0 B /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
7 L* O6 j I# r& D Q3 I ( (CUser*)this )->AddTaskBar();*/' _( i* w2 f, L0 k
( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );0 L) {% N5 r+ m
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?5 f# t) w( h, m7 v, b7 g
((CUser*)this)->CheckHonorStat();
4 N5 b. v, h: N ((CUser*)this)->AddHonorListAck();0 b: O2 Y+ v6 c# ]- t
g_UserMng.AddHonorTitleChange( this, m_nHonor);; d, ]% |4 y1 H; h
#endif // __HONORABLE_TITLE // ′Tà?% M5 Z8 l: R& j6 `, k5 V* A( h" ^( J
}6 _: {" ~! H0 w* g) O
#endif // __WORLDSERVER2 o$ D. j; j0 }0 z. m }% K; c6 c/ u! S9 H
}
$ f# J4 \/ e, {/ A
% N8 h% n7 q5 C& {5 ] \然后你进入functextcmd.cpp并添加以下$ ?% u. y8 [0 S2 ?: J
4 V0 `6 }- G" b \代码:' D, ?5 s* Z' d! A4 B
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" ); q# ?. ]4 C: ]# F
下面插入- t3 A+ N$ m2 q$ n! R
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
( E# l6 B2 I" y, D: ^: h8 e+ N, `/ k- W$ ]9 K- Q" X
然后你去
: ^& O# g! G& z1 J. q, n
8 v/ m; [5 U% W( O% h' G$ V" z代码:" Y9 h- W1 H/ w
代码
+ E: \3 [1 g p" S2 KBOOL TextCmd_ClearPropose( CScanner & s )9 H$ |% {- k2 s! h
{
* t0 o: l" y" n5 ?#ifdef __WORLDSERVER; B* a1 K- c& ?
CUser* pUser = (CUser*)s.dwValue;8 q+ n8 m$ V a# \1 \3 }
g_dpDBClient.SendClearPropose();- ?2 }0 k3 k4 Q: t4 y8 @& a* t
#endif // __WORLDSERVER- k/ R: p2 U2 D% i) s
return TRUE;
+ y* p5 t9 p$ l3 E1 s6 J, s}
- b9 | X1 a/ }下面插入
& ? C/ a" H- l* z! _, MBOOL TextCmd_rebirth( CScanner& scanner )
3 c; l z8 n# |; p/ d{
" A' G* Z8 t) i" U. O7 K+ W5 N$ N#ifdef __WORLDSERVER
3 D" ], W% @5 J- e! {& s/ T, d6 ICUser *pUser;
3 K) \5 F9 ]9 [7 O* ?5 P- a# npUser = (CUser*)scanner.dwValue;
. @2 {3 ]" D4 G: m. m1 qif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())6 G# s, e+ @2 L! u: R. p
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
9 X( m- { H7 b8 a8 _ [( D, Belse6 M, q" v+ b+ n
pUser->AddText("你还未达到重生条件!");
7 Q' c3 ^3 j# ^* o _0 D) o#endif
- X6 |) r' s0 j$ w3 Vreturn TRUE;
8 D0 Z7 Y7 Z7 \ a- V} : k+ H/ f0 l' j* s+ f5 l
0 F; p; a! h, O; ?8 E9 g/ x
# t, v) B+ F7 r% l! b" ]6 V/ S
/ f9 A& P T& p6 t; a3 k9 _
$ }8 V8 F' P7 [9 b# T |
|