查看: 64566|回复: 49

[原创发布] 【RMMV】事件脚本整合,第三次更新,更方便在网页上查看

 火 [复制链接]
梦石
0
星屑
1197
在线时间
135 小时
注册时间
2017-10-3
回帖
1
发表于 2017-10-3 18:10:06 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 绝汪 于 2018-8-24 18:10 编辑

编写者:绝汪
参考了一些来自国外的资料,
加了很多中文、用法的注释,应该很容易看懂
请活用、善用这些方便的事件脚本吧。

这次更新追加了一些新东西,新说明,顺便修改了一些错误……
例如在MV里获取角色的名字需要用_name而不是name。

8.24更新,修复玩家坐标的一处错误,
$gamePlayer和$gameParty长得有点像……打错了

[pre lang="javascript"]$gameTemp.reserveCommonEvent(id);[/pre]
执行公共事件
参数id是公共事件在数据库里的编号
【这个很有用哦】

[pre lang="javascript"]$gameMessage.setFaceImage('Actor1',0)
$gameMessage.setBackground(1)
$gameMessage.setPositionType(1)
$gameMessage.add("这里是测试文本")[/pre]
显示文本。
参数分别是头像文件名,排列的第几号。
背景显示方式——0,1,2
显示的位置——0,1,2
文本,注意要写到引号内

[pre lang="javascript"]choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("选项1");choices.push("选项2");
choices.push("选项3");choices.push("选项4");
choices.push("选项5");choices.push("选项6");
params.push()[/pre]
生成选项
如果需要更少的选项,只需要删除中间的push就可以了
choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push("选项1");choices.push("选项2");
choices.push("选项3");
params.push()

[pre lang="javascript"]$gameMessage.setScroll(10,true);
$gameMessage.add("Text");[/pre]
设置滚动的文字,
第一行的参数分别是速度和是否允许快进

[pre lang="javascript"]$gameScreen.showPicture("1","图片",0,0,0,100,100,255,0)[/pre]
图片显示
$gameScreen.showPicture("编号",文件名,原点,x,y,x放大率,y放大率,透明度,合成方式)
编号:图片的编号,数字越大越优先显示
原点:为0或1,分别对应左上,中心
合成方式:0是普通显示,1是加法显示,2是正片叠底,3是滤色
透明度:0~255
x\y放大率:x轴和y轴的放大倍率

[pre lang="javascript"]$gameScreen.movePicture(图片编号,原点, x, y,x放大率,y放大率,透明度, 合成方式,执行的帧数)[/pre]
移动图片

[pre lang="javascript"]$gameScreen.erasePicture(id);[/pre]
图片消除
id是图片的编号

[pre lang="javascript"]for (var i=j;i<=k;i++){
$gameScreen.erasePicture(i);}[/pre]
j~k范围内的图片消除
for (var i=1;i<=20;i++){
$gameScreen.erasePicture(i);}
就是1~20范围内的图片消除

[pre lang="javascript"]$dataSystem.optSideView = b[/pre]
b为true或者false
效果是开启或关闭横版战斗

[pre lang="javascript"]$gameSystem.onBeforeSave();
DataManager.saveGame(n)[/pre]
自动存档游戏,n是存档的位置。
例如写1,那么就会存档到第一个位置

[pre lang="javascript"]SceneManager.push(Scene)[/pre]
进入某个场景,Scene参数需要自己写
Scene如果是Scene_Options,那么就进入设置场景,
如果是Scene_Title,则进入标题场景,
为Scene_Menu打开菜单
为Scene_Map返回地图场景
Scene_Item打开物品场景
Scene_Skill打开技能场景
Scene_Equip打开装备场景
Scene_Status打开状态场景
Scene_Save打开存档场景
Scene_Load打开读档场景
Scene_GameEnd进入游戏结束场景

[pre lang="javascript"]eval(alert(1));[/pre]
[pre lang="javascript"]alert(n)[/pre]
弹出窗口
n是弹出的内容
alert("弹出")
就会弹出一个写着“弹出”的窗口

