Project1

标题: 【VA】LZSB系列第六蛋·技能冷却系统v1.03 [打印本页]

作者: 阿尔西斯的马甲    时间: 2012-1-30 16:19
标题: 【VA】LZSB系列第六蛋·技能冷却系统v1.03
本帖最后由 阿尔西斯的马甲 于 2012-1-30 20:53 编辑

为了理顺思维,继续第七蛋兰州烧饼工程,我放出一个1.03版的技能冷却系统
  1. module RPG
  2.   class Skill
  3.     def coldto(cold,actor)
  4.       cold(actor)
  5.       @cold[actor]=cold
  6.       @cold[actor]=cold(actor)
  7.     end
  8.     def cold(actor)
  9.       @cold=[] if @cold==nil
  10.       if actor!=nil
  11.         @cold[actor]=0 if @cold[actor]==nil
  12.       end
  13.       [@cold[actor],0].max
  14.     end
  15.   end
  16. end
  17. class Game_Actor
  18.   def acid; @actor_id ;end
  19.   def skls; @skills ;end
  20.   alias lqote on_action_end
  21.   def on_action_end
  22.     lqote
  23.     for i in @skills
  24.       j=$data_skills[i]
  25.       j.coldto(j.cold(@actor_id)-1,@actor_id)
  26.     end
  27.   end
  28.   alias skill_cold_payable? skill_cost_payable?
  29.   def skill_cost_payable?(skill)
  30.     skill.cold(@actor_id)==0 && skill_cold_payable?(skill)
  31.   end
  32. end
  33. class Game_Battler
  34.   alias lqitm item_apply
  35.   def item_apply(user, item)
  36.     lqitm(user, item)
  37.     if item.is_a?(RPG::Skill) and user.is_a?(Game_Actor) and SceneManager.scene_is?(Scene_Battle)
  38.       sklcold = 0
  39.       item.note.split(/[\r\n]+/).each { |line|
  40.         case line
  41.         when /<(?:SKLCOLD|sklcold):[ ](\d+)>/i
  42.           sklcold = $1.to_i
  43.         end
  44.       }
  45.       item.coldto(sklcold,user.acid)
  46.     end
  47.   end
  48. end
  49. class Window_Help
  50.   def set_item(item,actor=nil)
  51.     if actor.nil? or item.cold(actor.acid)==0
  52.       set_text(item ? item.description : "")
  53.     else
  54.       set_text(item ? item.description+"冷却回合:"+item.cold(actor.acid).to_s : "")
  55.     end
  56.   end
  57. end
  58. class Window_SkillList
  59.   def update_help
  60.     @help_window.set_item(item,@actor)
  61.   end
  62. end
  63. class Scene_Battle
  64.   alias ptcold pre_terminate
  65.   def pre_terminate
  66.     ptcold
  67.     for i in $game_party.all_members
  68.       for j in i.skls
  69.         $data_skills[j].coldto(0,i.acid)
  70.       end
  71.     end
  72.   end
  73. end
  74. #在技能备注里这样写:
  75. #<sklcold: 3>
  76. #注意sklcold是冷却回合
  77. #如果要详细了解,就自己试试吧!
  78. #1.03版本是最终版。修正了几乎一切BUG,显示也更美观。旨在整理我混乱的思路。
复制代码

作者: 永远の路克酱    时间: 2012-1-30 16:36
原来是按回合算的,如果是按时间的话可以用在ARPG
作者: xuzhengchi    时间: 2012-1-30 20:13
等这个东西很久了!话说是否兼容即时战斗?
作者: xmheart    时间: 2012-1-30 22:54
呃。。。。LZ,脚本呢。。。。。。是被删了还是要修改?
作者: xuzhengchi    时间: 2012-1-30 23:12

在菜单里查看技能时报错。
作者: 一楼    时间: 2012-1-31 15:05
提示: 作者被禁止或删除 内容自动屏蔽




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