Project1
标题:
如何获得含有某字符串的事件ID或当前地图内的事件数量?
[打印本页]
作者:
黄亦天
时间:
2011-4-16 01:55
标题:
如何获得含有某字符串的事件ID或当前地图内的事件数量?
http://rpg.blue/forum.php?mod=vi ... =%E6%B3%A8%E9%87%8A
我使用了这个方法来判断事件中是否含有某字符串
但是我想要获取含有这个字符串的事件的ID
应该怎么做?
另外
如何获得当前地图内的事件数量? dsu_plus_rewardpost_czw
作者:
蕾米莉亚·斯卡雷特
时间:
2011-4-16 07:42
have_id = 0
$game_map.event.each do |key, value|
next unless value.list
if value.list.parameters[0] == ["就是咱"]
have_id = key
break
end
end
复制代码
have_id 就是有包含某字符串的事件 ID
总的事件数量是:
$game_map.event.size
未测试
作者:
黄亦天
时间:
2011-4-16 18:15
回复
蕾米莉亚·斯卡雷特
的帖子
唔……
果然还是有些问题呢
event
s
少了个
s
,list需要换成list[0]什么的……
因为要放在公共事件里判定全部地图事件,而这个方法只能判断当前的事件……
所以要用到values方法的说……
不过弄了半天也没弄出个所以然,于是就换了一个方法……
for event in 1..$game_map.events.size
next unless $game_map.events[event].list
for i in 0...$game_map.events[event].list.size
if $game_map.events[event].list[i].parameters[0].to_s.include?("敌人")
$have_id = event
$game_temp.common_event_id = 3
end
end
end
复制代码
如果换成这样,运行效率和values方法相比有没有太大的差别?
作者:
蕾米莉亚·斯卡雷特
时间:
2011-4-16 18:50
差不多. 咱不知道你说的是公共事件什么呢. 另外那个咱的那个脚本不是成熟的.
个人感觉使用 each 来遍历效果会高很多.
作者:
黄亦天
时间:
2011-4-16 19:04
回复
蕾米莉亚·斯卡雷特
的帖子
其实在做事件脚本ARPG
为了判定哪些事件是“敌人”,而执行装有这个脚本的公共事件而已
PS:其实不熟悉 each……
所以总是在用for in ……
作者:
蕾米莉亚·斯卡雷特
时间:
2011-4-16 19:06
本帖最后由 蕾米莉亚·斯卡雷特 于 2011-4-16 19:08 编辑
$game_map.events.each do |key, value|
next unless value.list
value.list.each do |data|
if data.parameters[0].to_s.include?("敌人")
$have_id = key
$game_temp.common_event_id = 3
end
end
end
不知道可不可以就是了~~~
作者:
黄亦天
时间:
2011-4-16 19:31
回复
蕾米莉亚·斯卡雷特
的帖子
其实我弄成这样了……
(1..$game_map.events.size).each do |event|
next unless $game_map.events[event].list
(0...$game_map.events[event].list.size).each do |i|
if $game_map.events[event].list[i].parameters[0].to_s.include?("敌人")
$have_id = event
$game_temp.common_event_id = 3
end
end
end
复制代码
为了防止眼花缭乱,以至于各种错误……
于是把ID和事件分开了
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1