查看: 3309|回复: 7

[已经解决] 【已经解决】怎么将一个变量化为纯粹的随机数变量啊......

[复制链接]
梦石
0
星屑
90
在线时间
3 小时
注册时间
2019-6-22
回帖
7
发表于 2019-6-23 14:10:02 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 3294838368 于 2019-6-24 12:52 编辑

就是像这样来制作出一个随机回复的技能 有没有大佬知道啊。。。。
QQ图片20190623150718.png
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-23 15:59:58 | 显示全部楼层
本帖最后由 soulsaga 于 2019-6-23 16:03 编辑

[pre lang="ruby"]
class Interpreter
#--------------------------------------------------------------------------
  # ● 变量操作
  #--------------------------------------------------------------------------
  def command_122
    # 初始化值
    value = 0
    # 操作数的分支
    case @parameters[3]
    when 0  # 恒量
      value = @parameters[4]
    when 1  # 变量
      value = $game_variables[@parameters[4]]
    when 2  # 随机数
      value = @parameters[4] + rand(@parameters[5] - @parameters[4] + 1)
      value = $game_variables[@parameters[4]] + rand($game_variables[@parameters[5]] - $game_variables[@parameters[4]] + 1) if $data_system.variables[@parameters[0]].include?("随机数")
    when 3  # 物品
      value = $game_party.item_number(@parameters[4])
    when 4  # 角色
      actor = $game_actors[@parameters[4]]
      if actor != nil
        case @parameters[5]
        when 0  # 等级
          value = actor.level
        when 1  # EXP
          value = actor.exp
        when 2  # HP
          value = actor.hp
        when 3  # SP
          value = actor.sp
        when 4  # MaxHP
          value = actor.maxhp
        when 5  # MaxSP
          value = actor.maxsp
        when 6  # 力量
          value = actor.str
        when 7  # 灵巧
          value = actor.dex
        when 8  # 速度
          value = actor.agi
        when 9  # 魔力
          value = actor.int
        when 10  # 攻击力
          value = actor.atk
        when 11  # 物理防御
          value = actor.pdef
        when 12  # 魔法防御
          value = actor.mdef
        when 13  # 回避修正
          value = actor.eva
        end
      end
    when 5  # 敌人
      enemy = $game_troop.enemies[@parameters[4]]
      if enemy != nil
        case @parameters[5]
        when 0  # HP
          value = enemy.hp
        when 1  # SP
          value = enemy.sp
        when 2  # MaxHP
          value = enemy.maxhp
        when 3  # MaxSP
          value = enemy.maxsp
        when 4  # 力量
          value = enemy.str
        when 5  # 灵巧
          value = enemy.dex
        when 6  # 速度
          value = enemy.agi
        when 7  # 魔力
          value = enemy.int
        when 8  # 攻击力
          value = enemy.atk
        when 9  # 物理防御
          value = enemy.pdef
        when 10  # 魔法防御
          value = enemy.mdef
        when 11  # 回避修正
          value = enemy.eva
        end
      end
    when 6  # 角色
      character = get_character(@parameters[4])
      if character != nil
        case @parameters[5]
        when 0  # X 坐标
          value = character.x
        when 1  # Y 坐标
          value = character.y
        when 2  # 朝向
          value = character.direction
        when 3  # 画面 X 坐标
          value = character.screen_x
        when 4  # 画面 Y 坐标
          value = character.screen_y
        when 5  # 地形标记
          value = character.terrain_tag
        end
      end
    when 7  # 其它
      case @parameters[4]
      when 0  # 地图 ID
        value = $game_map.map_id
      when 1  # 同伴人数
        value = $game_party.actors.size
      when 2  # 金钱
        value = $game_party.gold
      when 3  # 步数
        value = $game_party.steps
      when 4  # 游戏时间
        value = Graphics.frame_count / Graphics.frame_rate
      when 5  # 计时器
        value = $game_system.timer / Graphics.frame_rate
      when 6  # 存档次数
        value = $game_system.save_count
      end
    end
    # 循环全部操作
    for i in @parameters[0] .. @parameters[1]
      # 操作分支
      case @parameters[2]
      when 0  # 代入
        $game_variables = value
      when 1  # 加法
        $game_variables += value
      when 2  # 减法
        $game_variables -= value
      when 3  # 乘法
        $game_variables *= value
      when 4  # 除法
        if value != 0
          $game_variables /= value
        end
      when 5  # 剩余
        if value != 0
          $game_variables %= value
        end
      end
      # 检查上限
      if $game_variables > 99999999
        $game_variables = 99999999
      end
      # 检查下限
      if $game_variables < -99999999
        $game_variables = -99999999
      end
    end
    # 刷新地图
    $game_map.need_refresh = true
    # 继续
    return true
  end
end
[/pre]
未测试..
效果是变量操作代入的变量名称包含随机数这3个字符就改为代入随机数输入的数字转成变量编号
例如变量操作随机数输入1和3就是随机出变量1至变量3的数值..
回复 1 0

使用道具 举报

梦石
0
星屑
90
在线时间
3 小时
注册时间
2019-6-22
回帖
7
 楼主| 发表于 2019-6-23 18:59:21 | 显示全部楼层
soulsaga 发表于 2019-6-23 15:59
class Interpreter
#--------------------------------------------------------------------------
  #  ...

哇 感谢大佬  话说大佬你似乎是无处不在啊  记得之前你也回复了我一次hhh
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-23 19:04:31 | 显示全部楼层
3294838368 发表于 2019-6-23 18:59
哇 感谢大佬  话说大佬你似乎是无处不在啊  记得之前你也回复了我一次hhh

不是大佬..是新萌..
回复

使用道具 举报

梦石
0
星屑
90
在线时间
3 小时
注册时间
2019-6-22
回帖
7
 楼主| 发表于 2019-6-23 19:13:35 | 显示全部楼层
soulsaga 发表于 2019-6-23 15:59
class Interpreter
#--------------------------------------------------------------------------
  #  ...

试了一下 似乎有点问题  我按照这样设立了事件  结果第一次给了1500块......
QQ图片20190623201026.png
回复

使用道具 举报

梦石
0
星屑
90
在线时间
3 小时
注册时间
2019-6-22
回帖
7
 楼主| 发表于 2019-6-23 19:17:21 | 显示全部楼层
soulsaga 发表于 2019-6-23 19:04
不是大佬..是新萌..

大佬总喜欢说自己是萌新hhh
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-6-23 19:23:58 | 显示全部楼层
3294838368 发表于 2019-6-23 19:13
试了一下 似乎有点问题  我按照这样设立了事件  结果第一次给了1500块...... ...


你你你...掉转来输入?1000至100?什么鬼..
先100后1000才对啊..

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
90
在线时间
3 小时
注册时间
2019-6-22
回帖
7
 楼主| 发表于 2019-6-23 19:35:03 | 显示全部楼层
soulsaga 发表于 2019-6-23 19:23
你你你...掉转来输入?1000至100?什么鬼..
先100后1000才对啊..

哦哦  可以了  感谢大佬。。还真没注意到这点 太致命了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部