翎·仲秋 发表于 2018-4-7 13:46:27

备份《全事件指令脚本手册(转载加整理合并)》

原帖位置:https://rpg.blue/thread-222399-1-1.html

感谢某个人,原帖地址http://rpg.blue/thread-175138-1-1.html
我在这里特别整理一下:
黑字为目前未整理的,默认VX
暗黄字为XP专用
蓝紫色为旧的VX专用,VX ACE不兼容
蓝绿色为VX ACE专用
天蓝色为确认VX通用
深紫色为全通用
草绿色为注释

第一页

消息
●显示文章…
command 101
$game_temp.message_text = 字符串
$game_message.texts.push(字符串)
$game_message.add(字符串)
#显示字符串中的内容,如果是直接输入文本需要两边加半角双引号

$game_message.position = 0-2 #更改对话框位置(0 =>上, 1=>中, 2=>下)
$game_message.background = 0-2 #更改对话框背景(0 =>普通, 1=>图片, 2=>透明)
$game_message.face_name = 字符串 #为对话指定脸图,字符串表示脸图文件名
$game_message.face_index = 0-7 #指定脸图序号,通常为0-7#●显示选择项…
(有问题)$game_message.choice_start = 0-3 #指定选项起始行,配合显示文章使用
(有问题)$game_message.choice_max = 0-3 #指定选项结束行
#●数值输入处理…
(有问题)$game_message.num_input_variable_id = 系统变量编号 #输入数值存入的变量
(有问题)$game_message.num_input_digits_max=1-9 #输入数值是几位数
(有问题)变量 = Window_InputNumber.new(8) #开启输入数值窗口并保存至变量中

游戏进程
#●开关控制…
$game_swicthes[整数] =开关
#将系统开关打开/关闭,如果使用脚本,开对应不带双引号的半角英文单词true而关对应false




#将范围内批量开关打开/关闭#●变量操作…
$game_variables[整数] 运算符选项 #设定指定编号变量的值
#批量操作参考上面的用法
运算符: 代入 = 加法 += 减法 -= 乘法 *= 除法 /= 取余 %= 乘方 **=
选项:
常数 整数
变量$game_variables[整数]
随机 下限 + rand(上限 - 下限 + 1)
物品$game_party.item_number($data_items[物品ID])
角色 $game_actors[角色ID].后缀
等级level
经验exp
生命hp
魔法mp
生命上限hpmax
魔法上限mpmax
攻击力atk
防御力def
精神力spi
敏捷性 agi
敌人$game_troop.members[敌人ID].后缀 #参考角色后缀,这里的敌人ID指的是战斗画面中敌人编号,而不是敌人类型ID
位置


$game_map.events[事件ID].后缀
#当前事件为@event_id,
其他在事件编辑界面查看
$game_player.后缀#主角
X坐标 x #以地图网格为单位
Y坐标 y
面向 direction
画面X坐标 screen_x #以像素为单位
画面Y坐标 screen_y
其他 #请参考下表
地图ID$game_map.map_id
同伴总人数$game_party.members.size
步数$game_party.steps
金钱$game_party.gold
游戏总时间(秒)   Graphics.frame_count /Graphics.frame_rate #Graphics.frame_rate默认为60
计时器剩余(秒)   $game_system.timer /Graphics.frame_rate
存档次数   $game_system.save_count

#●独立开关操作…
$game_self_switches[[地图编号,事件编号,"A"]] =开关
#使用@map_id表示当前地图,@event_id表示当前事件#●计时器操作…
开始
$game_system.timer = 需要的秒数;$game_system.timer_working = true
停止
$game_system.timer_working = false

控制自动显示
#●条件分歧…
√if <条件表达式> then
<满足条件的执行语句>
√else #可以去掉这两行,相当于不勾选“当条件不符合的场合时的设置”
<其他情况的执行语句>
√end
# ◆ 第1页
开关$game_swicthes[开关ID] ==true/false #ON/OFF
变量game_variables[变量ID] 比较运算符 整数或变量
比较运算符: 相等 == 以上 >= 以下 <= 超过 > 未满 < 不等 !=
独立开关$game_self_switches[[地图编号,事件编号,"A"]] == 开关
计时器 $game_system.timer#注意单位为帧(每秒60帧)
# ◆ 第2页
在队伍时$game_party.members.include?( $game_actor[角色ID])
名称为    $game_actor[角色ID].name == 字符串
掌握技能$game_actor[角色ID].skill_learn?($data_skills[技能ID])
装备武器$game_actor[角色ID].weapons.include?($data_weapons[武器ID])
装备防具$game_actor[角色ID].armors.include?($data_skills[防具ID])
拥有状态$game_actor[角色ID].armors.state?(状态ID)
# ◆ 第3页
敌人出现$game_troop.members[敌人ID].exist?
敌人拥有状态$game_troop.members[敌人ID].state?(状态ID)
事件朝向$game_map.events[事件ID].direction == 方向
乘坐工具$game_player.vehicle_type == 工具ID
# ◆ 第4页
所持金钱   $game_party.gold
持有物品   $game_party.has_item?($data_items[物品ID])
持有武器   $game_party.has_item?($data_weapons[武器ID], 含装备) #true为包含装备品
持有防具   $game_party.has_item?($data_armors[防具ID], 含装备) #true为包含装备品
按下按键   Input.press?(按键ID) ==真假

