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

Project1

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

[已经解决] 求救,这个我瞎写的脚本有办法缩短吗

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2014-11-3 17:14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
太可怕了。状态少的时候还好。状态多起来要给每种排列都设定。


RUBY 代码复制
  1. def slip_damage_effect
  2.   xxxx = self.maxhp / 30
  3.   yyyy = self.hp / 20
  4.   zzzz = self.maxsp / 20
  5.   qqqq = self.maxhp / 10
  6.   if self.state?(24) and self.state?(3) and self.state?(32)  and self.state?(45)  
  7.     #默认的回血毒烧伤回SP效果
  8.     self.damage["slip"] = (xxxx + yyyy - qqqq)
  9.     self.damage_sp["slip"] = zzzz
  10.     self.hp -= self.damage["slip"]
  11.     self.sp += self.damage_sp["slip"]
  12.     return true
  13.   end
  14.   if self.state?(24) and self.state?(3) and self.state?(32)#默认的毒烧伤回血效果
  15.     self.damage["slip"] = (xxxx + yyyy - qqqq)  
  16.     self.hp -= self.damage["slip"]
  17.     return true
  18.   end
  19.   if self.state?(3) and self.state?(32)#默认的毒烧伤效果
  20.     self.damage["slip"] = (xxxx + yyyy)  
  21.     self.hp -= self.damage["slip"]
  22.     return true
  23.   end
  24.   if  self.state?(24) and self.state?(32)  and self.state?(45)  #默认的烧伤回SP回血效果
  25.     self.damage["slip"] = (yyyy - qqqq)
  26.     self.damage_sp["slip"] = zzzz
  27.     self.hp -= self.damage["slip"]
  28.     self.sp += self.damage_sp["slip"]
  29.     return true
  30.   if  self.state?(32)  and self.state?(45)  #默认的烧伤回SP效果
  31.     self.damage["slip"] = yyyy
  32.     self.damage_sp["slip"] = zzzz
  33.     self.hp -= self.damage["slip"]
  34.     self.sp += self.damage_sp["slip"]
  35.     return true
  36.   end
  37.   if self.state?(24) and self.state?(3) and self.state?(45)  #默认的毒回SP回血效果
  38.     self.damage["slip"] = (xxxx - qqqq)
  39.     self.damage_sp["slip"] = zzzz
  40.     self.hp -= self.damage["slip"]
  41.     self.sp += self.damage_sp["slip"]
  42.     return true
  43.   end
  44.   if self.state?(3) and self.state?(45)  #默认的毒回SP效果
  45.     self.damage["slip"] = xxxx
  46.     self.damage_sp["slip"] = zzzz
  47.     self.hp -= self.damage["slip"]
  48.     self.sp += self.damage_sp["slip"]
  49.     return true
  50.   end
  51.   if self.state?(24) and self.state?(3) #默认的毒回血效果
  52.     self.damage["slip"] = (xxxx - qqqq)
  53.     self.hp -= self.damage["slip"]
  54.     return true
  55.   end
  56.   if self.state?(3) #默认的毒效果
  57.     self.damage["slip"] = xxxx
  58.     self.hp -= self.damage["slip"]
  59.     return true
  60.   end
  61.   if self.state?(24) and self.state?(32) #烧伤回血
  62.     self.damage["slip"] = (yyyy - qqqq)
  63.     self.hp -= self.damage["slip"]
  64.     return true
  65.   end
  66.   if self.state?(32) #烧伤
  67.     self.damage["slip"] = yyyy
  68.     self.hp -= self.damage["slip"]
  69.     return true
  70.   end
  71.   if self.state?(24) and self.state?(45)  #回SP回血效果
  72.     self.damage["slip"] = qqqq
  73.     self.hp += self.damage["slip"]
  74.     self.damage_sp["slip"] = zzzz
  75.     self.sp += self.damage_sp["slip"]
  76.     return true
  77.   end
  78.   if self.state?(45)  #回SP效果
  79.     self.damage_sp["slip"] = zzzz
  80.     self.sp += self.damage_sp["slip"]
  81.     return true
  82.   end
  83.   if self.state?(24)  #回血
  84.     self.damage["slip"] = qqqq  
  85.     self.hp += self.damage["slip"]
  86.     return true
  87.   end
  88.   # 过程结束
  89.   return true
  90. end
  91. end

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

2
 楼主| 发表于 2014-11-3 17:33:10 | 只看该作者
最后添加得太多了报错了{:2_264:}
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

3
发表于 2014-11-3 19:25:07 | 只看该作者
4个状态共要考虑16种情况……
self.damage被黑掉了?
即兴写下面的脚本,未测试
RUBY 代码复制
  1. # 3=>毒
  2. # 24=>回血
  3. # 32=>烧伤
  4. # 45=>回蓝
  5. def slip_damage_effect
  6.   hp_v = {3 => self.maxhp / 30, 24 => -self.hp / 20, 32 => self.maxhp / 10}
  7.   sp_v = {45 => -self.maxsp / 20}
  8.   hp_damage = 0
  9.   sp_damage = 0
  10.   hp_v.keys.each do |id|
  11.     hp_damage += hp_v[id] if self.state?(id)
  12.   end
  13.   sp_v.keys.each do |id|
  14.     sp_damage += sp_v[id] if self.state?(id)
  15.   end
  16.   self.damage["slip"] = hp_damage if hp_damage != 0
  17.   self.hp -= hp_damage
  18.   self.damage_sp["slip"] = sp_damage if sp_damage != 0
  19.   self.sp -= sp_damage
  20. end

点评

试了下,挺好的。最后少了个END。  发表于 2014-11-3 21:23
感谢。不过我发现把每条IF里面的return true去掉后,就可以共存了,不需要考虑AND了  发表于 2014-11-3 21:14
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

4
发表于 2014-11-5 21:58:11 | 只看该作者
你这是用在哪里的脚本···

点评

连续伤害啊,我已经解决了  发表于 2014-11-5 22:02
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 22:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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