Project1

标题: 【RMMV】事件脚本整合,第三次更新,更方便在网页上查看 [打印本页]

作者: 绝汪    时间: 2017-10-3 18:10
标题: 【RMMV】事件脚本整合,第三次更新,更方便在网页上查看
本帖最后由 绝汪 于 2018-8-24 18:10 编辑

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

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

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

JAVASCRIPT 代码复制
  1. $gameTemp.reserveCommonEvent(id);

执行公共事件
参数id是公共事件在数据库里的编号
【这个很有用哦】

JAVASCRIPT 代码复制
  1. $gameMessage.setFaceImage('Actor1',0)
  2. $gameMessage.setBackground(1)
  3. $gameMessage.setPositionType(1)
  4. $gameMessage.add("这里是测试文本")

显示文本。
参数分别是头像文件名,排列的第几号。
背景显示方式——0,1,2
显示的位置——0,1,2
文本,注意要写到引号内

JAVASCRIPT 代码复制
  1. choices = []; params = [];
  2. $gameMessage.setChoices(choices, 0)
  3. choices.push("选项1");choices.push("选项2");
  4. choices.push("选项3");choices.push("选项4");
  5. choices.push("选项5");choices.push("选项6");
  6. params.push()

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

JAVASCRIPT 代码复制
  1. $gameMessage.setScroll(10,true);
  2. $gameMessage.add("Text");

设置滚动的文字,
第一行的参数分别是速度和是否允许快进

JAVASCRIPT 代码复制
  1. $gameScreen.showPicture("1","图片",0,0,0,100,100,255,0)

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

JAVASCRIPT 代码复制
  1. $gameScreen.movePicture(图片编号,原点, x, y,x放大率,y放大率,透明度, 合成方式,执行的帧数)

移动图片

JAVASCRIPT 代码复制
  1. $gameScreen.erasePicture(id);

图片消除
id是图片的编号

JAVASCRIPT 代码复制
  1. for (var i=j;i<=k;i++){
  2. $gameScreen.erasePicture(i);}

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

JAVASCRIPT 代码复制
  1. $dataSystem.optSideView = b

b为true或者false
效果是开启或关闭横版战斗

JAVASCRIPT 代码复制
  1. $gameSystem.onBeforeSave();
  2. DataManager.saveGame(n)

自动存档游戏,n是存档的位置。
例如写1,那么就会存档到第一个位置

JAVASCRIPT 代码复制
  1. SceneManager.push(Scene)

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

JAVASCRIPT 代码复制
  1. eval(alert(1));

JAVASCRIPT 代码复制
  1. alert(n)

弹出窗口
n是弹出的内容
alert("弹出")
就会弹出一个写着“弹出”的窗口

JAVASCRIPT 代码复制
  1. $gameSwitches.value(n)

获取开关,n是开关的id,

JAVASCRIPT 代码复制
  1. $gameSwitches.setValue(n,Boolean);

改变开关,n是开关的id,
Boolean是true或者false

JAVASCRIPT 代码复制
  1. for (var i=j;i<=k;i++){
  2. $gameSwitches.setValue(i,Boolean);}

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

JAVASCRIPT 代码复制
  1. $gameVariables.value(n)

获取变量,n是变量的id

JAVASCRIPT 代码复制
  1. $gameVariables.setValue(n,v);

改变变量,n是变量的id
v是变量的值

JAVASCRIPT 代码复制
  1. for (var i=j;i<=k;i++){
  2. $gameVariables.setValue(i,v);}

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

JAVASCRIPT 代码复制
  1. $gameVariables.setValue(n,$gameVariables.value(n)+v);
  2. $gameVariables.setValue(n,$gameVariables.value(n)-v);
  3. $gameVariables.setValue(n,$gameVariables.value(n)*v);
  4. $gameVariables.setValue(n,$gameVariables.value(n)/v);
  5. $gameVariables.setValue(n,$gameVariables.value(n)%v);

对变量进行加减乘除等计算,

JAVASCRIPT 代码复制
  1. $gameSelfSwitches.setValue("",b);


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


JAVASCRIPT 代码复制
  1. AudioManager.playBgm({"name":"","volume":90,"pitch":100,"pan":0})
  2. AudioManager.playBgs({"name":"","volume":90,"pitch":100,"pan":0})
  3. AudioManager.playMe({"name":"","volume":90,"pitch":100,"pan":0})
  4. AudioManager.playSe({"name":"","volume":90,"pitch":100,"pan":0})

分别是,播放bgm,播放bgs,播放me,播放se
在name后面的引号内输入文件名
在volume后面的引号内输入音量
在pitch后面的引号内输入音调
在pan后面的引号内输入声道

JAVASCRIPT 代码复制
  1. AudioManager.stopBgm
  2. AudioManager.stopBgs
  3. AudioManager.stopMe
  4. AudioManager.stopSe

停止播放

JAVASCRIPT 代码复制
  1. AudioManager.fadeOutBgm(n);
  2. $gameSystem.saveBgm();
  3. $gameSystem.replayBgm();