#●循环…
while ~end
for ~ in ~ end 语句
loop do ~ end 语句能实现相关效果,请看F1
#●中断循环…
break
#●中断事件处理…
Command_end
#●公共事件…
$game_temp.common_event_id = 公共事件ID
#●标签…
没有相关语句
#●跳转标签…
没有相关语句,要是有goto就好了
#●注释…
行首添加#注释符

队伍
#●增减金钱…
√$game_party.gain_gold(整数) #负数为减少金钱
#●增减物品…
$game_party.gain_item($data_items[物品ID], 数量) #负数为减少物品
#●增减武器…
$game_party.gain_item($data_weapons[武器ID], 数量, 含装备)
#●增减防具…
$game_party.gain_item($data_armors[防具ID], 数量, 含装备)
#●队伍管理…
初始化$game_actors[角色ID].setup(角色ID)
入队   $game_party.add_actor(角色ID)
离队   $game_party.remove_actor(角色ID)

角色
全体角色的动作请用循环吧
#●增减HP…
$game_actors[角色ID].hp += 数值
$game_actors[角色ID].hp = 1 if $game_actors[角色ID].hp <= 0 #不允许濒死的设定
#●增减MP…
$game_actors[角色ID].mp += 数值
#●更改状态…
附加状态   $game_actors[角色ID].add_state(状态ID)
移除状态   $game_actors[角色ID].remove_state(状态ID)
#●完全回复…
$game_actors[角色ID].recover_all
#●增减经验…
$game_actors[角色ID].change_exp($game_actors[角色ID].exp + 整数, 升级提示)
#●增减等级…
$game_actors[角色ID].change_level($game_actors[角色ID].level + 整数, 升级提示)
#●增减能力值…
$game_actors[角色ID].后缀 += 数值 #请参考 ●游戏进程 => 变量操作
#●增减特技…
习得$game_actors[角色ID].learn_skill(技能ID)
遗忘$game_actors[角色ID].forget_skill(技能ID)
#●更改装备…
#部位ID:武器(0) / 盾(1) / 头部(2) / 身体(3) / 饰品(4)
$game_actors[角色ID].change_equip_by_id(部位ID, 装备ID)
#●更改名称…
$game_actors[角色ID].name = 字符串
#●更改职业…
$game_actors[角色ID].class_id = 职业ID

第二页

移动
#●场所移动…
$game_player.reserve_transfer(地图ID, 坐标x, 坐标y, 朝向) #朝向0-3下左右上
#●设置交通工具位置…
$game_map.boat.set_location(地图ID, 坐标x, 坐标y) #舟
$game_map.ship.set_location(地图ID, 坐标x, 坐标y) #船
$game_map.airship.set_location(地图ID, 坐标x, 坐标y) #飞艇
#●设置事件位置…
$game_map.events[事件ID].moveto(坐标x, 坐标y)
#●画面卷动…
$game_map.start_scroll(方向, 距离, 速度)
#●设置移动路线…
这个很复杂
#●交通工具乘降…
$game_player.get_on_off_vehicle

角色
#●更改透明状态…
$game_player.transparent = 布尔
#●显示动画…
$game_map.events[事件ID].animation_id = 动画ID
#●显示心情…
$game_map.events[事件ID].balloon_id = 动画ID
#●暂时消除事件…
$game_map.events[事件ID].erase

画面
如果想调用战斗画面的相关动作,请将$game_map改为$game_troop
#●画面淡出…
$game_map.screen.start_fadeout(持续帧数)
#●画面淡入…
$game_map.screen.start_fadein(持续帧数)
#●更改画面色调…
$game_map.screen.start_tone_change(Tone.new(R,G,B,A), 持续帧数, 是否等待)
#●画面闪烁…
$game_map.screen.start_flash(Tone.new(R,G,B,A), 持续帧数, 是否等待)
#●画面震动…
$game_map.screen.start_shake(Tone.new(R,G,B,A), 持续帧数, 是否等待)

等待
#●等待…
@wait_count = 帧数

图片与天气
#●显示图片…
$game_map.screen.pictures[图片ID].show(图片文件名, 左上origin中心center, 原点x, 原点y, 水平缩放, 垂直缩放, 透明度, 合成方式)
#●移动图片…
$game_map.screen.pictures[图片ID].move (持续帧数, 左上origin中心center, 原点x, 原点y, 水平缩放, 垂直缩放, 透明度, 合成方式, 是否等待)

#●旋转图片…
$game_map.screen.pictures[图片ID].route(旋转速率)
#●更改图片色调…
$game_map.screen.pictures[图片ID].start_tone_change(Tone.new(R,G,B,A), 持续帧数, 是否等待)
#●消除图片…
$game_map.screen.pictures[图片ID].erase
#●天气设置…
$game_map.screen.pictures(天气类型0-3, 强度0-9, 持续帧数, 是否等待) #天气类型为无、雨、风、雷

