查看: 2754|回复: 7

[已经解决] 问个问题,下面这个用脚本怎么表达啊

[复制链接]
梦石
0
星屑
235
在线时间
425 小时
注册时间
2013-6-28
回帖
123
发表于 2015-7-5 18:44:19 | 显示全部楼层 |阅读模式

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

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

×
角色a的 魔力 等于 A; 敌人b的 魔力 等于 B
魔力差 等于 A 减 B
如果 魔力差 大于等于 100
  角色a 对 敌人b 使用技能 有12/16的几率成功
结束
如果 魔力差 大于等于 50
  角色a 对 敌人b 使用技能 有4/16的几率成功
结束

梦石
0
星屑
235
在线时间
425 小时
注册时间
2013-6-28
回帖
123
 楼主| 发表于 2015-7-5 18:45:24 | 显示全部楼层
其实我就是不知道12/16和4/16的几率成功 怎么写

点评

rand(16) < 12 和 rand(16) < 4 。  发表于 2015-7-6 08:08
回复

使用道具 举报

梦石
0
星屑
1044
在线时间
750 小时
注册时间
2013-2-15
回帖
82

开拓者

发表于 2015-7-5 19:00:48 | 显示全部楼层
最简单的方法  
$变量 = rand(15)  
if $变量 == 0 and $变量 == 1 and $变量 == 2 and $变量 == 3
   #4/16的部分
else
   #12/16的部分
end

点评

会出错的……应该用or进行连接,不是用and  发表于 2015-7-7 10:25
回复

使用道具 举报

梦石
0
星屑
235
在线时间
425 小时
注册时间
2013-6-28
回帖
123
 楼主| 发表于 2015-7-5 20:21:20 | 显示全部楼层
九幽鬼少 发表于 2015-7-5 19:00
最简单的方法  
$变量 = rand(15)  
if $变量 == 0 and $变量 == 1 and $变量 == 2 and $变量 == 3

这个想法不错
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-7-7 10:28:01 | 显示全部楼层
仅供参考
[pre lang="Ruby"]int_diff = a.int - b.int
success = false
if int_diff >= 100
  success = rand(16) < 12
elsif int_diff >= 50
  success = rand(16) < 4
end
if success
  # do your job
end[/pre]
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-7-7 10:44:07 | 显示全部楼层
本帖最后由 taroxd 于 2015-7-8 19:22 编辑
RyanBern 发表于 2015-7-7 10:28
仅供参考
int_diff = a.int - b.int
success = false


我就来卖个萌

[pre lang="ruby"]
int_diff = a.int - b.int
(int_diff >= 100 ? rand(16) < 12 : int_diff >= 50 && rand(16) < 4) && do_your_job
[/pre]

点评

为何不tap,虽然XP也没有tap  发表于 2015-7-7 12:53
为何我要用10行?(摔)  发表于 2015-7-7 11:18

评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
235
在线时间
425 小时
注册时间
2013-6-28
回帖
123
 楼主| 发表于 2015-7-7 17:34:45 | 显示全部楼层
  int差 = $game_party.actors[0].int - $game_troop.enemies[0].int
        if   int差 >= 100
            if rand(16) < 12
            ### 成功
            else
            ### 失败
            end
        elsif int差 >= 50
            if rand(16) < 4
            ### 成功
            else
            ###失败
            end
      else
     ###失败
        end
应该就是这样了吧

点评

说了我只是来卖个萌,可读性还是你那个好= =  发表于 2015-7-8 19:14
基本差不多,能实现功能,推荐6L的写法。  发表于 2015-7-7 19:10
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
88
在线时间
631 小时
注册时间
2014-8-4
回帖
3243
发表于 2015-7-8 17:12:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部