Project1

标题: 技能书学习问题 [打印本页]

作者: jrgerm    时间: 2008-5-12 20:52
标题: 技能书学习问题
我想设置一个通过技能书学习技能的系统,现在想的办法都很麻烦,我希望达到的效果是对某一人物使用技能书就能让该任务学会某技能,我想这应该能不通过脚本完成吧,希望高手能讲的详细点,本人刚接触RM,谢谢了 [LINE]1,#dddddd[/LINE]此贴于 2008-5-12 15:12:58 被版主水迭澜提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-5-16 0:55:30 被版主水迭澜提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 水迭澜    时间: 2008-5-12 20:58
http://rpg.blue/web/htm/news163.htm [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: 八云紫    时间: 2008-5-12 21:00
用事件来做的话,会遇到一个 瓶颈 ,就是无法确认是谁使用了这个物品。

至少需要在事件的脚本里使用脚本,就是脚本 + 事件,以事件为主。
作者: 禾西    时间: 2008-5-12 21:05
禾西剛好有這個腳本:
  1. module State_Skill
  2.   #--------------------------------------------------------------------------
  3.   # ● 參考數組取得
  4.   #--------------------------------------------------------------------------
  5.   
  6.   Data = []
  7.   $data_skills      ||= load_data("Data/Skills.rxdata")
  8.   $data_states      ||= load_data("Data/States.rxdata")
  9.   # 查找「基本同名」的「狀態」與「技能」
  10.   for i in 1...$data_states.size
  11.     next unless $data_states[i].name =~ /^skill(\D*)/
  12.     for i2 in 1...$data_skills.size
  13.       Data.push [i,i2] if ($data_skills[i2].name == $1)
  14.     end
  15.   end
  16. end

  17. #----------------------------------------------------------------------------
  18. # ● 召喚原方法
  19. #----------------------------------------------------------------------------
  20. class Game_Battler
  21.   alias oxox_add_state    add_state
  22.   alias oxox_remove_state remove_state
  23.   #--------------------------------------------------------------------------
  24.   # ● 附加状态
  25.   #     state_id : 状态 ID
  26.   #     force    : 强制附加标志 (处理自动状态时使用)
  27.   #--------------------------------------------------------------------------
  28.   def add_state(state_id, force = false)
  29.     oxox_add_state(state_id, force)
  30.     State_Skill::Data.each{|i|
  31.     if i[0] == state_id
  32.       if i[1] != 0
  33.         learn_skill(i[1])
  34.         @states.delete(state_id) unless force
  35.       end
  36.     end}
  37.   end

  38.   #--------------------------------------------------------------------------
  39.   # ● ステートの解除
  40.   #     state_id : ステート ID
  41.   #     force    : 強制解除フラグ (オートステートの処理で使用)
  42.   #--------------------------------------------------------------------------
  43.   def remove_state(state_id, force = false)
  44.     oxox_remove_state(state_id, force)
  45.     State_Skill::Data.each{|i|
  46.     if i[0] == state_id
  47.       if i[1] != 0
  48.         forget_skill(i[1])
  49.       end
  50.     end}
  51.   end
  52. end
复制代码

附加某個名字爲
skill技能名字
的狀態就會習得該個技能
比如
skill光
習得光技能
作者: jrgerm    时间: 2008-5-12 22:46
哦,谢谢三位了哦{/cy}
作者: 水迭澜    时间: 2008-5-12 23:12
咳……注意结帖~




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