[pre lang="javascript"]$gameSwitches.value(n)[/pre]
获取开关,n是开关的id,

[pre lang="javascript"]$gameSwitches.setValue(n,Boolean);[/pre]
改变开关,n是开关的id,
Boolean是true或者false

[pre lang="javascript"]for (var i=j;i<=k;i++){
$gameSwitches.setValue(i,Boolean);}[/pre]
改变j~k之间所有的开关
for (var i=1;i<=20;i++){
$gameSwitches.setValue(i,true);}
就是打开1~20的所有开关

[pre lang="javascript"]$gameVariables.value(n)[/pre]
获取变量,n是变量的id

[pre lang="javascript"]$gameVariables.setValue(n,v);[/pre]
改变变量,n是变量的id
v是变量的值

[pre lang="javascript"]for (var i=j;i<=k;i++){
$gameVariables.setValue(i,v);}[/pre]
循环赋值,给变量j~k赋值为v
for (var i=1;i<=5;i++){
$gameVariables.setValue(i,20);}
就是给1~5的变量都赋值20

[pre lang="javascript"]$gameVariables.setValue(n,$gameVariables.value(n)+v);
$gameVariables.setValue(n,$gameVariables.value(n)-v);
$gameVariables.setValue(n,$gameVariables.value(n)*v);
$gameVariables.setValue(n,$gameVariables.value(n)/v);
$gameVariables.setValue(n,$gameVariables.value(n)%v);[/pre]
对变量进行加减乘除等计算,

[pre lang="javascript"]$gameSelfSwitches.setValue("",b);[/pre]

独立开关的操作,引号里写上变量名,b为true或false
$gameSelfSwitches.setValue("A",true);
就是打开A号独立开关


[pre lang="javascript"]AudioManager.playBgm({"name":"","volume":90,"pitch":100,"pan":0})
AudioManager.playBgs({"name":"","volume":90,"pitch":100,"pan":0})
AudioManager.playMe({"name":"","volume":90,"pitch":100,"pan":0})
AudioManager.playSe({"name":"","volume":90,"pitch":100,"pan":0})[/pre]
分别是,播放bgm,播放bgs,播放me,播放se
在name后面的引号内输入文件名
在volume后面的引号内输入音量
在pitch后面的引号内输入音调
在pan后面的引号内输入声道

[pre lang="javascript"]AudioManager.stopBgm
AudioManager.stopBgs
AudioManager.stopMe
AudioManager.stopSe[/pre]
停止播放

[pre lang="javascript"]AudioManager.fadeOutBgm(n);
$gameSystem.saveBgm();
$gameSystem.replayBgm();[/pre]
淡出BGM
储存BGM
继续播放BGM

[pre lang="javascript"]$gameActors.actor(1)._name//名字
$gameActors.actor(1).level//等级
$gameActors.actor(1).hp//生命
$gameActors.actor(1).mhp//最大生命
$gameActors.actor(1).mp//蓝
$gameActors.actor(1).mmp
$gameActors.actor(1).atk//攻击力
$gameActors.actor(1).mat//魔攻
$gameActors.actor(1).agi//敏捷
$gameActors.actor(1).def//防御
$gameActors.actor(1).mdf//魔防
$gameActors.actor(1).luk//幸运[/pre]
获取1号角色属性

[pre lang="javascript"]$gameActors.actor(id).gainExp(n);[/pre]
编号为id的角色获得n点经验值

[pre lang="javascript"]$gameActors.actor(1).changeLevel($gameActors.actor(1).level+1,true);[/pre]
1号角色等级提升1,显示升级信息
第一个参数为角色的编号,第二个为是否显示升级信息,
true或者false

[pre lang="javascript"]$gameActors.actor(id).learnSkill(n);
$gameActors.actor(id).forgetSkill(n);[/pre]
学习、遗忘技能,id为角色编号,n为技能编号

