|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。8 o( O* v3 a8 i, w
( K' x! Q v$ u, {- f7 @6 j
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
: [ m, s$ g4 L2 e
/ v, m& a8 U: I6 R' @然后是开箱子得到装备,在user.cpp下的函数。
2 ]* p3 Q4 d- Z3 c5 D, m& S. L7 c% H- E. m& J2 [" t1 ?
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
3 K% ?) B# [; e5 U w, _! ]8 t! N+ I! E8 F
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子. G' \! Q; F7 x
9 V% N. n2 Y+ I# ~
在这两个函数体下加一个判断就行了
7 p) u4 e: S7 Q) f0 H
: L0 B, U# M1 v$ b9 `6 a. C q if(itemElem.GetProp()->dwItemRare==300)( b L M/ e* O3 I" h
{( x. t# z: I' t' a t4 ]
itemElem.m_bItemResist=(BYTE)xRandom(1,6); h. t7 w& J3 G3 |& H
itemElem.m_nResistAbilityOption=10;
* l/ Y0 o9 }% Q0 M) @ }
- G' p/ K" |/ n( f0 G
+ B& J. g/ }6 r' }6 x- U就是上面这句。
- O) } h! R& C9 o: }5 K" n H/ k: H9 N
至于加在哪里,不用我说了吧,就在创建物品之前就行了。" g; [$ |. R; \: A- Z% l
0 P7 h2 g) ~( S b& i9 f5 T6 J3 R$ _+ b* i% r* G* ]
7 m9 s+ J- }5 D& n
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。+ x( f0 ?# r( G2 Q E
+ h3 P7 ~. V; C* n9 w- q- a0 @; @+ Z
0 r% d5 r1 s# |
$ v) I J7 N8 Q$ ` I2 O+ n5 \) V: o ~
9 |9 n0 K+ f3 G+ n. P2 d活动给物品的话那就模仿这里面的创建物品的句子写就行了。0 d8 Q7 h+ ^3 _7 `
2 Z" r( D2 C/ c" J9 R2 _以上写法已经通过验证。不成功自己找原因了。, K* T2 y3 b1 E
/ E9 q" K8 F9 n' w% C
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 2 Z0 k: R9 U' b9 a/ Y$ I; W+ ?% ^. G
0 ^- I; O) {5 e( h5 S
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
5 N5 G& k9 ] w) _! J/ _. N/ W* a1 m+ r: ]) f
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =, Q2 e) X9 i) o% v
% K& A. h! @* G$ X
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
: @4 C# ^7 a; A" X' G* t& U$ h% {. E& r" m/ F7 c
- {. ^) K( i5 c |
|