查看: 2503|回复: 7

[已经解决] 求教如何使一件武器具有多种类型

[复制链接]
梦石
0
星屑
342
在线时间
377 小时
注册时间
2013-1-30
回帖
162
发表于 2014-7-7 01:13:29 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 qknight 于 2014-7-9 01:10 编辑

一些技能判定需要特别的武器类型,还有职业设定也会规定该职业只能使用哪种武器。但假如要设置一个另类,比如说方天画戟,同时具备枪和矛的类型,让只能拿枪的枪兵拿上它发出矛系的必杀技。求教大神这个问题该如何解决?

已经解决,具体方法看楼下版主大人的脚本,这样子轨迹里具备短剑与火铳属性的导力铳、具备斧子与枪属性的斧枪都可以做出来了

点评

枪和矛基本是一样的……  发表于 2014-7-7 08:28
梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2014-7-7 08:05:26 | 显示全部楼层
枪兵和矛兵都得设置一个共有的武器类型,然后方天画戟属于这一类

评分

参与人数 1星屑 +33 收起 理由
taroxd + 33 我很赞同

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
342
在线时间
377 小时
注册时间
2013-1-30
回帖
162
 楼主| 发表于 2014-7-7 12:35:20 | 显示全部楼层
chd114 发表于 2014-7-7 08:05
枪兵和矛兵都得设置一个共有的武器类型,然后方天画戟属于这一类

其实方天画戟只是一个形象的说法,不是让枪兵拿上方天画戟就行了,关键是如何还能使它发挥出别的系的必杀技。比如说平民职业,只能拿日常用武器,我让其只能持有水果刀(同时具备日常用武器和短剑类型),不能持有其他的短剑武器(比如说匕首),但是因为水果刀也具有短剑属性,所以他可以使用短剑系的必杀技

点评

水果刀怎么可能是短剑  发表于 2014-7-7 15:36
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-7 12:49:30 | 显示全部楼层
本帖最后由 taroxd 于 2014-7-9 05:58 编辑

我没测试,报错了不要打我(呃,真报错或者用不了的话还是回复一下吧……)

[pre lang="ruby" line="1"]
# 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id
# 备注后,原来武器类型的设置失效

class RPG::Weapon
  
  def wtypes
    @wtypes ||=
    if @note =~ /<wtype((?:\s+\d+)+)\s*>/
      $1.strip.split(/\s+/).map(&:to_i)
    else
      [wtype_id]
    end
  end
  
end

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 判定物品是否可以装备
  #--------------------------------------------------------------------------
  def equippable?(item)
    return false unless item.is_a?(RPG::EquipItem)
    return false if equip_type_sealed?(item.etype_id)
    return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon)
    return equip_atype_ok?(item.atype_id) if item.is_a?(RPG::Armor)
    return false
  end
end

class Game_Actor
  #--------------------------------------------------------------------------
  # ● 是否装备着特定类型的武器装备
  #--------------------------------------------------------------------------
  def wtype_equipped?(wtype_id)
    weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) }
  end
end[/pre]

点评

话说一个游戏里安插这么多脚本真的好么?  发表于 2014-7-9 08:02
回复

使用道具 举报

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-6-29
回帖
44
发表于 2014-7-8 11:24:38 | 显示全部楼层
技能的武器限制都设置成无。
比如这里  1 是枪兵技能,2 是矛兵技能。
艾力克是枪兵 塔丽娜是矛兵
枪兵1级学习 1 技能,矛兵1级学习 2 技能
判断=>艾力克装备方天画戟
                                    ↓学习技能 2
判断=>塔丽娜装备方天画戟
                                    ↓学习技能 1
……
话说矛(mao)兵(bing)真的好么!!
QQ图片20140708110355.jpg

点评

是我理解错了么?……事件党无力  发表于 2014-7-9 08:01
你一定没认真看……  发表于 2014-7-8 13:04
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2014-7-8 14:40:27 | 显示全部楼层
这么说大概行吧。

突刺:发动技能所需要武器:枪、方天画戟

横扫:发动技能所需要武器:矛,方天画戟
回复

使用道具 举报

梦石
0
星屑
342
在线时间
377 小时
注册时间
2013-1-30
回帖
162
 楼主| 发表于 2014-7-9 02:03:04 | 显示全部楼层
taroxd 发表于 2014-7-7 12:49
我没测试,报错了不要打我(呃,真报错或者用不了的话还是回复一下吧……)

脚本亲测超实用,所以追问一下,如果想把防具也弄成这种多种类型的,比如女武神之靴=魔法防具+女性专用防具,这要怎么弄?
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-9 05:53:05 | 显示全部楼层
本帖最后由 taroxd 于 2014-7-9 06:05 编辑
qknight 发表于 2014-7-9 02:03
脚本亲测超实用,所以追问一下,如果想把防具也弄成这种多种类型的,比如女武神之靴=魔法防具+女性专用防 ...


呃,你好,我这个脚本呢是、只要满足一个条件就可以装备的……

因为楼主说“只能拿枪的枪兵拿上它发出矛系的必杀技”,因此只要满足枪和矛之一就可以装备。

但是我看了你这个要求,难道只要可以装备魔法防具,男的也可以装备女性专用的防具吗?
如果不是追求这个效果,你可以干脆设置一个类别,叫做“女性专用魔法防具”即可,不需要什么脚本。

如果你依旧需要“只要满足条件之一即可装备”的话:

[pre lang="ruby" line="1"]# 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id
# 在防具上备注 <atype 2 5 6> 2, 5, 6 是防具类型的 id
# 备注后,原来武器类型的设置失效

class RPG::Weapon

  def wtypes
    @wtypes ||=
    if @note =~ /<wtype((?:\s+\d+)+)\s*>/i
      $1.strip.split(/\s+/).map(&:to_i)
    else
      [wtype_id]
    end
  end

end

class RPG::Armor

  def atypes
    @atypes ||=
    if @note =~ /<atype((?:\s+\d+)+)\s*>/i
      $1.strip.split(/\s+/).map(&:to_i)
    else
      [atype_id]
    end
  end

end


class Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 判定物品是否可以装备
  #--------------------------------------------------------------------------
  def equippable?(item)
    return false unless item.is_a?(RPG::EquipItem)
    return false if equip_type_sealed?(item.etype_id)
    return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon)
    return item.atypes.any? {|atype_id| equip_atype_ok?(atype_id) } if item.is_a?(RPG::Armor)
    return false
  end
end

class Game_Actor
  #--------------------------------------------------------------------------
  # ● 是否装备着特定类型的武器装备
  #--------------------------------------------------------------------------
  def wtype_equipped?(wtype_id)
    weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) }
  end
end[/pre]

依旧没有测试,但我相信上次没有问题的话这次也应该没有问题。
如果你需要“满足所有条件才可以装备”的话,可以把39、40行的 any? 改成 all?
或者,“装备条件以默认设置为准”的话,请把 32 到 43 行删去。但是这样护甲的设置就没有任何意义了。
@熊喵酱 大概可以结贴了吧

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
熊喵酱 + 200 + 2 應該可以了 不行的話再說

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部