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

Project1

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

[有事请教] 求教怎么让主人公只负责跑地图触事件而不参与战斗

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2009
在线时间
219 小时
注册时间
2010-8-20
帖子
58
跳转到指定楼层
1
发表于 2018-6-6 01:31:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
战斗的时候让其余角色代替,让主人公类似于宝可梦训练师那种只在地图上才出现,角色栏也不显示而只显示用于战斗的人物。

Lv4.逐梦者

梦石
0
星屑
16129
在线时间
3997 小时
注册时间
2015-9-14
帖子
1337

开拓者

2
发表于 2018-6-6 15:21:48 | 只看该作者
添加行動者到隊伍.
作者:tomoakyhttp://hikimoki.sakura.ne.jp/plugin/plugin_system.html

遊戲開始時



TMFollowerEx.js
  1. //=============================================================================
  2. // TMVplugin - 隊列拡張
  3. // 作者: tomoaky (http://hikimoki.sakura.ne.jp/)
  4. // Version: 1.1
  5. // 最終更新日: 2016/02/02
  6. //=============================================================================

  7. /*:
  8. * @plugindesc 隊列人数を増やしたり、パーティ外のアクターを隊列に
  9. * 加えたりすることができます。
  10. *
  11. * @author tomoaky (http://hikimoki.sakura.ne.jp/)
  12. *
  13. * @param additionalFollower
  14. * @desc 戦闘メンバー人数にこの値を加算したものが隊列人数になります。
  15. * 初期値: 4
  16. * @default 4
  17. *
  18. * @param headerFollower
  19. * @desc 隊列の先頭にパーティ外のアクターを挿入します。
  20. * 初期値: 0 (アクター番号を入れると有効になります)
  21. * @default 0

  22. * @param footerFollower
  23. * @desc 隊列の最後尾にパーティ外のアクターを挿入します。
  24. * 初期値: 0 (アクター番号を入れると有効になります)
  25. * @default 0
  26. *
  27. * @help
  28. * additionalFollower で指定した人数まで、戦闘に参加しない
  29. * パーティメンバーを隊列に追加します。
  30. *
  31. * headerFollower に 1 以上の値を設定すると、隊列の先頭に
  32. * 対応する番号のアクターが挿入されます。
  33. * 隊列人数をオーバーする場合、最後尾のアクターが押し出されます。
  34. *
  35. * footerFollower に 1 以上の値を設定すると、隊列の最後尾に
  36. * 対応する番号のアクターが挿入されます。
  37. * 隊列人数をオーバーする場合、元々最後尾にいたアクターと入れ替わります。
  38. *
  39. * headerFollower と footerFollower のパラメータは初期値として扱われます、
  40. * ゲーム中にプラグインコマンドを使って別のアクターに入れ替えたり、
  41. * 挿入を解除することができます。
  42. *
  43. * プラグインコマンド:
  44. *   headerFollower 9     # アクター9番を隊列の先頭に挿入します、
  45. *                          パーティに加入している必要はありません。
  46. *                          0 を指定することで挿入を解除できます。
  47. *
  48. *   footerFollower 10    # アクター10番を隊列の最後尾に挿入します、
  49. *                          パーティに加入している必要はありません。
  50. *                          0 を指定することで挿入を解除できます。
  51. *
  52. *   collideFollower 1    # プレイヤーと隊列メンバーの衝突判定をオンにします。
  53. *                          0 を指定することで解除できます。
  54. *
  55. *   touchFollower 1      # イベントのトリガーが『イベントから接触』の場合に
  56. *                          隊列メンバーとの接触でも起動するようにします。
  57. *                          0 を指定することで解除できます。
  58. *
  59. * 注意事項:
  60. *   collideFollower コマンドで隊列メンバーとの衝突をオンにすると
  61. *   袋小路などでゲーム進行が不可能になる場合があります。
  62. *
  63. */

  64. var Imported = Imported || {};
  65. Imported.TMTopFix = true;

  66. (function() {

  67.   var parameters = PluginManager.parameters('TMFollowerEx');
  68.   var additionalFollower = Number(parameters['additionalFollower']);
  69.   var headerFollower = Number(parameters['headerFollower']);
  70.   var footerFollower = Number(parameters['footerFollower']);

  71.   //-----------------------------------------------------------------------------
  72.   // Game_System
  73.   //

  74.   Game_System.prototype.isCollideFollowerEnabled = function() {
  75.     if (this._collideFollowerEnabled === undefined) {
  76.       this._collideFollowerEnabled = false;
  77.     }
  78.     return this._collideFollowerEnabled;
  79.   };

  80.   Game_System.prototype.setCollideFollowerEnabled = function(flag) {
  81.     this._collideFollowerEnabled = flag === '1' ? true : false;
  82.   };
  83.   
  84.   Game_System.prototype.isTouchFollowerEnabled = function() {
  85.     if (this._touchFollowerEnabled === undefined) {
  86.       this._touchFollowerEnabled = false;
  87.     }
  88.     return this._touchFollowerEnabled;
  89.   };

  90.   Game_System.prototype.setTouchFollowerEnabled = function(flag) {
  91.     this._touchFollowerEnabled = flag === '1' ? true : false;
  92.   };
  93.   
  94.   //-----------------------------------------------------------------------------
  95.   // Game_Party
  96.   //

  97.   var _Game_Party_leader = Game_Party.prototype.leader;
  98.   Game_Party.prototype.leader = function() {
  99.     if ($gamePlayer.headerFollower() >= 1) {
  100.       return $gameActors.actor($gamePlayer.headerFollower());
  101.     } else {
  102.       return _Game_Party_leader.call(this);
  103.     }
  104.   };

  105.   //-----------------------------------------------------------------------------
  106.   // Game_Player
  107.   //

  108.   var _Game_Player_initMembers = Game_Player.prototype.initMembers;
  109.   Game_Player.prototype.initMembers = function() {
  110.     _Game_Player_initMembers.call(this);
  111.     this._headerFollower = headerFollower;
  112.     this._footerFollower = footerFollower;
  113.   };
  114.   
  115.   Game_Player.prototype.headerFollower = function() {
  116.     return this._headerFollower;
  117.   };
  118.   
  119.   Game_Player.prototype.setHeaderFollower = function(actorId) {
  120.     this._headerFollower = actorId;
  121.     this.refresh();
  122.   };

  123.   Game_Player.prototype.footerFollower = function() {
  124.     return this._footerFollower;
  125.   };
  126.   
  127.   Game_Player.prototype.setFooterFollower = function(actorId) {
  128.     this._footerFollower = actorId;
  129.     this.refresh();
  130.   };

  131.   var _Game_Player_isCollidedWithCharacters =
  132.       Game_Player.prototype.isCollidedWithCharacters;
  133.   Game_Player.prototype.isCollidedWithCharacters = function(x, y) {
  134.     var result = _Game_Player_isCollidedWithCharacters.call(this, x, y);
  135.     if (!result) {
  136.       result = this.isCollidedWithFollowers(x, y);
  137.     }
  138.     return result;
  139.   };
  140.   
  141.   Game_Player.prototype.isCollidedWithFollowers = function(x, y) {
  142.     if ($gameSystem.isCollideFollowerEnabled()) {
  143.       return this._followers.isSomeoneCollided(x, y)
  144.     }
  145.     return false;
  146.   };

  147.   //-----------------------------------------------------------------------------
  148.   // Game_Follower
  149.   //

  150.   Game_Follower.prototype.actor = function() {
  151.     if ($gamePlayer.footerFollower() >= 1) {
  152.       var index = $gameParty.size();
  153.       if ($gamePlayer.headerFollower() >= 1) {
  154.         index++;
  155.       }
  156.       index = Math.min(index, $gameParty.maxBattleMembers() + additionalFollower - 1);
  157.       if (this._memberIndex === index) {
  158.         return $gameActors.actor($gamePlayer.footerFollower());
  159.       }
  160.     }
  161.     if ($gamePlayer.headerFollower() >= 1) {
  162.       return $gameParty.members()[this._memberIndex - 1];
  163.     } else {
  164.       return $gameParty.members()[this._memberIndex];
  165.     }
  166.   };

  167.   //-----------------------------------------------------------------------------
  168.   // Game_Followers
  169.   //

  170.   var _Game_Followers_initialize = Game_Followers.prototype.initialize;
  171.   Game_Followers.prototype.initialize = function() {
  172.     _Game_Followers_initialize.call(this);
  173.     for (var i = 0; i < additionalFollower; i++) {
  174.       this._data.push(new Game_Follower($gameParty.maxBattleMembers() + i));
  175.     }
  176.   };

  177.   //-----------------------------------------------------------------------------
  178.   // Game_Event
  179.   //

  180.   var _Game_Event_checkEventTriggerTouch = Game_Event.prototype.checkEventTriggerTouch;
  181.   Game_Event.prototype.checkEventTriggerTouch = function(x, y) {
  182.     if ($gameSystem.isTouchFollowerEnabled() && !$gameMap.isEventRunning()) {
  183.       if (this._trigger === 2 && $gamePlayer.followers().isSomeoneCollided(x, y)) {
  184.         if (!this.isJumping() && this.isNormalPriority()) {
  185.           var lastDirectionFix = this._directionFix;
  186.           this._directionFix = true;
  187.           this.start();
  188.           this._directionFix = false;
  189.         }
  190.       }
  191.     }
  192.     _Game_Event_checkEventTriggerTouch.call(this, x, y);
  193.   };

  194.   //-----------------------------------------------------------------------------
  195.   // Game_Interpreter
  196.   //

  197.   var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  198.   Game_Interpreter.prototype.pluginCommand = function(command, args) {
  199.     if (command === 'headerFollower') {
  200.       $gamePlayer.setHeaderFollower(Number(args[0]));
  201.     } else if (command === 'footerFollower') {
  202.       $gamePlayer.setFooterFollower(Number(args[0]));
  203.     } else if (command === 'collideFollower') {
  204.       $gameSystem.setCollideFollowerEnabled(args[0]);
  205.     } else if (command === 'touchFollower') {
  206.       $gameSystem.setTouchFollowerEnabled(args[0]);
  207.     } else {
  208.       _Game_Interpreter_pluginCommand.call(this, command, args);
  209.     }
  210.   };
  211.   
  212. })();
复制代码

点评

谢谢,实现了!  发表于 2018-6-6 21:13
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 04:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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