Project1

标题: 技能次数统计 [打印本页]

作者: blueeyescyj    时间: 2014-6-4 00:30
标题: 技能次数统计
本帖最后由 blueeyescyj 于 2014-6-5 04:41 编辑

如何分别统计不同角色同一技能的使用次数。
好像很简单又好像很复杂的样子。
作者: 皮卡星    时间: 2014-6-4 04:13
  1. #==============================================================================
  2. # ■ Game_System
  3. #------------------------------------------------------------------------------
  4. #  技能使用次数脚本  by - 皮卡星
  5. #==============================================================================

  6. class Game_System
  7.   #--------------------------------------------------------------------------
  8.   # ● 定义实例变量
  9.   #--------------------------------------------------------------------------
  10.   attr_accessor :skill_used
  11.   #--------------------------------------------------------------------------
  12.   # ● 初始化对象
  13.   #--------------------------------------------------------------------------
  14.   alias star_initialize initialize
  15.   def initialize
  16.     star_initialize
  17.     @skill_used = []
  18.     for i in 0..$data_actors.size-2 do @skill_used.push([]) end
  19.     for i in 0...@skill_used.size
  20.       for t in 0...$data_skills.size
  21.         @skill_used[i].push(0)
  22.       end
  23.     end
  24.   end
  25. end

  26. #==============================================================================
  27. # ■ Scene_Battle
  28. #==============================================================================

  29. class Scene_Battle < Scene_Base
  30.   #--------------------------------------------------------------------------
  31.   # ● 技能“确定”
  32.   #--------------------------------------------------------------------------
  33.   alias star_on_skill_ok on_skill_ok
  34.   def on_skill_ok
  35.     @ac = BattleManager.actor
  36.     star_on_skill_ok
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # ● 技能“确定”
  40.   #--------------------------------------------------------------------------
  41.   alias star_use_item use_item
  42.   def use_item
  43.     star_use_item
  44.     item = @subject.current_action.item
  45.     if @subject.actor? and item.is_a?(RPG::Skill)
  46.       $game_system.skill_used[@ac.id-1][item.id-1] += 1
  47.     end
  48.   end
  49. end
复制代码
唉……写了半小时的东西,因为我不擅长VA嘛,
或许写的有点乱了,LZ别介意
在每次使用技能之后都会计算使用次数+1
取得方式:
$game_system.skill_used[角色ID][技能ID]
注意角色ID要从0开始算,也就是说我要拿8号角色的你要填7
技能ID也是从0开始算,普通攻击防御什么的也会算的放心
比如说第4个角色使用5次8号技能,
就要这样调用
$game_system.skill_used[3][7],然后结果会是5

我觉得已经说的很清楚了,好像也没什么BUG了
希望LZ喜欢
作者: taroxd    时间: 2014-6-4 07:39
本帖最后由 Sion 于 2014-6-5 08:58 编辑

未测试
[mw_shl_code=ruby,true]
# 调用方式: $game_actors[角色ID].skill_times(技能ID)

class Game_Battler
  alias init_20140604 initialize
  def initialize
    init_20140604
    @item_times = Hash.new(0)
    @item_times.compare_by_identity
  end

  alias use_20140604 use_item
  def use_item(item)
    use_20140604(item)
    @item_times[item] += 1
  end

  def item_times(item_id)
    @item_times[$data_items[item_id]]
  end

  def skill_times(skill_id)
    @item_times[$data_skills[skill_id]]
  end
   
end
[/mw_shl_code]

@Sion 结贴  




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