设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1621|回复: 5
打印 上一主题 下一主题

[已经解决] XAS系統 使用技能消耗的物品數量可以更改嗎?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2011-10-5
帖子
7
跳转到指定楼层
1
发表于 2015-4-8 00:53:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
目前使用的是XAS漢化版本Ver2013.7.28

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

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

這部分都沒問題

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

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

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

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2011-10-5
帖子
7
2
 楼主| 发表于 2015-4-10 00:26:09 | 只看该作者
本帖最后由 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,還是很怪

能力有限不曉得該怎麼修改腳本才好...請大家指點,謝謝!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
135
在线时间
450 小时
注册时间
2015-2-25
帖子
365
3
发表于 2015-4-10 08:49:34 | 只看该作者
siriuslupin 发表于 2015-4-10 00:26
補充說明:
希望的效果是,發動弓箭技能會消耗10隻箭矢,如箭矢數量不到10隻,顯示道具不足

$game_party.lose_item(item_cost, 1, false)

這裡的1就是減少的數量啊...另外為什麼是<11不是<10呢?

点评

回文的時候打錯了,是<10沒錯...感謝提醒!  发表于 2015-4-10 12:03
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
4
发表于 2015-4-10 11:30:48 | 只看该作者
$game_party.lose_item(item_cost, 1, false)
你贴上来的脚本里,只有这么一句是消耗物品的,你要说物品减少的数量,我看来看去只看到1,你把这个1改成变量判断试试咯
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2011-10-5
帖子
7
5
 楼主| 发表于 2015-4-10 12:12:19 | 只看该作者
tan12345 发表于 2015-4-10 11:30
$game_party.lose_item(item_cost, 1, false)
你贴上来的脚本里,只有这么一句是消耗物品的,你要说物品减 ...

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

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

把這個1改成變量判斷,這個部份能請再講詳細點嗎?? 我再研究看看,謝謝
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
6
发表于 2015-4-10 23:57:38 | 只看该作者
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

点评

成功了成功了!!!! 太感謝你了>O<!!  发表于 2015-4-12 16:48
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 23:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表