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

Project1

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

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

[复制链接]

Lv5.捕梦者 (版主)

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

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

跳转到指定楼层
1
发表于 2013-8-8 20:19:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 美丽晨露 于 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软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
2
发表于 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
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
413
在线时间
214 小时
注册时间
2011-3-21
帖子
161
3
发表于 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
签名是什么 好吃么
好吃
回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2013-8-8 21:18:15 | 只看该作者
本帖最后由 hys111111 于 2013-8-8 21:38 编辑



这样不就可以了吗?

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

使用道具 举报

Lv5.捕梦者 (版主)

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

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

5
 楼主| 发表于 2013-8-8 21:27:08 | 只看该作者
hys111111 发表于 2013-8-8 21:18
这样不就可以了吗?

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

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

点评

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

回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

6
发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12254
在线时间
21812 小时
注册时间
2010-10-24
帖子
308
7
发表于 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
回复 支持 反对

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

8
发表于 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
复制代码
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

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

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

9
 楼主| 发表于 2013-8-8 22:11:37 | 只看该作者
hys111111 发表于 2013-8-8 21:47
你的意思是特定的变量用特殊的方法获取吗?

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

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
10
发表于 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 差不多就这思路

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 02:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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