|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
5 x: h9 Z9 Z8 b% {# S) d+ j8 P, {: I* E' [7 v: ?$ O
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
3 p5 ^2 q/ q, V: i% w$ e; N% F* L% S& [
然后是开箱子得到装备,在user.cpp下的函数。
9 V+ Q& U0 j6 L; ?# ~# O/ V0 g- a {9 E% _* q- J
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
3 W$ j7 w8 |" `0 R) e8 v/ }/ n% m2 q4 u1 _! o
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子. [$ k8 V( i$ g% Z S
# u, D- p4 q5 I& D4 b
在这两个函数体下加一个判断就行了, A: W. n: k$ P) g3 k$ E# b
+ l) d, B* L3 u3 h if(itemElem.GetProp()->dwItemRare==300)
( U! m0 ^* x' b2 \% `* Y {
B1 C: E7 f. C" C/ H, {! j8 X itemElem.m_bItemResist=(BYTE)xRandom(1,6);
. ^: Z2 z0 `. {3 w9 n1 k itemElem.m_nResistAbilityOption=10;# G; b& \$ n" n7 y; V
}
! `+ l5 p2 Z" _: j, z- h+ c' e: Q5 e: S+ i. c
就是上面这句。6 y9 l. A5 ]- w6 W- f9 Q! h
, t* K6 u, G* _: `! v至于加在哪里,不用我说了吧,就在创建物品之前就行了。
3 K$ x# \# Y" T" A" }) K: C/ U* B; x' o
& s# Q+ O1 \- l' ?" z r
5 c: g. L9 m8 i7 o: [ 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
3 f- J* ?% _3 `7 k/ C* V. e& r1 k% N+ x8 E- V
0 e0 }: `) m1 F2 q z7 B# C: R4 B- V" X3 T: a- I& k0 [! i9 } Y$ D
8 G; }5 W( q1 s$ }
3 u6 M( k5 x6 T9 u
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
2 Z1 A- M! d0 F R) I' k
6 E8 v$ Z+ n) Z1 l2 A以上写法已经通过验证。不成功自己找原因了。
$ \4 {+ x5 F" h' ~
x: x% A H7 x2 k) j- L& [2 {/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
4 v" f% I$ R6 h, H- u) B
4 D0 Y8 U* Q: U3 f( } BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )2 u6 h$ b0 T; \# b. r' O
* N9 b; G/ Z# W, ]& k7 A 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
, L' B& `- Y6 e: f( L! M; I, ^ i" C7 L$ X8 Y( p
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
+ P. V4 {7 k- M) w/ e
; q5 m, G, `# U8 u \
! H9 O3 m" X$ [; B6 W C' u0 u" i( H |
|