Project1

标题: 冲刺过长时间角色疲惫插件 [打印本页]

作者: 魏玉龙    时间: 2018-9-15 00:42
标题: 冲刺过长时间角色疲惫插件
本帖最后由 魏玉龙 于 2018-9-15 09:10 编辑

看到有人需要类似的功能就顺手写了一个插件!
冲刺过长时间,角色会减速。当取消冲刺状态或停止后下来会自动恢复耐力!
冲刺的加速度及减速度会均匀增加,陷入疲惫状态会有气泡提示!

JAVASCRIPT 代码复制下载
  1. /*:
  2.  * Acceleration.js
  3.  * @plugindesc 均匀加减速插件
  4.  * @author 魏玉龙
  5.  * @since 2018.09.15
  6.  * @version 1.0
  7.  *
  8.  * @param speed
  9.  * @desc 加速度
  10.  * @default 0.01
  11.  *
  12.  * @param stamina
  13.  * @desc 角色冲刺持续帧数,为0时可无限时冲刺。
  14.  * @default 600
  15.  *
  16.  */
  17.  
  18. (function () {
  19.     var parameters = PluginManager.parameters('Acceleration');
  20.     var speed = Number(parameters['speed'] || 0.01);
  21.     var stamina = Number(parameters['stamina'] || 600);
  22.  
  23.     var Game_CharacterBase_prototype_initMembers = Game_CharacterBase.prototype.initMembers;
  24.     Game_CharacterBase.prototype.initMembers = function () {
  25.         Game_CharacterBase_prototype_initMembers.call(this);
  26.         this._dashSpeed = 0;
  27.         this._stamina = stamina;
  28.     }
  29.  
  30.     Game_CharacterBase.prototype.realMoveSpeed = function () {
  31.         return this._moveSpeed + this._dashSpeed;
  32.     }
  33.  
  34.     var Game_CharacterBase_prototype_updateStop = Game_CharacterBase.prototype.updateStop;
  35.     Game_CharacterBase.prototype.updateStop = function () {
  36.         Game_CharacterBase_prototype_updateStop.call(this);
  37.         if (this._dashSpeed != 0) {
  38.             this._dashSpeed = 0;
  39.         }
  40.         if (this._stamina < stamina) {
  41.             this._stamina++;
  42.         }
  43.     }
  44.  
  45.     var Game_CharacterBase_prototype_updateMove = Game_CharacterBase.prototype.updateMove;
  46.     Game_CharacterBase.prototype.updateMove = function () {
  47.         Game_CharacterBase_prototype_updateMove.call(this);
  48.         this.updateDashSpeed();
  49.     }
  50.  
  51.     Game_CharacterBase.prototype.updateDashSpeed = function () {
  52.         if (this.isDashing()) {
  53.             if (this._stamina > 0 || stamina == 0) {
  54.                 this._dashSpeed = Math.min(this._dashSpeed + speed, 1);
  55.                 this._stamina > 0 && this._stamina--;
  56.             } else {
  57.                 if (this._stamina == 0 && this._dashSpeed == 1) {
  58.                     this.requestBalloon(7);
  59.                 }
  60.                 this._dashSpeed = Math.max(this._dashSpeed - speed, -1);
  61.             }
  62.         } else {
  63.             if (this._dashSpeed > 0) {
  64.                 this._dashSpeed = Math.max(this._dashSpeed - speed, 0);
  65.             } else {
  66.                 this._dashSpeed = Math.min(this._dashSpeed + speed, 0);
  67.             }
  68.             if (this._stamina < stamina) {
  69.                 this._stamina++;
  70.             }
  71.         }
  72.     }
  73. })();

作者: q1456503215    时间: 2018-9-15 08:42
是不是地图跑步?
作者: 梦想家大魔王    时间: 2018-9-15 10:51
类似Diablo2里面的耐力,让你不能无限跑步
作者: 果砸    时间: 2018-9-23 21:41
赞美!
作者: Laguna1080    时间: 2018-9-25 10:32
漂亮
作者: 花糖兔子    时间: 2018-9-27 21:48
可以改气泡吗
作者: 魏玉龙    时间: 2018-10-3 10:03
花糖兔子 发表于 2018-9-27 21:48
可以改气泡吗

第58行
  1. this.requestBalloon(7);
复制代码

这里就是调用气泡
里面的数字你可以看着改
作者: a1670770233    时间: 2018-10-4 21:22
时间可以随等级和使用道具增加吗?可以实现吗?
作者: 提娘    时间: 2021-5-29 00:32
感谢,请问可以修改使用吗?正想做一个类似于疲劳值的系统,疲劳达到最大的时候无法冲刺(可能还会联动其他的事件)
作者: 塔啦啦    时间: 2021-6-14 00:49
感觉做得很棒,如果有前两位说的就更好了,话说有打算弄成插件的格式吗




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1