Admin 发表于 2022-12-7 09:43:32

脚本调用手册(重新编译)

寻找方法:'CTRL+F' 搜索框内输入关键字.
复制方法: 选定脚本后'CTRL+C'复制.



编号 事件指令名称 对应脚本语法
1 公共事件id $gameTemp.reserveCommonEvent(id);
2 显示n号动画 $gamePlayer.requestAnimation(n)
3 给1号事件释放n号动画 $gameMap._events.requestAnimation(n)
4 图片显示("编号",文件名,原点,x,y,x放大率,y放大率,透明度,合成方式) $gameScreen.showPicture("1","图片",0,0,0,100,100,255,0)
5 移动图片,x\y放大率:x轴和y轴的放大倍率 $gameScreen.movePicture(图片编号,原点, x, y,x放大率,y放大率,透明度, 合成方式,执行的帧数)
6 图片消除id是图片的编号$gameScreen.erasePicture(id);
7 显示文本$gameMessage.setFaceImage('Actor1',0)
$gameMessage.setBackground(1)
$gameMessage.setPositionType(1)
$gameMessage.add("这里是测试文本")
8 生成选项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()
9 设置滚动的文字,第一行的参数分别是速度和是否允许快进$gameMessage.setScroll(10,true);
$gameMessage.add("Text");
10 b为true或者false效果是开启或关闭横版战斗
11 自动存档游戏,n是存档的位置。例如写1,那么就会存档到第一个位置$gameSystem.onBeforeSave();
DataManager.saveGame(n)
12进入某个场景,Scene参数需要自己写
SceneManager.push(Scene_Options); //设置场景
SceneManager.push(Scene_Title); //标题场景
SceneManager.push(Scene_Menu); //菜单场景
SceneManager.push(Scene_Map); //地图场景
SceneManager.push(Scene_Item); //物品场景
SceneManager.push(Scene_Shop); //商店场景
SceneManager.push(Scene_Name); //输入名称场景
SceneManager.push(Scene_Save); //存档场景
SceneManager.push(Scene_Load); //读档场景
SceneManager.goto(Scene_Gameover); //游戏结束场景

13弹出窗口
n是弹出的内容
alert("弹出")
就会弹出一个写着“弹出”的窗口alert(n)
14获取开关,n是开关的id$gameSwitches.value(n)
15改变开关,n是开关的id
$gameSwitches.setValue(n,true/false);
16打开1~20的所有开关for (var i=1;i<=20;i++){
$gameSwitches.setValue(i,true);}
17获取变量,n是变量的id$gameVariables.value(n)
18改变变量,n是变量的id,v是变量的值$gameVariables.setValue(n,v);
19给1~5的变量都赋值20for (var i=1;i<=5;i++){
$gameVariables.setValue(i,20);}
20对变量进行加减乘除等计算$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);
21独立开关的操作,引号里写上变量名$gameSelfSwitches.setValue("A",true/false);
22播放bgm,播放bgs,播放me,播放se
在name后面的引号内输入文件名
在volume后面的引号内输入音量
在pitch后面的引号内输入音调
在pan后面的引号内输入声道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})
23停止播放AudioManager.stopBgm
AudioManager.stopBgs
AudioManager.stopMe
AudioManager.stopSe
24淡出BGM
储存BGM
继续播放BGMAudioManager.fadeOutBgm(n);
$gameSystem.saveBgm();
$gameSystem.replayBgm();
25获取1号角色属性(其他的位置自己改数字)$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//幸运
26编号为id的角色获得n点经验值$gameActors.actor(id).gainExp(n);
271号角色等级提升1,显示升级信息
第一个参数为角色的编号,第二个为是否显示升级信息,
true或者false$gameActors.actor(1).changeLevel($gameActors.actor(1).level+1,true);
28学习、遗忘技能,id为角色编号,n为技能编号$gameActors.actor(id).learnSkill(n);
$gameActors.actor(id).forgetSkill(n);
29增减能力值$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
$gameActors.actor(id).addParam(n,v);

