Project1

标题: 请教各位如何获取道具的使用目标 [打印本页]

作者: timiesea    时间: 2014-3-29 11:06
标题: 请教各位如何获取道具的使用目标
本帖最后由 timiesea 于 2014-3-30 10:39 编辑

游戏中有一个道具:技能书。这个技能书可以遗忘旧的技能并且学习新的技能。

学习新的技能比较简单:


但是遗忘技能就比较困难了,因为在预设里面只有学习没有遗忘,而且也似乎没有简单的办法来知道是谁被使用了道具。

目前我暂时采取状态法加上少量的脚本达到效果:使用物品附加状态,然后执行公共事件。


不过我总感觉这个方法不是很效率,大家有没有别的更好的方法?
作者: taroxd    时间: 2014-3-29 12:21
既然会用脚本就不要靠公共事件,用纯脚本解决吧
作者: timiesea    时间: 2014-3-29 13:19
taroxd 发表于 2014-3-29 12:21
既然会用脚本就不要靠公共事件,用纯脚本解决吧

我讨厌脚本!不过确实有趣!
作者: 喵呜喵5    时间: 2014-3-29 13:43
  1. =begin
  2. ===============================================================================
  3.   能够遗忘技能的道具 By喵呜喵5
  4. ===============================================================================

  5. 【说明】

  6.   在道具的备注中加入:
  7.   
  8.   “遗忘技能 = 技能的ID”
  9.   
  10.   (不包括双引号),
  11.   使用这个道具时道具的使用者就能遗忘指定的技能
  12.   
  13.   这个脚本需要搭配
  14.   《读取备注栏脚本》(http://rpg.blue/thread-99474-1-1.html)一起共同使用
  15.   
  16. =end
  17. $m5script = {} if $m5script.nil?
  18. $m5script["M5ForgetSkill"] = true
  19. module M5ForgetSkill
  20. #==============================================================================
  21. # 设定部分
  22. #==============================================================================
  23.   
  24.   LIMIT = true  # true / false
  25.   
  26.   #设置为false的情况下,只有物品的使用者掌握有需要遗忘技能的时候遗忘道具才有用
  27.   #(否则如果遗忘道具没有其他效果(恢复HP、执行公共事件……)时无法使用)
  28.   
  29. #==============================================================================
  30. # 设定结束
  31. #==============================================================================
  32. #==============================================================================
  33. # 脚本部分
  34. #==============================================================================
  35. end
  36. class Game_Battler  
  37.   alias m5_20140329_valid? item_has_any_valid_effects?
  38.   def item_has_any_valid_effects?(user, item)
  39.     m5_20140329_valid?(user, item) || m5_forget_skill?(user,item)
  40.   end
  41.   def m5_forget_skill?(user,item)
  42.     for_skill = $data_items[item.id].read_note('遗忘技能')   
  43.     return false if !for_skill || !actor?
  44.     return true if M5ForgetSkill::LIMIT
  45.     return true if skills.include?($data_skills[for_skill])
  46.     false
  47.   end
  48.   def m5_item_effect_forget_skill(user, skill_id)
  49.     forget_skill(skill_id) if actor?
  50.     @result.success = true
  51.   end  
  52.   alias m5_20140329_item_user_effect item_user_effect
  53.   def item_user_effect(user, item)   
  54.     if (skill_id = $data_items[item.id].read_note('遗忘技能'))
  55.       m5_item_effect_forget_skill(user, skill_id)
  56.     end
  57.     m5_20140329_item_user_effect(user, item)
  58.   end
  59. end
复制代码





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