[pre lang="javascript"]$gameActors.actor(id).addParam(n,v);[/pre]
增减能力值
$gameActors.actor(1).addParam(0,100);
1号角色最大hp增加100
$gameActors.actor(1).addParam(1,100);
1号角色最大mp增加100
$gameActors.actor(1).addParam(2,100);
1号角色攻击力增加100
$gameActors.actor(1).addParam(3,100);
1号角色防御力增加100
$gameActors.actor(1).addParam(4,100);
1号角色魔攻增加100
$gameActors.actor(1).addParam(5,100);
1号角色魔防增加100
$gameActors.actor(1).addParam(6,100);
1号角色敏捷增加100
$gameActors.actor(1).addParam(7,100);
1号角色幸运增加100

[pre lang="javascript"]$gameActors.actor(id).gainHp(n);
$gameActors.actor(id).gainMp(n);
$gameActors.actor(id).gainTp(n)
$gameActors.actor(id).addState(n);
$gameActors.actor(id).removeState(n);[/pre]
增减HP
增减MP
增减TP
增加状态
去除状态

[pre lang="javascript"]$gameActors.actor(id).recoverAll(); [/pre]
编号为id的角色全恢复

[pre lang="javascript"]for (var i=1;i<=5;i++){
$gameActors.actor(i).recoverAll();}[/pre]
1~5号角色全恢复

[pre lang="javascript"]$gameTroop.members().hp//生命
$gameTroop.members().mp//MP
$gameTroop.members().tp//TP
$gameTroop.members().atk//攻击力
$gameTroop.members().def//防御力
$gameTroop.members().gainHp(n);//增减生命
$gameTroop.members().gainMp(n);//增减MP
$gameTroop.members().gainTp(n);//增减TP
$gameTroop.members().addState(n);//增加状态
$gameTroop.members().removeState(n);//去除状态
$gameTroop.members().recoverAll();//完全恢复
$gameTroop.members().transform(n);//更换敌人[/pre]

[pre lang="javascript"]$gameTroop.members().agi//敏捷
$gameTroop.members().mdf//魔防
$gameTroop.members().mat//魔攻
$gameTroop.members().luk//幸运[/pre]

战斗中敌人的各项能力、功能,
参数i写上敌人在战斗中的编号,
从0开始
n是写上增减的具体数值,如果是负数就是减少。
$gameTroop.members()[0].gainhp(-100);
就是第一号敌人减少100HP

[pre lang="javascript"]$gameActors.actor(id).changeEquip(n,item);[/pre]
变更装备
id对应角色编号
n变量可以为0,1,2,3,4,分别对应武器、盾牌等等——
item对应数据库的装备编号
$gameActors.actor(1).changeEquip(0,1);
一号角色的武器变为一号武器

[pre lang="javascript"]$gameParty.hasItem($dataItems[n]);
$gameActors.actor(id).hasWeapon($dataWeapons[n]);
$gameActors.actor(id).hasArmor($dataArmors[n]);[/pre]
获取布尔值,是否有这个物品、武器、防具。
id上写需要判断角色的编号,n写数据库中物品的编号

[pre lang="javascript"]$gameParty.numItems($dataItems[5])[/pre]
获取5号物品的数量
如果要获取5号武器的数量那就是这么写
[pre lang="javascript"]$gameParty.numItems($dataWeapons[5])[/pre]

[pre lang="javascript"]$dataItems[5].name[/pre]
获取5号物品的名称
如果要获取武器、防具等
只需要把上面的Items改成Weapons或Armors
$dataWeapons[5].name

[pre lang="javascript"]$dataWeapons[5].atk[/pre]
获取5号武器的攻击力

[pre lang="javascript"]$gameMessage.setNumberInput(v,b);[/pre]
输入数字
参数v是接收输入的变量
b是输入几位数

[pre lang="javascript"]$gameMessage.setItemChoice(v,b);[/pre]
物品选择
参数v是接收输入的变量
b是物品的类型——0,1,2,3

[pre lang="javascript"]$gameParty.gainGold(100);
$gameParty.loseGold(100);[/pre]
增加100金钱
减少100金钱

[pre lang="javascript"]$gameActors.actor(id).setName("");
$gameActors.actor(id).setNickname("");
$gameActors.actor(id).setProfile("");[/pre]
改变名称
改变称号
改变简介