30增减HP
增减MP
增减TP
增加状态
去除状态$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);
31编号为id的角色全恢复$gameActors.actor(id).recoverAll();
321~5号角色全恢复for (var i=1;i<=5;i++){
$gameActors.actor(i).recoverAll();}
33战斗中敌人的各项能力、功能,
参数i写上敌人在战斗中的编号,
从0开始
n是写上增减的具体数值,如果是负数就是减少$gameTroop.members().gainhp(-100);
就是第一号敌人减少100HP
$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);//更换敌人
$gameTroop.members().agi//敏捷
$gameTroop.members().mdf//魔防
$gameTroop.members().mat//魔攻
$gameTroop.members().luk//幸运

34变更装备
id对应角色编号
n变量可以为0,1,2,3,4,分别对应武器、盾牌等等
item对应数据库的装备编号$gameActors.actor(1).changeEquip(0,1);
一号角色的武器变为一号武器
$gameActors.actor(id).changeEquip(n,item);
35获取布尔值,是否有这个物品、武器、防具。
id上写需要判断角色的编号,n写数据库中物品的编号$gameParty.hasItem($dataItems);
$gameActors.actor(id).hasWeapon($dataWeapons);
$gameActors.actor(id).hasArmor($dataArmors);
36获取5号物品的数量$gameParty.numItems($dataItems)
37获取5号物品的名称
如果要获取武器、防具等
只需要把上面的Items改成Weapons或Armors$dataWeapons.name
$dataItems.name
38获取5号武器的攻击力$dataWeapons.atk
39输入数字
参数v是接收输入的变量
b是输入几位数$gameMessage.setNumberInput(v,b);
40物品选择
参数v是接收输入的变量
b是物品的类型——0,1,2,3$gameMessage.setItemChoice(v,b);
41增加100金钱
减少100金钱$gameParty.gainGold(100);
$gameParty.loseGold(100);
42改变名称
改变称号
改变简介$gameActors.actor(id).setName("");
$gameActors.actor(id).setNickname("");
$gameActors.actor(id).setProfile("");
43改变等级
id为角色的编号
n为职业的编号
b为true或false,是否保留等级$gameActors.actor(id).changeClass(n,true)
44转移场景
(地图编号,x坐标,y坐标,朝向(为2,4,6,8),淡出淡入(为0,1,2))$gamePlayer.reserveTransfer(mapId, x, y,direction,fade);
45移动事件位置(事件左上角编号,x,y)
若只是要指定本事件,
则在id处写上this.eventId()$gameMap.event(id).setPosition(x,y)
46获取事件的x,y,朝向(2,4,6,8)
若只是要指定本事件,
则在id处写上this.eventId()$gameMap.event(id).x
$gameMap.event(id).y
$gameMap.event(id).direction
47消除事件
若只是要指定本事件,
则在id处写上this.eventId()
$gameMap.eraseEvent(id);
48执行指定事件的指定事件页
若只是要指定本事件,
则在id处写上this.eventId()
$gameMap.event(id,page).start();
49获取玩家的x,y,朝向(2,4,6,8)$gameParty.x
$gameParty.y
$gameParty.direction
50增减队伍角色
id代表的是角色编号$gameParty.addActor(id);
$gameParty.removeActor(id);
51更改角色的行走图
更改角色的头像
更改角色的战斗图
id是角色的编号,name是文件名,index是图片中的排序$gameActors.actor(1).setCharacterImage("jk",1);
就是把1号的行走图变为jk图片的第一行第一列
$gameActors.actor(id).setCharacterImage(name,index);
$gameActors.actor(id).setFaceImage(name,index);
$gameActors.actor(id).setBattlerImage(name);
52在地图的某处生成一个交通工具
id是交通工具的id,0是小船,1是大船,2是飞艇
mapid是指地图的id
x,y是指位置$gameMap.vehicle(id).setLocation(mapid,x,y);
53载具乘降$gamePlayer.getOnOffVehicle();
54战斗执行
第一行中输入三个参数
id为敌人的队伍
b为是否允许逃跑
b2为是否允许失败BattleManager.setup(id,b,b2);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);
55获取坐标为xy位置上的地形标志$gameMap.terrainTag(x,y);
56获取坐标为xy位置上的事件ID
(这样的话就可以更简便的判断事件目前所在的位置了)
$gameMap.eventIdXy(x,y);
57获取坐标为xy位置第z层(0,1,2)上的图块ID
获取你在这个位置的图块,除了xy以外还需要判定
所在的图层z$gameMap.tileId(x,y,z);
58获取在xy坐标上的图块通过d方向是否可以通过
d为2,4,6,8,对应上下左右
返回的是true或者false$gameMap.isPassable(x,y,d)
59显示1号表情气泡,序号是根据素材的排列而定
设置移动路线中写入脚本,勾选等待完成this.requestBalloon(1);
60播放影片
第一行的引号内写入文件名var name = "文件名"
var ext = this.videoFileExt();
Graphics.playVideo('movies/' + name + ext);
this.setWaitMode('video');
61等待
time是等待的时间this.wait(time);
621号角色是否处于1号状态,可配合if语句if ($gameActors.actor(1).isStateAffected(1))
{
alert("你现在处于这个状态");
}
else {
alert("你现在并没有处于这个状态");
}
63移除所有队伍成员$gameParty._actors = [];
$gamePlayer.refresh();
$gameMap.requestRefresh();
64移除除了队长的队伍成员$gameParty._actors.splice(1);
$gamePlayer.refresh();
$gameMap.requestRefresh();
65恢复目前的队伍成员$gameParty._actors = $gameParty._lastActors;
$gamePlayer.refresh();
$gameMap.requestRefresh();
66使用在个别事件上, 此事件将往地图特定ID事件移动this.moveTowardCharacter($gameMap.event(id));
67使用在个别事件上, 此事件将远离地图特定ID事件this.moveAwayFromCharacter($gameMap.event(id));
68将队伍指定成员m 替换成 角色id = n 的角色if ($gameParty._actors.contains(n)) {
var oldIndex = $gameParty._actors.indexOf(n);
var oldActorId = $gameParty._actors;
$gameParty._actors = oldActorId;
}
$gameParty._actors = n;
$gamePlayer.refresh();
$gameMap.requestRefresh();
69设定事件自开关$gameSelfSwitches.value([ 地图ID, 事件ID, 自开关类型])
例:$gameSelfSwitches.value()
70清除背包所有东西$gameParty.initAllItems();
71丢物品,丢武器,丢护甲
id: 要处理的物品序号;
num: 处理的物品数量,获取用正整数,丢弃用负整数;
includeEquip: 是否处理已装备的物品,0 - 不处理,1 - 处理
$gameParty.gainItem($dataItems, num);//丢物品
$gameParty.gainItem($dataWeapons, num, includeEquip);//丢武器
$gameParty.gainItem($dataArmors, num, includeEquip);//丢护甲
72批量得到所有物品99个,(负数为不要物品99个)for(var i = 0; i < $dataItems.length; i++){
$gameParty.gainItem($dataItems, 99)
}
73$dataItems.itypeId为道具类型..1为普通道具..如此类推..
当道具类型是普通道具或隐藏道具A,B时便会删除该道具for(var i = 0; i < $dataItems.length; i++){
$gameParty.gainItem($dataItems, 99)
}
74滚动画面$gameMap.startScroll(direction, distance, speed);
75变更透明度$gamePlayer.setTransparent(flag)
76跟随者显示/隐藏$gamePlayer.showFollowers();
$gamePlayer.hideFollowers();

