|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
. Q9 A' o2 Z- j% Z' @
) D% J; ~' g0 h3 G9 ^; J- B 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
! W- o& F8 ^5 G0 I$ H6 o) M
7 ~& l( i0 V1 e. O- Z$ q2 E然后是开箱子得到装备,在user.cpp下的函数。
1 p9 E, c, z. u% ^9 R$ U! r' [
! O7 S2 d$ a! |( Z4 yDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子4 R( P/ g5 y6 o: W
& e( d1 L1 q0 e! t, {( R
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
! @0 Z+ V! o* b6 M* _6 ?& D7 \9 ?& O& w G D4 I( z7 \% ?" Q
在这两个函数体下加一个判断就行了$ d* l/ t0 N& `
4 q/ r; \5 b- m O1 }. p4 ^1 Z5 b
if(itemElem.GetProp()->dwItemRare==300)' Y9 F/ J/ T6 m t! m2 O5 m/ v
{
4 u+ [. x$ P* s" F: _* e6 B0 Q4 x3 N itemElem.m_bItemResist=(BYTE)xRandom(1,6);
. N* y' C3 q6 t5 Z9 j4 ? itemElem.m_nResistAbilityOption=10;
3 W+ W! V- |1 u4 Y/ n) [ }2 o; _9 v2 h8 P$ |
9 h7 g: U6 N$ U/ T* }6 p1 y) o5 T1 j就是上面这句。
; _9 |! d0 O8 h4 M9 o! e; w, O4 H1 j H& S$ b6 g9 J, e) G% _
至于加在哪里,不用我说了吧,就在创建物品之前就行了。) o T! G+ r0 D3 \; n
# T3 T" i& K; d/ @5 }
" R5 s# |6 k7 | e
, {6 i; r) O* n/ W# R 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。1 P, U1 H2 ^5 e: W7 P1 d. G; T
9 ]6 ^1 x. R/ B, N5 f+ X! n/ j
[$ `/ @8 ?1 |2 ?! H S$ A
0 B: f( n1 z7 u$ }
1 M7 n) f) ^, k0 G) C# f3 V* r
* H1 G* X; [ S6 x: l" _/ M活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 a# f, J3 i6 {2 q
7 }( @% i- R5 ~" ^
以上写法已经通过验证。不成功自己找原因了。$ R4 P; d! T, N
2 Y3 n5 g" L. ?$ }
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ( r s* I9 H4 i7 _2 t
m9 c4 {5 }3 d0 B) |2 R9 K
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
1 Y; F6 K$ E: \+ Y8 H/ C
3 O3 z3 A# J0 a2 r" _$ ] 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =5 Q/ G& r+ T2 q6 @* _; y( ~
3 w& q0 x% r. |
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -+ ^$ A) p9 N0 E6 j
8 O+ B8 ]' U% S+ j! W
7 k) H6 \% \7 w |
|