【功能脚本】〓 记录杀敌数量 〓
一个简单的脚本,在比较冷门的地方下手,避免引起与其它脚本的冲突。不论是明雷还是暗雷怪, 都可以代入一个变量获取当前的杀敌数量或总共杀敌数量。
也可以指定记录,获取从指定开始到当前的杀敌数量。
这样节省了用一堆游戏变量去进行各种记录和运算的麻烦。
RUBY 代码
#==============================================================================
# 〓 记录杀敌数量 〓 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
#--------------------------------------------------------------------------
defself.start_counting(enemy_id)
$game_party.start_counting(enemy_id)
end
#--------------------------------------------------------------------------
defself.discharge_count(enemy_id)
$game_party.discharge_count(enemy_id)
end
#--------------------------------------------------------------------------
defself.sbt_killed_num(enemy_id, val_id)
$game_variables = $game_party.killed_num(enemy_id)
end
#--------------------------------------------------------------------------
defself.sbt_killed_counting(enemy_id, val_id)
$game_variables = $game_party.killed_counting(enemy_id)
end
#--------------------------------------------------------------------------
defself.sbt_all_killed(val_id)
$game_variables = $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 == 0 ? all_killed : killed_num(enemy_id)
end
#--------------------------------------------------------------------------
def discharge_count(enemy_id)
@counting_record = 0if@counting_record
end
#--------------------------------------------------------------------------
def killed_num(enemy_id)
return@killed_data || 0
end
#--------------------------------------------------------------------------
def killed_counting(enemy_id)
num = enemy_id == 0 ? all_killed : killed_num(enemy_id)
return num - (@counting_record || 0)
end
#--------------------------------------------------------------------------
def all_killed
returneval(@killed_data.find_all{|n| n}.join("+"))
end
#--------------------------------------------------------------------------
def record_kills(enemy_id)
@killed_data = killed_num(enemy_id) + 1
end
end
#==============================================================================
#==============================================================================
本帖来自P1论坛作者芯☆淡茹水,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=408313若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]