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

Project1

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

[已经解决] 怎么弄死亡不消失的状态?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
280 小时
注册时间
2011-7-22
帖子
24
跳转到指定楼层
1
发表于 2016-2-13 02:15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有没有办法让状态死亡后不消失呢?

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
2
发表于 2016-2-13 09:29:12 | 只看该作者
有个插件,叫YEP_AutoPassiveStates.的,就是通过角色,怪物,装备,职业,道具的备注栏来实现常驻状态,可以用来做不消失状态和被动技能等等。
具体用法插件里有写,然后如果你要做死亡不消失的话,还必须要在数据库中把那个状态对应的消除条件全部设置为空才行。当你想暂时消除的时候就只能用事件命令来消除了。
插件内容如下:
  1. //=============================================================================
  2. // Yanfly Engine Plugins - Auto Passive States
  3. // YEP_AutoPassiveStates.js
  4. //=============================================================================

  5. var Imported = Imported || {};
  6. Imported.YEP_AutoPassiveStates = true;

  7. var Yanfly = Yanfly || {};
  8. Yanfly.APS = Yanfly.APS || {};

  9. //=============================================================================
  10. /*:
  11. * @plugindesc v1.00 This plugin allows for some states to function as
  12. * passives for actors, enemies, skills, and equips.常驻状态插件,可以理解为被动技能。
  13. * @author Yanfly Engine Plugins
  14. *
  15. * @help
  16. * ============================================================================
  17. * Introduction
  18. * ============================================================================
  19. *
  20. * Passive states are states that are automatically active. You can think of
  21. * them as an extension of traits but with more flexibility. They will always
  22. * be there as long as the actor or enemy has auto passive state notetags.
  23. *
  24. * ============================================================================
  25. * Notetags
  26. * ============================================================================
  27. *
  28. * Actor, Class, Skills, Weapon, Armor, Enemy Notetags:
  29. *   <Passive State: x>
  30. *   <Passive State: x, x, x>
  31. *   This will allow the actor or enemy to have state x as a passive state.
  32. *   If placed inside a weapon or armor notebox, the user will have that
  33. *   passive state.
  34. *
  35. *   <Passive State: x to y>
  36. *   This will add the states x through y (in a sequence) for the actor or
  37. *   enemy to have as a passive state. If placed inside a weapon or armor
  38. *   notebox, the user will have that passive state.
  39. */
  40. //=============================================================================

  41. //=============================================================================
  42. // DataManager
  43. //=============================================================================

  44. Yanfly.APS.DataManager_isDatabaseLoaded = DataManager.isDatabaseLoaded;
  45. DataManager.isDatabaseLoaded = function() {
  46.     if (!Yanfly.APS.DataManager_isDatabaseLoaded.call(this)) return false;
  47.                 this.processAPSNotetags($dataActors);
  48.                 this.processAPSNotetags($dataClasses);
  49.                 this.processAPSNotetags($dataEnemies);
  50.     this.processAPSNotetags($dataSkills);
  51.                 this.processAPSNotetags($dataWeapons);
  52.                 this.processAPSNotetags($dataArmors);
  53.                 return true;
  54. };

  55. DataManager.processAPSNotetags = function(group) {
  56.   var note1 = /<(?:PASSIVE STATE):[ ]*(\d+(?:\s*,\s*\d+)*)>/i;
  57.   var note2 = /<(?:PASSIVE STATE):[ ](\d+)[ ](?:THROUGH|to)[ ](\d+)>/i;
  58.         for (var n = 1; n < group.length; n++) {
  59.                 var obj = group[n];
  60.                 var notedata = obj.note.split(/[\r\n]+/);

  61.     obj.passiveStates = [];

  62.                 for (var i = 0; i < notedata.length; i++) {
  63.                         var line = notedata[i];
  64.                         if (line.match(note1)) {
  65.         var array = JSON.parse('[' + RegExp.$1.match(/\d+/g) + ']');
  66.         obj.passiveStates = obj.passiveStates.concat(array);
  67.       } else if (line.match(note2)) {
  68.         var range = Yanfly.Util.getRange(parseInt(RegExp.$1),
  69.                                         parseInt(RegExp.$2));
  70.         obj.passiveStates = obj.passiveStates.concat(range);
  71.       }
  72.                 }
  73.         }
  74. };

  75. //=============================================================================
  76. // Game_BattlerBase
  77. //=============================================================================

  78. Yanfly.APS.Game_BattlerBase_states = Game_BattlerBase.prototype.states;
  79. Game_BattlerBase.prototype.states = function() {
  80.     var array = Yanfly.APS.Game_BattlerBase_states.call(this);
  81.     array = array.concat(this.passiveStates());
  82.     this.sortPassiveStates(array.filter(Yanfly.Util.onlyUnique));
  83.     return array;
  84. };

  85. Yanfly.APS.Game_BattlerBase_isStateAffected =
  86.     Game_BattlerBase.prototype.isStateAffected;
  87. Game_BattlerBase.prototype.isStateAffected = function(stateId) {
  88.     if (this.isPassiveStateAffected(stateId)) return true;
  89.     return Yanfly.APS.Game_BattlerBase_isStateAffected.call(this, stateId);
  90. };

  91. Game_BattlerBase.prototype.passiveStates = function() {
  92.     var array = [];
  93.     for (var i = 0; i < this.passiveStatesRaw().length; ++i) {
  94.       var state = $dataStates[this.passiveStatesRaw()[i]];
  95.       if (state) array.push(state);
  96.     }
  97.     return array;
  98. };

  99. Game_BattlerBase.prototype.passiveStatesRaw = function() {
  100.     var array = [];
  101.     return array.filter(Yanfly.Util.onlyUnique);
  102. };

  103. Game_BattlerBase.prototype.getPassiveStateData = function(obj) {
  104.     if (!obj) return [];
  105.     if (!obj.passiveStates) return [];
  106.     var array = [];
  107.     for (var i = 0; i < obj.passiveStates.length; ++i) {
  108.       array.push(obj.passiveStates[i]);
  109.     }
  110.     return array;
  111. };

  112. Game_BattlerBase.prototype.sortPassiveStates = function(array) {
  113.     array.sort(function(a, b) {
  114.       var p1 = a.priority;
  115.       var p2 = b.priority;
  116.       if (p1 !== p2) return p2 - p1;
  117.       return a - b;
  118.     });
  119. };

  120. Game_BattlerBase.prototype.isPassiveStateAffected = function(stateId) {
  121.     return this.passiveStatesRaw().contains(stateId);
  122. };

  123. //=============================================================================
  124. // Game_Battler
  125. //=============================================================================

  126. Yanfly.APS.Game_Battler_isStateAddable = Game_Battler.prototype.isStateAddable;
  127. Game_Battler.prototype.isStateAddable = function(stateId) {
  128.                 if (this.isPassiveStateAffected(stateId)) return false;
  129.     return Yanfly.APS.Game_Battler_isStateAddable.call(this, stateId);
  130. };

  131. Yanfly.APS.Game_Battler_removeState = Game_Battler.prototype.removeState;
  132. Game_Battler.prototype.removeState = function(stateId) {
  133.                 if (this.isPassiveStateAffected(stateId)) return;
  134.     Yanfly.APS.Game_Battler_removeState.call(this, stateId);
  135. };

  136. //=============================================================================
  137. // Game_Actor
  138. //=============================================================================

  139. Game_Actor.prototype.passiveStatesRaw = function() {
  140.     var array = Game_BattlerBase.prototype.passiveStatesRaw.call(this);
  141.     array = array.concat(this.getPassiveStateData(this.actor()));
  142.     array = array.concat(this.getPassiveStateData(this.currentClass()));
  143.     for (var i = 0; i < this.equips().length; ++i) {
  144.       var equip = this.equips()[i];
  145.       array = array.concat(this.getPassiveStateData(equip));
  146.     }
  147.     for (var i = 0; i < this._skills.length; ++i) {
  148.       var skill = $dataSkills[this._skills[i]];
  149.       array = array.concat(this.getPassiveStateData(skill));
  150.     }
  151.     return array;
  152. };

  153. //=============================================================================
  154. // Game_Enemy
  155. //=============================================================================

  156. Game_Enemy.prototype.passiveStatesRaw = function() {
  157.     var array = Game_BattlerBase.prototype.passiveStatesRaw.call(this);
  158.     array = array.concat(this.getPassiveStateData(this.enemy()));
  159.     for (var i = 0; i < this.skills().length; ++i) {
  160.       var skill = this.skills()[i];
  161.       array = array.concat(this.getPassiveStateData(skill));
  162.     }
  163.     return array;
  164. };

  165. if (!Game_Enemy.prototype.skills) {
  166.                 Game_Enemy.prototype.skills = function() {
  167.                         var skills = []
  168.                         for (var i = 0; i < this.enemy().actions.length; ++i) {
  169.                                 var skill = $dataSkills[this.enemy().actions[i].skillId]
  170.                                 if (skill) skills.push(skill);
  171.                         }
  172.                         return skills;
  173.                 }
  174. };

  175. //=============================================================================
  176. // Utilities
  177. //=============================================================================

  178. Yanfly.Util = Yanfly.Util || {};

  179. Yanfly.Util.getRange = function(n, m) {
  180.     var result = [];
  181.     for (var i = n; i <= m; ++i) result.push(i);
  182.     return result;
  183. };

  184. Yanfly.Util.onlyUnique = function(value, index, self) {
  185.     return self.indexOf(value) === index;
  186. };

  187. //=============================================================================
  188. // End of File
  189. //=============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
