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

Project1

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

[已经解决] F1 中脚本入门中实践篇 一处看读懂啊

[复制链接]

Lv1.梦旅人

梦石
0
星屑
75
在线时间
139 小时
注册时间
2014-5-4
帖子
69
跳转到指定楼层
1
发表于 2015-12-5 22:36:03 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
中脚本入门中实践篇
制作消耗物品的技能

判定是否可以支付


其中
RUBY 代码复制
  1. xxx001_skill_cost_payable?(skill) &&
  2.     (!item || $game_party.has_item?(item))


这一处百思不得其姐,括号中的!item解释说 是用来判断 item 是真是伪的语句(是 nil 的话就会判定为伪)。
但我认为若item为nil,也就是伪,那!item就表示是真了,括号后没停住判断,括号内判定为真,整个语句判定为真。这显然是错的啊。

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2015-12-5 22:54:33 | 只看该作者
本帖最后由 喵呜喵5 于 2015-12-5 23:01 编辑

(!item || $game_party.has_item?(item)):判断技能消耗的物品是否存在,如果存在,返回真(允许使用技能),否则返回假(不允许使用技能)
若item为nil,说明该技能不需要消耗物品,不管身上的物品时怎么样的都必定允许使用技能,故直接返回真

上面那段代码无法理解的话,看这段:
RUBY 代码复制
  1. class Game_Actor
  2.   alias xxx001_skill_cost_payable? skill_cost_payable?
  3.   def skill_cost_payable?(skill)   
  4.     judge_mp_tp = xxx001_skill_cost_payable?(skill) # 判断MP、TP是否足够
  5.     return false unless judge_mp_tp # MP、TP不够时,技能无法使用      
  6.     # MP、TP充足时      
  7.     item = $data_items[skill.item_cost] # 获取技能消耗的物品
  8.     return true unless item # 当物品不存在时,该技能不需要消耗物品,可以使用
  9.     judge_item = $game_party.has_item?(item) # 判断角色身上是否有技能消耗品
  10.     if judge_item # 当角色身上有对应消耗品时
  11.       return true # 技能可以使用
  12.     else # 当角色身上没有对应消耗品时
  13.       return false # 技能无法使用      
  14.     end
  15.   end
  16. end

点评

谢谢 喵大将脚本 翻译成if的形式 (我从发帖是就预感到将是喵大来解决)您写的我似乎是看懂了 但肯定没吃透 我在想想 再练练 喵大睡吧  发表于 2015-12-5 23:17
若不存在,说明技能不需要消耗物品,那技能肯定可以用了,可以用的话就返回真啊  发表于 2015-12-5 23:06
看我刚刚附上的那段代码  发表于 2015-12-5 23:03
喵大我蠢没懂,先说不存在的,若不存在 item 为假, !item是取反,!item返回的就是真了,那整个式子就返回真了,  发表于 2015-12-5 23:01

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 06:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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