|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
! S- F7 b( s4 K* s
4 y# O" s$ a; d/ O6 R' M 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
: i1 R9 x6 f. P8 C4 B+ a' Y5 X6 b R9 y4 | ?0 E2 Q6 l
然后是开箱子得到装备,在user.cpp下的函数。
4 Y6 q6 p) F; S6 K' t- ]; ]% B! ?8 v$ E. J" x9 T9 T5 Y* v
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
( E" W* V5 I" C4 P2 U2 ?$ P( i! ~# i
! H( K& N$ k8 x% F8 S% S6 K7 z! TDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子' M# P# _( @8 P& ]8 v6 R6 `
9 ? J$ `, @% b5 e' S+ O
在这两个函数体下加一个判断就行了" k; ?( S5 A/ _
: `$ U, J/ O# n
if(itemElem.GetProp()->dwItemRare==300)
. \& h/ M4 t( q8 K {
4 p1 p/ W# ^+ u itemElem.m_bItemResist=(BYTE)xRandom(1,6);8 K z( x( F" ^/ f6 E
itemElem.m_nResistAbilityOption=10;
; O# Q; V$ A1 ^& V6 d6 o" U' r }8 E. V* A- W8 C' _
9 z8 n ~6 X0 V. x2 l
就是上面这句。% V- c. b% z7 ]3 ^
1 s, w. P2 a. U# {) P
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
2 O1 m1 h' c9 ^9 O, ^
, U& v9 I, q0 m. ^$ L) \3 Y5 E3 M, i7 i. ?7 X7 E; E
# S" n/ |5 L8 G9 c+ U 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。( J. k/ M$ C9 ?6 v
. d+ k( X- `# q: k
2 l$ C7 c) Z% u$ D Q& D* K* d
( ?& _* m: e, c: f5 h) s; h8 B1 a: s* f& v! C$ k/ V' k+ P
& B: ^1 y7 w; r/ i+ o
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
; l# _6 Q7 v3 y. v* M
# O# {5 G, K' @! ^6 h% e: G以上写法已经通过验证。不成功自己找原因了。
. U" M9 O0 j& d' }9 w% Q, q- z# t
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// & G! {% s0 P+ m0 L" Q4 t
; b+ T% j7 F* V3 M2 a, S$ L BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )* |, R; [; H- ~( m, D5 S5 v
6 [6 a1 L1 Q, U. K- M3 X" C 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =# {- h. T4 h C: J* w4 s! \
+ x s. a& S$ p/ k t' f从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -7 R W0 b5 B+ @' }; Q
! O$ _' a9 w" Q0 Y6 Y
4 S: ]3 o2 \' F* d0 O' s: k* i |
|