280 小时
注册时间
2011-7-22
帖子
24
3
 楼主| 发表于 2016-2-13 09:32:08 | 只看该作者
salvareless 发表于 2016-2-13 09:29
有个插件,叫YEP_AutoPassiveStates.的,就是通过角色,怪物,装备,职业,道具的备注栏来实现常驻状态,可 ...

那,敌人的怎么办呢?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
4
发表于 2016-2-13 09:40:58 | 只看该作者
一样,在敌人的备注栏中填写<Passive State: x>.
等等,你的意思难道是要做:只要整场战斗不结束,敌人就算死亡后也不会离场,就像玩家死亡一样?也就是说可能存在敌方另一个怪将已经死亡的怪复活的可能性?
如果是这样,可能就需要改动底层的代码了,这个我不会啊= =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
280 小时
注册时间
2011-7-22
帖子
24
5
 楼主| 发表于 2016-2-13 09:42:49 | 只看该作者
salvareless 发表于 2016-2-13 09:40
一样,在敌人的备注栏中填写.
等等,你的意思难道是要做:只要整场战斗不结束,敌人就算死亡后也不会离场, ...

额,确实是这个意思

点评

这个我就帮不上忙了,真不会,我就抛个砖吧,引个大神出来~~~~~~  发表于 2016-2-13 09:50
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-25 21:04

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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