Project1

标题: 求助,判断是否装备盾牌的语句怎么写 [打印本页]

作者: binger2001    时间: 2017-4-15 16:35
标题: 求助,判断是否装备盾牌的语句怎么写
如题,判断装备类型,让技能可用
作者: Ajucaqiu    时间: 2017-4-22 05:43
你给盾牌添加技能岂不是易而快哉
作者: raketenfaust02    时间: 2017-5-4 14:19
Ajucaqiu 发表于 2017-4-22 05:43
你给盾牌添加技能岂不是易而快哉

如果要用技能学习之类系统就不能这样做了呀
作者: 芯☆淡茹水    时间: 2017-5-4 14:44
本帖最后由 芯☆淡茹水 于 2017-5-4 16:27 编辑
  1. $gameActors.actor(角色id).hasArmor($dataArmors[防具ID]);
复制代码

默认脚本里面貌似没有判断防具类型的,只有判断是否装备某个防具。


或者可以加一个方法:
JAVASCRIPT 代码复制
  1. Game_Actor.prototype.hasArmorEtype = function(etypeId) {
  2.     var data = this.armors().filter(function(item) {
  3.         return item && item.etypeId === etypeId;});
  4.     return data.length > 0 ;
  5. };


那么判断就写:
JAVASCRIPT 代码复制
  1. $gameActors.actor(角色id).hasArmorEtype(2);
  2. // 试了一下,盾是 2 ; 头部是 3; 身体是 4; 饰件是 5。MV的 itypeId, wtypeId, atypeId, etypeId, 真让人头疼!
  3. // 这也可以用来判断是否装备了衣服,帽子什么的。


已经试过了,看来以前还是搞错了一点东西。

在数据库设置了1号角色有盾牌,2号角色没有,然后 事件->脚本判断:



显示结果




作者: raketenfaust02    时间: 2017-5-4 15:52
有个变通的方法:

用YEP.13 – Auto Passive States给所有盾牌附加一个叫做“装备盾”的state,然后在技能判断里检测角色身上是否有这个state

作者: qknight    时间: 2017-5-20 18:25
raketenfaust02 发表于 2017-5-4 15:52
有个变通的方法:

用YEP.13 – Auto Passive States给所有盾牌附加一个叫做“装备盾”的state,然后在技能 ...

有个更变通的方法:
让所有盾牌都免疫某个状态,然后再给所有角色都赋予上这个状态,没中这个状态的角色就装备了盾牌
这样子连插件都不需要用到了
作者: raketenfaust02    时间: 2017-5-20 23:54
qknight 发表于 2017-5-20 18:25
有个更变通的方法:
让所有盾牌都免疫某个状态,然后再给所有角色都赋予上这个状态,没中这个状态的角色 ...

可是如果没有插件,装上盾再卸下来之后,用什么方法把这个状态补回角色身上呢?
作者: qknight    时间: 2017-5-21 12:37
raketenfaust02 发表于 2017-5-20 23:54
可是如果没有插件,装上盾再卸下来之后,用什么方法把这个状态补回角色身上呢? ...

如果是因为装备耐久度等插件的原因,导致战斗中盾牌被打烂的话,只要每回合结束时赋予全队那个盾牌免疫的状态,就能还算及时的分歧谁没有了盾牌。

如果是菜单界面使用需要盾牌的技能的话,那么这个技能的施放目标肯定是队友,只要在公共事件中再赋予全队一次盾牌免疫状态,就可以分歧谁有盾牌了。




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