设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3787|回复: 6
打印 上一主题 下一主题

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

[复制链接]

Lv5.捕梦者

梦石
0
星屑
33499
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

跳转到指定楼层
1
发表于 2018-5-3 11:48:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

   一个简单的脚本,在比较冷门的地方下手,避免引起与其它脚本的冲突。

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

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.   def self.start_counting(enemy_id)
  47.     $game_party.start_counting(enemy_id)
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   def self.discharge_count(enemy_id)
  51.     $game_party.discharge_count(enemy_id)
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   def self.sbt_killed_num(enemy_id, val_id)
  55.     $game_variables[val_id] = $game_party.killed_num(enemy_id)
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   def self.sbt_killed_counting(enemy_id, val_id)
  59.     $game_variables[val_id] = $game_party.killed_counting(enemy_id)
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   def self.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] = 0 if @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.     return eval(@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. #==============================================================================

评分

参与人数 3+3 收起 理由
文雅夕露 + 1 塞糖
白嫩白嫩的 + 1 跪拜芯大佬~
灯笼菜刀王 + 1 精品文章

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
2
发表于 2018-5-3 13:33:23 | 只看该作者
XP是仿网游首选 += 1

点评

单机也是有任务的。  发表于 2018-5-3 19:44
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2018-5-3 14:05:37 | 只看该作者
任务的事情还是交给任务来···
这个可以拿来再细化,做成每个角色单独记录
参考Dota2的记录铭刻宝石,后面可以做成这样的:
比如1号角色击杀了多少个敌人,2号角色通过防御吸收减免了多少的伤害,3号角色给队友加了多少血,4号角色爆死敌人多少次···

点评

都想摸鱼XXX  发表于 2018-5-3 21:49
这么多数据,势必还需要显示出来。我只是偷懒而已。  发表于 2018-5-3 19:44
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
149
在线时间
21 小时
注册时间
2017-12-22
帖子
6
4
发表于 2018-8-24 18:26:15 | 只看该作者
这个不错 真的是摸鱼了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 17:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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