|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。# [* Z { V6 y/ \! O
s8 W# m Z/ R9 g2 _ 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。# v: T1 z0 u4 B/ i6 P5 t$ i# G# Y
# D% J/ O8 d9 `. ?7 J. d" x7 `
然后是开箱子得到装备,在user.cpp下的函数。
, r- `# O# h7 q+ [0 o5 e% J& w1 f+ q0 [
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子5 d% c V2 c9 g- \9 g8 A
- k0 F2 J0 l8 l2 WDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
+ t8 ^$ s) ~& w' c
, Z% L0 \" J1 U% J1 K( e0 t, c 在这两个函数体下加一个判断就行了
5 ~% e. m9 P) T+ V% c! g x9 n( w7 f3 Z& Y( Y6 u" O( e
if(itemElem.GetProp()->dwItemRare==300)# ~% H& B6 \' n; s4 `
{
+ n7 m( J8 _$ u6 f; ]3 }4 K8 { itemElem.m_bItemResist=(BYTE)xRandom(1,6);4 o7 w; z2 v9 W8 x/ X
itemElem.m_nResistAbilityOption=10;- G1 ~) X. P, }, O) _! p- p
}
, J. z9 N$ K$ b& v4 N
8 V5 d( h% Y$ d* p0 `0 u就是上面这句。
% }0 ]5 y( ^& P# h; _/ t0 X9 q8 K; g$ r% q$ s7 ], h% M) |5 J0 b
至于加在哪里,不用我说了吧,就在创建物品之前就行了。1 I4 L% [9 F6 x4 @
6 }, G) d- }3 v
* [! n5 v, v8 d9 E' z% U8 y9 T$ A$ j: R$ I0 h4 S
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。+ C- M' P: l4 e- r5 u
9 I" u: [: n) S' _$ X( P3 x
& U& q0 k+ d: S! T
% B9 `1 S. d* \+ h! o/ G! y6 q- G3 S& t
; Z8 \- [3 X0 t8 ~6 x: i; s
活动给物品的话那就模仿这里面的创建物品的句子写就行了。' `# J8 H! E6 ^; K
- O1 @/ t: ?6 E# s$ \- U# W( V+ R; c以上写法已经通过验证。不成功自己找原因了。
- U0 P5 Q F( y3 i" V" R3 ^' j) _5 l+ P) i2 U) l% P
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 3 ~( s/ p3 K8 q8 i+ L
* m( t& m: r1 q" d
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
3 N. G9 z: z( N N3 b. o! U8 w& Z2 K% q6 U
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
% D5 A5 f, c" d8 [& d8 {
& ]% V B- c- J a4 [/ @3 _从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
- o, I8 k4 E2 Q9 u1 I! w
5 {, @, w/ I& j2 `8 d+ T. R; s' {+ V- S0 A5 v T; j
|
|