|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
5 \; W" |/ t$ f9 W' x1 c9 v) s. W% d* ]9 G( R" F5 N* l
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
! ? S% Q# r' q- ?" H2 m
4 q& W$ [9 a n4 x然后是开箱子得到装备,在user.cpp下的函数。
# r/ G C- @4 _$ m$ j+ _9 S; v9 ^
: o- z2 u: y: w Q# R$ [DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
! S; H' {# X9 h% b4 N- B5 w0 g" H' |* d$ P. x1 h
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子4 D. i9 d- O8 g' \
. l$ {- ?1 L7 c4 |# G" h6 p/ L2 ^ 在这两个函数体下加一个判断就行了5 N# u, A% Y x, F
d6 X: X4 _$ I( J0 w V/ e if(itemElem.GetProp()->dwItemRare==300)
3 P6 {# ?- W" Q- r& q0 N {
# _5 ]9 f J# p& S% ?7 y itemElem.m_bItemResist=(BYTE)xRandom(1,6);7 q5 h; G& v5 U* Q5 P2 d
itemElem.m_nResistAbilityOption=10; ]6 ~& a1 i3 N# k. a7 V! P) A; M9 }
}: k# P) v) O9 r. o/ i- q, `8 G
0 I5 S. o6 w; C G# H* [+ p
就是上面这句。8 K! U2 s# Q4 a0 J. V
# w: e* Y7 u$ T0 H/ S
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
0 \' x( e5 h% P& \) }& @
5 @, i& q8 e! r% r1 ~: z: K! S0 ^3 X8 u! |4 j+ W
2 ]* N% e- L0 e+ c" v# ] 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。# p7 u/ J& n4 L2 a
3 J1 B' t7 F w3 {
+ b7 G8 C/ J. X& H8 ]: ^4 x V5 T% ]. P h2 m7 ]& z
( n0 [2 o* \- b; t" F, e! k$ K/ I: w% H' W! u6 @! B
活动给物品的话那就模仿这里面的创建物品的句子写就行了。0 `0 O) H9 G- C
Y8 l* n7 Q* {
以上写法已经通过验证。不成功自己找原因了。
$ c9 `! S1 k! ~ F
5 e& I' d8 H) b8 D9 J% _///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 3 l% v# y# C" \1 p9 \! {) ]
, T/ s7 ^% u# P- `4 }) S* J
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )- T7 o; Y% x! H( y; A
$ y# M( j1 c* X- I/ d! ?: B 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =- W3 F$ C, L' v" ^& c7 |. P# V
, n0 u+ L3 [( I# Y. c从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
- p) ]& V) q' u# l' R# p$ \" }8 f5 m S- j
( W9 z/ } i( X
|
|