|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。+ F5 a/ W9 V C d
3 ?1 R l8 p" g; W5 { 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。$ i/ H1 ~* O! ~$ \% j8 c
# |2 X; Z7 ^: _, I4 p* p: j
然后是开箱子得到装备,在user.cpp下的函数。
) Z/ B+ R4 Q6 }4 K; i2 t* H4 t" Z
( O9 o0 Z+ ?" `: r5 x$ D, ^1 WDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
% {: U4 v, j+ u' u* b6 W" `( P3 S0 z/ {( Y' `% k, Y7 Q# c$ n+ l
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
Q; `# R( l6 X5 ~% X$ J, {
; `5 }7 D& Y6 [4 [ 在这两个函数体下加一个判断就行了
/ `; e$ N! O% s( F# L
% F1 q& `$ N3 w9 y+ @( l if(itemElem.GetProp()->dwItemRare==300)7 i8 d" A0 N) d8 z
{4 S/ L: h- H0 F" r0 n4 V
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
2 Y3 j2 r" k4 L0 k itemElem.m_nResistAbilityOption=10;! s$ W* g1 t+ s4 K5 _
}. _) A7 ]2 ~* n3 j7 C- Q
* S, @( v8 x3 t2 g1 a1 `: h就是上面这句。
0 }! `/ S5 A% h T" b
, s8 ]6 e: e: f% D2 x至于加在哪里,不用我说了吧,就在创建物品之前就行了。
" L5 p: v8 E9 _/ X- {* h& m/ R/ |* y1 A; J) } C/ U
, A- t' V, N7 R* Z0 h
: f; d( |( [! R) o# L) Y 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。9 ~: X5 J- u+ H* c" U
% j9 R6 r. K7 Y5 O8 v3 O$ m# t/ \5 O
& p) k+ W, g; g, c- {
0 ]6 k" m4 K; O6 u8 L/ l! i; Z; E& P7 ~6 R
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
' d [7 F4 i% {9 t8 M3 X" }: C: \" S6 g# U- f1 c3 y% G
以上写法已经通过验证。不成功自己找原因了。
! y5 B1 M9 n) e7 P- V6 S' u( O+ y4 V+ F# V: k, ^, X" \
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
b; S% m* @7 b7 q/ M! ~1 }6 Q. T/ h7 q& K6 z
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )) l; o& L$ O" f% w2 \
' W: ~! G, I2 \; F0 k7 L; ]! c! P 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
7 g# E9 h; i z* V9 ?* _7 \5 o/ J% y1 ?( J7 {+ D
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
) t4 J7 A6 @2 D9 I! u$ \- }2 ~ I. ]3 N9 n
9 X! V! G, z/ h4 l$ C* j" V
|
|