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

Project1

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

[有事请教] [已解决]如何让$Xunzhang_2..$Xunzhang_200全部变量$Xunzhang= []

[复制链接]

Lv4.逐梦者

梦石
0
星屑
8144
在线时间
1380 小时
注册时间
2015-8-15
帖子
770
跳转到指定楼层
1

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

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

x
本帖最后由 金芒芒 于 2025-1-22 13:42 编辑

如何让$Xunzhang_2..$Xunzhang_200全部变量$Xunzhang= []

Lv5.捕梦者

梦石
0
星屑
36834
在线时间
10895 小时
注册时间
2009-3-15
帖子
4840
2
发表于 前天 00:41 | 只看该作者
萌新不懂..说淸楚些
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8144
在线时间
1380 小时
注册时间
2015-8-15
帖子
770
3
 楼主| 发表于 前天 00:51 | 只看该作者
本帖最后由 金芒芒 于 2025-1-22 00:54 编辑
soulsaga 发表于 2025-1-22 00:41
萌新不懂..说淸楚些


想让 $Xunzhang_2 到 $Xunzhang_200 这些变量都被赋值为 []。$Xunzhang_2=[],$Xunzhang_3=[]…$Xunzhang_200=[]
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36834
在线时间
10895 小时
注册时间
2009-3-15
帖子
4840
4
发表于 前天 01:27 | 只看该作者
本帖最后由 soulsaga 于 2025-1-22 01:31 编辑
金芒芒 发表于 2025-1-22 00:51
想让 $Xunzhang_2 到 $Xunzhang_200 这些变量都被赋值为 []。$Xunzhang_2=[],$Xunzhang_3=[]…$Xun ...


你用eval循环一下不就好了
$全局变量F12不会重置..不要随便用比较好
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8144
在线时间
1380 小时
注册时间
2015-8-15
帖子
770
5
 楼主| 发表于 前天 11:48 | 只看该作者
本帖最后由 金芒芒 于 2025-1-22 12:17 编辑
soulsaga 发表于 2025-1-22 01:27
你用eval循环一下不就好了
$全局变量F12不会重置..不要随便用比较好

只有图片按部就班才可以

这么循环老出现什么安全问题
range = 2..200
Xunzhang_hash = {}
range.each do |num|
  Xunzhang_hash["$Xunzhang#{num}"] = []
end

class EFS_Battler < Game_Character
  attr_accessor :base_atk
  attr_accessor :Xunzhang
  attr_reader :soldier_id

  def initialize(data_id)
    super()
    @soldier_id = data_id
    @Xunzhang = []
    # @Xunzhang = eval("$Xunzhang_"+data_id.to_s)
    # 假设这里需要根据data_id从Xunzhang_hash中获取相关数据
    @Xunzhang = Xunzhang_hash["$Xunzhang#{data_id}"] || []
  end

  def calculate_Xunzhang
    get_Xunzhang_base_atk.truncate
  end

  def get_Xunzhang_base_atk(const = false)
    if const
      Figter_data::BASE_ATK[@soldier_id]
    else
      n = Figter_data::BASE_ATK[@soldier_id]
      @Xunzhang.each do |i|
        next if i.nil?
        n += Xunzhang_data::BASE_ATK
      end
      n
    end
  end
end

1111.png (39.16 KB, 下载次数: 2)

1111.png

2222.png (3 KB, 下载次数: 2)

2222.png

3333.png (25.17 KB, 下载次数: 2)

3333.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8144
在线时间
1380 小时
注册时间
2015-8-15
帖子
770
6
 楼主| 发表于 前天 13:35 | 只看该作者
本帖最后由 金芒芒 于 2025-1-22 13:40 编辑
soulsaga 发表于 2025-1-22 01:27
你用eval循环一下不就好了
$全局变量F12不会重置..不要随便用比较好

