|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。7 F0 ~+ c! R. p- T
$ I8 B1 T! i ?$ r* P) f: L 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
/ @6 j% z& t! F3 U2 P2 Y5 m* V7 G
然后是开箱子得到装备,在user.cpp下的函数。
5 L" Y- w ?* N& I- j. _# U3 W* T3 L% l$ U2 ]: H& s- _! ~
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
$ B! \4 N9 T4 l$ V6 n& N2 k# Q) O# t( |; m- R# U
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子4 u: U6 t1 N! d: A
* C4 _ e; U6 L& f2 l 在这两个函数体下加一个判断就行了
% P0 _ F* ^* y" B* T1 Z' o U) g8 C* D' l0 K9 |
if(itemElem.GetProp()->dwItemRare==300)
& o4 E5 p" N) q2 \/ p( E% d4 ~% F {! F" X" F( W$ G6 a4 R1 p& P
itemElem.m_bItemResist=(BYTE)xRandom(1,6);. e# p! @. q2 ?" b: O% U# _* R
itemElem.m_nResistAbilityOption=10;
- G/ l6 Q/ f: S" e: k7 ~! n }: y( T$ {# g5 j8 b; ?6 x: t
6 |5 A8 |1 |2 L
就是上面这句。
3 H* @( [3 z7 N: t! ~# J: ~' |$ x( S( e/ t/ t8 Z
至于加在哪里,不用我说了吧,就在创建物品之前就行了。: y( n# p2 |% p4 i4 J/ F
7 o; f) E8 g* l' l
0 D, Y- u% B$ X! C! `! E7 r- p, Z Q( O' O3 u I5 C3 c
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。6 \6 i' W" A; i
5 l& E4 J. L' Q: R& D: j
0 p' B" k- A, p. |+ j' w {, w, r( t& O) [2 p: C& j, v- c$ e
0 A) @5 i4 Y6 N) O' y* E
- w! V% v" `% Z( O活动给物品的话那就模仿这里面的创建物品的句子写就行了。
5 b& J2 Q4 B( Q8 p
/ O# z" L, d) M以上写法已经通过验证。不成功自己找原因了。
& I& j) f! B% q; {/ O& j. R
' X6 O0 W4 P' U///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 K# Q% \5 G4 }! @ S K
% k" W8 x H8 G, | BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
& n8 B; y2 _/ L4 S a: ^
0 c+ v4 Y5 H; w7 z8 \( t5 N8 Q 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
i7 S `( e' p/ y. B# q4 }: r4 M6 y( y3 } ?
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -" P* `/ P8 z8 D) K4 w; h
. I) y3 P4 l2 w* m; [
6 ?" K8 ^$ V9 J |
|