|
|
至于V15和源文件发布重生不再使用通过HP它不再去我会告诉你如何可以通过与它聊天源befehel! n: `; a$ y( s! f1 p
0 h- v" Q0 w- }- i( hMover.h; R& X/ S7 j2 ~+ J
代码:
" |; i- c f; M& Y7 \1 F! R找到: void InitLevel( int nJob, LONG nLevel, BOOL bGamma = TRUE ); // °′???| nLevel·? 1ù2?áü* w/ ] [3 T7 s( T, ]" P1 A) q
- T" L& P+ i7 A2 E( H6 A
下面插入: void InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma = TRUE ) ; ! d/ L1 I1 w8 {0 F8 k
) L+ W* j/ w) p' O6 D" k
然后你去mover.cpp添加$ y1 [$ s: n9 U# t
0 W- u2 t, ~8 Y& g' C9 H( @* ~
代码:
# f' _4 G# K4 C8 tvoid CMover::InitLevelPumbaaa( int nJob, LONG nLevel, BOOL bGamma )
5 r* L9 [/ B; U& `{
+ k* g+ C: J7 Q- z1 ~#ifdef __WORLDSERVER
1 v, W; A- ~3 e4 g // ???μàú ?í·éà?·? ·1o§?÷ ??′?°÷àó9 o' k, W- @3 P- G) i# L$ x4 Y! `
MoverProp* pProp = GetProp();
, C% {, t/ o1 ^! T$ G7 } if( pProp )' A1 l' Z' J. A* a5 M& W5 y, ]# K
{
5 Y$ f8 Q1 |/ }' s) H& P4 g if( nJob > 0 && nJob < MAX_LEGEND_HERO )
8 j, C. F( E. e2 @ X+ v {1 ^$ n& d- I9 C0 n
AddChangeJob( nJob );
+ _ o" ~% r; K' ?2 W+ [' g- J }else{
& C& B4 A/ I# e return;
?0 E+ r5 n' o+ `, J) Y3 C2 }" ?/ i- C }
+ S7 Y" u# b7 l int nPoint = 0;
; J% U+ @+ r% a5 b if( m_nJob == JOB_MERCENARY )/ J0 |7 \" B4 n+ h5 O3 {% Y- I
nPoint += 40;9 |9 m" m# r7 \+ h8 u' D
else if( m_nJob == JOB_ACROBAT )/ z6 m1 \ v8 e2 M
nPoint += 50;+ [( U# Q" _! v6 [+ {7 _
else if( m_nJob == JOB_ASSIST )% T) k% X; q: s: o
nPoint += 60;! y1 G) D- C/ {( w( K$ f; |6 z/ q
else if( m_nJob == JOB_MAGICIAN ); \* }. Y4 ~: P2 x
nPoint += 90;7 q' L1 F" j+ A) n
else if( m_nJob == JOB_KNIGHT || m_nJob == JOB_BLADE )
. o# b: P8 X# d3 [# d, a nPoint += 120;
1 B/ i% W$ x) C: O! p else if( m_nJob == JOB_JESTER || m_nJob == JOB_RANGER )! C5 H( h- ?+ A7 H
nPoint += 150;$ B7 Z6 ]/ c0 E
else if( m_nJob == JOB_RINGMASTER )( a* r. z" L1 n1 G/ C
nPoint += 160;2 p( k6 |! J% v7 f% q
else if( m_nJob == JOB_BILLPOSTER || m_nJob == JOB_PSYCHIKEEPER )/ R6 O# z% U! L; E. ?9 r
nPoint += 180;- A$ B9 Y$ z6 j# C! n8 x1 Q
else if( m_nJob == JOB_ELEMENTOR )8 m5 J6 n8 C8 y8 @
nPoint += 390;
2 A F6 K R/ [$ u6 {- K else if( nJob == JOB_LORDTEMPLER_HERO || nJob == JOB_STORMBLADE_HERO )
* @7 z8 W7 o" i- i; _ nPoint += 120;0 `# t7 q4 b* m7 Q
else if( nJob == JOB_WINDLURKER_HERO || nJob == JOB_CRACKSHOOTER_HERO )
0 Q3 N( Z7 A7 d' O; |. r: ^3 Z: n nPoint += 150;8 v9 C; a7 f& \ f
else if( nJob == JOB_FLORIST_HERO )
& _. \( u' K, S( j2 [' e y nPoint += 160;
9 b: t; ]! E! f4 k else if( nJob == JOB_FORCEMASTER_HERO || nJob == JOB_MENTALIST_HERO )" b0 Y2 S, y9 A2 H, y
nPoint += 180;
9 ^! ~. P6 t) E0 Z- K else if( nJob == JOB_ELEMENTORLORD_HERO )" q0 m$ }+ {2 K! ]7 ]
nPoint += 390;
+ {$ ?5 } ?: ?# x' t: V5 `
- M3 N, ]) n$ | E- r6 Y& W' _ AddSkillPoint( nPoint );3 Z" `* D, d0 e' Y2 ]0 _
m_nLevel = nLevel;
: v. k/ X) M7 g% r( T3 j2 ^# U0 K0 k& @
SetJobLevel( nLevel, nJob );3 N5 N6 M a+ G& P& D4 `: z
m_nDeathLevel = nLevel;
1 Z" e0 q( }5 o# H' H2 I#if __VER >= 10 // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans0 t# L# G6 i3 A) B
if(IsMaster())
2 S$ D& q( ]# P0 W0 l {: f" X5 e- _" A: S, W! w& `
int dwTmpSkLevel = 1;//60, 72, 84, 96, 108* H; d G' Q0 E& e
if( nLevel > 59 && nLevel < 72 )$ H, Q, \% T' u0 i9 O
dwTmpSkLevel = 1;' I5 y0 \5 y6 F( U
else if( nLevel > 71 && nLevel < 84 )" P/ y4 Z/ L) }8 F: ~
dwTmpSkLevel = 2;% ]2 }4 p; H& j# E8 o' c6 z
else if( nLevel > 83 && nLevel < 96 )
# S( e) D9 h( @* ?6 Z/ v2 Q dwTmpSkLevel = 3;7 {% l# `, Z# I% P% A7 m
else if( nLevel > 95 && nLevel < 108 ) F" l6 v; q3 M1 ~5 k3 O
dwTmpSkLevel = 4;
1 L; Y. R3 W! ?4 M# B else if( nLevel > 107 && nLevel < 120 )7 v1 Q5 X/ v* Q8 x
dwTmpSkLevel = 5;
! l. `" ?0 D; I4 Y. n+ d" W for( int i = 0; i < MAX_SKILL_JOB; i++ ) ) _+ g* h7 Q+ }4 D1 X" X) B
{
& u/ Z, v ]# x o( v/ c/ w/ | LPSKILL lpSkill = &(m_aJobSkill);7 {6 O) H& G* z6 W `0 M
if( lpSkill && lpSkill->dwSkill != NULL_ID )
l* c" e, D/ a6 x! |9 n {* P- [# S) n Q6 E
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); 6 ?+ K- G( J- ~+ q4 X
if( pSkillProp == NULL )
: i, l* _" ^, s+ X continue;) g6 K l+ a, ?. h5 I( p
if( pSkillProp->dwItemKind1 != JTYPE_MASTER)" O3 G+ Y1 S9 E! [$ ]
continue;/ j [+ O* }2 L. j
lpSkill->dwLevel = dwTmpSkLevel;9 T; S. R6 H( y( Y( P
}
/ n; E1 d$ U) F0 ]* [* }. K }0 O- L* [8 f4 {! m
}$ q- W+ H2 G4 |+ b8 h$ Y% q
else if(IsHero())
W+ M3 A. _. z: b. J; [ {3 U2 q/ E3 `0 F6 {: F0 ]
for( int i = 0; i < MAX_SKILL_JOB; i++ )
" G2 e4 h) H1 {3 ]$ F9 a j {
2 ^2 z' ^2 J* _) g% L LPSKILL lpSkill = &(m_aJobSkill);/ v/ e7 O* }0 x
if( lpSkill && lpSkill->dwSkill != NULL_ID )
) ?) N3 U) ]# ~2 E8 { {
/ S. M+ v- C; Y: j, V5 R' R& M ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill );
! N; ~, Z( j( Q! ?$ e$ \9 | if( pSkillProp == NULL ), j, ]1 G( I- }' s1 f1 k; z5 L$ a4 i
continue;
* J0 E9 a. J4 V6 u8 V! j- ~' L if( pSkillProp->dwItemKind1 != JTYPE_MASTER). z8 C6 b" x! R {
continue;
+ a' `' ?3 A- e( N+ E8 G lpSkill->dwLevel = 5;, i) r# O- G# x) F
}
3 A' Y1 `, U- A* |/ G; t. S }
5 k$ @6 e0 a" t }- n7 @2 E+ d4 ^/ m
else if(IsLegendHero())- \' B# X# }$ S/ f
{
$ r! D+ ^! ~6 l5 f1 g for( int i = 0; i < MAX_SKILL_JOB; i++ )
4 `, N* V( s4 d1 e5 y3 n& i% \ { & ?) Y, V/ [4 z9 ^' h
LPSKILL lpSkill = &(m_aJobSkill);
6 q; }4 Q! k8 B if( lpSkill && lpSkill->dwSkill != NULL_ID )
% c) N6 x2 D5 L3 B5 o {0 F. R. A, R6 [5 T
ItemProp* pSkillProp = prj.GetSkillProp( lpSkill->dwSkill ); / l$ S5 I; A" H# g/ y
if( pSkillProp == NULL ); V- P% n, [+ @5 J) V8 d$ }
continue;
( s( e( }* `& f! J: J/ y! ]1 _8 s3 w if( pSkillProp->dwItemKind1 != JTYPE_MASTER)2 w* F- F3 N# ?1 Y0 I
continue;+ @$ b6 G9 K4 r" Z! D
lpSkill->dwLevel = 5;
4 {! E$ z0 m" }* L: `. m }
7 o4 G: R. R- k* \6 k/ C }7 y( M( z: N. H. P* g
}
* f1 d/ j6 c Y6 X o/ \0 H* H6 N#endif // __LEGEND // 10?÷ àü?????o?? Neuz, World, Trans9 H, P' w3 O" B* E9 F6 m
if( bGamma ), j6 g2 R" F9 K, C* Q
{
% \. N$ `1 j \/ V# T8 J/ {8 U m_nExp1 = 0;
9 X8 n4 [5 e! _% I, \& J, S }8 [) F7 l! J1 ^$ [; l
* E$ F1 ]; n% `) l' h+ S" M
( (CUser*)this )->AddSetChangeJob( nJob ); _: V% u2 r: Z- \; u3 @
g_UserMng.AddNearSetChangeJob( this, nJob, &((CUser*)this)->m_aJobSkill[MAX_JOB_SKILL] );) C6 i8 E8 r$ k& [% z% u2 Y. U
* p7 M/ m5 n4 d% v' I
# q7 R* G0 i5 P1 T/ B& u+ ~#if __VER >= 11 // __SYS_PLAYER_DATA
/ r# A" z" @2 y; R g_dpDBClient.SendUpdatePlayerData( (CUser*)this );
( H+ ~4 L: s& n$ J7 {7 F% t3 U4 j+ X$ B#else // __SYS_PLAYER_DATA* A% T7 ~$ `2 o9 ^ I7 `0 N: ~
g_DPCoreClient.SendPartyMemberJob( (CUser*)this );: _* @5 m5 `' @" p! @% g% w+ D
g_DPCoreClient.SendFriendChangeJob( (CUser*)this );% L9 l3 l* P& K# i. T# p
if( m_idGuild != 0 )% C) |0 H8 t+ A: b3 l2 h
g_DPCoreClient.SendGuildChangeJobLevel( (CUser*)this );2 \% o' R3 j/ k1 v; F: l
#endif // __SYS_PLAYER_DATA
- m5 L$ C; K7 n" Q! v+ b, A) j: g7 V% w SetHitPoint( GetMaxHitPoint() );
: N9 K0 L, l% a4 Y SetManaPoint( GetMaxManaPoint() );2 _: X4 J$ ^0 e* p2 W, U
SetFatiguePoint( GetMaxFatiguePoint() );
" u* W o4 Y; d* \* v: K if( nJob >= 1 && nJob <= 4 )
& H/ F% u/ o2 m( f* u+ i {
9 {: o/ N' H6 x* T, {8 t& p m_nStr = m_nSta = m_nDex = m_nInt = 15;( t3 |: a, s( X
m_nRemainGP = 28;
9 I8 k5 W& |" W }
% a% a% K# X |- {7 H- X if( nJob >= MAX_PROFESSIONAL && nJob < MAX_MASTER ); x7 p% J8 c4 J9 B/ I+ p6 b3 _
{! [ Z& [) K! e
m_nRemainGP = 118;0 _- `" k" u. J+ Q
//m_nRemainGP = ( m_nSta - 15 ) + ( m_nStr - 15 ) + ( m_nDex - 15 ) + ( m_nInt - 15 ) + m_nRemainGP;
* P4 i4 w" W% Y5 _' J( i) Z m_nStr = m_nSta = m_nDex = m_nInt = 15;
7 C# d7 V2 Y' r }- F& l* s* z1 N+ Y! f K1 J
if( nJob == JOB_MENTALIST_HERO || nJob == JOB_FORCEMASTER_HERO )6 [( s$ s- E' W+ V4 O
{
! ` {4 h! l$ G. Y$ F# j CItemElem itemelem;6 U9 C- P/ I/ A
itemelem.m_nItemNum = 1;
! v r0 r6 q( I0 e2 a! I itemelem.m_bCharged = TRUE;5 z+ Y1 ~' j5 V: p! U
BYTE nID;
+ y5 d( c! s M! X) S' o9 Q) Y* J2 ~, _& M- x1 j8 T; u2 u
if( nJob == JOB_MENTALIST_HERO )9 h6 I4 s' f8 M
itemelem.m_dwItemId = II_WEA_BOOK_BOKROMAIN;" l' {2 z. l# O+ C, E6 x v
if( nJob == JOB_FORCEMASTER_HERO )
* i- S, `8 M5 \ itemelem.m_dwItemId = II_ARM_ARM_SHI_ZEMBATO; E6 I f$ u) v/ P& k6 r
7 C' y; F6 E2 l2 a5 L$ Q. T2 b
( ( CUser*)this)->CreateItem( &itemelem, &nID );2 Z7 f% j* h$ \7 o* ^- J/ s: h
} d& z0 [( q' }% R4 c: }
g_UserMng.AddSetLevel( this, (WORD)m_nLevel );' N2 R( v+ b$ w! w% m3 x m- S: G+ m
( (CUser*)this )->AddSetGrowthLearningPoint( m_nRemainGP );- u5 |6 f& @6 p2 L- P1 i* R
( (CUser*)this )->AddSetExperience( GetExp1(), (WORD)m_nLevel, m_nSkillPoint, m_nSkillLevel );# y) f0 q! h1 K) w3 i: ` ^
/*( (CUser*)this )->m_playTaskBar.InitTaskBarShorcutKind( SHORTCUT_SKILL );
3 `( N# y8 g6 C* u ( (CUser*)this )->AddTaskBar();*/
3 M* U* @4 a j5 a ( (CUser*)this )->AddSetState( m_nStr, m_nSta, m_nDex, m_nInt, m_nRemainGP );
$ {0 @2 \( ? O2 [% |#if __VER >= 13 // __HONORABLE_TITLE // ′Tà?
+ L$ i' z+ h, O7 i3 w j ((CUser*)this)->CheckHonorStat();& U9 u) b* s5 I. Z0 ^
((CUser*)this)->AddHonorListAck();/ D3 A% j# o/ f% V
g_UserMng.AddHonorTitleChange( this, m_nHonor);
; l4 o2 z5 Q o3 e; M4 n#endif // __HONORABLE_TITLE // ′Tà?4 _) {& ` e" t
}
* G8 c' T/ U) c$ D# u& Y# A#endif // __WORLDSERVER
# E. r& ]* s, D( ~3 z}
8 I( \6 e# D& b
- h# d) m6 s$ [然后你进入functextcmd.cpp并添加以下
$ c, Y* y1 r+ P9 `9 h( _ w% S* r2 d- x" J
代码:: L9 d& Q: [' n
ON_TEXTCMDFUNC( TextCmd_say, "say", "say", "??", "??", TCM_SERVER, AUTH_GENERAL , "?ó?èàó [/?í·é ??àìμe 3???]" )
' v+ s7 P* `% U3 F/ `! X0 Y0 K下面插入 v: k, ?& n7 |6 C/ \/ v
ON_TEXTCMDFUNC( TextCmd_rebirth, "rebirth", "rebirth", "?ú·1?÷??", "?ú·1", TCM_SERVER, AUTH_GENERAL , "?ú·1?÷??" ) + r4 p* B& m# j5 Y) ~4 n8 Y4 o
# {: i$ `; s% J- ~" p, c6 @ b然后你去
' {2 M) H! V: M8 b! r8 h9 L* I
9 q$ }% }" K& B! A2 q代码:$ R, E: D7 x2 t0 Z+ Q' h" [! j" X1 z
代码# J, o& {- n' r" g& H# ]
BOOL TextCmd_ClearPropose( CScanner & s ); G) E/ u6 L2 M- ]( X2 Z6 _$ r; w
{* `+ x4 a$ E- _; I0 M" s. B
#ifdef __WORLDSERVER- M$ \; t7 ~7 v( l+ F: b
CUser* pUser = (CUser*)s.dwValue;
, e' ~! X8 p4 u: T6 N g_dpDBClient.SendClearPropose();
" p8 E, c2 h9 B9 K6 U#endif // __WORLDSERVER
' d% c5 [! W' H! ~; k. |7 }$ C return TRUE;. O% u- j( J3 u$ f' q9 x0 Y
}8 e# E) P: g* X# w1 M: t( f
下面插入
5 _9 T( b& p# rBOOL TextCmd_rebirth( CScanner& scanner )& m& `3 S# g' I& b0 e1 _3 n% A! F2 Z
{
- N% |. n. r7 D/ X' K+ ^#ifdef __WORLDSERVER
( b/ Y& ?' a& h6 I+ zCUser *pUser;
* b; b& K( @' W, l* }pUser = (CUser*)scanner.dwValue;
9 `7 h5 Y; n$ B: Y+ b! Dif(pUser->m_nLevel >= 150 && pUser->IsLegendHero())% G! J' d( z3 k" L9 g; Z
pUser->InitLevelPumbaaa( pUser->m_nJob-16,60);
$ {. H% F- ~6 ?! B& oelse. v8 L* E+ `, R, X p2 t
pUser->AddText("你还未达到重生条件!");8 d0 R |# k" ^& V
#endif- i) Q' {! ~9 C1 e
return TRUE;
; l7 g3 G# X+ ]) S5 K: r} % `7 `& u! h3 ^% s; w. B4 Z0 b6 M
: x0 {* i' l0 O, x2 Z: j, t5 _6 e2 ^
* g9 T. ]7 }0 u( s0 q. z
" S/ j/ T4 P- C$ ]
|
|