已经全局佩戴勋章5号了
  1. Xunzhang_hash = Hash.new { |hash, key| hash[key] = [] }
  2. (2..30).each { |num| Xunzhang_hash[num] }

  3. class EFS_Battler < Game_Character
  4.   attr_accessor :base_atk
  5.   attr_accessor :Xunzhang
  6.   attr_reader :soldier_id

  7.   def initialize(data_id)
  8.     super()
  9.     @soldier_id = data_id
  10.     @Xunzhang = []
  11.     @Xunzhang = Xunzhang_hash[data_id] || []
  12.   end

  13.   def add_Xunzhang(medal_id)
  14.     @Xunzhang << medal_id
  15.     # 刷新Xunzhang_hash中对应data_id的值
  16.     Xunzhang_hash[@soldier_id] = @Xunzhang
  17.   end

  18.   def remove_Xunzhang(medal_id)
  19.     @Xunzhang.delete(medal_id)
  20.     # 刷新Xunzhang_hash中对应data_id的值
  21.     Xunzhang_hash[@soldier_id] = @Xunzhang
  22.   end

  23.   def change_Xunzhang(old_medal_id, new_medal_id)
  24.     remove_Xunzhang(old_medal_id)
  25.     add_Xunzhang(new_medal_id)
  26.   end
  27. end
复制代码
  1. battler = EFS_Battler.new(2)
  2. battler.add_Xunzhang(5)
  3. p Xunzhang_hash
复制代码

A111.png (19.39 KB, 下载次数: 2)

A111.png

A222.png (25.32 KB, 下载次数: 2)

A222.png

A333.png (275.31 KB, 下载次数: 2)

A333.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1469
在线时间
264 小时
注册时间
2023-11-9
帖子
53
7
发表于 前天 14:22 | 只看该作者
本帖最后由 ppspssss2 于 2025-1-22 18:36 编辑

是不能直接在变量名字上作编号取名的 必须使用到二维数组
如果要使用多个数字编号的变量要使用到数组 , 而且是数组中的数组   (数组中定义为数组)


先定义一个多编号的数组(名字要自己改)
$Xunzhang_塞了多编号的数组 = []

for i in 2..200  #for循环你懂得,
$Xunzhang_塞了多编号的数组 = []
end #for

说明:
这里再定义数组中的某个号置为数组,
比如 第一次循坏是i = 2 ,
$Xunzhang_塞了多编号的数组[2] = []
一直循环到 $Xunzhang_塞了多编号的数组[200] = []  
那么就这么多个数赋值完成了
$Xunzhang_塞了多编号的数组[2] 是等于你 $Xunzhang_2 的意思
$Xunzhang_塞了多编号的数组[2至200] 的值都变成了[],就不用定义这么多个变量

如果你看脚本全局变量的话
在脚本里事件调用全局变量1的话是 $game_variables[1] 而不是 $game_variables_1
所以使用这种大量编号的情况肯定是使用数组
不过事件里不允许赋与数组,所以通常不知的道的话会被误以为数组不能再赋值为数组
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8144
在线时间
1380 小时
注册时间
2015-8-15
帖子
770
8
 楼主| 发表于 前天 14:52 | 只看该作者
本帖最后由 金芒芒 于 2025-1-22 14:53 编辑
ppspssss2 发表于 2025-1-22 14:22
是不能直接在变量名字上作编号取名的 必须使用到二维数组
如果要使用多个数字编号的变量要使用到数组 , 而 ...


厉害了我的哥,原来的的图片也是这样排列的.我试试
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36834
在线时间
10895 小时
注册时间
2009-3-15
帖子
4840
9
发表于 前天 19:46 | 只看该作者
本帖最后由 soulsaga 于 2025-1-22 19:53 编辑

找个空白位置插入以下代码
RUBY 代码复制
  1. def Xunzhang(x)
  2.     $Xunzhang[x]||=[]
  3.     end

先进行变量数组初始化$Xunzhang=[]后显示图片时Xunzhang(id)

一步到位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-24 06:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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