繁体转简体,方便按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[weaponId], 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([red,green,blue,grey], duration);
闪光画面 $gameScreen.startTint([red,green,blue,intensity], 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[id]._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()[enemyIndex].gainHp(n);
$gameTroop.members()[enemyIndex].gainMp(n);
$gameTroop.members()[enemyIndex].gainTp(n);
更改敌人状态 $gameTroop.members()[enemyIndex].addState(n);
$gameTroop.members()[enemyIndex].removeState(n);
敌人恢复 $gameTroop.members()[enemyIndex].recoverAll();
更改出现敌人 $gameTroop.members()[enemyIndex].appear();
敌人变形(更换敌人) $gameTroop.members()[enemyIndex].transform(n);
显示战斗动画 $gameTroop.members()[enemyIndex].startAnimation(animationId, true/false, delayN);
我方强制动作 $gameParty.members()[index].forceAction(skillId, targetIndex);
BattleManager.forceAction($gameParty.members()[index]);
敌人强制动作 $gameTroop.members()[index].forceAction(skillId, targetIndex);
BattleManager.forceAction($gameTroop.members()[index]);
中止战斗 BattleManager.abort();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[table][tr][td]
对应事件
[/td][td]
指令
[/td][/tr][tr][td]
取得变量
n为变量编号
[/td][td]
$gameVariables.value(n);
[/td][/tr][tr][td]
变量设定
n为变量编号
[/td][td]
$gameVariables.setValue(n);
[/td][/tr][tr][td]
取得开关值
[/td][td]
$gameSwitches.value(n);
[/td][/tr][tr][td]
设定开关值
[/td][td]
$gameSwitches.setValue(n);
[/td][/tr][tr][td]
显示log
(测试模式中按F8)
[/td][td]
console.log(value);
[/td][/tr][tr][td]
消除执行中的动画(对象为事件时)
对象为该事件时, var eventId = this._eventId
[/td][td]
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();
});
}
});
[/td][/tr][tr][td]
消除执行中的对话(对象为玩家时)
[/td][td]
SceneManager._scene._spriteset._characterSprites.forEach(function(sprite) {
if (sprite._character instanceof Game_Player) {
sprite._animationSprites.forEach(function(animation) {
animation.remove();
});
}
})
[/td][/tr][tr][td]
播放游标移动音效
[/td][td]
SoundManager.playCursor();
[/td][/tr][tr][td]
播放决定音效
[/td][td]
SoundManager.playOk();
[/td][/tr][tr][td]
播放取消音效
[/td][td]
SoundManager.playCancel();
[/td][/tr][tr][td]
播放「八八」音效...
#不太知道怎说明XDD,听了就知道
[/td][td]
SoundManager.playBuzzer();
[/td][/tr][tr][td]
播放装备道具音效
[/td][td]
SoundManager.playEquip();
[/td][/tr][tr][td]
播放记录音效
[/td][td]
SoundManager.playSave();
[/td][/tr][tr][td]
播放读取音效
[/td][td]
SoundManager.playLoad();
[/td][/tr][tr][td]
播放战斗开始音乐音效
[/td][td]
SoundManager.playBattleStart();
[/td][/tr][tr][td]
播放逃走音效
[/td][td]
SoundManager.playEscape();
[/td][/tr][tr][td]
播放敌人攻击音效
[/td][td]
SoundManager.playEnemyAttack();
[/td][/tr][tr][td]
播放敌人受伤音效
[/td][td]
SoundManager.playEnemyDamage();
[/td][/tr][tr][td]
播放敌人死亡音效
[/td][td]
SoundManager.playEnemyCollapse();
[/td][/tr][tr][td]
播放BOSS1死亡音效
[/td][td]
SoundManager.playBossCollapse1();
[/td][/tr][tr][td]
播放BOSS2死亡音效
[/td][td]
SoundManager.playBossCollapse2();
[/td][/tr][tr][td]
播放我方受伤音效
[/td][td]
SoundManager.playActorDamage();
[/td][/tr][tr][td]
播放我方死亡音效
[/td][td]
SoundManager.playActorCollapse();
[/td][/tr][tr][td]
播放恢复音效
[/td][td]
SoundManager.playRecovery();
[/td][/tr][tr][td]
播放攻击miss音效
[/td][td]
SoundManager.playMiss();
[/td][/tr][tr][td]
播放回避音效
[/td][td]
SoundManager.playEvasion();
[/td][/tr][tr][td]
播放魔法回避音效
[/td][td]
SoundManager.playMagicEvasion();
[/td][/tr][tr][td]
播放魔法反射音效
[/td][td]
SoundManager.playReflection();
[/td][/tr][tr][td]
播放商店音效
[/td][td]
SoundManager.playShop();
[/td][/tr][tr][td]
播放使用道具音效
[/td][td]
SoundManager.playUseItem();
[/td][/tr][tr][td]
播放使用技能音效
[/td][td]
SoundManager.playUseSkill();
[/td][/tr][tr][td]
关闭目前的scene
[/td][td]
SceneManager.terminate();
[/td][/tr][tr][td]
关闭所有scene
[/td][td]
SceneManager.exit();
[/td][/tr][tr][td]
进入指定的Scene (不堆栈, 无法用pop呼叫上一个画面) scene 列表如下 Scene_Shop : 商店画面 Scene_Name : 名字输入画面 Scene_Menu : 主Menu画面 Scene_Save : save画面 Scene_Load : load画面 Scene_Options : 选项画面 Scene_Gameover : game over画面 Scene_Title : 开头画面
[/td][td]
SceneManager.goto(Scene_Gameover);
[/td][/tr][tr][td]
进入指定的Scene (堆栈, 可用pop呼叫上一个画面)EX: 从Scene_Map使用此指令到Menu画面后, 在使用 SceneManager.pop()可以回到Scene_Map
[/td][td]
SceneManager.push(Scene_Shop);
[/td][/tr][tr][td]
回到上一个画面
[/td][td]
SceneManager.pop();
[/td][/tr][tr][td]
设定角色TP
[/td][td]
$gameActors.actor(n).setTp(m);
[/td][/tr][tr][td]
增加角色TP
[/td][td]
$gameActors.actor(n).gainTp(m);
[/td][/tr][tr][td]
记忆目前的队伍成员
[/td][td]
$gameParty._lastActors = $gameParty._actors.clone();
[/td][/tr][tr][td]
恢复目前的队伍成员
[/td][td]
$gameParty._actors = $gameParty._lastActors;
$gamePlayer.refresh();
$gameMap.requestRefresh();
[/td][/tr][tr][td]
移除所有队伍成员
[/td][td]
$gameParty._actors = [];
$gamePlayer.refresh();
$gameMap.requestRefresh();
[/td][/tr][tr][td]
移除除了队长的队伍成员
[/td][td]
$gameParty._actors.splice(1);
$gamePlayer.refresh();
$gameMap.requestRefresh();
[/td][/tr][tr][td]
设定是否可以战败 (战斗开始后开始设定)
[/td][td]
BattleManager._canLose = true;
[/td][/tr][tr][td]
关闭战斗结束后回地图的BGM
[/td][td]
BattleManager._mapBgm = null;
[/td][/tr][tr][td]
关闭战斗结束后回地图的BGS
[/td][td]
BattleManager._mapBgs = null;
[/td][/tr][tr][td]
追加战斗讯息
[/td][td]
if(BattleManager._logWindow !== null){
BattleManager._logWindow.push('popBaseLine'); //移除战斗讯息。
BattleManager._logWindow.push('pushBaseLine'); // 显示已显示的讯息
BattleManager._logWindow.push('addText', 'aaa'); // 追加一行讯息
}
BattleManager._logWindow.addText('aaa'); // 单纯追加讯息也可使用此指令
[/td][/tr][tr][td]
移除战斗讯息
[/td][td]
if(BattleManager._logWindow !== null){
BattleManager._logWindow.clear();
}
[/td][/tr][tr][td]
判定第一个队员id 是否 = n
[/td][td]
$gameParty.members()[0].actorId() === n
[/td][/tr][tr][td]
判定现在的Scene是否为特定Scene
[/td][td]
SceneManager._scene.constructor === Scene_Menu
[/td][/tr][tr][td]
判定执行环境是否为手机 系统判定
[/td][td]
Utils.isMobileDevice()
[/td][/tr][tr][td]
windows 系统判定
[/td][td]
Utils.isNwjs() && process.platform === 'win32'
[/td][/tr][tr][td]
判定PC的浏览器环境
[/td][td]
Utils.isNwjs()
[/td][/tr][tr][td]
判定是否为MAC环境
[/td][td]
Utils.isNwjs() && process.platform === 'darwin'
[/td][/tr][tr][td]
使用在个别事件上, 此事件将往地图特定ID事件移动
[/td][td]
this.moveTowardCharacter($gameMap.event(id));
[/td][/tr][tr][td]
使用在个别事件上, 此事件将远离地图特定ID事件
[/td][td]
this.moveAwayFromCharacter($gameMap.event(id));
[/td][/tr][tr][td]
使用在个别事件上, 此事件将面向地图特定ID事件
[/td][td]
this.turnTowardCharacter($gameMap.event(id));
[/td][/tr][tr][td]
使用在个别事件上, 此事件将背对地图特定ID事件
[/td][td]
this.turnAwayFromCharacter($gameMap.event(id));
[/td][/tr][tr][td]
使用在个别事件上, 此事件将往地图特定坐标移动 m => 设定的x坐标, n => 设定的y坐标
[/td][td]
this.moveTowardCharacter({x:m, y:n});
[/td][/tr][tr][td]
使用在个别事件上, 此事件将远离地图特定坐标
[/td][td]
this.moveAwayFromCharacter({x:m, y:n});
[/td][/tr][tr][td]
使用在个别事件上, 此事件将面向地图特定坐标
[/td][td]
this.turnTowardCharacter({x:m, y:n});
[/td][/tr][tr][td]
使用在个别事件上, 此事件将背对地图特定坐标
[/td][td]
this.turnAwayFromCharacter({x:m, y:n});
[/td][/tr][tr][td]
将特定编号的图片 替换成 其他图片
fileName =>新的图片名称, 不需副档名
[/td][td]
$gameScreen.picture(id)._name = 'fileName';
[/td][/tr][tr][td]
将特定编号的图片 替换成 其他图片
此方法可以避免换图时图片还没load完的闪烁
[/td][td]
var pictName = 'fileName';
var bitmap = ImageManager.loadPicture(pictName);
bitmap.addLoadListener(function() {
$gameScreen.picture(id)._name = pictName;
});
[/td][/tr][tr][td]
将玩家瞬移到相同地图的特定坐标
[/td][td]
$gamePlayer.reserveTransfer($gameMap.mapId(), X, Y);
$gamePlayer.performTransfer();
[/td][/tr][tr][td]
初始化所有自开关
[/td][td]
$gameSelfSwitches.clear();
[/td][/tr][tr][td]
初始化所有道具
[/td][td]
$gameParty.initAllItems();
[/td][/tr][tr][td]
取得队伍跟随者的X坐标, N为第几位成员
[/td][td]
$gamePlayer.followers().follower(n).x;
[/td][/tr][tr][td]
取得队伍跟随者的Y坐标, N为第几位成员
[/td][td]
$gamePlayer.followers().follower(n).y;
[/td][/tr][tr][td]
将队伍指定成员m 替换成 角色id = n 的角色
[/td][td]
if ($gameParty._actors.contains(n)) {
var oldIndex = $gameParty._actors.indexOf(n);
var oldActorId = $gameParty._actors[m];
$gameParty._actors[oldIndex] = oldActorId;
}
$gameParty._actors[m] = n;
$gamePlayer.refresh();
$gameMap.requestRefresh();
[/td][/tr][tr][td]
取得角色id = n 的目前武器ID , m为装备的index
[/td][td]
$gameActors.actor(n).weapons()[m].id;
[/td][/tr][tr][td]
取得角色id = n 的目前防具ID , m为装备的index
[/td][td]
$gameActors.actor(n).armors()[m].id;
[/td][/tr][tr][td]
让队伍中的N号成员显示泡泡图示id m
[/td][td]
$gamePlayer.followers().follower(n).requestBalloon(m);
[/td][/tr][tr][td]
角色ID n 习得所有职业的技能
[/td][td]
var actor = $gameActors.actor(n);
actor.currentClass().learnings.forEach(function(learning) {
if (learning.level