音乐与音效
#●播放BGM…
Audio.bgm_play("Audio/BGM/" + "文件名", 音量, 节奏)
#●淡出BGM…
RPG::BGM.fade(秒数 * 1000)
停止Audio.bgm_stop
#●播放BGS…
Audio.bgs_play("Audio/BGS/" + "文件名", 音量, 节奏)
#●淡出BGS…
RPG::BGS.fade(秒数 * 1000)
停止Audio.bgs_stop
#●播放ME…
Audio.me_play("Audio/ME/" + "文件名", 音量, 节奏)
淡出RPG::ME.fade(秒数 * 1000)
#●播放SE…
Audio.se_play("Audio/SE/" + "文件名", 音量, 节奏)
Sound.play_文件名
#●停止所有SE…
RPG::SE.stop
Audio.se_stop
扩展阅读:
Audio.bgm/bgs/me/se_play(文件名(含路径), 音量, 节奏)
#这个语句还可以用于将BGM作为SE播放,甚至可以新建目录存放音乐文件来播放

第三页

场景控制

#●战斗处理…
$game_troop.setup(敌人队伍ID)
$game_troop.can_escape = 布尔 #是否能逃跑
$game_troop.can_lose = 布尔 #战斗失败后继续
$game_temp.battle_proc = Proc.new { |n| @branch[@indent] = n }
$game_temp.next_scene = "battle"
#●商店处理…
(有问题)$game_temp.next_scene = "shop"
(有问题)$game_temp.shop_goods = [物品类型,物品ID] #物品类型为0道具1武器2防具
(有问题)$game_temp.shop_goods.push([物品类型,物品ID]) #往列表添加一个物品
(有问题)$game_temp.shop_purchase_only = 布尔 #物品可否出售
#●名称输入处理…
$game_temp.next_scene = "name"
$game_temp.name_actor_id = 角色ID
$game_temp.name_max_char = 最大字符数
#●打开菜单画面…
$game_temp.next_scene = "menu"
$game_temp.menu_beep = false #是否播放打开菜单音效
#●打开存档画面…
$game_temp.next_scene = "save"
#●游戏结束…
$game_temp.next_scene = "gameover"
#●返回标题画面…
$game_temp.next_scene = "title"
扩展阅读:
将$game_temp.next_scene= 项目名:"item"物品菜单,"skill"技能菜单,"equip"装备菜单"status"
也可以使用以下语法:
$scene = Scene_项目名.new
另外存读档的语句:
$scene = Scene_File.new(存读,返回标题,返回地图) #第一个参数true为存档,false为读档,第二个参数为true则结束后返回标题画面,第三个参数为true则返回地图画面,如果二、三都为false则返回菜单画面。

系统设置

#●更改战斗BGM…
$game_system.battle_bgm = 文件名
#●更改战斗结束ME…
$game_system.battle_end_me =文件名
#●启用/禁用存档…
$game_system.save_disabled = 布尔
#●启用/禁用菜单…
$game_system.menu_disabled =布尔
#●允许/禁止遇敌…
$game_system.encounter_disabled =布尔
#●更改角色图形…
$game_actors[角色ID].set_graphic(行走图文件名,序号,脸图文件名,序号)
$game_player.refresh #记得刷新显示
#●更改交通工具图形…
$game_map.boat/ship/airship.set_graphic(行走图文件名, 序号)


脚本

eval(script)

战斗事件

#●更改敌人HP…
$game_troop.members[敌人ID].hp += 整数
#●更改敌人MP…
$game_troop.members[敌人ID].mp += 整数
#●更改敌人状态…
$game_troop.members[敌人ID].add_state(状态ID)
#●敌人完全回复…
$game_troop.members[敌人ID].recover_all
#●敌人出现…
$game_troop.members[敌人ID]. hidden = false
$game_troop.make_unique_names #重名重命名
#●敌人变身…
$game_troop.members[敌人ID].transform(变身后ID)
$game_troop.make_unique_names #重名重命名
#●战斗动画显示…
$game_troop.members[敌人ID] .animation_id = 动画ID
$game_actor[角色ID] .animation_id = 动画ID
#●强制战斗指令…
这个很复杂,就不写了
#●战斗中断…
$game_temp.next_scene = "map"

翎·仲秋 发表于 2019-9-9 17:14:18

VA的设置移动路线
character = get_character(事件ID)
   route = RPG::MoveRoute.new
   route.repeat = false
   route.list = RPG::MoveCommand.new(设置移动路线页里的第几个选项, [选了修改移动速度之类的话这里是修改的数值]))#这是第一个动作,必须改
   route.list.push(RPG::MoveCommand.new(设置移动路线页里的第几个选项, [选了修改移动速度之类的话这里是修改的数值]),设置移动路线页里的第几个选项, [选了修改移动速度之类的话这里是修改的数值]))#这里就可以随便多少个了
   character.force_move_route(route)
   Fiber.yield while character.move_route_forcing if route.wait
页: [1]
查看完整版本: 备份《全事件指令脚本手册(转载加整理合并)》