|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。" l- K+ _# P- Q' w+ `* V
3 W0 }" Y2 X6 G. t# ]3 k2 j 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。! Q `/ i" V2 ]
# b* r& u7 p: R! U# D8 Y4 W% M然后是开箱子得到装备,在user.cpp下的函数。( |( ~( {6 f4 S3 x* R
. V4 J8 E) t& l$ b) ?/ d: `
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子7 `6 S) ^+ i" C, h3 o! U7 H ]2 S
8 j" g9 B: h6 @9 a. p/ o h
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子/ u& H9 s$ F! p1 s* ~! P+ h
9 F8 V9 Y7 R) K- p- N' H: K 在这两个函数体下加一个判断就行了* a6 R: K' u9 R7 \% N: d& |7 V2 b
0 |- L; D& y. Z4 i, v; Q9 b if(itemElem.GetProp()->dwItemRare==300)! w/ `& T5 U8 T& b
{; p+ A4 G1 }+ x
itemElem.m_bItemResist=(BYTE)xRandom(1,6);* R5 E- w$ d2 I0 f" c" H$ Z
itemElem.m_nResistAbilityOption=10;9 ^% C w/ P; ]; G
}
6 h& C0 \; S- P, P7 o, F* n$ ]
. n1 u8 e' g( R! D1 M就是上面这句。
T" |/ n& h3 N) \& l W+ k C; y
: N: Z' h3 }0 b ]* A至于加在哪里,不用我说了吧,就在创建物品之前就行了。
( j* @* \- N' |1 @. ^ L$ ?$ v5 f, V/ j5 ~" y
' b+ m( \) Y9 x/ E7 V, \
8 j1 \" n0 q$ E9 D 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。9 E% S+ C' F }3 l* E7 ]
8 e1 _/ ?6 r% W8 G
0 S8 ^" R. m' N4 @. m
5 F5 }! T( h) G( v8 Y
# L4 U7 s+ k4 m, n9 f/ |
3 _" u7 n# w3 m' J( [7 O' C, W活动给物品的话那就模仿这里面的创建物品的句子写就行了。5 w9 A0 [5 A B6 S8 H" E
! `) H9 b; N0 o8 ]以上写法已经通过验证。不成功自己找原因了。4 @( \* F1 {7 X y! f( K
~5 R9 J; [1 i0 I% Y, c- g/ P
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$ v0 m$ y1 c' o, h; Z/ U( f
/ L7 c5 Q$ a5 s4 l9 _& s" H BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )7 O- i2 i& k5 R! n
* Q0 A5 t0 U5 y A' n* j- L! r 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =4 A+ y. A# P7 Z& z ~2 V
$ E: I% i* o: z) P _! T
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -. D+ j- ]% z3 N: j) g3 x0 e- Z; ^
8 R( @% |% x: g
8 Z/ Y$ i- H+ n7 h! |+ y
|
|