|
发表于 2006-5-14 18:22:06
|
显示全部楼层
http://bbs.uuu9.com/viewthread.php?tid=224672
物品生命值的若干用法
作者:[GA]Lhlher
我们都知道物品生命值可以在物品编辑器里随意设置,可是却少有人注意到,这将会给我们的地图带来极大方便,从物品初始设置到等级限制物品,种类限制,职业限制,等等......此从暴雪3C的无敌退款大法出现以后,一条新的捷径被打开了(不要告诉我你不知道)
1。物品的初始化:
如果你的地图里有许多物品需要初始设置,比如用一个数组item[100]来保存100个物品的种类,你将会发现这是十分痛苦的事情。每次运行“set item[1]=死亡面具”这样的语句是都会耽误很长一段时间来打开物品面板来供你选择,足以消耗掉你的热情。
现在有个简单的办法:
首先把你的物品生命值设置为数组的序号,比如想让item[1]=死亡面罩,就把死亡面罩的生命设置为1,如此1~100的生命对应所有的物品。
然后设置一个区域A,把所有的物品一样一个丢在里面。下面是触发:(偶单词不好,知道就行)
事件 :map initiation
条件:
动作:pick every item in region A and do (actions)
-actions
set item[life of picked item] = item type of picked item (这是核心,用生命值做索引)
remove picked item (设置完毕,去掉物品)
当然最后你可以break 掉这个触发,这样就一次性完成了所有物品的初始设置。如果你想设置n类数组item_1[1~100],item_2[1~100],item_3[1~100],那么在不同的区域分别设置就好了~
2。物品的等级限制。
效果是如果英雄的等级不足就无法捡取或者获得该物品,下面是触发:
事件:a unit 获得 一件物品
条件:
动作:set the life of item being manuplated to 1000 (恢复物品的生命值,天知道这个物品有没有被K过!!,反正生命不会超过我们设置的值)
if level of triggering unit×6 小于或者等于 life of the item being manuplated(响应的物品)
then -drop the item being manuplated from triggering unit
-display to owner of triggering unit:“你的等级不足以使用这件物品”
相信大家已经看出来了,一个例子:把死亡面罩的生命设置为25×6+1=151点,那么英雄到达25级以前就无法捡取该物品。是不是十分方便呢?至于为什么用6做系数,先留做悬念吧~~~
3。物品的等级需求降低:
如果英雄带有某件物品,比如“使需求降低的道具”,就可以使需求降低到75%。还是上面的触发,稍微改变一下
事件:a unit 获得 一件物品
条件:
动作:set the life of item being manuplated to 1000
if triggering unit has an item of type “降低需求的物品”
then -set itemlife(一个整数变量)=inteager(0.75×life of item beingmanuplated)
else - set itemlife=life of item being manuplated (有就降低,没有就不变)
if level of triggering unit×6 小于或者等于 itemlife (注意这里也要改)
then -drop the item being manuplated from triggering unit
-display to owner of triggering unit:“你的等级不足以使用这件物品”
4。不能重复装备武器盔甲:
效果就是一个英雄不能装备2个武器(比如剑和斧头....),或者盔甲,等等.......以往的办法是对物品进行分类,比如“人造的”,“混杂的”,“可购买的”......来分别存放各类物品进行判断,不过这样实在太繁琐了,而且超过了几个种类之后,就没有目录来存放了,还容易出现错误(你总不会把所有东西都规类吧)......
记得我们上面提到的25×6的系数6吧,这个设置可以让我们轻松的区分6类物品,在动作选项里面有个命令叫做“mod”,它的效果是求余,比如12 mod 5=2,有点感觉了吗??呵呵,对了,把物品生命除以6得到的余数作为分类的根据,比如武器类别除以6余1,那么对应的生命就可以是1,7,13,19.......,防具类别除以6余2,那么对应的生命就可以是2,8,14,20.......依次类推,这样既对应了等级的需求,又对应了物品的种类,把系数6改变,并且调整对应的物品生命值,就可以判断更多的种类~~
事件:a unit 获得 一件物品
条件:
动作:set the life of item being manuplated to 1000
for inteager from 1 to 6 do actions (这里判断英雄的物品栏中1~6格有没有同类物品)
action-if (item life of the item carried by hero in slot (inteagerA) mod 6)=(item life of item being manuplated mod 6) /*判断在这个格子中的物品和捡的物品余数是否一样*/
then -set check = ture /*如果一样,就用一个布尔型的变量来传出该结果*/
else-do nothing
if check = true /*检查完毕以后,根据check的值来决定该怎么办*/
then-drop item being manuplated from triggering unit
-display to owner of triggering unit“你不能装备2个同类的道具!”
else-do nothing
set check = false (千万不要忘记把check还原)
上面就是一些研究的心得,大家可以发现,其实后三中触发可以组合起来使用 ,同时实现等级限制,物品种类单一,降低限制的多重效果,这里就不给出了,希望这些能够对大家有所帮助~~~~~~ |
|