|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。" s( a8 ]! K' `
! [- M; P) x. x/ c
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
% c# m3 @8 Z( v5 i% k+ J' j4 i3 c4 c; d% I2 w- [3 P
然后是开箱子得到装备,在user.cpp下的函数。
& B+ u: A4 O' M4 |! M0 E6 C" w$ t% X1 S. k' S: q
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
! `1 S( d0 @7 K; w$ I* q
2 U! @8 m; [+ }/ u6 z( T4 }4 eDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子 }; a( H2 d" ~5 W5 n8 ^0 T
w3 q# R+ O4 e' h 在这两个函数体下加一个判断就行了
# N( F4 s/ q1 j E# _, Y3 _
- m' Y$ d. l, N2 N1 B& C if(itemElem.GetProp()->dwItemRare==300) Z f# e# Q9 C
{# r" x( ~1 {. v% a; r$ @3 q
itemElem.m_bItemResist=(BYTE)xRandom(1,6);3 @5 M, E- }7 Z: k# Z
itemElem.m_nResistAbilityOption=10;2 E7 o1 Q: S* U, Q+ E4 {
}4 D( Z' Y7 \6 R' N0 W
4 I0 n6 H- D# H* b" }* |) U, M/ c就是上面这句。
3 X- Y) V1 A0 l/ [& }8 }/ i* a
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
/ l' J. e8 F1 [; u( i& E" y4 K, o: ^8 M4 M# v& y. w) z5 W
- I2 h: K# T+ Z' Q2 N% c
2 w% _" F4 m' q. V2 a" R, d9 j$ ` 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
& X2 P* c3 @0 C& E, X
5 S1 n( g: G8 m) }! Q# A
' E9 n. ]: y# r, W. M4 D3 A1 a; ]3 `7 o
6 @$ ]4 W/ Y" t3 `, p a' U. N, M) m" l w* D0 x
活动给物品的话那就模仿这里面的创建物品的句子写就行了。* E. H4 }4 ?9 v0 O6 p9 a6 ^0 y, v
# p5 q: U% g t [) J
以上写法已经通过验证。不成功自己找原因了。
' W1 k; u+ D3 v, j
- `, `3 b5 l! z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// * m; ]* T! ]( c! n
$ g9 V4 p T2 M+ _+ k" Z
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
) z5 G% w( N& }5 w7 }, e
' e9 J2 H3 ]8 K& A$ t 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =9 y8 C2 `3 s0 Z
* M, |' c7 i! P
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -3 |+ {. Z3 Q9 ?! _! R' g( m
c J; [3 q+ O# v
4 r5 o; L6 h f" F( F/ b |
|