Project1

标题: VA如何做出普通攻击后随机释放技能? [打印本页]

作者: tan12345    时间: 2013-8-3 21:49
标题: VA如何做出普通攻击后随机释放技能?
本帖最后由 tan12345 于 2013-8-10 20:53 编辑

我想做个普通攻击后随机释放技能,比如学习A技能后普通攻击有几率释放技能,以前用RMXP,已经能实现了,但是换成VA后代码什么的变化太大,所以只能求救大家了
作者: a0936459772    时间: 2013-8-4 00:32
本帖最后由 a0936459772 于 2013-8-4 01:34 编辑

攻擊插入公共事件


這是公共事件的設定,我只弄得出針對一個主角而已...



只親測過一次有效,應該還會有問題...

13.08.04 AM 01:33
沒錯真的出問題了,其他人普攻也會觸發這個效果
如果有使用職業對應普攻腳本,應該可以解決

作者: szhb89122    时间: 2013-8-4 01:18
楼上的方法应该会导致无论任何角色(包括敌人)使用普通攻击时,只要艾利克学会了84号技能,都会放出一次84号技能来。使用这个方法前还要先让艾利克的普通攻击跟其他角色的普通攻击区分开来才行。
作者: 1715063941    时间: 2013-8-4 09:35
本帖最后由 1715063941 于 2013-8-4 09:44 编辑

用那个坑爹的Battle symppoy试试?
不妨试试孤的想法?
直接删掉普通攻击
全部人物习得各自的技能,其中一个无消耗,作为普通攻击
作者: szhb89122    时间: 2013-8-4 13:41
本帖最后由 szhb89122 于 2013-8-4 13:43 编辑

楼上的方法可行但玩起来比较蛋疼,每次都要选技能...建议改一下脚本,让每个角色的普通攻击跟其他角色的普通攻击区分开来。比如说根据武器类型来区分,再为每个角色指定固定的武器类型,再用2L的方法为这些武器类型对应的普通攻击技能增加公共事件,就可以实现LZ的效果。

举个例子,把这段代码插到main前。效果是装备斧头的话普通攻击就会变成火球,装备其他武器就还是普通攻击。想要对应更多的武器类型,只要在set_attack_skill里增加if判断就可以了就行了。
PS:我是新手,不敢保证这脚本没其他问题哈...
  1. #encoding:utf-8

  2. # ★ 根据武器类型改变普通攻击技能
  3. # ★ szhb89122

  4. #==============================================================================
  5. # ■ Game_BattlerBase
  6. #------------------------------------------------------------------------------
  7. #  管理战斗者的类。主要含有能力值计算的方法。Game_Battler 类的父类。
  8. #==============================================================================

  9. class Game_BattlerBase
  10.   #--------------------------------------------------------------------------
  11.   # ● 定义实例变量
  12.   #--------------------------------------------------------------------------
  13.   attr_reader   :attack_skill_id
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化对象
  16.   #--------------------------------------------------------------------------
  17.   alias initialize_ace initialize
  18.   def initialize
  19.     initialize_ace
  20.     @attack_skill_id = 1
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取普通攻击的技能 ID
  24.   #--------------------------------------------------------------------------
  25.   def attack_skill_id
  26.     return @attack_skill_id
  27.   end
  28. end


  29. #==============================================================================
  30. # ■ Game_Actor
  31. #------------------------------------------------------------------------------
  32. #  管理角色的类。
  33. #   本类在 Game_Actors 类 ($game_actors) 的内部使用。
  34. #   具体使用请查看 Game_Party 类 ($game_party) 。
  35. #==============================================================================

  36. class Game_Actor < Game_Battler
  37.   #--------------------------------------------------------------------------
  38.   # ● 设置
  39.   #--------------------------------------------------------------------------
  40.   alias setup_ace setup
  41.   def setup(actor_id)
  42.     setup_ace(actor_id)
  43.     set_attack_skill
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 更换装备
  47.   #     slot_id : 装备栏 ID
  48.   #     item    : 武器/护甲(为 nil 时装备解除)
  49.   #--------------------------------------------------------------------------
  50.   alias change_equip_ace change_equip
  51.   def change_equip(slot_id, item)
  52.     change_equip_ace(slot_id, item)
  53.     set_attack_skill
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 强制更换装备
  57.   #     slot_id : 装备栏 ID
  58.   #     item    : 武器/护甲(为 nil 时装备解除)
  59.   #--------------------------------------------------------------------------
  60.   alias force_change_equip_ace force_change_equip
  61.   def force_change_equip(slot_id, item)
  62.     force_change_equip_ace(slot_id, item)
  63.     set_attack_skill
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 设置普通攻击的技能
  67.   #--------------------------------------------------------------------------
  68.   def set_attack_skill
  69.     if wtype_equipped?(1)
  70.       set_attack_skill_id(51)
  71.     else
  72.       set_attack_skill_id(1)
  73.     end
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 设置普通攻击的技能 ID
  77.   #--------------------------------------------------------------------------
  78.   def set_attack_skill_id(id)
  79.     return @attack_skill_id = id
  80.   end
  81. end
复制代码

作者: tan12345    时间: 2013-8-4 22:40
感谢各位大大的帮助,还有别的脚本能实现吗?我在主站上找到一个XP的,自己改了半天没改出来,求帮助。以下是主站上XP的脚本http://www.66rpg.com/articles/4439




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