淡出BGM
储存BGM
继续播放BGM

JAVASCRIPT 代码复制
  1. $gameActors.actor(1)._name//名字
  2. $gameActors.actor(1).level//等级
  3. $gameActors.actor(1).hp//生命
  4. $gameActors.actor(1).mhp//最大生命
  5. $gameActors.actor(1).mp//蓝
  6. $gameActors.actor(1).mmp
  7. $gameActors.actor(1).atk//攻击力
  8. $gameActors.actor(1).mat//魔攻
  9. $gameActors.actor(1).agi//敏捷
  10. $gameActors.actor(1).def//防御
  11. $gameActors.actor(1).mdf//魔防
  12. $gameActors.actor(1).luk//幸运

获取1号角色属性

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).gainExp(n);

编号为id的角色获得n点经验值

JAVASCRIPT 代码复制
  1. $gameActors.actor(1).changeLevel($gameActors.actor(1).level+1,true);

1号角色等级提升1,显示升级信息
第一个参数为角色的编号,第二个为是否显示升级信息,
true或者false

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).learnSkill(n);
  2. $gameActors.actor(id).forgetSkill(n);

学习、遗忘技能,id为角色编号,n为技能编号

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).addParam(n,v);

增减能力值
$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

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).gainHp(n);
  2. $gameActors.actor(id).gainMp(n);
  3. $gameActors.actor(id).gainTp(n)
  4. $gameActors.actor(id).addState(n);
  5. $gameActors.actor(id).removeState(n);

增减HP
增减MP
增减TP
增加状态
去除状态

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).recoverAll();

编号为id的角色全恢复

JAVASCRIPT 代码复制
  1. for (var i=1;i<=5;i++){
  2. $gameActors.actor(i).recoverAll();}

1~5号角色全恢复

JAVASCRIPT 代码复制
  1. $gameTroop.members()[i].hp//生命
  2. $gameTroop.members()[i].mp//MP
  3. $gameTroop.members()[i].tp//TP
  4. $gameTroop.members()[i].atk//攻击力
  5. $gameTroop.members()[i].def//防御力
  6. $gameTroop.members()[i].gainHp(n);//增减生命
  7. $gameTroop.members()[i].gainMp(n);//增减MP
  8. $gameTroop.members()[i].gainTp(n);//增减TP
  9. $gameTroop.members()[i].addState(n);//增加状态
  10. $gameTroop.members()[i].removeState(n);//去除状态
  11. $gameTroop.members()[i].recoverAll();//完全恢复
  12. $gameTroop.members()[i].transform(n);//更换敌人


JAVASCRIPT 代码复制
  1. $gameTroop.members()[i].agi//敏捷
  2. $gameTroop.members()[i].mdf//魔防
  3. $gameTroop.members()[i].mat//魔攻
  4. $gameTroop.members()[i].luk//幸运


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

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).changeEquip(n,item);

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

JAVASCRIPT 代码复制
  1. $gameParty.hasItem($dataItems[n]);
  2. $gameActors.actor(id).hasWeapon($dataWeapons[n]);
  3. $gameActors.actor(id).hasArmor($dataArmors[n]);

获取布尔值,是否有这个物品、武器、防具。
id上写需要判断角色的编号,n写数据库中物品的编号

JAVASCRIPT 代码复制
  1. $gameParty.numItems($dataItems[5])

获取5号物品的数量
如果要获取5号武器的数量那就是这么写
JAVASCRIPT 代码复制
  1. $gameParty.numItems($dataWeapons[5])


JAVASCRIPT 代码复制
  1. $dataItems[5].name

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

JAVASCRIPT 代码复制
  1. $dataWeapons[5].atk

获取5号武器的攻击力

JAVASCRIPT 代码复制
  1. $gameMessage.setNumberInput(v,b);

输入数字
参数v是接收输入的变量
b是输入几位数

JAVASCRIPT 代码复制
  1. $gameMessage.setItemChoice(v,b);

物品选择
参数v是接收输入的变量
b是物品的类型——0,1,2,3

JAVASCRIPT 代码复制
  1. $gameParty.gainGold(100);
  2. $gameParty.loseGold(100);

增加100金钱
减少100金钱

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).setName("");
  2. $gameActors.actor(id).setNickname("");
  3. $gameActors.actor(id).setProfile("");

改变名称
改变称号
改变简介

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).changeClass(n,true)

改变职业
id为角色的编号
n为职业的编号
b为true或false,是否保留等级

JAVASCRIPT 代码复制
  1. $gamePlayer.reserveTransfer(mapId, x, y,direction,fade);

转移场景
(地图编号,x坐标,y坐标,朝向(为2,4,6,8),淡出淡入(为0,1,2))

JAVASCRIPT 代码复制
  1. $gameMap.event(id).setPosition(x,y)

