|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
3 f) ~5 H5 N+ r' M8 Z
$ X1 c& E l( ~ I) y" x- f 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
0 p. |- J# b0 `3 r7 J! T% I) ~8 ~1 z2 Q' u7 c% Y6 X8 M
然后是开箱子得到装备,在user.cpp下的函数。: ~9 g) _. l3 u" }6 w
" H. |2 {: S0 g1 B$ m* Z$ t3 N( iDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
, R# ?$ \. I* Q7 k7 \4 X5 x; t$ z8 ?2 q; b. v) J
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子3 N) s) }* k. _2 A( M- t! O7 n
0 k# L& z w3 a
在这两个函数体下加一个判断就行了! u E9 r; `) e3 h) e
" _) u; n) G D
if(itemElem.GetProp()->dwItemRare==300)
, K. G# X7 _9 O6 Q; W {. j. S' C- s6 C6 n4 _
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
4 Y, p4 c' X9 r' }, l o; D+ ? itemElem.m_nResistAbilityOption=10;
5 C- ~' X, H X }- v# A* k; j# x! ?
9 W; h! i1 {; h8 j0 y% e4 v就是上面这句。
# G) m. k$ Z& C$ v- ~: s: x8 S$ f) ?7 q+ l+ R3 x
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
2 u) x- F, z& j0 y: z$ R! v5 d
9 X0 L) r0 W/ b
( G) `8 ?# l1 c+ ^* o" o& M* A$ j" G5 N+ D% u
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。! F, X% e# N" G; {" p! e
* R! ~+ C2 \) H) ~. ~$ M
& T/ A, a) U* z7 O5 _5 d, h
/ D5 E8 c4 C% v1 [
2 a/ O/ I$ g3 {; W9 q: X
: A4 i- Y% |& D: b6 k6 X活动给物品的话那就模仿这里面的创建物品的句子写就行了。
* V# \3 ], ^3 U( L. V4 Y# w5 n7 D2 w8 ~% o
以上写法已经通过验证。不成功自己找原因了。7 g$ l$ c0 {/ _$ D
+ \. Q3 d& D# w- V///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// & `7 D: }4 R& _" i
7 Q8 \ u8 z+ ?4 }+ f, f3 f BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )' U$ q, B) T7 Y
; F) K5 X ~6 ?' M! E) U" y
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
- _! [$ Y! b. v8 w$ |) K# G* }; \+ J& }$ t& N5 ?* s
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -% {$ [/ q9 R$ {& Y
% N8 {" o4 w* k) A0 `" _! g( c' g* Y" [$ z
|
|