标题: 关于完美武器 [打印本页] 作者: admin 时间: 2016-1-10 03:25 标题: 关于完美武器 老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。 6 v& f3 z2 {) D3 ^" X0 y* }! S: V8 e% [% I+ M* ~
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。9 m, z% d! I- `( {( j2 ~" F
. y% V% _( d4 n( [& S) i
然后是开箱子得到装备,在user.cpp下的函数。 / I9 H0 J7 O. j& w; Z: y( a $ ]0 P. @. r+ x6 _8 J# I! VDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子 " p4 m% d4 ?; q+ A0 w! \% z; \% |8 u S% c# l/ `3 }7 {4 W
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子 % }( o. f7 _9 e/ z4 S j5 \# |$ v9 |) k9 V$ ~& Y( y+ c
在这两个函数体下加一个判断就行了8 A: y& e' M1 w+ k
F8 N4 c) [( Y# { if(itemElem.GetProp()->dwItemRare==300)5 k9 @! ^5 s: g3 k( l4 Z1 t2 b
{6 s0 R" g7 J, V8 i$ |
itemElem.m_bItemResist=(BYTE)xRandom(1,6); 1 t7 {0 }6 G8 G. n itemElem.m_nResistAbilityOption=10;" X' ]4 t8 V# t- ~' Y0 W
}5 j) g2 t0 _1 g/ `$ D& q
. U) Q$ m) p0 o$ J; r6 o' U& j' z
就是上面这句。 , c& K3 D9 s$ a8 r; f8 R7 @ Z& ], V) d! y1 ?, b
至于加在哪里,不用我说了吧,就在创建物品之前就行了。 : _: N, B2 u; V" f: E0 k* B0 \9 r* V# x. K. E: K8 `% F# E& R: k& }
6 ]0 ~! O; d* _6 z( ?
3 W1 i0 C, o- B6 c' I _) v5 R
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。1 w- T$ ~1 }5 _. S% [; M
/ l! q9 S4 y* o$ K, c! z 9 P% |0 M. F/ j0 D8 ]$ L8 b" m8 D, L [& O. G4 a/ p
7 F- H. g3 |1 m
" X+ s" k7 _2 i. z1 X6 G活动给物品的话那就模仿这里面的创建物品的句子写就行了。 0 p3 n* F0 n' i: r$ E9 d: m. ?6 h# q" _. w* J# d4 T
以上写法已经通过验证。不成功自己找原因了。 1 l4 H9 e o6 L. K # E0 J s1 f' C( I6 c2 y8 c% X" V///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 9 F& d6 j0 f u d- U
5 B2 a) v% W% R" ?% M BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ); n4 i I* J3 E) Y
, a# Z) H* w% L, T 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =" ?! n& d6 G7 C" H