查看: 3787|回复: 18

[已经过期] 请教关于变量的大小控制······

[复制链接]
梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

发表于 2013-8-8 20:19:03 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 美丽晨露 于 2013-8-8 22:10 编辑

#--------------------------------------------------------------------------
  # ● 获取力量
  #--------------------------------------------------------------------------
  def str
    n = [[base_str + @str_plus, 1].max, 999].min
    for i in @states
      n *= $data_states.str_rate / 100.0
    end
    n = [[Integer(n), 1].max, 999].min
    return n
  end

#--------------------------------------------------------------------------
  # ● 设置力量
  #     str : 新的力量
  #--------------------------------------------------------------------------
  def str=(str)
    @str_plus += str - self.str
    @str_plus = [[@str_plus, -20].max, 999].min#999
  end

以上是Game_Battler 1内的获取力量的脚本,

我想问能不能用这种方法实现某些变量如以上的获取效果?
PS:
我想要的是变量的获取方法
跟力量的获取方法一样
而不是将力量赋给某个变量
简单的说,就是让某些变量有最大值最小值以及最小的减少量

请问怎么做?

点评

晨露是不是想创建一个新的属性?  发表于 2013-8-9 15:58
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
回帖
711
发表于 2013-8-8 20:40:16 | 显示全部楼层
你是指$game_Variables[]还是@xxx?

点评

不懂的说,这变量是要在游戏中需要使用的变量······  发表于 2013-8-8 20:46
@美丽晨露 这个好像很有难度。你可以定义一个实变量呀  发表于 2013-8-8 20:45
$game_Variables[??]  发表于 2013-8-8 20:40
回复

使用道具 举报

梦石
0
星屑
413
在线时间
214 小时
注册时间
2011-3-21
回帖
142
发表于 2013-8-8 20:43:40 | 显示全部楼层
本帖最后由 1095884734 于 2013-8-8 20:44 编辑

    n = [[base_str + @str_plus, 1].max, 999].min
    for i in @states
      n *= $data_states.str_rate / 100.0
    end
    n = [[Integer(n), 1].max, 999].min
    $game_variables[xxx] = n
差不多这意思……

点评

其实我没听懂楼主在说什么……  发表于 2013-8-8 21:02
话说str不是力量值吗?  发表于 2013-8-8 20:55
怎么感觉回到起点了、、、、、  发表于 2013-8-8 20:52
哦?真的就只有这么简单?我试试看  发表于 2013-8-8 20:46
签名是什么 好吃么
【好吃】
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2013-8-8 21:18:15 | 显示全部楼层
本帖最后由 hys111111 于 2013-8-8 21:38 编辑



这样不就可以了吗?

其实那两个def其实相当于attr_accessor :str的,只是这样子获取和直接获取的区别是有上下限。
回复

使用道具 举报

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

 楼主| 发表于 2013-8-8 21:27:08 | 显示全部楼层
hys111111 发表于 2013-8-8 21:18
这样不就可以了吗?

其实那两个def其实相当于attr_accessor :str的,只是这样子获取和直接获取的区别是 ...

这个不是我说的效果
我想要的是变量的获取方法
跟力量的获取方法一样
而不是将力量赋给某个变量

点评

那在脚本编辑器找到Game_Variables脚本。  发表于 2013-8-8 21:36
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2013-8-8 21:32:11 | 显示全部楼层
本帖最后由 hys111111 于 2013-8-8 21:35 编辑
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取变量
  3.   #     variable_id : 变量 ID
  4.   #--------------------------------------------------------------------------
  5.   def [](variable_id)
  6.     if variable_id <= 5000 and @data[variable_id] != nil
  7.       return @data[variable_id]
  8.     else
  9.       return 0
  10.     end
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   # ● 设置变量
  14.   #     variable_id : 变量 ID
  15.   #     value       : 变量的值
  16.   #--------------------------------------------------------------------------
  17.   def []=(variable_id, value)
  18.     if variable_id <= 5000
  19.       @data[variable_id] = value
  20.     end
  21.   end
复制代码
话说脚本Game_Variables里面有类似的。
美丽晨露 发表于 2013-8-8 21:27
这个不是我说的效果
我想要的是变量的获取方法
跟力量的获取方法一样

点评

这个我知道的,不过就是想让某些变量跟Game_Battler 1的能力值获取方法一样而已  发表于 2013-8-8 21:42
难道没人知道我想要的效果······  发表于 2013-8-8 21:33
回复

使用道具 举报

梦石
0
星屑
14580
在线时间
22062 小时
注册时间
2010-10-24
回帖
302
发表于 2013-8-8 21:38:34 | 显示全部楼层
楼主是不是想说比如$game_actors[x].str是x号角色的力量,
想让一个变量能通过$xxx.yz 的形式读取和写入?

点评

=。=好吧,不好意思。……理解不能。静待高手。  发表于 2013-8-8 21:44
想实现某些变量跟Game_Battler 1的能力值获取方法一样  发表于 2013-8-8 21:42
噫
回复

使用道具 举报

双子人

梦石
0
星屑
3205
在线时间
3619 小时
注册时间
2009-4-4
回帖
3901

开拓者

发表于 2013-8-8 21:47:39 | 显示全部楼层
你的意思是特定的变量用特殊的方法获取吗?
  1. #----------------------------------------------------------------------------
  2. #  难道不行啊?
  3. #----------------------------------------------------------------------------
  4. class Game_Variables
  5.   #--------------------------------------------------------------------------
  6.   # ● 获取变量
  7.   #     variable_id : 变量 ID
  8.   #--------------------------------------------------------------------------
  9.   def [](variable_id)
  10.     if variable_id <= 5000 and @data[variable_id] != nil
  11.       special_variable_id = []
  12.       special_variable_id = [1,2,3,4]#1、2、3、4号ID特殊方法获取
  13.       if special_variable_id.include?(variable_id)
  14.         # 用特殊方法获取(随便你怎么样获取)
  15.         n = @data[variable_id]
  16.         n = (n / 100).to_i
  17.         n *= 100
  18.         return n
  19.       else
  20.         return @data[variable_id]
  21.       end
  22.     else
  23.       return 0
  24.     end
  25.   end
  26. end
复制代码
回复

使用道具 举报

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

 楼主| 发表于 2013-8-8 22:11:37 | 显示全部楼层
hys111111 发表于 2013-8-8 21:47
你的意思是特定的变量用特殊的方法获取吗?

差不多的就是这个意思
只不过我想让这些变量简单有最大值最小值
以及最小的减少量
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复

使用道具 举报

梦石
0
星屑
3703
在线时间
3081 小时
注册时间
2011-11-17
回帖
943
发表于 2013-8-9 01:47:16 | 显示全部楼层
a=0
b=rand(100)
b=10 if b<10
a+=b
a=50 if a>50
a初始值为0 假设b为随机100的增量 b=10 if b<10 这句话限定了 b的最少值为10
然后a加上b赋给a 然后这句a=50 if a>50 又限定了 a的最大值为50 差不多就这思路

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部