Project1
标题: 如何查找一个开关具体在哪个地图上? [打印本页]
作者: a107480098 时间: 2015-10-13 22:12
标题: 如何查找一个开关具体在哪个地图上?
如何查找一个开关具体在哪个地图上?我在游戏里建了好多开关,比如11号开关,而我又忘记了这个开关具体在哪个地图上。
可以用脚本写在编辑器里找到这个开关吗?应该怎么写?或者有什么更快捷的方法?谢谢!
作者: 汪汪 时间: 2015-10-13 22:48
本帖最后由 汪汪 于 2015-10-14 08:18 编辑
$jilu = []
$cz = 1 #搜索的开关号
for @map_id in 1..3 #搜索的地图号1到3
# 地图 ID 记录到 @map_id
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id)) rescue next
# 设置地图事件数据
for i in @map.events.keys
@event = @map.events[i]
@id = @event.id
for page in @event.pages.reverse
# 可以参考事件条件 c
c = page.condition
# 可以参考事件条件 c
# 确认开关条件 1
if c.switch1_valid
if c.switch1_id == $cz
$jilu.push([ @map_id,@event.id])
end
end
# 确认开关条件 2
if c.switch2_valid
if c.switch2_id == $cz
$jilu.push([ @map_id,@event.id])
end
end
end
end
end
p $jilu
$jilu = []
$cz = 1 #搜索的开关号
for @map_id in 1..3 #搜索的地图号1到3
# 地图 ID 记录到 @map_id
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id)) rescue next
# 设置地图事件数据
for i in @map.events.keys
@event = @map.events[i]
@id = @event.id
for page in @event.pages.reverse
# 可以参考事件条件 c
c = page.condition
# 可以参考事件条件 c
# 确认开关条件 1
if c.switch1_valid
if c.switch1_id == $cz
$jilu.push([ @map_id,@event.id])
end
end
# 确认开关条件 2
if c.switch2_valid
if c.switch2_id == $cz
$jilu.push([ @map_id,@event.id])
end
end
end
end
end
p $jilu
作者: a107480098 时间: 2015-10-13 23:26
本帖最后由 a107480098 于 2015-10-13 23:42 编辑
汪汪 发表于 2015-10-13 22:48 
$jilu = []
$cz = 1 #搜索的开关号
for @map_id in 1..3 #搜索的地图号1到3
脚本第11行有错误。
作者: 枫の叶 时间: 2015-10-21 10:20
你要说清楚开关是用来干什么的,
是用来控制事件的打开和关闭;还是在事件的内容里作为条件分歧,或直接改变开关状态。
作者: taroxd 时间: 2015-10-21 13:53
本帖最后由 taroxd 于 2015-10-21 18:18 编辑
楼主用自己的经历证明了全局变量的坏处
下面这个脚本可以在用到开关的时候给提醒(未测试)
class Game_Switches
alias get_switch_20151021 []
def [](switch_id)
if switch_id == 11
puts "用到了11号开关!"
end
get_switch_20151021(switch_id)
end
alias set_switch_20151021 []=
def []=(switch_id, value)
if switch_id == 11
puts "用到了11号开关!"
end
set_switch_20151021(switch_id, value)
end
end if $TEST
class Game_Switches
alias get_switch_20151021 []
def [](switch_id)
if switch_id == 11
puts "用到了11号开关!"
end
get_switch_20151021(switch_id)
end
alias set_switch_20151021 []=
def []=(switch_id, value)
if switch_id == 11
puts "用到了11号开关!"
end
set_switch_20151021(switch_id, value)
end
end if $TEST
作者: jiushiainilip19 时间: 2015-10-21 15:29
taroxd 发表于 2015-10-21 13:53 
楼主用自己的经历证明了全局变量的坏处
下面这个脚本可以在用到开关的时候给提醒(未测试)
放进去 在打开11开关的时候没提醒。。。
作者: 汪汪 时间: 2015-10-21 19:45
本帖最后由 汪汪 于 2015-10-21 22:39 编辑
添加 公共事件搜索
返回文件版
额,总之会很慢的拉.......
简化版....大概应该会快一点.....
额,无用的最终版,搜索公共事件,队伍,事件,移动路线,内的开关操作.......
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |