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

Project1

 找回密码
 注册会员
搜索
查看: 54323|回复: 49
打印 上一主题 下一主题

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

  [复制链接]

Lv2.观梦者

梦石
0
星屑
925
在线时间
108 小时
注册时间
2017-10-3
帖子
4
跳转到指定楼层
1
发表于 2017-10-3 18:10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 绝汪 于 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, 下载次数: 2080

评分

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

查看全部评分

Lv1.梦旅人

梦石
0
星屑
127
在线时间
14 小时
注册时间
2015-3-19
帖子
19
2
发表于 2017-10-3 18:13:02 | 只看该作者
特地注册个新号前来冒泡

点评

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

使用道具 举报

Lv5.捕梦者

梦石
11
星屑
9467
在线时间
1161 小时
注册时间
2017-9-27
帖子
46
3
发表于 2017-10-3 18:36:32 | 只看该作者
感谢楼主分享
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5574
在线时间
1046 小时
注册时间
2008-6-9
帖子
524

开拓者

4
发表于 2017-10-3 18:51:25 | 只看该作者
这是个好东西啊,收下顺便点个赞
总是没耐心做一个游戏。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3446
在线时间
1158 小时
注册时间
2016-8-9
帖子
2389

开拓者

5
发表于 2017-10-7 18:37:53 | 只看该作者
辛苦了 来新地方分不多 只能塞糖表示感谢了
酸酸甜甜就④哇噢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
57
在线时间
111 小时
注册时间
2009-2-18
帖子
26
6
发表于 2017-11-8 23:30:01 | 只看该作者
请问大神~ 判断1号开关是否打开的脚本应该怎么写~~
摩西摩西   o(╯□╰)o
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
244
在线时间
23 小时
注册时间
2017-11-10
帖子
12
7
发表于 2017-11-10 21:31:54 | 只看该作者
感謝分享,菜鳥福音!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7417
在线时间
947 小时
注册时间
2017-9-27
帖子
583
8
发表于 2017-11-10 22:13:02 | 只看该作者
这个意思就是用脚本把事件页每一项解释了一下对吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
35
在线时间
8 小时
注册时间
2017-12-23
帖子
1
9
发表于 2017-12-27 09:57:02 | 只看该作者
谢谢楼主分享。作为萌新表示很需要
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
7 小时
注册时间
2017-12-25
帖子
1
10
发表于 2017-12-27 15:45:09 | 只看该作者
谢谢楼主
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 11:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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