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

Project1

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

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
342
在线时间
377 小时
注册时间
2013-1-30
帖子
219
跳转到指定楼层
1
发表于 2014-7-7 01:13:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

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

点评

枪和矛基本是一样的……  发表于 2014-7-7 08:28

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

2
发表于 2014-7-7 08:05:26 | 只看该作者
枪兵和矛兵都得设置一个共有的武器类型,然后方天画戟属于这一类

评分

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

查看全部评分

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

使用道具 举报

Lv2.观梦者

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

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

点评

水果怎么可能是  发表于 2014-7-7 15:36
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-7-7 12:49:30 | 只看该作者
本帖最后由 taroxd 于 2014-7-9 05:58 编辑

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

RUBY 代码复制
  1. # 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id
  2. # 备注后,原来武器类型的设置失效
  3.  
  4. class RPG::Weapon
  5.  
  6.   def wtypes
  7.     @wtypes ||=
  8.     if @note =~ /<wtype((?:\s+\d+)+)\s*>/
  9.       $1.strip.split(/\s+/).map(&:to_i)
  10.     else
  11.       [wtype_id]
  12.     end
  13.   end
  14.  
  15. end
  16.  
  17. class Game_BattlerBase
  18.   #--------------------------------------------------------------------------
  19.   # ● 判定物品是否可以装备
  20.   #--------------------------------------------------------------------------
  21.   def equippable?(item)
  22.     return false unless item.is_a?(RPG::EquipItem)
  23.     return false if equip_type_sealed?(item.etype_id)
  24.     return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon)
  25.     return equip_atype_ok?(item.atype_id) if item.is_a?(RPG::Armor)
  26.     return false
  27.   end
  28. end
  29.  
  30. class Game_Actor
  31.   #--------------------------------------------------------------------------
  32.   # ● 是否装备着特定类型的武器装备
  33.   #--------------------------------------------------------------------------
  34.   def wtype_equipped?(wtype_id)
  35.     weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) }
  36.   end
  37. end

点评

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2014-6-29
帖子
46
5
发表于 2014-7-8 11:24:38 | 只看该作者
技能的武器限制都设置成无。
比如这里  1 是枪兵技能,2 是矛兵技能。
艾力克是枪兵 塔丽娜是矛兵
枪兵1级学习 1 技能,矛兵1级学习 2 技能
判断=>艾力克装备方天画戟
                                    ↓学习技能 2
判断=>塔丽娜装备方天画戟
                                    ↓学习技能 1
……
话说矛(mao)兵(bing)真的好么!!

QQ图片20140708110355.jpg (126.94 KB, 下载次数: 28)

QQ图片20140708110355.jpg

点评

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
帖子
799
6
发表于 2014-7-8 14:40:27 | 只看该作者
这么说大概行吧。

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

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

使用道具 举报

Lv2.观梦者

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

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

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

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


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

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

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

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

RUBY 代码复制
  1. # 在武器上备注 <wtype 2 5 6> 2, 5, 6 是武器类型的 id
  2. # 在防具上备注 <atype 2 5 6> 2, 5, 6 是防具类型的 id
  3. # 备注后,原来武器类型的设置失效
  4.  
  5. class RPG::Weapon
  6.  
  7.   def wtypes
  8.     @wtypes ||=
  9.     if @note =~ /<wtype((?:\s+\d+)+)\s*>/i
  10.       $1.strip.split(/\s+/).map(&:to_i)
  11.     else
  12.       [wtype_id]
  13.     end
  14.   end
  15.  
  16. end
  17.  
  18. class RPG::Armor
  19.  
  20.   def atypes
  21.     @atypes ||=
  22.     if @note =~ /<atype((?:\s+\d+)+)\s*>/i
  23.       $1.strip.split(/\s+/).map(&:to_i)
  24.     else
  25.       [atype_id]
  26.     end
  27.   end
  28.  
  29. end
  30.  
  31.  
  32. class Game_BattlerBase
  33.   #--------------------------------------------------------------------------
  34.   # ● 判定物品是否可以装备
  35.   #--------------------------------------------------------------------------
  36.   def equippable?(item)
  37.     return false unless item.is_a?(RPG::EquipItem)
  38.     return false if equip_type_sealed?(item.etype_id)
  39.     return item.wtypes.any? {|wtype_id| equip_wtype_ok?(wtype_id) } if item.is_a?(RPG::Weapon)
  40.     return item.atypes.any? {|atype_id| equip_atype_ok?(atype_id) } if item.is_a?(RPG::Armor)
  41.     return false
  42.   end
  43. end
  44.  
  45. class Game_Actor
  46.   #--------------------------------------------------------------------------
  47.   # ● 是否装备着特定类型的武器装备
  48.   #--------------------------------------------------------------------------
  49.   def wtype_equipped?(wtype_id)
  50.     weapons.any? {|weapon| weapon.wtypes.include?(wtype_id) }
  51.   end
  52. end


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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 17:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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