[pre lang="javascript"]$gameActors.actor(id).changeClass(n,true)[/pre]
改变职业
id为角色的编号
n为职业的编号
b为true或false,是否保留等级

[pre lang="javascript"]$gamePlayer.reserveTransfer(mapId, x, y,direction,fade);[/pre]
转移场景
(地图编号,x坐标,y坐标,朝向(为2,4,6,8),淡出淡入(为0,1,2))

[pre lang="javascript"]$gameMap.event(id).setPosition(x,y)[/pre]
移动事件位置(事件左上角编号,x,y)
若只是要指定本事件,
则在id处写上this.eventId()
[pre lang="javascript"]$gameMap.event(id).x
$gameMap.event(id).y
$gameMap.event(id).direction[/pre]
获取事件的x,y,朝向(2,4,6,8)
若只是要指定本事件,
则在id处写上this.eventId()

[pre lang="javascript"]$gameMap.eraseEvent(id);[/pre]
消除事件
若只是要指定本事件,
则在id处写上this.eventId()

[pre lang="javascript"]$gameMap.event(id,page).start();[/pre]
执行指定事件的指定事件页

[pre lang="javascript"]$gamePlayer.x
$gamePlayer.y
$gamePlayer.direction[/pre]
获取玩家的x,y,朝向(2,4,6,8)

[pre lang="javascript"]$gameParty.addActor(id);
$gameParty.removeActor(id);[/pre]
增减队伍角色
id代表的是角色编号

[pre lang="javascript"]$gameActors.actor(id).setCharacterImage(name,index);
$gameActors.actor(id).setFaceImage(name,index);
$gameActors.actor(id).setBattlerImage(name);[/pre]
更改角色的行走图
更改角色的头像
更改角色的战斗图
id是角色的编号,name是文件名,index是图片中的排序
$gameActors.actor(1).setCharacterImage("jk",1);
就是把1号的行走图变为jk图片的第一行第一列

[pre lang="javascript"]$gameMap.vehicle(id).setLocation(mapid,x,y);[/pre]
在地图的某处生成一个交通工具
id是交通工具的id,0是小船,1是大船,2是飞艇
mapid是指地图的id
x,y是指位置

[pre lang="javascript"]$gamePlayer.getOnOffVehicle();[/pre]
载具乘降

[pre lang="javascript"]BattleManager.setup(id,b,b2);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);[/pre]
战斗执行
第一行中输入三个参数
id为敌人的队伍
b为是否允许逃跑
b2为是否允许失败

[pre lang="javascript"]$gameMap.terrainTag(x,y);[/pre]
获取坐标为xy位置上的地形标志

[pre lang="javascript"]$gameMap.eventIdXy(x,y);[/pre]
获取坐标为xy位置上的事件ID
【这样的话就可以更简便的判断事件目前所在的位置了】

[pre lang="javascript"]$gameMap.tileId(x,y,z);[/pre]
获取坐标为xy位置第z层(0,1,2)上的图块ID
获取你在这个位置的图块,除了xy以外还需要判定
所在的图层z

[pre lang="javascript"]$gameMap.isPassable(x,y,d)[/pre]
获取在xy坐标上的图块通过d方向是否可以通过
d为2,4,6,8,对应上下左右
返回的是true或者false

[pre lang="javascript"]//在移动路线中使用脚本
this.requestBalloon(1);[/pre]
显示1号表情气泡,序号是根据素材的排列而定

[pre lang="javascript"]var name = "文件名"
var ext = this.videoFileExt();
Graphics.playVideo('movies/' + name + ext);
this.setWaitMode('video');[/pre]
播放影片
第一行的引号内写入文件名

[pre lang="javascript"]this.wait(time);[/pre]
等待
time是等待的时间

[pre lang="javascript"]TouchInput.x
TouchInput.y[/pre]
获取鼠标点击时的X
获取鼠标点击时的Y
【如果是安卓那就是触屏】


