赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 0 |
最后登录 | 2024-6-28 |
在线时间 | 11 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 101
- 在线时间
- 11 小时
- 注册时间
- 2022-11-21
- 帖子
- 16
|
7楼
![](static/image/common/ico_lz.png)
楼主 |
发表于 2022-11-23 11:41:05
|
只看该作者
#==============================================================================
# ■ Game_Switches
#------------------------------------------------------------------------------
# 处理开关的类。编入的是类 Array 的外壳。本类的实例请参考
# $game_switches。
#==============================================================================
class Game_Switches
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize
@data = []
end
#--------------------------------------------------------------------------
# ● 获取开关
# switch_id : 开关 ID
#--------------------------------------------------------------------------
def [](switch_id)
if switch_id <= 5000 and @data[switch_id] != nil
return @data[switch_id]
else
return false
end
end
#--------------------------------------------------------------------------
# ● 设置开关
# switch_id : 开关 ID
# value : ON (true) / OFF (false)
#--------------------------------------------------------------------------
def []=(switch_id, value)
if switch_id <= 5000
@data[switch_id] = value
end
end
end
#---------------------------------------------------------------------------
#独立开关设置扩展
#
#在这里设置id对应的开关名称,注意名称要加双引号,格式: id=>"名称"
#设置方法, 在第三行的哈希表里设置开关对应关系,
#比如 1号开关对应E 就在表里写上 1=>"E"
#注意E要加英文标点的双引号, 你可以无限加,不限英文字母,
#每个项目之间用英文逗号隔开,要换行就从逗号处换行
#设置好后, 你就可以把对应id的开关当独立开关用了,
#不过操作独立开关需要用脚本命令: 独立开关("E", 1)
#这样即可把独立开关E打开(1为开,0为关), 注意这里的括号,双引号,逗号都要用英文标点
#---------------------------------------------------------------------------
CAD_LIST = {1=>"E",2=>"F",3=>"G"}
#下面不要动--------------------------------
alias old []
def [](id)
a = $game_map.map_id
b = $game_system.map_interpreter.instance_variable_get(:@event_id)
return $game_self_switches[[a,b,LIST[id]]] if LIST.keys.include?(id)
old(id)
end
alias old2 []=
def []=(id,val)
if LIST.keys.include?(id)
a = $game_map.map_id
b = $game_system.map_interpreter.instance_variable_get(:@event_id)
$game_self_switches[[a,b,LIST[id]]] = val
else
old(id,val)
end
end
def event_page_swi(event_id,id)
return false if !LIST.keys.include?(id)
return $game_self_switches[[$game_map.map_id,event_id,LIST[id]]]
end
end
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
# 初始化本地变量 new_page
new_page = nil
# 无法暂时消失的情况下
unless @erased
# 从编号大的事件页按顺序调查
for page in @event.pages.reverse
# 可以参考事件条件 c
c = page.condition
# 确认开关条件 1
if c.switch1_valid
next if !$game_switches.event_page_swi(@id,c.switch1_id)
end
# 确认开关条件 2
if c.switch2_valid
next if !$game_switches.event_page_swi(@id,c.switch2_id)
end
# 确认变量条件
if c.variable_valid
if $game_variables[c.variable_id] < c.variable_value
next
end
end
# 确认独立开关条件
if c.self_switch_valid
key = [@map_id, @event.id, c.self_switch_ch]
if $game_self_switches[key] != true
next
end
end
# 设置本地变量 new_page
new_page = page
# 跳出循环
break
end
end
# 与上次同一事件页的情况下
if new_page == @page
# 过程结束
return
end
# @page 设置为现在的事件页
@page = new_page
# 清除启动中标志
clear_starting
# 没有满足条件的页面的时候
if @page == nil
# 设置各实例变量
@tile_id = 0
@character_name = ""
@character_hue = 0
@move_type = 0
@through = true
@trigger = nil
@list = nil
@interpreter = nil
# 过程结束
return
end
# 设置各实例变量
@tile_id = @page.graphic.tile_id
@character_name = @page.graphic.character_name
@character_hue = @page.graphic.character_hue
if @original_direction != @page.graphic.direction
@direction = @page.graphic.direction
@original_direction = @direction
@prelock_direction = 0
end
if @original_pattern != @page.graphic.pattern
@pattern = @page.graphic.pattern
@original_pattern = @pattern
end
@opacity = @page.graphic.opacity
@blend_type = @page.graphic.blend_type
@move_type = @page.move_type
@move_speed = @page.move_speed
@move_frequency = @page.move_frequency
@move_route = @page.move_route
@move_route_index = 0
@move_route_forcing = false
@walk_anime = @page.walk_anime
@step_anime = @page.step_anime
@direction_fix = @page.direction_fix
@through = @page.through
@always_on_top = @page.always_on_top
@trigger = @page.trigger
@list = @page.list
@interpreter = nil
# 目标是 [并行处理] 的情况下
if @trigger == 4
# 生成并行处理用解释器
@interpreter = Interpreter.new
end
# 自动事件启动判定
check_event_trigger_auto
end
end
但是游戏还是报错,无法运行游戏,照样是语法错误 |
|