|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。4 n% s9 C1 H5 z. C0 V
+ `$ i% n9 W8 q: m 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。. b: A* n( t! _4 T
# ~* t. V6 i% G! v5 H然后是开箱子得到装备,在user.cpp下的函数。4 g( T k* G( h! [' J5 N- i- q7 u8 P
4 v* k$ A( D7 G6 t B+ |& ~DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子2 [# v W" k( b+ _
/ g" }3 L: W% ^5 y" x
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
( F, p7 y- m, l6 }3 |1 r' s( A, H8 g
在这两个函数体下加一个判断就行了
6 W/ x4 z7 M9 ]1 z( Y6 N8 t
2 r! s! H$ Y/ n8 u+ j# q if(itemElem.GetProp()->dwItemRare==300)
: ?" y2 i- h+ E2 J {* m5 L1 Y# ~: t
itemElem.m_bItemResist=(BYTE)xRandom(1,6);6 x) s6 g6 a$ x
itemElem.m_nResistAbilityOption=10;# h, ?* w; v& F) R
}
# B5 O. G/ A) m `% a; U b$ \' v; ^- B C; h& ~
就是上面这句。
; ]* g/ t" B. Q3 x8 Q/ ?/ J5 w, G* D
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
, V* k# A0 k- p. B
) s. ]) V" @- \* N k& O4 ~2 j" A- q5 d$ T; Z
8 V+ T$ H$ U9 w
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
! y0 w4 S/ N, z3 L
C: A, y+ s7 C1 `1 d6 E$ y$ P, f! [! n+ M+ c$ |9 [* [
+ r6 N/ S* i; I/ l# w& {
2 J5 C8 [ I e- C
) K; v& T9 c) y: T6 `) @; ~活动给物品的话那就模仿这里面的创建物品的句子写就行了。1 `- j1 A7 h8 i z0 l2 w
8 N, | o+ C1 ^* n4 P' ]' |
以上写法已经通过验证。不成功自己找原因了。
5 @8 a: D& e4 {7 ~& p' ^3 n8 ~+ S9 C# k6 S/ U
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2 D4 z) p7 r! T, e; a
& K5 T' c6 [# Z BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )3 d& l7 D' ~' {* E
- N& f9 O: k8 K4 T# [0 F% |9 U ?
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =, L3 Z& J( G" E' s+ t/ O+ N6 U
* r% C5 o+ k" f* d
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
4 g& J* K' J5 A( s- R" ?2 b- z9 G! u
" L. ^; P$ [) L/ |, | |
|