77集合跟随者$gamePlayer.gatherFollowers();

78淡出/淡入画面$gameScreen.startFadeOut(fade_speed);
$gameScreen.startFadeIn(fade_speed);
79着色画面$gameScreen.startTint(, duration);
80闪光画面$gameScreen.startTint(, duration);
81震动画面$gameScreen.startShake(power, speed, duration);
82天气效果$gameScreen.changeWeather(“weather”, power, duration);
83旋转图片$gameScreen.rotatePicture(pictureId, speed);
84着色图片$gameScreen.tintPicture(pictureId, tone, duration);
85更换地图显示名称$gameMap.enableNameDisplay();
$gameMap.disableNameDisplay();
86更换图快设置 $gameMap.changeTileset(n);
87更换战斗背景$gameMap.changeBattleback(filename, filename);
88更换远景图$gameMap.changeParallax(name, loopX, loopY, speed x, speed y);
89获得地形区块ID$gameMap.regionId(x, y);
90更换战斗音乐/胜利ME$gameSystem.setBattleBgm(name);
$gameSystem.setVictoryMe(name);
91更换战败音效$gameSystem.setDefeatMe(name);
92更换交通工具BGM$gameMap.vehicle(vehicleId).setBgm(name);
93修改存档功能访问$gameSystem.disableSave();
$gameSystem.enableSave();
94修改菜单功能访问$gameSystem.disableMenu();
$gameSystem.enableMenu();
95修改系统访问$gameSystem.disableEncounter();
$gameSystem.enableEncounter();
96修改阵型功能访问$gameSystem.disableFormation();
$gameSystem.enableFormation();
97修改视窗颜色$gameSystem.setWindowTone(tone); (red, green, blue, gray);
98中止战斗BattleManager.abort();
99我方强制动作$gameParty.members().forceAction(skillId, targetIndex);
BattleManager.forceAction($gameParty.members());
100更改出现敌人$gameTroop.members().appear();
101敌人恢复$gameTroop.members().recoverAll();
102显示战斗动画$gameTroop.members().startAnimation(animationId, true/false, delayN);
103敌人变形(更换敌人)$gameTroop.members().transform(n);
104重置所有独立开关的脚本$gameSelfSwitches.clear();
$gameMap.requestRefresh();
105查看某个角色穿了什么装备$gameActors.actor(1).equips()
106获取某个角色所装备武器的ID
获取某个角色所装备防具的ID
$gameActors.actor(1).weapons().id
$gameActors.actor(1).armors().id

