非常好的脚本调用手册
繁体转简体,方便按ctrl+f 搜索。如果使用方面有什么问题欢迎讨论。非常好的脚本调用手册,要用脚本调用指令的,可以做为手册查一查。转自:http://www.chimakier.com/【rm教學-】rmmv與對應腳本指令/
这边举简单的两个例子
1. 在NPC自主移动时,想要让他「显示气球图示」,但在设定移动路线中并没有气球图示这个选项时该怎么办?
这时候你可以在脚本输入下列指令,就可以在非剧本的事件中,让事件自动显示图片了
var e =$gameMap.event(this._eventId);e.requestBalloon(1);
2.当我只想执行某个事件中特定页面的功能该怎么办?(2k3 有此功能,但mv 内建无此功能)
这时候只要在脚本中输入下面的code , 就会执行特定事件的某一页事件内容(事件条件要符合才会执行)
$gameMap.event(EventID, EventPage).start();
3.还有哪里可以用得到?
我们打开f8 debug 视窗时,下列的指令都可以直接在f8视窗使用,也会立即生效。
RMMV事件对应指令
事件指令 对应脚本语法
显示文字 $gameMessage.setFaceImage(‘Actor1’,0)
$gameMessage.setBackground(1)
$gameMessage.setPositionType(1)
$gameMessage.add(“Show Text Script Call”)
显示选项 choices = []; params = [];
$gameMessage.setChoices(choices, 0)
choices.push(“I love you1”);choices.push(“I love you2”);
choices.push(“I love you3”);choices.push(“I love you4”);
choices.push(“I love you5”);choices.push(“I love you6”);
choices.push(“I love you7”);choices.push(“I love you8”);
params.push()
数字输入 $gameMessage.setNumberInput(var, digits);
选择项目-道具类型 $gameMessage.setItemChoice(var, n);
滚动文字讯息 $gameMessage.setScroll(scrolling_speed, no_fast_forward);
$gameMessage.add(“Text”);
变更金币 $gameParty.gainGold(n);
变更武器 $gameParty.gainItem($dataWeapons, n, true/false *note);
变更装备 $gameParty.gainItem($dataArmorsweaponId], n, true/false *note);
变更队伍 $gameParty.addActor(n);
$gameParty.removeActor(n);
变更开关 $gameSwitches.setValue(num, true/false);
变更变量 $gameVariables.setValue(var, value);
变更自开关 $gameSelfSwitches.setValue(key, true/false);
变更计时器 $gameTimer.start(time); $gameTimer.stop();
条件分期 if (code) { stuff } else { stuff }
循环 while (;;) { stuff }
断开循环 break;
结束事件 $gameInterpreter._index = $gameInterpreter._list.length;
一般(公用)事件 $gameTemp.reserveCommonEvent(n);
变更HP $gameActors.actor(actorId).gainHp(n)
变更MP $gameActors.actor(actorId).gainMp(n)
变更TP $gameActors.actor(actorId).gainTp(n)
变更状态 $gameActors.actor(actorId).addState(n);
$gameActors.actor(actorId).removeState(n);
恢复全体 for (var j = 0; j < $gameActors.length; j++) { $gameActors.actor(j).recoverAll(); };
变更经验 $gameActors.actor(actorId).gainExp(n);
变更等级 $gameActors.actor(actorId).changeLevel(n, true/false);
变更数值 $gameActors.actor(actorId).addParam(paramId, n);
变更数值 $gameActors.actor(actorId).learnSkill(n);
$gameActors.actor(actorId).forgetSkill(n);
变更装备 $gameActors.actor(actorId).changeEquip(slotId, item);
变更名称 $gameActors.actor(actorId).setName(n)
变更职业 $gameActors.actor(actorId).changeClass(n, keepExp)
变更名称 $gameActors.actor(actorId).setNickname(n)
变更简介 $gameActors.actor(actorId).setProfile(n)
转移玩家场景 $gamePlayer.reserveTransfer(mapId, x, y, direction, fade type);
设定交通工具 $gameMap.vehicle(vehicleId).setLocation(mapId, x, y);
设定事件位置 $gameMap.event(eventID).setPosition(x, y)
滚动画面 $gameMap.startScroll(direction, distance, speed);
设定交通工具可否搭乘 $gamePlayer.getOnOffVehicle();
等待 $gameInterpreter.wait(frames);
变更透明度 $gamePlayer.setTransparent(flag)
跟随者显示 $gamePlayer.showFollowers();
$gamePlayer.hideFollowers();
集合跟随者 $gamePlayer.gatherFollowers();
this.setWaitMode(‘gather’);
显示气球图示 character.requestBalloon(id);
this.setWaitMode(‘balloon’);
消除事件 $gameMap.eraseEvent(this._eventId);
淡出/淡入画面 $gameScreen.startFadeOut(fade_speed);
$gameScreen.startFadeIn(fade_speed);
着色画面 $gameScreen.startTint(, duration);
闪光画面 $gameScreen.startTint(, duration);
震动画面 $gameScreen.startShake(power, speed, duration);
天气效果 $gameScreen.changeWeather(“weather”, power, duration);
显示图片 $gameScreen.showPicture(pictureId, name, origin, x, y,scaleX, scaleY, opacity, blendMode)
移动图片 $gameScreen.movePicture(pictureId, origin, x, y, scaleX,scaleY, opacity, blendMode, duration)
混合模式 $gameScreen._pictures._blendMode = #
旋转图片 $gameScreen.rotatePicture(pictureId, speed);
着色图片 $gameScreen.tintPicture(pictureId, tone, duration);
消除图片 $gameScreen.erasePicture(pictureId);
播放BGM AudioManager.playBgm( refer to sound object above );
#声音物件格式: { name: filename, volume: n, pitch: n, pan: n }
淡出BGM AudioManager.fadeOutBgm(n);
储存BGM $gameSystem.saveBgm();
继续播放BGM $gameSystem.replayBgm();
播放BGM AudioManager.playBgs( refer to sound object above );
淡出BGS AudioManager.fadeOutBgs(n);
播放ME AudioManager.playMe( refer to sound object above );
播放SE AudioManager.playSe( refer to sound object above );
暂停se AudioManager.stopSe();
播放动画 Graphics.playVideo(path/name.ext);
战斗处理 BattleManager.setup(troopId, true/false, true/false);
$gamePlayer.makeEncounterCount();
SceneManager.push(Scene_Battle);
商店处理 SceneManager.push(Scene_Shop);
名称输入处理 SceneManager.push(Scene_Name);
SceneManager.prepareNextScene(actorId, name length);
开启选单 SceneManager.push(Scene_Menu);
开以记录/读取录选单 SceneManager.push(Scene_Save);
SceneManager.push(Scene_Load);
游戏结束/回标题画面 SceneManager.goto(Scene_Gameover);
SceneManager.goto(Scene_Title);
执行地图特定事件页面 $gameMap.event(EventID, EventPage).start();
更换地图显示名称 $gameMap.enableNameDisplay();
$gameMap.disableNameDisplay();
更换图快设置 $gameMap.changeTileset(n);
更换战斗背景 $gameMap.changeBattleback(filename, filename);
更换远景 $gameMap.changeParallax(name, loopX, loopY, speed x, speed y);
获得位置信息 $gameMap.terrainTag(x, y);
$gameMap.eventIdXy(x, y);
$gameMap.tileId(x, y, layer);
获得地形区块ID $gameMap.regionId(x, y);
更换战斗音乐/胜利ME $gameSystem.setBattleBgm(name);
$gameSystem.setVictoryMe(name);
更换战败音效 $gameSystem.setDefeatMe(name);
更换交通工具BGM $gameMap.vehicle(vehicleId).setBgm(name);
修改存档功能访问 $gameSystem.disableSave();
$gameSystem.enableSave();
修改菜单功能访问 $gameSystem.disableMenu();
$gameSystem.enableMenu();
修改系统访问 $gameSystem.disableEncounter();
$gameSystem.enableEncounter();
修改阵型功能访问 $gameSystem.disableFormation();
$gameSystem.enableFormation();
修改视窗颜色 $gameSystem.setWindowTone(tone); (red, green, blue, gray);
修改角色图像 $gameActors.actor(actorId).setCharacterImage(name, index);
$gameActors.actor(actorId).setFaceImage(name, index):
$gameActors.actor(actorId).setBattlerImage(name);
修改交通工具图像 $gameMap.vehicle(vehicleId).setImage(name, index);
更改敌人HP/MP/TP $gameTroop.members().gainHp(n);
$gameTroop.members().gainMp(n);
$gameTroop.members().gainTp(n);
更改敌人状态 $gameTroop.members().addState(n);
$gameTroop.members().removeState(n);
敌人恢复 $gameTroop.members().recoverAll();
更改出现敌人 $gameTroop.members().appear();
敌人变形(更换敌人) $gameTroop.members().transform(n);
显示战斗动画 $gameTroop.members().startAnimation(animationId, true/false, delayN);
我方强制动作 $gameParty.members().forceAction(skillId, targetIndex);
BattleManager.forceAction($gameParty.members());
敌人强制动作 $gameTroop.members().forceAction(skillId, targetIndex);
BattleManager.forceAction($gameTroop.members());
中止战斗 BattleManager.abort();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
对应事件
指令
取得变量
n为变量编号
$gameVariables.value(n);
变量设定
n为变量编号
$gameVariables.setValue(n);
取得开关值
$gameSwitches.value(n);
设定开关值
$gameSwitches.setValue(n);
显示log
(测试模式中按F8)
console.log(value);
消除执行中的动画(对象为事件时)
对象为该事件时, var eventId = this._eventId
var eventId = 1;
SceneManager._scene._spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character instanceof Game_Event && sprite._character.eventId() === eventId) {
sprite._animationSprites.forEach(function(animation) {
animation.remove();
});
}
});
消除执行中的对话(对象为玩家时)
SceneManager._scene._spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character instanceof Game_Player) {
sprite._animationSprites.forEach(function(animation) {
animation.remove();
});
}
})
播放游标移动音效
SoundManager.playCursor();
播放决定音效
SoundManager.playOk();
播放取消音效
SoundManager.playCancel();
播放「八八」音效...
#不太知道怎说明XDD,听了就知道
SoundManager.playBuzzer();
播放装备道具音效
SoundManager.playEquip();
播放记录音效
SoundManager.playSave();
播放读取音效
SoundManager.playLoad();
播放战斗开始音乐音效
SoundManager.playBattleStart();
播放逃走音效
SoundManager.playEscape();
播放敌人攻击音效
SoundManager.playEnemyAttack();
播放敌人受伤音效
SoundManager.playEnemyDamage();
播放敌人死亡音效
SoundManager.playEnemyCollapse();
播放BOSS1死亡音效
SoundManager.playBossCollapse1();
播放BOSS2死亡音效
SoundManager.playBossCollapse2();
播放我方受伤音效
SoundManager.playActorDamage();
播放我方死亡音效
SoundManager.playActorCollapse();
播放恢复音效
SoundManager.playRecovery();
播放攻击miss音效
SoundManager.playMiss();
播放回避音效
SoundManager.playEvasion();
播放魔法回避音效
SoundManager.playMagicEvasion();
播放魔法反射音效
SoundManager.playReflection();
播放商店音效
SoundManager.playShop();
播放使用道具音效
SoundManager.playUseItem();
播放使用技能音效
SoundManager.playUseSkill();
关闭目前的scene
SceneManager.terminate();
关闭所有scene
SceneManager.exit();
进入指定的Scene (不堆栈, 无法用pop呼叫上一个画面) scene 列表如下 Scene_Shop : 商店画面 Scene_Name : 名字输入画面 Scene_Menu : 主Menu画面 Scene_Save : save画面 Scene_Load : load画面 Scene_Options : 选项画面 Scene_Gameover : game over画面 Scene_Title : 开头画面
SceneManager.goto(Scene_Gameover);
进入指定的Scene (堆栈, 可用pop呼叫上一个画面)EX: 从Scene_Map使用此指令到Menu画面后, 在使用 SceneManager.pop()可以回到Scene_Map
SceneManager.push(Scene_Shop);
回到上一个画面
SceneManager.pop();
设定角色TP
$gameActors.actor(n).setTp(m);
增加角色TP
$gameActors.actor(n).gainTp(m);
记忆目前的队伍成员
$gameParty._lastActors = $gameParty._actors.clone();
恢复目前的队伍成员
$gameParty._actors = $gameParty._lastActors;
$gamePlayer.refresh();
$gameMap.requestRefresh();
移除所有队伍成员
$gameParty._actors = [];
$gamePlayer.refresh();
$gameMap.requestRefresh();
移除除了队长的队伍成员
$gameParty._actors.splice(1);
$gamePlayer.refresh();
$gameMap.requestRefresh();
设定是否可以战败 (战斗开始后开始设定)
BattleManager._canLose = true;
关闭战斗结束后回地图的BGM
BattleManager._mapBgm = null;
关闭战斗结束后回地图的BGS
BattleManager._mapBgs = null;
追加战斗讯息
if(BattleManager._logWindow !== null){
BattleManager._logWindow.push('popBaseLine'); //移除战斗讯息。
BattleManager._logWindow.push('pushBaseLine'); // 显示已显示的讯息
BattleManager._logWindow.push('addText', 'aaa'); // 追加一行讯息
}
BattleManager._logWindow.addText('aaa'); // 单纯追加讯息也可使用此指令
移除战斗讯息
if(BattleManager._logWindow !== null){
BattleManager._logWindow.clear();
}
判定第一个队员id 是否 = n
$gameParty.members().actorId() === n
判定现在的Scene是否为特定Scene
SceneManager._scene.constructor === Scene_Menu
判定执行环境是否为手机 系统判定
Utils.isMobileDevice()
windows 系统判定
Utils.isNwjs() && process.platform === 'win32'
判定PC的浏览器环境
Utils.isNwjs()
判定是否为MAC环境
Utils.isNwjs() && process.platform === 'darwin'
使用在个别事件上, 此事件将往地图特定ID事件移动
this.moveTowardCharacter($gameMap.event(id));
使用在个别事件上, 此事件将远离地图特定ID事件
this.moveAwayFromCharacter($gameMap.event(id));
使用在个别事件上, 此事件将面向地图特定ID事件
this.turnTowardCharacter($gameMap.event(id));
使用在个别事件上, 此事件将背对地图特定ID事件
this.turnAwayFromCharacter($gameMap.event(id));
使用在个别事件上, 此事件将往地图特定坐标移动 m => 设定的x坐标, n => 设定的y坐标
this.moveTowardCharacter({x:m, y:n});
使用在个别事件上, 此事件将远离地图特定坐标
this.moveAwayFromCharacter({x:m, y:n});
使用在个别事件上, 此事件将面向地图特定坐标
this.turnTowardCharacter({x:m, y:n});
使用在个别事件上, 此事件将背对地图特定坐标
this.turnAwayFromCharacter({x:m, y:n});
将特定编号的图片 替换成 其他图片
fileName =>新的图片名称, 不需副档名
$gameScreen.picture(id)._name = 'fileName';
将特定编号的图片 替换成 其他图片
此方法可以避免换图时图片还没load完的闪烁
var pictName = 'fileName';
var bitmap = ImageManager.loadPicture(pictName);
bitmap.addLoadListener(function() {
$gameScreen.picture(id)._name = pictName;
});
将玩家瞬移到相同地图的特定坐标
$gamePlayer.reserveTransfer($gameMap.mapId(), X, Y);
$gamePlayer.performTransfer();
初始化所有自开关
$gameSelfSwitches.clear();
初始化所有道具
$gameParty.initAllItems();
取得队伍跟随者的X坐标, N为第几位成员
$gamePlayer.followers().follower(n).x;
取得队伍跟随者的Y坐标, N为第几位成员
$gamePlayer.followers().follower(n).y;
将队伍指定成员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();
取得角色id = n 的目前武器ID , m为装备的index
$gameActors.actor(n).weapons().id;
取得角色id = n 的目前防具ID , m为装备的index
$gameActors.actor(n).armors().id;
让队伍中的N号成员显示泡泡图示id m
$gamePlayer.followers().follower(n).requestBalloon(m);
角色ID n 习得所有职业的技能
var actor = $gameActors.actor(n);
actor.currentClass().learnings.forEach(function(learning) {
if (learning.level
页:
[1]