Project1

标题: XAS系統 使用技能消耗的物品數量可以更改嗎? [打印本页]

作者: siriuslupin    时间: 2015-4-8 00:53
标题: XAS系統 使用技能消耗的物品數量可以更改嗎?
目前使用的是XAS漢化版本Ver2013.7.28

主角是一名弓箭手,
武器為弓,普攻每次消耗1隻箭矢,如果沒有箭矢的物品會顯示道具不足

按照腳本中說明的<Item Cost = X>
X – 使用技能时消耗的物品的ID.比如范例中的<Item Cost = 6>就是指
攻击会消耗数据库中ID为6的物品(箭)

這部分都沒問題

後來新增了弓箭系的技能,因為是範圍技,玩家發動此技能時需要消耗10隻箭矢

但無法做出消耗10隻箭矢的效果,只會消耗1隻

腳本苦手,搜索過但沒有找到XAS系統有類似的文章,因此發文求助請高手幫忙,非常感謝!

作者: siriuslupin    时间: 2015-4-10 00:26
本帖最后由 siriuslupin 于 2015-4-10 00:27 编辑

補充說明:
希望的效果是,發動弓箭技能會消耗10隻箭矢,如箭矢數量不到10隻,顯示道具不足

邊查看XAS的腳本,應該是修改這一段,腳本內容為
  1.   def enough_item_cost?(skill)
  2.       return true if self.battler.is_a?(Game_Enemy)
  3.       if @force_action_times > 0
  4.          return true if @force_action == "All Shoot"
  5.          return true if @force_action == "Four Shoot"
  6.          return true if @force_action == "Three Shoot"
  7.          return true if @force_action == "Two Shoot"
  8.        end      
  9.         if skill.note =~ /<Item Cost = (\d+)>/
  10.           skill.note =~ /<Item Cost = (\d+)>/
  11.           elsif skill.note =~ /<道具消耗 = (\d+)>/
  12.           skill.note =~ /<道具消耗 = (\d+)>/
  13.           end
  14.       item_id = $1.to_i
  15.       if item_id != nil and item_id != 0
  16.          item_cost = $data_items[item_id]
  17.          number = $game_party.item_number(item_cost)
  18.          if number ==0 or number == nil
  19.             self.battler.damage = XAS_WORD::NO_ITEM
  20.             self.battler.damage_pop = true
  21.             return false
  22.           elsif skill.note =~ /<ARROW>/ && number <11
  23.             self.battler.damage = XAS_WORD::NO_ITEM
  24.             self.battler.damage_pop = true
  25.             return false
  26.          else
  27.             $game_party.lose_item(item_cost, 1, false)
  28.             return true
  29.          end            
  30.       end   
  31.       return true
  32.   end  
复制代码
elsif skill.note =~ /<ARROW>/ && number <11
self.battler.damage = XAS_WORD::NO_ITEM
self.battler.damage_pop = true
return false
這一段是我嘗試加入的,因為是小品遊戲,主角只有1人,技能也不多,才想單獨例外處理,
但是修改後測試,雖然箭矢數小於11時會顯示道具不足,但箭矢數量充足時發動也是只消耗1隻,目前的折衷方式是在發動後再另設減9隻箭矢的事件,但因為遊戲畫面中有顯示箭矢數量,會很明顯看到數量先少1再少9,還是很怪

能力有限不曉得該怎麼修改腳本才好...請大家指點,謝謝!
作者: howhow1314    时间: 2015-4-10 08:49
siriuslupin 发表于 2015-4-10 00:26
補充說明:
希望的效果是,發動弓箭技能會消耗10隻箭矢,如箭矢數量不到10隻,顯示道具不足

$game_party.lose_item(item_cost, 1, false)

這裡的1就是減少的數量啊...另外為什麼是<11不是<10呢?
作者: tan12345    时间: 2015-4-10 11:30
$game_party.lose_item(item_cost, 1, false)
你贴上来的脚本里,只有这么一句是消耗物品的,你要说物品减少的数量,我看来看去只看到1,你把这个1改成变量判断试试咯
作者: siriuslupin    时间: 2015-4-10 12:12
tan12345 发表于 2015-4-10 11:30
$game_party.lose_item(item_cost, 1, false)
你贴上来的脚本里,只有这么一句是消耗物品的,你要说物品减 ...

原腳本只能指定要消耗哪一項物品,並只會消耗該物品1個數量

只是我有一個技能需要消耗指定物品10個,昨天把item_cost,1改成10,結果變成所有技能都會消耗10個
我想只針對這個特殊技消耗10,其他都還是維持消耗1即可,但不曉得怎麼改...

把這個1改成變量判斷,這個部份能請再講詳細點嗎?? 我再研究看看,謝謝
作者: tan12345    时间: 2015-4-10 23:57
siriuslupin 发表于 2015-4-10 12:12
原腳本只能指定要消耗哪一項物品,並只會消耗該物品1個數量

只是我有一個技能需要消耗指定物品10個,昨 ...

if skill.id == xx(xx就是你那个技能的id)
$game_party.lose_item(item_cost, 10, false)
else
$game_party.lose_item(item_cost, 1, false)
end
return true




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1