|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
& B/ {; F( ]. a) O- R
% o2 Q# Y5 v. w* r; A+ X 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
1 M: I$ X# k0 A( i: m" j4 F1 P4 Z* c& [' k+ E1 K+ W
然后是开箱子得到装备,在user.cpp下的函数。
4 i( s" h8 c( |( R& L2 ]2 d
! b2 O1 T" l" H5 XDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子& J- O5 Y! [3 H) V
9 u- f6 w- s+ D3 y) w" W' C
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
0 ^/ |( ?) d( P+ A$ x' ^ R
% {& }2 S8 {# T& x. g 在这两个函数体下加一个判断就行了5 k+ p V4 g* I
! W- {; H& {' X5 I i, D9 [% r" W
if(itemElem.GetProp()->dwItemRare==300); m1 E1 S. O' G6 X7 q
{
# G; t# h* p f: a; A! ^ itemElem.m_bItemResist=(BYTE)xRandom(1,6);& X) h' f; O- C
itemElem.m_nResistAbilityOption=10;( F: g: z0 S) \* D0 ]3 p7 T
}
; q1 N2 x/ D$ }6 f
$ B' l: Q7 ~- h1 w就是上面这句。9 C/ Z+ {0 Y" L; Q( b1 r0 Q$ X
2 G, T& u+ A( B- T
至于加在哪里,不用我说了吧,就在创建物品之前就行了。6 X: l9 U/ E) n# E N1 o
1 a4 U9 J6 J1 }3 K( c6 o9 O
+ |7 N0 S0 B6 l H8 B* f# V( o7 w* h* N" I7 o
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。6 K# E7 j! c* a
& p3 P" ?% a- P/ ?/ r N8 z4 r
" n6 ]9 [% P. n) ^$ x
2 t+ S3 F5 [3 z6 ?( j1 O1 P, x
- M2 Y9 `; z( W% `9 j
活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 ~! T# @9 Z; |8 [, j
- N; \9 T, p, ?( R4 p" \以上写法已经通过验证。不成功自己找原因了。
: ]$ j9 E: b) k$ d7 K
/ p' ~+ ^! U% M/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
! {, @- y ~1 I0 _6 f: l6 [
0 k* y0 W% {( i" ?4 N BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ). q/ i( a- q, s0 a0 P
1 e) p' \! S! L5 ^$ v; `. R
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
5 y5 A: T+ u) u8 C
' ~$ J9 S$ Y; A3 H0 _$ y5 p从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
$ Q4 ^$ M9 d# q+ D' T7 ?7 k5 N" v, ?
! s/ _5 q2 W6 c1 G0 n6 ]* }
|
|