扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 111|回复: 0

[转载发布] 非常好的脚本调用手册

[复制链接]
累计送礼:
0 个
累计收礼:
0 个
  • TA的每日心情
    开心
    2024-11-27 10:08
  • 签到天数: 108 天

    连续签到: 4 天

    [LV.6]常住居民II

    2219

    主题

    376

    回帖

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    6
    卡币
    9661
    OK点
    16
    推广点
    0
    同能卷
    0
    积分
    12284

    灌水之王

    发表于 2024-12-7 23:58:16 | 显示全部楼层 |阅读模式
    繁体转简体,方便按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
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2025-1-16 02:43 , Processed in 0.072008 second(s), 53 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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