|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel( L. P8 w3 H/ ?& Q. e% q
1 o- ~+ S) G9 I
Mover.h$ c4 `. G: |- k
代码:
- Q1 ^ r9 V2 \* p {) U' I# x找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü, y9 i* Y+ q" m9 S. F, u2 f% {+ U
; g2 N. L" s/ e2 ]7 }, v
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ;
S8 ?- w. ^8 a3 j, F7 K& N
% N G9 \1 d" B. ?然后你去mover.cpp添加5 Z x# v2 Q; j: ~1 u
9 Y3 Z' Z) z6 B3 k: j% a3 v: Q: ^! M代码:# s$ i X8 d L, O, s
void CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
- m: @+ t: ?. f- V5 O, C- J0 ?{, t/ O; S* G3 M) s2 b7 M0 `
#ifdef __WORLDSERVER9 S/ i) v" v/ n& e) M& {
// ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó% K ]" f, N; G7 E
MoverProp* pProp = GetProp();
! p5 t9 ^/ U) d7 c6 z: C, J2 F) t if( pProp )7 ^" Y; Y- U) M" Z
{
! F' R1 I c8 E' V ]4 L if( nJob > 0 && nJob < MAX_LEGEND_HERO )1 o0 v' J* G" {+ M5 |
{# h) Q2 ] y6 J$ g. W9 d4 L
AddChangeJob( nJob );# B9 x4 {' R2 [/ a: @" o9 c
}else{
3 n5 n) B* o, Z. Z& S0 H return;
u, o. K2 y% I8 k2 ~ }
' }! r3 ~- C- \ int nPoint = 0;
5 v! Y/ v- b9 R if( m_nJob == JOB_MERCENARY )
3 t0 V# T+ J$ {+ y nPoint += 40;/ |3 u6 b' I+ `2 ]" m
else if( m_nJob == JOB_ACROBAT )
; N9 F4 h a* {/ Y nPoint += 50;
, | a0 h6 u! _% a9 n2 k else if( m_nJob == JOB_ASSIST )
& B$ H+ s$ @. J) E z nPoint += 60;
1 c/ r4 W7 m0 b- P; b1 I! Q1 ? else if( m_nJob == JOB_MAGICIAN )
, ^$ w" _. y& C% C2 i" `5 P nPoint += 90;
8 |, z, T5 u1 P else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
# m% f5 t, ]9 b b& n1 ` nPoint += 120;
' I1 D* S4 o7 Y* a( A else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )
9 e1 Q7 N* r8 k, F5 w9 p! Z nPoint += 150;% k& B6 f. N- G, q. F7 a
else if( m_nJob == JOB_RINGMASTER )
* k( T+ E- M; H( d# ? nPoint += 160;1 L! y5 y3 E0 w: Z! p7 d3 }
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )! H/ d) k' j w% T
nPoint += 180;# X9 n! t) O# ~ G. e
else if( m_nJob == JOB_ELEMENTOR )
- G& R* K) p8 K: u# k: E: P nPoint += 390;
; Z: h2 L: C# x: ]! E6 X' d else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
1 N U5 Y; m' g( o! _ G; v nPoint += 120;
& I0 r/ u0 \3 u7 R' _/ O4 v6 x else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )% ]( H* N# C5 @
nPoint += 150;
8 Q- J7 Z. |3 e0 u& X6 O9 K; d else if( nJob == JOB_FLORIST_HERO )
. i* O. t$ V G% F% `. K nPoint += 160;
/ w- |; X* N( o. l else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )
0 e5 a5 K4 [7 U2 T nPoint += 180;0 C5 \" J9 i& R3 o. J
else if( nJob == JOB_ELEMENTORLORD_HERO )9 Z) c5 d4 Z( M9 r+ b- W. N! W: f
nPoint += 390;* x* Z( D I0 g( t$ Q2 c* H
+ k# ]% r6 _, s, `3 `1 g
AddSkillPoint( nPoint );
2 F1 ?& u/ G3 F- i6 b9 p2 t0 }2 Q m_nLevel = nLevel;/ b( Y( P) T6 z
( }1 O* l7 j0 {# ^' Z7 a; X/ Z
SetJobLevel( nLevel, nJob );, `+ {# g. u" W, H* R
m_nDeathLevel = nLevel;- ?% t( K" R. E& V4 q# q
#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans& T7 }8 c) L+ Q) ? N
if(IsMaster())
- A/ A, Q; h% I! L {
5 m( l# S" L7 M int dwTmpSkLevel = 1;//60, 72, 84, 96, 108
+ Y5 @, W) d: B if( nLevel > 59 && nLevel < 72 )' B+ w( h0 a- z2 I
dwTmpSkLevel = 1;# n4 z" e! o$ L/ v- O0 J
else if( nLevel > 71 && nLevel < 84 )5 F T6 `+ V( J- Y% ?- z3 I
dwTmpSkLevel = 2;' e D, D3 O$ g; G, r3 v: i
else if( nLevel > 83 && nLevel < 96 )( g) ?) l* y5 L
dwTmpSkLevel = 3;4 c- T) g( N/ W2 v7 X/ d
else if( nLevel > 95 && nLevel < 108 )9 n3 n, A! m9 Y3 }) b; F* u8 K6 T
dwTmpSkLevel = 4;5 M' ?" z# H m' A5 `# r( g
else if( nLevel > 107 && nLevel < 120 )9 O5 E% P7 f% D D4 G
dwTmpSkLevel = 5;
) Y( O8 a: v V. J" q) x for( int i = 0; i < MAX_SKILL_JOB; i++ ) ! Q" n( z6 A5 {$ u3 C- A
{
j+ Z6 [- d* [. `! Y LPSKILL lpSkill = &(m_aJobSkill);0 l" j& ?+ a% P
if( lpSkill && lpSkill->dwSkill != NULL_ID )# n$ `, o" y4 U" A6 b6 X8 W
{
+ U, o# G7 \. l# L5 `5 r6 l( J8 H ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
1 T! ?/ z9 o! n/ G4 t5 e' z if( pSkillProp == NULL )- J: O& }9 }1 c0 R+ h4 a, h
continue;
" B! C1 H: @$ h7 ~' z" c" q if( pSkillProp->dwItemKind1 != JTYPE_MASTER)# \) u9 b- \3 t
continue;
- G, b/ u' h* k lpSkill->dwLevel = dwTmpSkLevel;
, U4 G" f/ v! C/ ]: F- `9 v }
, {% p, n$ Z* G/ ? }$ B) ^, B6 d$ [9 C
}
' h2 i% C' n! q5 V" r8 b" m0 n" C else if(IsHero())
Q. j6 |) M* x5 Y9 ~ {6 U3 K" U3 H/ i* n$ W- @% `4 n6 a% j
for( int i = 0; i < MAX_SKILL_JOB; i++ )
- O' F4 t4 G! l8 {5 P# ?: k9 u# F6 y { 5 q7 T# w- o% g4 T5 q4 N. q
LPSKILL lpSkill = &(m_aJobSkill);+ A9 J ^, Q X- {* j& \0 N
if( lpSkill && lpSkill->dwSkill != NULL_ID )8 J0 q6 ]$ }. n* u
{$ `3 r5 ^" m* e) Q: e
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
4 y# Y/ K' W+ q% x$ r% g" C if( pSkillProp == NULL )% P" y3 x l' g7 ?! m; y
continue;5 L$ T: p" K9 b' x
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)1 ~/ M |. o; \8 U2 t; [) O. @: p8 w
continue;9 z' e. T1 X% l3 Z5 t; f2 u
lpSkill->dwLevel = 5;& ~. K0 S" [9 u0 W2 f, n4 v
}/ d' f% o' T" J" P, I+ G! ]
}
5 x y* w- I6 G) [1 A, z) ? }. ~/ Q" Q3 ~! U! U' Y
else if(IsLegendHero())
0 M+ x# l$ e0 v- I {, }- a/ b' f! Q' o! y' N: k# f% p
for( int i = 0; i < MAX_SKILL_JOB; i++ ) 4 v K! m, m+ F( i
{ 3 N. |3 Z# P# I
LPSKILL lpSkill = &(m_aJobSkill);
1 S B4 t! c+ B7 |! |& _7 u- p+ q if( lpSkill && lpSkill->dwSkill != NULL_ID )
i$ w1 }( S; ?" W* S {
, C6 k9 ^! l$ t0 u ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 5 j7 x9 F: s1 ]; m& D
if( pSkillProp == NULL )% R ~" W$ _1 m( _! j
continue;0 u7 F6 D2 |2 J D
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)
# _4 s# }6 t6 S" M" M: u continue;: U N9 l5 ?0 G8 o9 D
lpSkill->dwLevel = 5;" J) a0 W6 K2 }3 x9 R1 o' L. X( g
}) d* U0 r* z0 i9 C0 t0 N( D8 Z
}
8 v# \$ r* k) U- M0 T }; V& ~# G) J' l- o0 h+ M: s
#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans5 w5 _, f H2 v9 Z4 d! r; T0 [
if( bGamma ); v8 I, u' ^& ?& f' r3 o( r: ^0 J
{
/ V: A+ }5 D8 G- J m_nExp1 = 0;
6 f* S* ]# }5 n- |$ q5 N7 n }: e/ r! ]# U- {* C/ N Y: W
1 V9 O0 T+ ^, J4 ]+ V o/ ^
( (CUser*)this )->AddSetChangeJob( nJob );& @1 r2 n/ H- @4 Y# S8 T5 F8 S
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );
6 l) b, a H. {+ z2 x
/ q0 n2 s$ b+ e. z- j2 ^. e/ F8 W$ {, W$ X% c& x1 ~; z/ p( Y
#if __VER >= 11 // __SYS_PLAYER_DATA
3 \, Z& Z% U E' x4 {) y g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
0 D: l% ^, |: c- Y4 v#else // __SYS_PLAYER_DATA
) V$ A! ?+ B; `% y# F2 E3 K T g_DPCoreClient.SendPartyMemberJob( (CUser*)this );) w x/ d; s; _6 X
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );
. S* y/ o" \4 C& f/ X- X if( m_idGuild != 0 )5 F1 B! t- v0 m+ f: T7 r, `
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );
L( ]! @$ G6 k9 C8 U8 s% ]#endif // __SYS_PLAYER_DATA
9 X" o5 `0 X8 {* K' j' ~ SetHitPoint( GetMaxHitPoint() );
( J+ S& C) K. G1 O SetManaPoint( GetMaxManaPoint() );$ `, m% u# B2 b) ^( {8 t
SetFatiguePoint( GetMaxFatiguePoint() );: N/ X3 x, s& ^( a* Z
if( nJob >= 1 && nJob <= 4 ), [: |4 r0 y6 O+ y
{- L. k5 Q. i( Z$ Y* A
m_nStr = m_nSta = m_nDex = m_nInt = 15;
/ i' i, C& y+ M. D m_nRemainGP = 28;
; p5 @5 @" V% h. q2 ~9 B4 ~ }
7 o6 p1 _/ @( u3 `2 `& T; R if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER )
! V# p+ y6 E* W5 X. L1 B3 ^" d {
L6 v9 ?+ n$ `- N m_nRemainGP = 118;4 w! I, W8 g$ n. V
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
4 r/ i4 z& U, H" p m_nStr = m_nSta = m_nDex = m_nInt = 15;
1 C2 V4 N `0 E6 {3 E5 L1 C }
! `) u8 ~- W3 } d8 @ if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )/ X: S( N5 {3 x& n
{
, J" \/ [4 T! E" U CItemElem itemelem;
& H* H3 \; B3 h0 ^1 ?, F itemelem.m_nItemNum = 1;
/ y$ _ c3 s7 L/ ? itemelem.m_bCharged = TRUE;# r% _/ p' L X& p9 x
BYTE nID;
@3 y4 g+ c( w0 G5 v5 S+ h' f* K) ?$ z$ e1 B! E! r+ E* |! S
if( nJob == JOB_MENTALIST_HERO )* A1 h$ y6 l2 V+ S3 _, a, W) y
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;
" A* r9 o; l) e& H9 { if( nJob == JOB_FORCEMASTER_HERO )
+ |& f0 [+ ^2 D, O5 ?4 F itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO;
+ a- z' V3 K% o. P- ]8 H8 p8 Y) G2 `, [
( ( CUser*)this)->CreateItem( &itemelem, &nID );
& T# U" V/ ?3 a2 [6 S5 Y3 y }+ ?/ o2 H, R4 ^! T' m* S
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );) Y E" ~" q- Q; P5 Q
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );
/ s1 m* }1 p' G1 I3 j% m! f ( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );
4 }6 f# b) v; p& h( b /*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
" q/ ~0 M( y2 }- h" w4 V ( (CUser*)this )->AddTaskBar();*/
* y+ I3 t; z5 s4 o8 I2 B7 W% A ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );( W3 _9 r# E% C
#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?8 X% T5 Z5 n9 R" y$ o
((CUser*)this)->CheckHonorStat();; g" p w; j0 K2 m
((CUser*)this)->AddHonorListAck();
/ h& R: l5 Q; U g_UserMng.AddHonorTitleChange( this, m_nHonor);, t# J: A V7 A$ S6 ?, {* F
#endif // __HONORABLE_TITLE // ′Tà?
' [ ?9 s- ?7 Z$ \+ X, b$ i* T+ S% a }
! l' u0 g6 c. r3 _% E, I7 y#endif // __WORLDSERVER9 w: Z' k2 e, F9 Z! i
} 7 V7 B* a$ r' E& n/ m
% F! k* [+ m8 A- ^& t) q( f然后你进入functextcmd.cpp并添加以下6 q1 h) I/ M$ F. b2 P5 q
. _3 J2 O, v* L& @ j$ y/ h
代码:( S: p R7 k/ h; n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
- g/ l4 C8 R5 x下面插入
9 f( I: L6 E1 O f& ]. @ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" )
/ n3 V1 ]/ ~4 v/ M$ ]% q: S
5 ]- a6 o. q+ k7 B C" `; C J然后你去
, V0 Q* Q/ l. C$ J( ?. L
4 L' j- _1 w' R3 f- U代码:$ l2 x/ C3 ?3 `
代码
, w* Y+ j; f$ i+ K( CBOOL TextCmd_ClearPropose( CScanner & s )
. {! P0 R- j# J, B. L{
1 M0 f' ]% F# _' c7 {#ifdef __WORLDSERVER
3 C C7 Q. w- `+ z' ]# L0 r CUser* pUser = (CUser*)s.dwValue;( G1 w: S8 I9 q5 O" a8 C. U
g_dpDBClient.SendClearPropose();
) M) y' v. ?5 H" H#endif // __WORLDSERVER) J; I( j9 R2 Y5 H6 @
return TRUE;" h0 V: a( `/ i" d0 s
}$ j8 I* C* p, [" h" J/ E# U/ O1 s) @
下面插入
$ s4 m- v s$ h$ n8 N6 OBOOL TextCmd_rebirth( CScanner& scanner ) E+ Q" q8 i" g
{
% ]1 b7 f# ], d% V#ifdef __WORLDSERVER
! ^1 s9 I. F/ RCUser *pUser;# a. C0 H$ O2 Q2 p1 y
pUser = (CUser*)scanner.dwValue;7 v$ C3 {/ F& V! N
if(pUser->m_nLevel >= 150 && pUser->IsLegendHero()): V1 h7 n3 O9 A; u* k0 X
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60); J2 p: b ^! s
else$ U' c( s& J/ }, A, f/ H
pUser->AddText("你还未达到重生条件!");
r0 S4 q' K9 P- o' F, r7 {#endif7 g4 a& a9 m6 P
return TRUE;' p% N# R+ t( k, u' V2 v- y5 E
} 3 Q' K& K) G T/ d2 P, N. \
4 b4 I7 _; g* A
# G4 {0 K1 p+ _2 w5 E' d& w6 @3 k' c" Y
) C5 u; p9 W* x1 R
+ d( o, L3 y' M @. h) J& \ r$ l |
|