[pre lang="javascript"]TouchInput._onMove(0,0);
TouchInput.update;[/pre]
强制改变点击的值,然后刷新。
点击一次后可以执行这个代码让他的值归零,

[pre lang="javascript"]//可使用if()语句
//或是写在事件条件分歧-脚本里
TouchInput.isTriggered() [/pre]
判断是是否点击。
[pre lang="javascript"]TouchInput.isPressed()//是否为按下状态 Input.isPressed("a")//按下键盘上的a
Input.isPressed("s")//按下键盘上的s
Input.isPressed("pageup")//上一页键
Input.isPressed("pagedown")//下一页键[/pre]

[pre lang="javascript"]$gameTemp.setDestination(8,10);[/pre]
让主角移动到某个位置。

[pre lang="javascript"]$dataWeapons[$gameActors.actor(1).weapons()[0].id].wtypeId[/pre]
获取1号角色所使用的武器类型

[pre lang="javascript"]$gameActors.actor(1).weapons()[0].id[/pre]
获取1号角色所使用的武器ID

[pre lang="javascript"]$gameActors.actor(1).isStateAffected(1)[/pre]
1号角色是否处于1号状态,可配合if语句
[pre lang="javascript"]if ($gameActors.actor(1).isStateAffected(1))
{
alert("你现在处于这个状态");
}
else {
alert("你现在并没有处于这个状态");
}[/pre]

RMMV事件脚本整合.zip

1.4 MB, 下载次数: 2172

评分

参与人数 35星屑 +178 赞 +30 收起 理由
YIRN + 1 精品文章
lvp + 1 精品文章
别踩我枕头 + 1 精品文章
LaVanaPordego + 1 精品文章
背棺走的骷髅 + 1 精品文章
a000b1745 + 1 精品文章
sanddream + 1 精品文章
走ってるカール + 1 精品文章
13648190411 + 1 精品文章
bronya + 1 精品文章

查看全部评分

梦石
0
星屑
127
在线时间
14 小时
注册时间
2015-3-19
回帖
17
发表于 2017-10-3 18:13:02 | 显示全部楼层
特地注册个新号前来冒泡

点评

抉择你的旧号呢?  发表于 2018-10-14 12:28
回复

使用道具 举报

梦石
11
星屑
10207
在线时间
1226 小时
注册时间
2017-9-27
回帖
42
发表于 2017-10-3 18:36:32 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

梦石
0
星屑
5639
在线时间
1052 小时
注册时间
2008-6-9
回帖
494

开拓者

发表于 2017-10-3 18:51:25 | 显示全部楼层
这是个好东西啊,收下顺便点个赞
总是没耐心做一个游戏。。
回复

使用道具 举报

梦石
0
星屑
3930
在线时间
1198 小时
注册时间
2016-8-9
回帖
2355

开拓者

发表于 2017-10-7 18:37:53 | 显示全部楼层
辛苦了 来新地方分不多 只能塞糖表示感谢了
酸酸甜甜就④哇噢
回复

使用道具 举报

梦石
0
星屑
57
在线时间
111 小时
注册时间
2009-2-18
回帖
23
发表于 2017-11-8 23:30:01 | 显示全部楼层
请问大神~ 判断1号开关是否打开的脚本应该怎么写~~
摩西摩西   o(╯□╰)o
回复

使用道具 举报

梦石
0
星屑
244
在线时间
23 小时
注册时间
2017-11-10
回帖
11
发表于 2017-11-10 21:31:54 | 显示全部楼层
感謝分享,菜鳥福音!
回复

使用道具 举报

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
回帖
566
发表于 2017-11-10 22:13:02 | 显示全部楼层
这个意思就是用脚本把事件页每一项解释了一下对吧?
回复

使用道具 举报

梦石
0
星屑
35
在线时间
8 小时
注册时间
2017-12-23
回帖
1
发表于 2017-12-27 09:57:02 | 显示全部楼层
谢谢楼主分享。作为萌新表示很需要
回复

使用道具 举报

梦石
0
星屑
60
在线时间
7 小时
注册时间
2017-12-25
回帖
1
发表于 2017-12-27 15:45:09 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部