|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。+ x, I/ {- ]2 P( |" J2 ?& z2 q+ b
' H% N/ Q8 p! V3 E+ C: n, e
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。2 |* h2 B8 C k0 [
( s# J6 q7 i, t0 ^# U然后是开箱子得到装备,在user.cpp下的函数。8 @1 F1 R: W, {- E
) b8 q+ ^+ B8 T
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子( n# S3 `/ I9 }! e3 ^. W' v! P
0 A) ?. r% q8 B) X
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子6 v/ ]: ~0 Z, L" [5 T+ k5 v+ Q
, [9 {/ q! x% p) w. i 在这两个函数体下加一个判断就行了& d( C" l6 |$ R/ }
/ L6 h+ ~8 [2 I7 ?) ~9 \
if(itemElem.GetProp()->dwItemRare==300)* Q8 T7 P0 @1 s% R5 E
{
0 ^/ ?4 j7 M4 [$ s/ x itemElem.m_bItemResist=(BYTE)xRandom(1,6);# N. `9 u% q0 R
itemElem.m_nResistAbilityOption=10;
: A/ G1 @& X/ A* T }
8 Z: n7 }9 D5 c* q
. y H7 D( S; I3 j: `( E就是上面这句。
: N7 G/ X6 g% S
* X0 r, O. z( @& q至于加在哪里,不用我说了吧,就在创建物品之前就行了。: J. y2 u/ q& X! T% ?8 Z
5 v0 \* w- N m/ I
$ y$ }8 B3 ?4 H0 ]- X; D8 A! a; X
7 F. |& B$ H; ]9 j
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。3 h* s0 \) S" c+ H5 {9 a3 r' S
9 a, Z3 J9 e/ N. V6 C& f) ~4 A
& m$ ~, ]- g( r9 ^8 }
4 k' W0 n0 n% j6 {, M8 H9 C! t% V+ y
$ ?& b/ z% L5 ]: n活动给物品的话那就模仿这里面的创建物品的句子写就行了。1 S8 X7 ~+ Z. w$ T( X; m; | \! {# W; v; I
6 |: g3 _6 V5 |以上写法已经通过验证。不成功自己找原因了。
$ D& H) J9 {) H+ H& I/ n
' R' y% t" Q, J7 b+ z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// & L1 L/ W' X O( E* A) R- w8 l& i0 i ~
( w0 I/ h/ O6 [& D9 X* m2 |+ A; U9 B4 n BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )5 `, F5 y! ?) B) S; C) s
0 P$ y7 B8 \9 q# Q% { 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
: D$ {( g* c+ X8 m' i% Z$ B% |" b' K
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -0 B3 d# E2 D1 S7 ~% G3 p. c. g/ r
8 X Q+ O; ]# }$ V& N& T4 D( Z7 D6 G2 F) w, A' _5 x
|
|