Project1

标题: 关于如何实现缴械,碎甲 [打印本页]

作者: 白色幸福    时间: 2019-1-20 23:53
标题: 关于如何实现缴械,碎甲
写了一个技能,技能会给玩家一个状态,禁用你的武器,铠甲,饰品。装备都被打掉了,玩家会很脆。
于是乎我就让这个状态只能持续两回合。结果,在这场战斗中玩家的装备一直都是禁用的了2333.
如何解决在战斗中状态消失后,玩家能重新使用装备?
作者: Niko_    时间: 2019-1-21 00:31
装备禁用的原因:
被“缴械”后,玩家的装备“被打下来”了。等状态结束后,装备并没有自动装回去,就有了一直禁用的情况。战斗结束后你是可以重新把装备装回去的。
一个“另类”的解决方法:
加一个战斗中装装备的脚本。。。
作者: 白色幸福    时间: 2019-1-21 00:42
Niko_ 发表于 2019-1-21 00:31
装备禁用的原因:
被“缴械”后,玩家的装备“被打下来”了。等状态结束后,装备并没有自动装回去,就有了 ...

那倒的确是,不过这样一旦缴械玩家就很容易被大boss打死还打不死大boss2333
我没试过战斗结束后会怎样。太晚了,明天我试试做一个
作者: Niko_    时间: 2019-1-21 00:45
白色幸福 发表于 2019-1-21 00:42
那倒的确是,不过这样一旦缴械玩家就很容易被大boss打死还打不死大boss2333
我没试过战斗结束后会怎样。 ...

这就是怪物强度的问题了。你可以在boss战中给一个脆皮小怪缴械技能的。。。
作者: RMVXA    时间: 2019-1-21 08:03
换个思路:【禁用装备状态】干脆直到战斗结束自动解除好了。设置这个小怪在N回合后使用加这个状态的技能,玩家要想打过BOSS,必须在前N回合内杀掉这个小怪,不是更有战略性嘛……

作者: 白色幸福    时间: 2019-1-21 10:17
RMVXA 发表于 2019-1-21 08:03
换个思路:【禁用装备状态】干脆直到战斗结束自动解除好了。设置这个小怪在N回合后使用加这个状态的技能, ...

我的确是按照你们这个思路来的,当然缴械不是百分百成功
当然我看好像有战斗中换装的脚本,不过不是我这个例子
作者: KB.Driver    时间: 2019-1-21 20:29


RUBY 代码复制
  1. #==============================================================================
  2. # ■ 装备恢复 By Calendar99
  3. #------------------------------------------------------------------------------
  4. #  战斗中我方被附加带有“禁用装备”的状态导致装备被卸下的场合,
  5. #   状态消失时自动将被卸下的装备恢复。
  6. #   请注意,理论上此脚本与<战斗中更换装备>类脚本相性不好。
  7. #==============================================================================
  8.  
  9. class RPG::State
  10.   #--------------------------------------------------------------------------
  11.   # ● [追加]此状态是否禁用装备
  12.   #--------------------------------------------------------------------------
  13.   def equip_seal?
  14.     features.each{|feature| return true if feature.code == 54 }
  15.     false
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● [追加]此状态禁用的装备栏
  19.   #--------------------------------------------------------------------------
  20.   def sealing_slots
  21.     features.select{|f| f.code == 54 }.collect{|f| f.data_id }
  22.   end
  23. end
  24.  
  25. class Game_Actor < Game_Battler
  26.   #--------------------------------------------------------------------------
  27.   # ● [别名修改]初始化
  28.   #--------------------------------------------------------------------------
  29.   alias :initialize_removed_equip :initialize
  30.   def initialize(actor_id)
  31.     initialize_removed_equip(actor_id)
  32.     @removed_equip = {}
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● [继承修改]附加新的状态
  36.   #--------------------------------------------------------------------------
  37.   def add_new_state(state_id)
  38.     @equip_seal = true if $data_states[state_id].equip_seal?
  39.     super
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● [覆盖]卸下无法装备的物品
  43.   #     item_gain : 卸下的装备是否保留
  44.   #--------------------------------------------------------------------------
  45.   def release_unequippable_items(item_gain = true)
  46.     @equips.each_with_index do |item, i|
  47.       if !equippable?(item.object) || item.object.etype_id != equip_slots[i]
  48.         trade_item_with_party(nil, item.object) if item_gain
  49.         #==================================================================
  50.         if @equip_seal
  51.           @removed_equip[i] = item.object if item.object
  52.         end
  53.         #==================================================================
  54.         item.object = nil
  55.       end
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● [继承修改]解除状态
  60.   #--------------------------------------------------------------------------
  61.   def remove_state(state_id)
  62.     super # 调用父类方法
  63.     return if !$data_states[state_id].equip_seal? || @removed_equip.empty?
  64.     $data_states[state_id].sealing_slots.each do |slot_id|
  65.       if (item = @removed_equip.delete(slot_id))
  66.         change_equip(slot_id, item)
  67.       end
  68.     end
  69.     @equip_seal = false if @removed_equip.empty?
  70.     refresh
  71.   end
  72. end

作者: y967    时间: 2019-1-22 19:10
可以用讨巧的方法,比如缴械可以设置状态为攻击力百分比为0,碎甲可以设置防御力百分比为0,这样可以制造一种没有武器和没有防具的假象,好处是,状态没了,攻击力和防御力又恢复过来。
作者: 白色幸福    时间: 2019-1-23 22:33
y967 发表于 2019-1-22 19:10
可以用讨巧的方法,比如缴械可以设置状态为攻击力百分比为0,碎甲可以设置防御力百分比为0,这样可以制造一 ...

倒也不是,主要是徒手还是有伤害的。我赤手空拳打你一下你还是会疼的吧?
而且我这个游戏里很多装备不只是加攻击和防御的,比如说机械都有核心,核心被打掉了很多功能都会瘫痪的。




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