Project1
标题:
【RMMV】事件脚本整合,第三次更新,更方便在网页上查看
[打印本页]
作者:
绝汪
时间:
2017-10-3 18:10
标题:
【RMMV】事件脚本整合,第三次更新,更方便在网页上查看
本帖最后由 绝汪 于 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]
作者:
赤月抉择
时间:
2017-10-3 18:13
特地注册个新号前来冒泡
作者:
wildprophecy
时间:
2017-10-3 18:36
感谢楼主分享
作者:
枫叶的北方
时间:
2017-10-3 18:51
这是个好东西啊,收下顺便点个赞
作者:
白嫩白嫩的
时间:
2017-10-7 18:37
辛苦了 来新地方分不多 只能塞糖表示感谢了
作者:
z280201450
时间:
2017-11-8 23:30
请问大神~ 判断1号开关是否打开的脚本应该怎么写~~
作者:
yamatonadesiko0
时间:
2017-11-10 21:31
感謝分享,菜鳥福音!
作者:
梦想家大魔王
时间:
2017-11-10 22:13
这个意思就是用脚本把事件页每一项解释了一下对吧?
作者:
秋时
时间:
2017-12-27 09:57
谢谢楼主分享。作为萌新表示很需要
作者:
zhou161506987
时间:
2017-12-27 15:45
谢谢楼主
作者:
越前リョーマ
时间:
2017-12-29 00:00
抱歉该插件无法读取……能否提供网盘版
作者:
luckypigge
时间:
2017-12-29 11:28
谢谢楼主
作者:
18235142958
时间:
2017-12-29 15:25
感谢分享
作者:
spllppy123
时间:
2018-3-21 21:28
大神,第一弹在哪里呢~?
作者:
鑫晴
时间:
2018-8-19 15:47
赞!
作者:
rexuegg123
时间:
2018-10-10 17:12
楼主,没看到 “设置玩家/事件路线,等待与否” 的脚本是什么?
作者:
Carven
时间:
2018-11-11 11:07
楼主你好,生成选项之后,怎么判断选择了哪个选项?
作者:
天空娃娃
时间:
2019-7-21 17:06
请问获取武器ID的那个,能获取武器名称么....
作者:
zlegeo
时间:
2019-7-21 17:47
太棒了!!感谢楼主分享!!新人表示非常有用!!
作者:
天空娃娃
时间:
2019-7-27 18:01
请问显示多个选项那里怎么显示图标呢?事件功能里的选项用\I[n]就可以显示,可是这里好像不能显示呀....还有就是选项选择后的内容是放哪里呀?跟在后面么要不要下一行?
作者:
天空娃娃
时间:
2019-7-27 22:17
还有就是请问大大...怎么显示技能的名字...我把Items换成Skill,不行呀
作者:
1901631
时间:
2019-7-30 15:29
谢谢楼主分享
作者:
做个小世界
时间:
2019-11-28 07:05
非常棒 好 谢谢楼主
作者:
zzfzy
时间:
2020-2-24 19:40
作者:
天空娃娃
时间:
2020-3-22 00:32
生成选项后请问怎么执行选项内容呀..
作者:
eyesstworld
时间:
2020-5-27 14:24
很全。。。感谢分享
作者:
Eevee伊布
时间:
2020-6-14 14:12
大佬 请问怎么在回合开始(就是选择攻击、逃跑)的时候执行公共事件?
作者:
Freeagin
时间:
2020-6-15 12:51
感谢分享
作者:
阿尔卑斯
时间:
2021-2-3 16:50
怎么获得当前事件的坐标呢。我想做个npc循环走动,就是一直走
作者:
xxshope
时间:
2021-2-25 15:37
请教下调取当前地图名称的代码是哪个呢
作者:
张嘉仔
时间:
2021-2-25 20:04
66666666666666
作者:
jianghe006
时间:
2021-4-3 21:11
留个脚印,以便以后查看。
作者:
YuiKura
时间:
2021-5-2 15:50
感谢大佬分享
作者:
666pppsss55555
时间:
2021-5-2 16:24
这个不错,留下我的气泡
作者:
Codesoul
时间:
2021-8-15 03:06
非常感谢分享!
作者:
RyanYe
时间:
2021-10-24 14:33
楼主整理的很不错很实用呢
作者:
xiaolou010
时间:
2021-11-1 10:47
感谢楼主,支持一下。
作者:
qq2046904432
时间:
2022-1-2 19:21
感謝分享,菜鳥福音!
作者:
zx2kk
时间:
2022-2-7 15:41
这个太有用了,感谢
作者:
18958043911
时间:
2022-3-31 22:18
感谢晚风
作者:
xiaoke8206
时间:
2022-4-1 14:35
想请教一下。要如何利用公共事件。调整人物在战斗中的站位?或者说在在战斗中。利用技能让演员调整站位。谢谢
作者:
kjws
时间:
2022-4-22 00:14
大佬6666
作者:
lldjf
时间:
2022-6-16 14:51
谢谢楼主
作者:
apple5740
时间:
2022-6-20 17:37
6666感谢大佬
作者:
skydxy
时间:
2023-3-2 10:15
谢谢楼主分享!
作者:
sasaki123456
时间:
2023-5-10 03:00
感谢分享
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X5.0