|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。( [& B( L3 ?$ n+ Q: X6 u$ L1 p; x( p
) g3 x; [0 P' Z- O7 S1 t# S 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。' j. d! i3 E$ F8 R
" V" J# ?/ x3 a1 f- [3 q5 K
然后是开箱子得到装备,在user.cpp下的函数。( l6 Y3 v6 u' r1 I: u( o1 {; v
. e6 i* {: x) M2 I2 b/ I
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
V/ [% G# \& M8 \
5 p2 O2 S$ f, Y$ {; z' B; S6 ^DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子+ _& X4 a& @) i5 v3 p. c
+ S) J s9 F3 `' d: ~ 在这两个函数体下加一个判断就行了
+ O1 R: A: ]0 I7 \4 @+ m/ X/ k) }9 t% Y2 Y3 e# G6 V2 q7 H8 j
if(itemElem.GetProp()->dwItemRare==300)
" ~- @8 |! Y! G {
4 a5 @: ~ V7 y$ `2 e# _ itemElem.m_bItemResist=(BYTE)xRandom(1,6);; }/ e$ a; a F' V! w+ M
itemElem.m_nResistAbilityOption=10;
) {9 t( ^5 m2 _9 {+ d# c }) `* ` q7 J+ x9 N/ _* ~
# v9 R9 b4 L. Q就是上面这句。# W: i8 I X0 E# h! l
6 t( U7 a% D1 O$ @' r至于加在哪里,不用我说了吧,就在创建物品之前就行了。
0 s) V: a+ t. D5 c" e& {1 @; h+ N7 R8 s/ y9 B9 w2 M
$ P" [9 `/ X. B+ Y& J
7 s# [: Y4 \& h0 d8 L 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。8 U% T* ~: b4 L3 W' ], A* I7 O
3 k( U" I2 ]+ G5 I U1 \3 d7 h
( n- y2 f: e. |2 t' Z. {& E- i! n+ H! A
2 V; D n/ Q% ~/ z
" A& M7 `$ q2 c R: e4 g! a6 `活动给物品的话那就模仿这里面的创建物品的句子写就行了。
7 f- A w2 s% s( I. z6 f. Z
0 D) _- C a9 Q- K: L9 v以上写法已经通过验证。不成功自己找原因了。5 x9 t; J1 j o3 X
, t9 Z3 D# c/ q% ?8 g, B/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
" h2 i9 [ y8 K0 Y1 D0 F1 K6 l& q' K- i, q! v
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )% G' a5 s5 d- X @" } l, a
; w) a& _* W {1 d. }9 W& ] 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =. c+ w3 I$ D& g" M
( O: ^3 S, j* x! R0 m1 c O从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
0 Z# B: H5 G- \4 |6 Z% H0 X! H8 I" N5 l" a# U8 D
9 y; t) ^ o! y# D3 E# y6 W
|
|