|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。# ] i' p. r; Q
5 L( R2 V3 p& P
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。( q. Z) f' W$ r' v3 B
" _5 V# _- C* e3 M+ C然后是开箱子得到装备,在user.cpp下的函数。
- P" _7 I& l7 A" ^( T `& y y& L4 e' W) s6 q5 h# u: J' h
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
/ ]5 r* N4 ~& c. C$ U% @; x! ?3 C1 e" W& l
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子" j0 W5 d( h" v. f0 V, ^- i% q: n8 h
# E" Y- c- I! X" Z; f" M. l6 J' U' [2 ]
在这两个函数体下加一个判断就行了# b3 ]# i( ]) _, _2 L v
( [# E; p0 U7 c1 I( P+ ~
if(itemElem.GetProp()->dwItemRare==300)/ _) a- S$ I) f3 M' k% f* g
{* q, L' `! f) T+ l" H+ }1 O
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
$ G' g7 D! Z, g1 ] itemElem.m_nResistAbilityOption=10;
% v) A% e% \; P }
2 c- y/ \ U6 m! k* `5 G9 T7 {& ~( h5 o; t& ^2 k3 C
就是上面这句。, T* N- T- Q3 Y0 w: r
7 w1 c: o3 d ?2 W6 z0 w
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
& \7 N5 Q+ c) \& g! n) L, \* G$ [) P: d+ D3 m; G
" ~0 J% }9 j" e6 i1 N7 l6 o/ {
# s+ L$ D+ X, E 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
: I7 N+ B1 W! @7 t9 R6 g1 h3 ]4 W, p
) D' e3 a* _4 e( _0 f U4 W
0 b* `3 L% v9 z7 g
7 V% {3 u1 {8 D" E4 M* ~/ ~1 n! ~; v
/ H W' Q& L2 q$ s$ s' I活动给物品的话那就模仿这里面的创建物品的句子写就行了。, ]" G& y( t- |7 u5 S/ I* s
- r1 c! Y- H, ?% I) R
以上写法已经通过验证。不成功自己找原因了。8 G1 b; k; C: t* ^6 B$ c1 R9 ?
3 j8 d8 O4 v; b
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
( N5 J3 H- ]3 n5 X2 q/ J2 D7 ]0 d) g0 q# ? R* U
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ) I9 {) t. i4 C# y9 {
# `- X, y: w% q 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
$ `6 u) x: j5 e. L+ B# b' S# A
% K: w& y" ]) f! z从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
: L& R$ H, W! G" O v; X" [) x* u- f3 f3 M/ k. E
" N0 j8 c8 M' n% a9 d' E |
|