|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
- _0 }7 h. P1 `& K% d* P" _! [0 i" K4 l' i: U4 K1 K7 r0 d
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
8 y; J9 n8 ~! E) Q$ a7 E8 S# q u+ N1 ]# t; T
然后是开箱子得到装备,在user.cpp下的函数。
& A) h% V. \2 G0 v2 F
* a& f9 m0 Z) o, _5 vDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子6 F/ E) z# O! l; M, ^; E
2 {, f) R. C6 m) i- z5 Q9 h
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
* h7 S% C5 r: l* D$ r
5 ?1 L; }1 k/ z 在这两个函数体下加一个判断就行了$ \5 P, m; J6 B* w
$ l. r- T& {1 d: r# s
if(itemElem.GetProp()->dwItemRare==300)' M/ r- A8 _; u: Y. ^
{6 r/ F4 a# k. G3 v
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
5 J/ Z) I6 }1 B b) u' P- e3 C itemElem.m_nResistAbilityOption=10;( Z4 H7 q0 q) ~' c, _$ y# K6 \$ P" P
}4 A. l% k8 a9 Q& X
% Q4 a$ k+ k2 s0 f: Y$ |2 |
就是上面这句。+ i4 h: J$ ~% m. a4 Z
5 V$ {" E' X1 ^/ D1 u- w V2 N
至于加在哪里,不用我说了吧,就在创建物品之前就行了。/ N7 F4 y' {5 M9 |( T) @" F
# o1 k- m- h2 @6 \2 Z) a. Y" M9 |
6 Z% K W9 Q; {5 L1 j
! U- ~& X# m# P 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。- r6 e t# I3 F
$ L% G$ X0 q7 C2 V
( X/ q* K7 A8 E+ o0 Z" _7 Z
; D9 a& p* e0 |% o
+ d" v; K5 M/ z- v% B o0 H# l1 z
' y! ~3 ]9 M7 X. q% K8 P活动给物品的话那就模仿这里面的创建物品的句子写就行了。: a7 W D2 d% f* H/ Q
5 \: E, D! Y8 B, P: d7 P% a% L以上写法已经通过验证。不成功自己找原因了。
+ ]) ` d# x5 k- F. s
+ T1 k$ k4 J( D/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
0 v' Y5 L3 n$ f6 K5 d# O
S* b" w: C S- x" d/ G @ BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ) W* U' i2 c' n' u. q5 ~: x0 H; S
6 x1 K E9 @/ P9 v7 t7 \) l* v7 M- F 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
& B# T" s6 |" W0 D. Y0 t' J$ I8 e" y# V) S1 [) D
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
$ n" z# F: j0 U
- x( _% E$ Q1 Y; n8 o! [0 B# x" e. @$ W5 G
|
|