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

Project1

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

[已经解决] 这一段脚本能缩短到一行吗?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2014-12-7 13:06:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  1.       for i in 0...Chd114::Skill::FrontSkill[id][0].keys.size#获取前置技能ID
  2.         #判断前置技能是否可用
  3.         return if @actor.skill_sealed?(Chd114::Skill::FrontSkill[id][0].keys[i])
  4.         #判断前置技能是否拥有
  5.         return if [email protected]?($data_skills[Chd114::Skill::FrontSkill[id][0].keys[i]])
  6.         #判断前置技能等级是否符合升级条件
  7.         return if @actor.skilllevel[Chd114::Skill::FrontSkill[id][0].keys[i]]<Chd114::Skill::FrontSkill[id][0].values[i]
  8.       end
复制代码
一共8行···循环缩成一行里面写return if;什么的就可以了吗?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-12-7 14:19:59 | 只看该作者
RUBY 代码复制
  1. Chd114::Skill::FrontSkill[id][0].each { |key, value| return if @actor.skill_sealed?(key) || !@actor.skill?(key) || @actor.skilllevel[key] < value }


我那个 skill? 是可以直接传入 id 的

点评

|| 在这里和or是一个意思吧?  发表于 2014-12-7 14:24

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
 楼主| 发表于 2014-12-7 14:23:26 | 只看该作者
taroxd 发表于 2014-12-6 21:19
Chd114::Skill::FrontSkill[0].each { |key, value| return if @actor.skill_sealed?(key) || [email protected] ...
  1. @actor.skill?(技能编号)
  2. @actor.skill?($data_skills[技能编号])
复制代码
都可以?

点评

是啦~  发表于 2014-12-7 14:44
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

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

开拓者短篇九导演组冠军

4
发表于 2014-12-7 14:27:59 | 只看该作者
  1. for i in 0...Chd114::Skill::FrontSkill[id][0].keys.size;return if @actor.skill_sealed?(Chd114::Skill::FrontSkill[id][0].keys[i]);return if [email protected]?($data_skills[Chd114::Skill::FrontSkill[id][0].keys[i]]);return if @actor.skilllevel[Chd114::Skill::FrontSkill[id][0].keys[i]]<Chd114::Skill::FrontSkill[id][0].values[i];end;
复制代码

评分

参与人数 1星屑 +15 收起 理由
国产吃货 + 15 忍不住笑喷=V=

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
 楼主| 发表于 2014-12-7 16:55:21 | 只看该作者
taroxd 发表于 2014-12-6 21:19
Chd114::Skill::FrontSkill[0].each { |key, value| return if @actor.skill_sealed?(key) || [email protected] ...

  1. #判断剩余技能点是否大于升级所需技能点
  2.     return if Chd114::Skill::Sp[@actor.id]<Chd114::Skill::Up[id][@actor.skilllevel[id]]
  3.     #角色等级满足升级技能需要等级
  4.     return if @actor.level<Chd114::Skill::FrontLevel[id][@actor.skilllevel[id]]
  5.     #技能等级小于最大等级
  6.     return if @actor.skilllevel[id]>=Chd114::Skill::Max[id]
复制代码
也能缩短成
  1. return if Chd114::Skill::Sp[@actor.id]<Chd114::Skill::Up[id][@actor.skilllevel[id]] || @actor.skilllevel[id]>=Chd114::Skill::Max[id] || @actor.level<Chd114::Skill::FrontLevel[id][@actor.skilllevel[id]]
复制代码

   

点评

能  发表于 2014-12-7 17:11
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 11:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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