|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
! o* o) D/ C( u
' q5 t% S' L+ d& V; r) o 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
6 ?. ~; N9 B( S D4 l9 p
( u# e4 r' p4 a1 V; ]. P& R) c然后是开箱子得到装备,在user.cpp下的函数。/ Y3 S% S2 Z' E5 D+ n
: F% k2 g$ n4 N6 }1 z ?
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
6 b9 A2 t6 \# e0 A# u- B1 o% G' c t2 D* m. B+ i: K, v
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子; X$ }( ]3 i, g [
' _, \1 s% u& j2 w4 A
在这两个函数体下加一个判断就行了
1 u; P Y; M4 ^3 E2 {
$ V' z/ s+ i9 y6 A4 O1 q; e! [" H if(itemElem.GetProp()->dwItemRare==300)+ a' p' [2 C8 Q" g. ?
{
$ \. P( ?9 W1 T itemElem.m_bItemResist=(BYTE)xRandom(1,6);( s* @8 ?6 t5 u# R+ x3 l" l
itemElem.m_nResistAbilityOption=10;# k1 b. E* p% A- {' G
}
4 L) S M5 x$ }0 m
* I; ~/ e3 q0 S$ y就是上面这句。
) Y/ m: m& {# g
: p3 A9 p: B, B+ M4 Z; G至于加在哪里,不用我说了吧,就在创建物品之前就行了。
' s* W" |# d/ F' [2 r* O n4 t3 g! |2 f/ N! Z
d5 W6 V( H+ ^( a
" D P1 C1 a& J% c4 Q+ ~ 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
: C$ F( I7 E0 R. } @
( w" m+ t; `. T& l' n* ]
6 z: J! D C& A5 f' b0 T3 @, x7 r( o8 b' S0 n( V1 m1 u
% K! x& i, V2 p8 w) ?7 J3 |$ c( U4 R1 \
活动给物品的话那就模仿这里面的创建物品的句子写就行了。6 R3 o0 p* O' {: A
7 y. I0 y2 m- z/ i5 i$ d$ ]
以上写法已经通过验证。不成功自己找原因了。
$ Z# E5 b+ L8 ?1 s+ o- H' J/ `; ^, ^( @; P- X) V6 B
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// & P9 Q+ R' _5 F x* i/ i( h
& H0 W" l/ ^/ ]; G/ ] BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
+ t! H0 S& X' K* G
! g. R9 O [ k 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
5 V: D4 g' r1 b4 D) B! ^0 g5 B# ^" ~- p' Z$ _4 q
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
* L7 O/ a Q- [! |/ M6 N6 P0 [
, l/ W% P9 m- o, l. w: D" K2 F* s* A+ J
|
|