设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 19751|回复: 23

[RMVX发布] 全事件指令脚本手册(已完成)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
105 小时
注册时间
2009-7-25
帖子
201
发表于 2011-4-12 08:00:59 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 killkill2298 于 2011-4-21 22:00 编辑


RPGVX本身提供的事件指令非常全,涵盖了文字、人物、物品、地图、声音、事件的处理。
这些代码都可以用相同功能的事件代替,不过某些时候用代码配合事件更为方便。
有些地方还有问题啊,大大们帮忙改改,一起来完善这个。
目前已全部完成
但是有三个语句有问题,分别是显示对话选项、显示输入数值和商店处理,不过这些方面应该用的不多把。
标明有问题的表示用起来会有些BUG啦,也不是完全不能用,希望有脚本高手能够完善。

下载页
全部完成再上传地址


TXT版 下载地址
Word03版 下载地址
Word07版 下载地址

取消回复可见

有些地方还有问题啊,大大们帮忙改改,一起来完善这个。

事件指令
使用说明
蓝色文字表示根据使用者修改的参数
棕色文字表示根据需要选择使用的项目
深绿色文字为注释
字符串 = 任意字符串或字符串变量
整数 = 任意数字或整数变量
布尔 = 紫色表示布尔型参数true为真, false为假
0-2 = 范围内任意整数或整数变量

第一页

消息
#●显示文章…
√$game_message.texts.push(字符串) #显示字符串中的内容
√$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[整数] =  开关 #将系统开关打开/关闭
#将范围内批量开关打开/关闭
√for k in 整数..整数
√$game_swicthes[k] = 开关
√end
#●变量操作…
√$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"

点评

好东西~~不过不要开广告贴就是了,嫌里区人气不足的话,可以申请转外区,更新完之后在回来  发表于 2011-4-13 17:29

评分

参与人数 7星屑 +732 梦石 +4 收起 理由
dorx2010 + 2 好东西
summer92 + 24 我很赞同
Rion幻音 + 60 事件脚本流出现啦!!
冰舞蝶恋 + 60 太牛逼了……
zh99998 + 200 好东西~~不过不要开广告贴就是了,嫌里区人.
禾西 + 10 字體太小,大一點比較好~
DeathKing + 376 + 4 D计划鼓励,整理辛苦了!

查看全部评分

我是好人

VX ARPG迷城的国度试玩版已经放出
后续版本紧张制作中

正在策划迷城的伊苏:以超难迷宫为主的中型游戏

Lv1.梦旅人

梦石
0
星屑
50
在线时间
176 小时
注册时间
2011-1-26
帖子
131
发表于 2011-4-12 09:54:12 | 显示全部楼层
本帖最后由 daipeng76 于 2011-4-12 10:32 编辑

回复 killkill2298 的帖子

很好支持,看上去象原创的,你的编写风格我喜欢,只是希望你能补全,最好能附带简单的例子,我用这东东可走了不少弯路。论坛上也有这类手册,http://rpg.blue/thread-73347-1-1.html,不过不是很全。这个网址内容更多,http://lmd0013.5d6d.com/thread-23-1-1.html,不过错误也更多,作者肯定没一一测试过。

请教个朝向问题:如$game_map.events[1].direction=10 - $game_player.direction, 会出错,用$game_map.events[1].direction=2改事件朝向,还会出错,好像direction只能显示朝向,不能改。
是不是象$game_party.gold 只能显示钱,却不能增减,
增减钱要用:$game_party.gain_gold += 100 or $game_party.lose_gold -= 100
哪改朝向用啥命令

点评

谢谢楼主,支持中,不过...下载到期了。  发表于 2011-7-20 16:03
多谢支持,我会尽快补全,正在逐项测试中  发表于 2011-4-12 10:31
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
620
在线时间
1564 小时
注册时间
2008-7-30
帖子
4418

贵宾

发表于 2011-4-12 23:03:22 | 显示全部楼层
希望能够完成整个参考手册。虽然对于会脚本的来说,直接往RGSS里面搜索还是可以搜到的,但楼主的工作可以给一些新手更多的参考!

纠正一个错误,ruby里面的关键字都是小写哦~

if 条件表达式
满足条件的执行语句
else #可以去掉这两行,相当于不勾选“当条件不符合的场合时的设置”
其他情况的执行语句
end

See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
930
在线时间
47 小时
注册时间
2011-3-6
帖子
3
发表于 2011-4-16 12:43:48 | 显示全部楼层
这个好,回复学习一下:lol
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
991
在线时间
645 小时
注册时间
2009-11-11
帖子
2760
发表于 2011-4-16 19:20:17 | 显示全部楼层
这个不得不顶,很方便

嘿。嘿。嘿
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
51
在线时间
2399 小时
注册时间
2008-4-11
帖子
12341

贵宾第6届短篇游戏比赛季军

发表于 2011-4-17 04:24:47 | 显示全部楼层
太好了,这东西实用性绝对高啊~~~
有时候苦思冥想、绞尽脑汁都想不出来的都差不多有了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2006-5-12
帖子
447
发表于 2011-4-17 17:55:42 | 显示全部楼层
这个倒是很需要- -一直在这边有点卡
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
184 小时
注册时间
2010-6-27
帖子
1794
发表于 2011-4-17 18:26:01 | 显示全部楼层
大爱,一直卡在脚本这进步不能,收藏待完善
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
17 小时
注册时间
2008-9-18
帖子
14
发表于 2011-4-17 20:26:50 | 显示全部楼层
太需要这东西了,跪谢楼主、  :hug:
马甲,马甲。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3560
在线时间
1024 小时
注册时间
2008-5-17
帖子
218

开拓者

发表于 2011-4-18 01:30:14 | 显示全部楼层
好东西啊  收了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2022-12-7 20:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表