Project1
标题:
如何用脚本设置执行公共事件?
[打印本页]
作者:
CR~
时间:
2012-4-14 14:21
标题:
如何用脚本设置执行公共事件?
想在菜单里添加一个选项,这个选项是执行某个公共事件。 dsu_plus_rewardpost_czw
作者:
步兵中尉
时间:
2012-4-14 17:16
说说具体效果,否则很笼统,不好下手
作者:
hys111111
时间:
2012-4-14 18:14
本帖最后由 hys111111 于 2012-4-14 18:18 编辑
1、改Scene_Menu
s1 = "敌物资料"
s2 = "物品与装备"
s3 = "存档"
s4 = "读档"
if $record != nil and $record.mode == "录制"
s5 = "退回主界面"
else
s5 = "重新开始"
end
s6 = "版权说明"
@command_window = Window_Command.new(160, [s1, s2 ,s3 ,s4 ,s5,s6])#, s3, s4, s5, s6])
@command_window.index = @menu_index
复制代码
的这一部分
和
def update_command
# 按下 B 键的情况下
if Input.trigger?(Input::B)
# 演奏取消 SE
$game_system.se_play($data_system.cancel_se)
# 切换的地图画面
$scene = Scene_Map.new
return
end
# 按下 C 键的情况下
if Input.trigger?(Input::C)
# 同伴人数为 0、存档、游戏结束以外的场合
if $game_party.actors.size == 0 and @command_window.index < 4
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 命令窗口的光标位置分支
case @command_window.index
when 0
if $floorenemies!=[] and $game_party.item_number(4)>0
$game_system.se_play($data_system.decision_se)
# 激活状态窗口
@command_window.active = false
# @status_window2.active = false
# @status_window2.visible=false ##########
@enemy_window.active = true
@enemy_window.index = 0
# @enemy_window.visible=true
end
when 1 # 物品
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到物品画面
$scene = Scene_Item.new
when 2 # 存档
if $game_system.save_disabled
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到存档画面
$scene = Scene_Save.new
when 3 # 读档
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 切换到存档画面
$scene = Scene_Load2.new
when 4 #重新开始
if $record != nil and $record.mode == "录制"
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 淡入淡出 BGM、BGS、ME
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# 切换到标题画面
$scene = Scene_Title.new
else
# 游戏重新开始
# 载入数据库
$data_mapname = load_data("Data/MapInfos.rxdata")
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# 生成系统对像
$game_system = Game_System.new
# 停止 BGM
Audio.bgm_stop
# 重置测量游戏时间用的画面计数器
Graphics.frame_count = 0
# 生成各种游戏对像
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 设置初期同伴位置
$game_party.setup_starting_members
# 设置初期位置的地图
$game_map.setup($data_system.start_map_id)
# 主角向初期位置移动
$game_player.moveto($data_system.start_x, $data_system.start_y)
# 刷新主角
$game_player.refresh
# 执行地图设置的 BGM 与 BGS 的自动切换
$game_map.autoplay
# 刷新地图 (执行并行事件)
$game_map.update
# 切换地图画面
$scene = Scene_Map.new
end
when 5 # 版权说明
$game_temp.common_event_id =19
# 切换地图画面
$scene = Scene_Map.new
end
return
end
end
复制代码
这一部分
2、$game_temp.common_event_id = 编号
执行编号的公共事件。注意,这个执行和直接在事件中的公共事件有微妙区别。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1