|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
# k7 j5 w0 N3 z8 c
% d6 T7 }+ c6 g* d 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
; y( v- x% p. l' n) I" f& \( S" H) W% a( ]% `+ z
然后是开箱子得到装备,在user.cpp下的函数。
c5 T$ W- P3 m& n R$ a. r$ t3 v$ t( z- p& z/ Q8 c
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子: M& t, S9 F% K, q
7 ^$ S; w& M% y) c5 w9 c
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
2 L0 [" z! X. W* Y5 G- s7 g
9 [9 m3 j6 x5 E9 l$ h 在这两个函数体下加一个判断就行了2 A' k" G' I6 X, z/ Y0 E+ ~9 x
; W; V1 l6 U8 e# _/ A9 I$ p if(itemElem.GetProp()->dwItemRare==300)
- o8 I3 z/ Y* {+ J) g1 { {
( G8 K4 Z- d* w! W$ D7 } itemElem.m_bItemResist=(BYTE)xRandom(1,6);
5 A/ [/ [, ?% V( C! ?) O* \; T itemElem.m_nResistAbilityOption=10;
& Y* x4 L" ^8 x }
$ s# t7 J% ?" V7 ^& s- |
% T; s9 ^( Z: ~) X- A1 ?就是上面这句。) Q+ X' L2 r) z
" I2 \ X2 ?* V2 G2 ^. |' A: T% N g, j至于加在哪里,不用我说了吧,就在创建物品之前就行了。
! R8 o8 h' c% e0 a) s$ u8 V k( q n
3 x' s* Q6 r1 R5 B$ `4 V
* l( i5 B( y$ L0 [5 v
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。9 y; m9 W5 x3 U4 a+ n' x
' T7 Z6 v. \& x$ \
3 u3 I, A2 A& D% s& C
1 y" e E% M3 O& F' @7 h
, M2 i* G9 K: P9 m
9 h V( v* Z0 P% q+ c+ _活动给物品的话那就模仿这里面的创建物品的句子写就行了。5 F6 t4 O7 P9 T: n, l
" G6 O! J# ~: q, i以上写法已经通过验证。不成功自己找原因了。* g$ {) n+ ` J
$ W S6 y& @* T3 ~0 q& V///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// , \0 ^7 w: r1 c9 ~7 a8 J
& Y |" l2 c6 i+ V# q BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
4 K7 t3 L% o! I- e c; }. c: v4 Y* R' [2 H
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
( w- h2 P! i, p( x8 W p! L
" z6 k/ {8 |, m4 A- w' w1 E从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
' C# w- t- x# L* F; u% y. t! c' `5 k5 [$ z3 F
! N' y4 P, Y: a/ g0 W, b9 M) Z+ P |
|