107判断某个角色是否装备了某个ID的武器
$gameActors.actor(1).equips().contains($dataWeapons) 或者
$gameActors.actor(1).isEquipped($dataWeapons)

108判断某个角色是否装备了某个ID的防具
$gameActors.actor(1).equips().contains($dataArmors) 或者
$gameActors.actor(1).isEquipped($dataArmors)

109随机获取物品:
使用一个变量,如变量16,先将变量赋值随机数,然后执行脚本$gameParty.gainItem($dataWeapons[$gameVariables.value(16)], $gameVariables.value(16), true); //随机数量的随机武器
$gameParty.gainItem($dataArmors[$gameVariables.value(16)], $gameVariables.value(16), true); //随机数量的随机防具
$gameParty.gainItem($dataItems[$gameVariables.value(16)], $gameVariables.value(16), true); //随机数量的随机物品
110判定第一个队员id 是否 = n$gameParty.members().actorId() === n
111判定现在的Scene是否为特定SceneSceneManager._scene.constructor === Scene_Menu
112判定执行环境是否为手机 系统判定Utils.isMobileDevice()
113windows 系统判定Utils.isNwjs() && process.platform === 'win32'
114判定PC的浏览器环境Utils.isNwjs()
115判定是否为MAC环境Utils.isNwjs() && process.platform === 'darwin'
116将玩家瞬移到相同地图的特定坐标$gamePlayer.reserveTransfer($gameMap.mapId(), X, Y);
$gamePlayer.performTransfer();
117初始化所有自开关$gameSelfSwitches.clear();
118初始化所有道具$gameParty.initAllItems();
119取得角色id = n 的目前武器ID , m为装备的index$gameActors.actor(n).weapons().id;
120取得角色id = n 的目前防具ID , m为装备的index$gameActors.actor(n).armors().id;
121让队伍中的N号成员显示泡泡图示id m$gamePlayer.followers().follower(n).requestBalloon(m);
122角色ID n 习得所有职业的技能var actor = $gameActors.actor(n);
actor.currentClass().learnings.forEach(function(learning) {
if (learning.level <= actor._level) {
actor.learnSkill(learning.skillId);
}
});
123角色ID N习得数据库中的敌人ID M的所有技能var actor = $gameActors.actor(n);
var enemy = $dataEnemies;
enemy.actions.forEach(function(action) {
actor.learnSkill(action.skillId);
});
124取得此事件最初的X坐标this.character(n).event().x;
125取得此事件最初的Y坐标this.character(n).event().y;
126取得最后使用的道具ID$gameParty.lastItem().id;
127判定特定状态ID M 对于角色N是否有效果$gameParty.members().isStateAffected(m);
128获取鼠标点击时的X
获取鼠标点击时的Y
(如果是安卓那就是触屏)TouchInput.x
TouchInput.y
129强制改变点击的值,然后刷新。
点击一次后可以执行这个代码让他的值归零//可使用if()语句
//或是写在事件条件分歧-脚本里
TouchInput.isTriggered()
130判断是是否点击TouchInput.isPressed()//是否为按下状态 Input.isPressed("a")//按下键盘上的a
Input.isPressed("s")//按下键盘上的s
Input.isPressed("pageup")//上一页键
Input.isPressed("pagedown")//下一页键
131获取1号角色所使用的武器类型$gameActors.actor(1).weapons().id
132获取1号角色所使用的武器ID$gameActors.actor(1).isStateAffected(1)

