|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
6 D5 G! L- q& F2 E0 p% i8 O* c$ _5 s+ i% \7 m
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。3 M: p9 W' R0 A; W7 j
+ }' s% p! G5 O# y/ e
然后是开箱子得到装备,在user.cpp下的函数。# L/ k& V. L: m- O% u
4 l' S* l g0 z# @& `/ FDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
5 S( O0 u0 V4 r, s& j! Z4 C, E; J0 I* e# y) u6 d) L
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子. F" d; Y- E3 y1 h1 `
, B' j$ z& q% s 在这两个函数体下加一个判断就行了6 j" H3 J; v9 G% z
T! `- ?+ _0 d5 `+ X- y
if(itemElem.GetProp()->dwItemRare==300)
S' F, B C7 ^' E( X% A {5 d3 Q. W% x# p- Q- m' i% k. L! ]
itemElem.m_bItemResist=(BYTE)xRandom(1,6);2 S B( j) B+ m6 b- K: v
itemElem.m_nResistAbilityOption=10;: h: i2 F) D2 M: ^1 c5 b0 F
}
% X% q) P; @0 e( a+ x0 i0 Y g, v2 n7 ^0 E6 x
就是上面这句。; P9 |& s3 z6 ?" |9 ~
/ z; S# l9 s8 d至于加在哪里,不用我说了吧,就在创建物品之前就行了。
& O- N/ \5 q, @( X
$ D4 C F. w! f& m, p$ Y8 |
5 }7 T. H0 `- L! t9 `# K. ~5 x) C$ b
! g/ A( q3 p& m* `( t" n 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
, I. }7 B2 W% \9 F$ ~1 B
& M- h. q$ o" f7 s; Y# C
- ~' J1 A3 x9 O# Q7 m- ^
6 t) ?# Y; X! `- n
9 @! e/ o8 s, O! F# O
7 m5 X: i7 o6 M$ ?4 C* ?7 p& A活动给物品的话那就模仿这里面的创建物品的句子写就行了。- H) m/ {9 a. O# n. b* o4 B' Q8 Z
2 y5 h5 g {: t以上写法已经通过验证。不成功自己找原因了。
4 ]5 m. @. w' z' E* S% a4 x5 |4 o% a0 q! Q5 v: s
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1 Y$ G0 o- i. w
p. Q: m5 x) a) x- P6 v
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )7 `, a0 [8 z8 s+ A/ z& d% o
: Y. E9 u1 Z9 q! g3 p* @ 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =* E" o5 E" B. ]) R
- d# ~* q* ]- V) Q/ E
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -+ B" O+ i5 O& _! j
( G+ R- r/ p3 T7 }. f2 B- W& y
$ M4 X' v+ R* K% w1 B& F: d- T |
|