#==============================================================================
# 〓 记录杀敌数量 〓 Author : 芯☆淡茹水
#==============================================================================
#----------------------------------------------------------------------------
# 事件 - 脚本 : XdRs.start_counting(enemy_id)
# 设置当前某个敌人的杀死数量为起点,开始记录数量。
# enemy_id :敌人ID。(该参数写 0 时,将设置记录为 所有敌人的总杀敌数)
#
# 与此相对应的获取有设置起点的杀敌数量代入变量:
# 事件 - 脚本:XdRs.sbt_killed_counting(enemy_id, val_id)
# 从上面的记录开始,到现在的某个敌人杀死数量。
# enemy_id :敌人ID。
# (该参数写 0 时,将获取从记录到现在的 所有敌人的总杀敌数)
# val_id :代入的变量ID
#
# 事件 - 脚本 : XdRs.discharge_count(enemy_id)
# 清除某个敌人的杀死数量起始点记录。
# enemy_id :敌人ID。(该参数写 0 时,清除 所有敌人的总杀敌数 记录)
#
# 上面三项,可以配合运用到有 杀敌条件 的任务中。
# 例:击败 13 号敌人 n 只。
# 1,接到任务时开始记录数量:事件 - 脚本:XdRs.start_counting(13)
# 2,从记录开始到现在的 13 号敌人杀死数量,代入 5 号变量,
# 可以利用 5 号变量判断数量是否达成:
# 事件 - 脚本:XdRs.sbt_killed_counting(13, 5)
# 3,数量达到要求,完成任务时,取消 13 号敌人的记录:
# 事件 - 脚本:XdRs.discharge_count(13)
#----------------------------------------------------------------------------
# 事件 - 脚本 : XdRs.sbt_killed_num(enemy_id, val_id)
# 将某类敌人的总共杀死数量代入一个变量。
# enemy_id :获取杀死数量的敌人ID。
# val_id :代入的变量ID。
#
# 例:将 12 号敌人当前总共杀死数量代入 5 号变量
# => 事件 - 脚本 :XdRs.sbt_killed_num(12, 5)
#----------------------------------------------------------------------------
# 事件 - 脚本 : XdRs.sbt_all_killed(val_id)
# 将所有敌人总共的杀死数量代入一个变量。
# val_id :代入的变量ID。
#
# 例:将当前所有敌人总共的杀死数量代入 8 号变量
# => 事件 - 脚本 :XdRs.sbt_all_killed(8)
#==============================================================================
module XdRs
#--------------------------------------------------------------------------
def self.start_counting(enemy_id)
$game_party.start_counting(enemy_id)
end
#--------------------------------------------------------------------------
def self.discharge_count(enemy_id)
$game_party.discharge_count(enemy_id)
end
#--------------------------------------------------------------------------
def self.sbt_killed_num(enemy_id, val_id)
$game_variables[val_id] = $game_party.killed_num(enemy_id)
end
#--------------------------------------------------------------------------
def self.sbt_killed_counting(enemy_id, val_id)
$game_variables[val_id] = $game_party.killed_counting(enemy_id)
end
#--------------------------------------------------------------------------
def self.sbt_all_killed(val_id)
$game_variables[val_id] = $game_party.all_killed
end
end
#==============================================================================
class Game_Enemy
#--------------------------------------------------------------------------
alias xr_killRecord_exp exp
def exp
$game_party.record_kills(@enemy_id)
return xr_killRecord_exp
end
end
#==============================================================================
class Game_Party
#--------------------------------------------------------------------------
alias xr_killRecord_initialize initialize
def initialize
xr_killRecord_initialize
clear_killed_data
end
#--------------------------------------------------------------------------
def clear_killed_data
@killed_data = []
@counting_record = []
end
#--------------------------------------------------------------------------
def start_counting(enemy_id)
@counting_record[enemy_id] = enemy_id == 0 ? all_killed : killed_num(enemy_id)
end
#--------------------------------------------------------------------------
def discharge_count(enemy_id)
@counting_record[enemy_id] = 0 if @counting_record[enemy_id]
end
#--------------------------------------------------------------------------
def killed_num(enemy_id)
return @killed_data[enemy_id] || 0
end
#--------------------------------------------------------------------------
def killed_counting(enemy_id)
num = enemy_id == 0 ? all_killed : killed_num(enemy_id)
return num - (@counting_record[enemy_id] || 0)
end
#--------------------------------------------------------------------------
def all_killed
return eval(@killed_data.find_all{|n| n}.join("+"))
end
#--------------------------------------------------------------------------
def record_kills(enemy_id)
@killed_data[enemy_id] = killed_num(enemy_id) + 1
end
end
#==============================================================================
#==============================================================================