|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
8 S" P* |1 H9 H- z3 N0 q+ `) |+ {% m, z( ?
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。- e0 I6 F4 k4 I: t. _2 Z" z
4 _7 q3 j0 k+ J3 Y8 T7 r6 E然后是开箱子得到装备,在user.cpp下的函数。" ^- }* r% X% r& c) Z% _
. E. _, D, L7 R2 w
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
+ b/ ?7 l# h' y- Q- s) Y K3 m6 G G
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子6 D9 M2 S1 A+ |
! W: r7 {7 Z% H7 `
在这两个函数体下加一个判断就行了
5 c6 v* n* `8 T: u/ T- v5 L
3 j! s+ C3 A, F9 h& M9 t8 M if(itemElem.GetProp()->dwItemRare==300)2 j! k9 p, X* e/ f+ e
{
1 ^, r1 t% ?7 o: R( F8 L itemElem.m_bItemResist=(BYTE)xRandom(1,6);! P' f5 N( C$ E& z" I; `
itemElem.m_nResistAbilityOption=10;
- ]7 {: E0 C5 {" }2 E8 w }) w4 l. w/ S4 u* X. m8 u% [; d
2 L. m+ R3 t4 y6 O7 L9 C* {
就是上面这句。1 v0 F; p# [2 d* T) O. o- H% e# l, O
- _# z* |* `( k" M8 l
至于加在哪里,不用我说了吧,就在创建物品之前就行了。5 l' g& o% T$ G S- v' c
- p; {0 i( g1 r0 u3 b0 z0 K
O5 _ |. B3 j' l0 H
4 v* Y, K: l2 L$ A4 z) O* E5 | 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
2 a4 Y$ s- |4 @$ ^0 c) ?# w9 b0 j$ z. _# M0 [
4 N5 a7 \4 V% A" R+ D/ A
/ w8 n9 w U7 b
2 ^, g: v" |, S: I% t* T8 \
+ R( S4 a% M6 I g9 P8 U活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 A9 w5 `, o# `1 ^0 A
" M; c% D" F: t4 E# _以上写法已经通过验证。不成功自己找原因了。
4 X* C9 S/ X2 h3 `4 x+ ~7 Y+ R1 R. H4 S* p6 z8 c
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ' X [( m$ ^4 Y! p! [
# z: w5 F* {: z! J( j
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ). j5 m+ l: p6 C. m; m
; {4 l! \6 z( k; f4 b: w" f& T( R+ j 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =5 n ]6 k: B6 b" y1 \
7 ?. B9 `7 V$ k# @# T从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -/ C# }) A& z$ {4 _9 V
) g5 D" u1 j- R. ~
, t R+ K6 o; o4 Q |
|