|
这方法其实很老了,今天看到有人问于是顺便做了个。
阿克蒙德拾取物品后会显示物品的价格。需要多少金币和木材。当然,默认状况下,物品都不需要木材。我这里修改了国王之冠,让他消耗100木材,这是为了让测试更明显。
虽然我们可以通过common.ai里的函数来获得单位的价格,但是却无法直接获得物品的价格,所以要获得物品价格其实最合适的法子还是直接让个隐藏商店直接卖个这种物品试试看要多少钱。虽然我们可以使用让英雄向商店典当物品的法子,但问题是不同的地图,典当金额和原金额的比例可能会有所不同(这个值是可以在平衡性常数里修改的)
[trigger]
ItemCost
Events
Unit - A unit Acquires an item
Conditions
Actions
Player - Set BuyerPlayer Current gold to 1000000
Player - Set BuyerPlayer Current lumber to 1000000
Set ItemType = (Item-type of (Item being manipulated))
Neutral Building - Add ItemType to Shop with 1 in stock and a max stock of 1
Custom script: call IssueNeutralImmediateOrderById(udg_BuyerPlayer, udg_Shop, udg_ItemType )
Item - Pick every item in Region 000 <gen> and do (Actions)
Loop - Actions
Item - Remove (Picked item)
Neutral Building - Remove ItemType from Shop
Set GoldCost = (1000000 - (BuyerPlayer Current gold))
Set LumberCost = (1000000 - (BuyerPlayer Current lumber))
Game - Display to (All players) the text: (Name of (Item being manipulated))
Game - Display to (All players) the text: (G: + (String(GoldCost)))
Game - Display to (All players) the text: (L: + (String(LumberCost)))
[/trigger]
当然,这个演示对临时卖出来用于估价的物品是直接删除之。因为商店直接出售物品却没有指定购买物品的英雄时,物品是直接掉在地上并不触发物品出售事件。所以这里方便起见在隐藏商店边上画了个小区域直接删除了里面的物品。
当然,最保险的法子其实是指定个购买者,这样就会触发物品出售事件,并通过“被出售的物品”来获得卖出的临时物品,这样删除起临时物品来就更精确,不会误伤到正好落入这个区域的物品了。
指定购买者并直接向其出售物品的方法可以参考我以前的商店法演示(这个连接的7楼)
http://bbs.islga.org/read-htm-tid-27428.html
但在这里由于不是这个演示的关键内容,所以没有指定购买者,因为会增加额外的自定义脚本,很容易导致看演示的人丢失重点: |
评分
-
查看全部评分
|