古树旋律 发表于 2022-12-15 09:42:46

本帖最后由 古树旋律 于 2022-12-15 09:45 编辑

这个必须赞一个,这是事件编辑向脚本编辑迈出的重要一步。

也在这里分享一个小经验。一个随机获取物品的脚本,相比较事件控制的 “变量带入随机值+逐个判断随机变量+获得物品”的事件操作方式,2分钟解决10分钟的体力活。

var ID_of_item = ;
var get_ID = ID_of_item;
$gameParty.gainItem($dataWeapons,1)

古树旋律 发表于 2022-12-15 09:52:12

Array.prototype.indexOf = function(val) {
for (var i = 0; i < this.length; i++) {
if (this == val) return i;
}
return -1;
};

Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};


也拿出自己的存的一些干货。这是写的JS函数remove,用来删除数组中的元素。将这段代码存到txt,后缀改成js,然后加载插件就可以了。

var ORDER = ;//定义一个数组
var get_ID = ORDER;//随机获得数组中的一个元素
ORDER.remove(get_ID);//随机删掉一个元素
ORDER.remove(2);//删掉元素"2"

暗耀 发表于 2022-12-18 19:21:41

看之前先回复

s3102099 发表于 2022-12-19 23:01:45

对新手太有用

古树旋律 发表于 2022-12-21 17:34:49

//图片显示("编号",文件名,原点,x,y,x放大率,y放大率,透明度,合成方式)       
$gameScreen.showPicture("1","图片",0,0,0,100,100,255,0)
关于图片原点,这里再额外备注一下,原点为0,则是左上角,原点为1,则是图片中心

古树旋律 发表于 2022-12-26 16:21:17

Scene_Base.prototype.popScene()

功能是:卸载当前窗口。常用于写插件的"取消"命令中。
比如在商店中使用,则退出商店。如果在主菜单的状态、物品、技能等子菜单中使用,则恢复到主菜单。如果在战斗中使用,则中断战斗。如果在地图中使用,则直接退出游戏。

古树旋律 发表于 2023-1-4 10:35:23

根据序号63的代码得知,这个代码会获得当前队伍中的角色存储序列
$gameParty._actors

古树旋律 发表于 2023-1-7 11:34:10

对独立开关的操作
var key =
$gameSelfSwitches.setValue(key, true);
//true和false代表着开或者关
//可自行整合成1行函数

古树旋律 发表于 2023-5-17 00:42:23

游戏时间(文字):$gameSystem.playtimeText()

游戏时间(秒数):$gameSystem.playtime()
页: [1] 2
查看完整版本: 脚本调用手册(重新编译)