|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
: `; g$ { R a
3 N6 N! t& t2 [" z: U9 S 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。" K1 S+ ~% `$ ]; P- J
* n4 k9 v! C* t) j; O& S: @
然后是开箱子得到装备,在user.cpp下的函数。
3 V/ h2 b" ]; N% T9 X1 p: u3 H) |6 W
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子2 Z% Z& ]1 Y$ Z. O7 w3 u% W
. _) R* U% ?. ~DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
% s" x$ P( u$ r$ `; J% w, H) r2 B! ^1 K. [3 V' A. w. n
在这两个函数体下加一个判断就行了% f. N. E& A7 e* D& A, c; t" M- o
7 I4 O' m t2 j; |' ]2 l
if(itemElem.GetProp()->dwItemRare==300)
# O8 V- e( W, @2 S/ V {
, J8 P) }3 T: W: d* r% q itemElem.m_bItemResist=(BYTE)xRandom(1,6);
6 Y. M, |# n+ L$ r/ L U itemElem.m_nResistAbilityOption=10;9 Z/ } A" m% s6 y5 J1 y
}. `1 q* C5 }; p" ?9 {
/ _ F: |; [% M7 F: p+ H! v就是上面这句。# G9 a5 `5 M# R! g. l) }) ?) w
0 |, {: i K& ~$ Q
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
* w5 e- N- j! F9 O/ ?6 U7 c6 O9 [% f( ^1 x
' ~3 C4 ]* l7 ~$ e4 p$ p) e. [, N5 j% a" P( g/ h
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。: n! y" Z' l2 ?) o, U( n8 i+ v3 X
) n l" x, G; D0 l0 v
- v( ~& B! a3 x n
1 N( S- z6 E: J2 z$ E+ ~$ @
|4 Q5 f6 G+ C& t& v2 Y' X9 d& L2 ?8 t( e* \
活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 G2 _. ]1 ^' L' _, V# C
+ k0 y+ N8 \) d$ Z7 f v以上写法已经通过验证。不成功自己找原因了。
7 Y6 ~) a8 K6 i3 _. X2 H/ u$ B& ?6 f' L4 X) W$ }8 d
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
m& @! x, p8 x* ~. k- J5 z2 J9 s9 Q0 y; u2 Y
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )3 }6 _$ f" x" I( h# B+ W
/ m/ ]; I. s3 R0 x 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =& D( K+ P6 f8 [4 l# u- B8 X8 o
' k# h8 n1 Y7 D# \0 M从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -7 O8 r8 Y! p! Y+ `: K# C2 P
3 B3 w# p; h4 h2 R
( B6 Z- Y, _4 L' K0 T& v- W |
|