Project1
标题:
求教怎么让主人公只负责跑地图触事件而不参与战斗
[打印本页]
作者:
明智光秀
时间:
2018-6-6 01:31
标题:
求教怎么让主人公只负责跑地图触事件而不参与战斗
战斗的时候让其余角色代替,让主人公类似于宝可梦训练师那种只在地图上才出现,角色栏也不显示而只显示用于战斗的人物。
作者:
wabcmcc
时间:
2018-6-6 15:21
添加行動者到隊伍.
作者:tomoaky
http://hikimoki.sakura.ne.jp/plugin/plugin_system.html
遊戲開始時
03.png
(107.69 KB, 下载次数: 37)
下载附件
保存到相册
2018-6-6 15:19 上传
04.png
(172.63 KB, 下载次数: 36)
下载附件
保存到相册
2018-6-6 15:19 上传
TMFollowerEx.js
//=============================================================================
// TMVplugin - 隊列拡張
// 作者: tomoaky (http://hikimoki.sakura.ne.jp/)
// Version: 1.1
// 最終更新日: 2016/02/02
//=============================================================================
/*:
* @plugindesc 隊列人数を増やしたり、パーティ外のアクターを隊列に
* 加えたりすることができます。
*
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
*
* @param additionalFollower
* @desc 戦闘メンバー人数にこの値を加算したものが隊列人数になります。
* 初期値: 4
* @default 4
*
* @param headerFollower
* @desc 隊列の先頭にパーティ外のアクターを挿入します。
* 初期値: 0 (アクター番号を入れると有効になります)
* @default 0
* @param footerFollower
* @desc 隊列の最後尾にパーティ外のアクターを挿入します。
* 初期値: 0 (アクター番号を入れると有効になります)
* @default 0
*
* @help
* additionalFollower で指定した人数まで、戦闘に参加しない
* パーティメンバーを隊列に追加します。
*
* headerFollower に 1 以上の値を設定すると、隊列の先頭に
* 対応する番号のアクターが挿入されます。
* 隊列人数をオーバーする場合、最後尾のアクターが押し出されます。
*
* footerFollower に 1 以上の値を設定すると、隊列の最後尾に
* 対応する番号のアクターが挿入されます。
* 隊列人数をオーバーする場合、元々最後尾にいたアクターと入れ替わります。
*
* headerFollower と footerFollower のパラメータは初期値として扱われます、
* ゲーム中にプラグインコマンドを使って別のアクターに入れ替えたり、
* 挿入を解除することができます。
*
* プラグインコマンド:
* headerFollower 9 # アクター9番を隊列の先頭に挿入します、
* パーティに加入している必要はありません。
* 0 を指定することで挿入を解除できます。
*
* footerFollower 10 # アクター10番を隊列の最後尾に挿入します、
* パーティに加入している必要はありません。
* 0 を指定することで挿入を解除できます。
*
* collideFollower 1 # プレイヤーと隊列メンバーの衝突判定をオンにします。
* 0 を指定することで解除できます。
*
* touchFollower 1 # イベントのトリガーが『イベントから接触』の場合に
* 隊列メンバーとの接触でも起動するようにします。
* 0 を指定することで解除できます。
*
* 注意事項:
* collideFollower コマンドで隊列メンバーとの衝突をオンにすると
* 袋小路などでゲーム進行が不可能になる場合があります。
*
*/
var Imported = Imported || {};
Imported.TMTopFix = true;
(function() {
var parameters = PluginManager.parameters('TMFollowerEx');
var additionalFollower = Number(parameters['additionalFollower']);
var headerFollower = Number(parameters['headerFollower']);
var footerFollower = Number(parameters['footerFollower']);
//-----------------------------------------------------------------------------
// Game_System
//
Game_System.prototype.isCollideFollowerEnabled = function() {
if (this._collideFollowerEnabled === undefined) {
this._collideFollowerEnabled = false;
}
return this._collideFollowerEnabled;
};
Game_System.prototype.setCollideFollowerEnabled = function(flag) {
this._collideFollowerEnabled = flag === '1' ? true : false;
};
Game_System.prototype.isTouchFollowerEnabled = function() {
if (this._touchFollowerEnabled === undefined) {
this._touchFollowerEnabled = false;
}
return this._touchFollowerEnabled;
};
Game_System.prototype.setTouchFollowerEnabled = function(flag) {
this._touchFollowerEnabled = flag === '1' ? true : false;
};
//-----------------------------------------------------------------------------
// Game_Party
//
var _Game_Party_leader = Game_Party.prototype.leader;
Game_Party.prototype.leader = function() {
if ($gamePlayer.headerFollower() >= 1) {
return $gameActors.actor($gamePlayer.headerFollower());
} else {
return _Game_Party_leader.call(this);
}
};
//-----------------------------------------------------------------------------
// Game_Player
//
var _Game_Player_initMembers = Game_Player.prototype.initMembers;
Game_Player.prototype.initMembers = function() {
_Game_Player_initMembers.call(this);
this._headerFollower = headerFollower;
this._footerFollower = footerFollower;
};
Game_Player.prototype.headerFollower = function() {
return this._headerFollower;
};
Game_Player.prototype.setHeaderFollower = function(actorId) {
this._headerFollower = actorId;
this.refresh();
};
Game_Player.prototype.footerFollower = function() {
return this._footerFollower;
};
Game_Player.prototype.setFooterFollower = function(actorId) {
this._footerFollower = actorId;
this.refresh();
};
var _Game_Player_isCollidedWithCharacters =
Game_Player.prototype.isCollidedWithCharacters;
Game_Player.prototype.isCollidedWithCharacters = function(x, y) {
var result = _Game_Player_isCollidedWithCharacters.call(this, x, y);
if (!result) {
result = this.isCollidedWithFollowers(x, y);
}
return result;
};
Game_Player.prototype.isCollidedWithFollowers = function(x, y) {
if ($gameSystem.isCollideFollowerEnabled()) {
return this._followers.isSomeoneCollided(x, y)
}
return false;
};
//-----------------------------------------------------------------------------
// Game_Follower
//
Game_Follower.prototype.actor = function() {
if ($gamePlayer.footerFollower() >= 1) {
var index = $gameParty.size();
if ($gamePlayer.headerFollower() >= 1) {
index++;
}
index = Math.min(index, $gameParty.maxBattleMembers() + additionalFollower - 1);
if (this._memberIndex === index) {
return $gameActors.actor($gamePlayer.footerFollower());
}
}
if ($gamePlayer.headerFollower() >= 1) {
return $gameParty.members()[this._memberIndex - 1];
} else {
return $gameParty.members()[this._memberIndex];
}
};
//-----------------------------------------------------------------------------
// Game_Followers
//
var _Game_Followers_initialize = Game_Followers.prototype.initialize;
Game_Followers.prototype.initialize = function() {
_Game_Followers_initialize.call(this);
for (var i = 0; i < additionalFollower; i++) {
this._data.push(new Game_Follower($gameParty.maxBattleMembers() + i));
}
};
//-----------------------------------------------------------------------------
// Game_Event
//
var _Game_Event_checkEventTriggerTouch = Game_Event.prototype.checkEventTriggerTouch;
Game_Event.prototype.checkEventTriggerTouch = function(x, y) {
if ($gameSystem.isTouchFollowerEnabled() && !$gameMap.isEventRunning()) {
if (this._trigger === 2 && $gamePlayer.followers().isSomeoneCollided(x, y)) {
if (!this.isJumping() && this.isNormalPriority()) {
var lastDirectionFix = this._directionFix;
this._directionFix = true;
this.start();
this._directionFix = false;
}
}
}
_Game_Event_checkEventTriggerTouch.call(this, x, y);
};
//-----------------------------------------------------------------------------
// Game_Interpreter
//
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
if (command === 'headerFollower') {
$gamePlayer.setHeaderFollower(Number(args[0]));
} else if (command === 'footerFollower') {
$gamePlayer.setFooterFollower(Number(args[0]));
} else if (command === 'collideFollower') {
$gameSystem.setCollideFollowerEnabled(args[0]);
} else if (command === 'touchFollower') {
$gameSystem.setTouchFollowerEnabled(args[0]);
} else {
_Game_Interpreter_pluginCommand.call(this, command, args);
}
};
})();
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1