查看: 79|回复: 0

[转载发布] 【功能脚本】〓 记录杀敌数量 〓

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 33 天

    连续签到: 1 天

    [LV.5]常住居民I

    2022

    主题

    32

    回帖

    7144

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5074
    OK点
    16
    积分
    7144
    发表于 同元一千年八月七日(秋) | 显示全部楼层 |阅读模式
    一个简单的脚本,在比较冷门的地方下手,避免引起与其它脚本的冲突。

      不论是明雷还是暗雷怪, 都可以代入一个变量获取当前的杀敌数量或总共杀敌数量。
    也可以指定记录,获取从指定开始到当前的杀敌数量。
    这样节省了用一堆游戏变量去进行各种记录和运算的麻烦。

    RUBY 代码
    1. #==============================================================================
    2. # 〓 记录杀敌数量 〓         Author : 芯☆淡茹水
    3. #==============================================================================
    4. #----------------------------------------------------------------------------
    5. # 事件 - 脚本 : XdRs.start_counting(enemy_id)
    6. # 设置当前某个敌人的杀死数量为起点,开始记录数量。
    7. # enemy_id :敌人ID。(该参数写 0 时,将设置记录为 所有敌人的总杀敌数)
    8. #
    9. # 与此相对应的获取有设置起点的杀敌数量代入变量:
    10. # 事件 - 脚本:XdRs.sbt_killed_counting(enemy_id, val_id)
    11. # 从上面的记录开始,到现在的某个敌人杀死数量。
    12. # enemy_id :敌人ID。
    13. #         (该参数写 0 时,将获取从记录到现在的 所有敌人的总杀敌数)
    14. # val_id   :代入的变量ID
    15. #
    16. # 事件 - 脚本 : XdRs.discharge_count(enemy_id)
    17. # 清除某个敌人的杀死数量起始点记录。
    18. # enemy_id :敌人ID。(该参数写 0 时,清除 所有敌人的总杀敌数 记录)
    19. #
    20. # 上面三项,可以配合运用到有 杀敌条件 的任务中。
    21. # 例:击败 13 号敌人 n 只。
    22. #     1,接到任务时开始记录数量:事件 - 脚本:XdRs.start_counting(13)
    23. #     2,从记录开始到现在的 13 号敌人杀死数量,代入 5 号变量,
    24. #        可以利用 5 号变量判断数量是否达成:
    25. #        事件 - 脚本:XdRs.sbt_killed_counting(13, 5)
    26. #     3,数量达到要求,完成任务时,取消 13 号敌人的记录:
    27. #        事件 - 脚本:XdRs.discharge_count(13)
    28. #----------------------------------------------------------------------------
    29. # 事件 - 脚本 : XdRs.sbt_killed_num(enemy_id, val_id)
    30. # 将某类敌人的总共杀死数量代入一个变量。
    31. # enemy_id :获取杀死数量的敌人ID。
    32. # val_id   :代入的变量ID。
    33. #
    34. # 例:将 12 号敌人当前总共杀死数量代入 5 号变量
    35. #    => 事件 - 脚本 :XdRs.sbt_killed_num(12, 5)
    36. #----------------------------------------------------------------------------
    37. # 事件 - 脚本 : XdRs.sbt_all_killed(val_id)
    38. # 将所有敌人总共的杀死数量代入一个变量。
    39. # val_id   :代入的变量ID。
    40. #
    41. # 例:将当前所有敌人总共的杀死数量代入 8 号变量
    42. #    => 事件 - 脚本 :XdRs.sbt_all_killed(8)
    43. #==============================================================================
    44. module XdRs
    45.   #--------------------------------------------------------------------------
    46.   defself.start_counting(enemy_id)
    47.     $game_party.start_counting(enemy_id)
    48.   end
    49.   #--------------------------------------------------------------------------
    50.   defself.discharge_count(enemy_id)
    51.     $game_party.discharge_count(enemy_id)
    52.   end
    53.   #--------------------------------------------------------------------------
    54.   defself.sbt_killed_num(enemy_id, val_id)
    55.     $game_variables[val_id] = $game_party.killed_num(enemy_id)
    56.   end
    57.   #--------------------------------------------------------------------------
    58.   defself.sbt_killed_counting(enemy_id, val_id)
    59.     $game_variables[val_id] = $game_party.killed_counting(enemy_id)
    60.   end
    61.   #--------------------------------------------------------------------------
    62.   defself.sbt_all_killed(val_id)
    63.     $game_variables[val_id] = $game_party.all_killed
    64.   end
    65. end
    66. #==============================================================================
    67. class Game_Enemy
    68.   #--------------------------------------------------------------------------
    69.   alias xr_killRecord_exp exp
    70.   def exp
    71.     $game_party.record_kills(@enemy_id)
    72.     return xr_killRecord_exp
    73.   end
    74. end
    75. #==============================================================================
    76. class Game_Party
    77.   #--------------------------------------------------------------------------
    78.   alias xr_killRecord_initialize initialize
    79.   def initialize
    80.     xr_killRecord_initialize
    81.     clear_killed_data
    82.   end
    83.   #--------------------------------------------------------------------------
    84.   def clear_killed_data
    85.     @killed_data = []
    86.     @counting_record = []
    87.   end
    88.   #--------------------------------------------------------------------------
    89.   def start_counting(enemy_id)
    90.     @counting_record[enemy_id] = enemy_id == 0 ? all_killed : killed_num(enemy_id)
    91.   end
    92.   #--------------------------------------------------------------------------
    93.   def discharge_count(enemy_id)
    94.     @counting_record[enemy_id] = 0if@counting_record[enemy_id]
    95.   end
    96.   #--------------------------------------------------------------------------
    97.   def killed_num(enemy_id)
    98.     return@killed_data[enemy_id] || 0
    99.   end
    100.   #--------------------------------------------------------------------------
    101.   def killed_counting(enemy_id)
    102.     num = enemy_id == 0 ? all_killed : killed_num(enemy_id)
    103.     return num - (@counting_record[enemy_id] || 0)
    104.   end
    105.   #--------------------------------------------------------------------------
    106.   def all_killed
    107.     returneval(@killed_data.find_all{|n| n}.join("+"))
    108.   end
    109.   #--------------------------------------------------------------------------
    110.   def record_kills(enemy_id)
    111.     @killed_data[enemy_id] = killed_num(enemy_id) + 1
    112.   end
    113. end
    114. #==============================================================================
    115. #==============================================================================
    复制代码

                 本帖来自P1论坛作者芯☆淡茹水,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=408313  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-3 02:39 , Processed in 0.060060 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表