烁灵 发表于 2024-6-10 17:42:16

【汉化】速度管理

本帖最后由 烁灵 于 2024-6-20 17:44 编辑

简单的设定各种移动速度(行走、冲刺、交通工具)
注意,行走速度仍基于默认的行走系统,与各种像素移动插件大概率冲突。

原地址:Speed Manager | RPG Maker Forums (rpgmakerweb.com)


汉化脚本:命名为 SpeedManager.js
//============================================================================
// Karberus - Speed Manager
// SpeedManager.js
// Version 1.1
// No credit required. Can be used commercially or non commercially
//============================================================================
//============================================================================
var Imported = Imported || {};
Imported.SpeedManager = true;

var Karberus = Karberus || {};
Karberus.SpeedManager = Karberus.SpeedManager || {};
//============================================================================
//============================================================================
/*:
* @plugindesc v1.1管理默认的移动速度.
* 汉化 by 烁灵 更多插件请访问 www.hknmtt.com
* @author Karberus
* @version 1.1
*
*
*
* @param Move Speed
* @text 移动速度
* @desc 玩家移动速度.
* Default: 4
* @default 4
*
* @param Dash Speed
* @text 跑步速度
* @desc 当跑步时,移动速度将加上本数值
* Default: 1
* @default 1
*
* @param Boat Speed
* @text 小型船速度
* @desc 小型船移动速度
* Default: 4
* @default 4
*
* @param Ship Speed
* @text 大型船速度
* @desc 大型船移动速度
* Default: 5
* @default 5
*
* @param Airship Speed
* @text 飞艇速度
* @desc 飞艇移动速度
* Default: 6
* @default 6
*
* @param Agility Based
* @text 基于领队敏捷
* @desc 领队敏捷是否参与速度计算
* Default: false
* @default false
*
* @param Distance Per Frame
* @text 每帧移动距离
* @desc 如果你不明白本项的作用,请不要修改设置
* Default: Math.pow(2, this.realMoveSpeed()) / 256;
* @default Math.pow(2, this.realMoveSpeed()) / 256;
*
*
*
*@help 本插件将允许你设置默认的行走速度,包括移动、跑步、小型船、大型船、飞艇
*
*==============================================================================
* 基于领队敏捷 (实验性功能)
*==============================================================================
* 我不完全确定是否有效,队伍领导者的敏捷度越高,就能移动得越快。目前将影响任何移动速度,
* 如跑步或使用交通工具。我可能会修改这个设定,使交通工具不受影响(这样更合理,对吧?)。
* 它的工作原理是,队伍领导者的敏捷度 除以 2048,然后加到每帧移动距离的公式中
*
*==============================================================================
*
*
*==============================================================================
* 每帧移动距离
*==============================================================================
* Math.pow(2, this.realMoveSpeed()) / 256;
* this.realMoveSpeed 取决于你是否在移动、冲刺或乘坐交通工具。
* 例如,如果你将移动速度设置为4(默认值),则速度为
* Math.pow(2, 4) / 256;
*
* Math.pow(2, 4) 表示 2*2*2*2,即 16
*
* 所以公式值为 16 / 256 = 0.0625,每帧移动距离为 0.0625
*==============================================================================
*
*
*/
(function() {

   Karberus.Parameters = PluginManager.parameters("SpeedManager");

   Karberus.SpeedManager.MoveSpeed = Number(Karberus.Parameters["Move Speed"]);
   Karberus.SpeedManager.DashSpeed = Number(Karberus.Parameters["Dash Speed"]);
   Karberus.SpeedManager.BoatMoveSpeed = Number(Karberus.Parameters["Boat Speed"]);
   Karberus.SpeedManager.ShipMoveSpeed = Number(Karberus.Parameters["Ship Speed"]);
   Karberus.SpeedManager.AirshipMoveSpeed = Number(Karberus.Parameters["Airship Speed"]);

   Karberus.SpeedManager.AgiBasedSpeed = String(Karberus.Parameters["Agility Based"]);

   Karberus.SpeedManager.DistancePerFrameFormula = Karberus.Parameters["Distance Per Frame"];


_Karb_Game_CharacterBase_initMembers = Game_CharacterBase.prototype.initMembers;
Game_CharacterBase.prototype.initMembers = function() {

    _Karb_Game_CharacterBase_initMembers.call(this);
    this._moveSpeed = Karberus.SpeedManager.MoveSpeed;

};

Game_CharacterBase.prototype.realMoveSpeed = function() {
    return this._moveSpeed + (this.isDashing() ? Karberus.SpeedManager.DashSpeed : 0);
};

Game_Vehicle.prototype.initMoveSpeed = function() {
    if (this.isBoat()) {
      this.setMoveSpeed(Karberus.SpeedManager.BoatMoveSpeed);
    } else if (this.isShip()) {
      this.setMoveSpeed(Karberus.SpeedManager.ShipMoveSpeed);
    } else if (this.isAirship()) {
      this.setMoveSpeed(Karberus.SpeedManager.AirshipMoveSpeed);
    }
};

Game_CharacterBase.prototype.distancePerFrame = function() {
if (Karberus.SpeedManager.AgiBasedSpeed === "false"){
    return eval(Karberus.SpeedManager.DistancePerFrameFormula);
} else if (Karberus.SpeedManager.AgiBasedSpeed === "true") {
    return eval(Karberus.SpeedManager.DistancePerFrameFormula) + $gameParty.members().agi / 2048;
}
};

})();


页: [1]
查看完整版本: 【汉化】速度管理