移动事件位置(事件左上角编号,x,y)
若只是要指定本事件,
则在id处写上this.eventId()
JAVASCRIPT 代码复制
  1. $gameMap.event(id).x
  2. $gameMap.event(id).y
  3. $gameMap.event(id).direction

获取事件的x,y,朝向(2,4,6,8)
若只是要指定本事件,
则在id处写上this.eventId()

JAVASCRIPT 代码复制
  1. $gameMap.eraseEvent(id);

消除事件
若只是要指定本事件,
则在id处写上this.eventId()

JAVASCRIPT 代码复制
  1. $gameMap.event(id,page).start();

执行指定事件的指定事件页

JAVASCRIPT 代码复制
  1. $gamePlayer.x
  2. $gamePlayer.y
  3. $gamePlayer.direction

获取玩家的x,y,朝向(2,4,6,8)

JAVASCRIPT 代码复制
  1. $gameParty.addActor(id);
  2. $gameParty.removeActor(id);

增减队伍角色
id代表的是角色编号

JAVASCRIPT 代码复制
  1. $gameActors.actor(id).setCharacterImage(name,index);
  2. $gameActors.actor(id).setFaceImage(name,index);
  3. $gameActors.actor(id).setBattlerImage(name);

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

JAVASCRIPT 代码复制
  1. $gameMap.vehicle(id).setLocation(mapid,x,y);

在地图的某处生成一个交通工具
id是交通工具的id,0是小船,1是大船,2是飞艇
mapid是指地图的id
x,y是指位置

JAVASCRIPT 代码复制
  1. $gamePlayer.getOnOffVehicle();

载具乘降

JAVASCRIPT 代码复制
  1. BattleManager.setup(id,b,b2);
  2. $gamePlayer.makeEncounterCount();
  3. SceneManager.push(Scene_Battle);

战斗执行
第一行中输入三个参数
id为敌人的队伍
b为是否允许逃跑
b2为是否允许失败

JAVASCRIPT 代码复制
  1. $gameMap.terrainTag(x,y);

获取坐标为xy位置上的地形标志

JAVASCRIPT 代码复制
  1. $gameMap.eventIdXy(x,y);

获取坐标为xy位置上的事件ID
【这样的话就可以更简便的判断事件目前所在的位置了】

JAVASCRIPT 代码复制
  1. $gameMap.tileId(x,y,z);

获取坐标为xy位置第z层(0,1,2)上的图块ID
获取你在这个位置的图块,除了xy以外还需要判定
所在的图层z

JAVASCRIPT 代码复制
  1. $gameMap.isPassable(x,y,d)

获取在xy坐标上的图块通过d方向是否可以通过
d为2,4,6,8,对应上下左右
返回的是true或者false

JAVASCRIPT 代码复制
  1. //在移动路线中使用脚本
  2. this.requestBalloon(1);

显示1号表情气泡,序号是根据素材的排列而定

JAVASCRIPT 代码复制
  1. var name = "文件名"
  2. var ext = this.videoFileExt();
  3. Graphics.playVideo('movies/' + name + ext);
  4. this.setWaitMode('video');

播放影片
第一行的引号内写入文件名

JAVASCRIPT 代码复制
  1. this.wait(time);

等待
time是等待的时间

JAVASCRIPT 代码复制
  1. TouchInput.x
  2. TouchInput.y

获取鼠标点击时的X
获取鼠标点击时的Y
【如果是安卓那就是触屏】


JAVASCRIPT 代码复制
  1. TouchInput._onMove(0,0);
  2. TouchInput.update;

强制改变点击的值,然后刷新。
点击一次后可以执行这个代码让他的值归零,

JAVASCRIPT 代码复制
  1. //可使用if()语句
  2. //或是写在事件条件分歧-脚本里
  3. TouchInput.isTriggered()

判断是是否点击。
JAVASCRIPT 代码复制
  1. TouchInput.isPressed()//是否为按下状态 Input.isPressed("a")//按下键盘上的a
  2. Input.isPressed("s")//按下键盘上的s
  3. Input.isPressed("pageup")//上一页键
  4. Input.isPressed("pagedown")//下一页键


JAVASCRIPT 代码复制
  1. $gameTemp.setDestination(8,10);

让主角移动到某个位置。

JAVASCRIPT 代码复制
  1. $dataWeapons[$gameActors.actor(1).weapons()[0].id].wtypeId

获取1号角色所使用的武器类型

JAVASCRIPT 代码复制
  1. $gameActors.actor(1).weapons()[0].id

获取1号角色所使用的武器ID

JAVASCRIPT 代码复制
  1. $gameActors.actor(1).isStateAffected(1)

1号角色是否处于1号状态,可配合if语句
JAVASCRIPT 代码复制
  1. if ($gameActors.actor(1).isStateAffected(1))
  2. {
  3. alert("你现在处于这个状态");
  4. }
  5. else {
  6. alert("你现在并没有处于这个状态");
  7. }


RMMV事件脚本整合.zip

1.4 MB, 下载次数: 2132


作者: 赤月抉择    时间: 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! X3.1