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

Project1

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

[已经过期] 一个任务脚本求用法

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2012-8-30 18:10:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是一个任务脚本(VA脚本整合工程里的),关于敌人击破数的,大意就是接任务后,去打指定ID的怪达到指定数量时可以完成任务。
问题来了,无论我是踩暗雷随机遇敌还是事件直接指定,战斗胜利后都无法增长这个击破数量,永远为0。任务设定那块绝对没有问题,而且即使是原工程里也一样存在这个现象,是不是少了什么地方没有设置?求指导解决。
  1. #==============================================================================
  2. # ■ VXAce-RGSS3-6 撃破数カウンタ [Ver.1.0.0]         by Claimh
  3. #------------------------------------------------------------------------------
  4. # 各アクターが倒したエネミーの数をカウントします。
  5. #------------------------------------------------------------------------------
  6. #・ウィンドウ上に表示させる
  7. #Widow_Statusなどに追記してください。
  8. #<記述>
  9. # draw_defeat_count(actor_id, enemy_id, x, y)
  10. #   actor_id   :対象アクターID(0を指定すると全アクター)
  11. #   enemy_id   :対象エネミーID(0を指定すると全エネミー)
  12. #   x      :横方向の表示位置
  13. #   y      :縦方向の表示位置
  14. #------------------------------------------------------------------------------
  15. #・変数に入れる
  16. #イベントのスクリプト上に記述してください。
  17. #<記述>
  18. # input_defeat_count(actor_id, enemy_id, variable_id)
  19. #   actor_id   :対象アクターID(0を指定すると全アクター)
  20. #   enemy_id   :対象エネミーID(0を指定すると全エネミー)
  21. #   variable_id :撃破数を入れる変数
  22. #==============================================================================

  23. module DefeatCounter ## 他スクリプトとの併用のために残す
  24.   #--------------------------------------------------------------------------
  25.   # ● 指定アクターの撃破数
  26.   #       actor_id      :対象アクターID(0を指定すると全アクター)
  27.   #       enemy_id      :対象エネミーID(0を指定すると全エネミー)
  28.   #--------------------------------------------------------------------------
  29.   def self.defeat_count(actor_id=0, enemy_id=0)
  30.     return $game_actors.defeat(enemy_id, actor_id)
  31.   end
  32. end

  33. class Game_Actor < Game_Battler
  34.   #--------------------------------------------------------------------------
  35.   # ● オブジェクト初期化
  36.   #--------------------------------------------------------------------------
  37.   alias initialize_defeat_count initialize
  38.   def initialize(actor_id)
  39.     initialize_defeat_count(actor_id)
  40.     @defeat = {}
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 撃破数取得
  44.   #--------------------------------------------------------------------------
  45.   def defeat(enemy_id=0)
  46.     return defeat_all if enemy_id == 0
  47.     @defeat[enemy_id] = 0 unless @defeat.keys.include?(enemy_id)
  48.     return @defeat[enemy_id]
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 撃破数取得
  52.   #--------------------------------------------------------------------------
  53.   def defeat_all
  54.     @defeat.keys.inject(0) { |n, id| n += @defeat[id] }
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● 撃破数カウント
  58.   #--------------------------------------------------------------------------
  59.   def defeat_cnt(enemy_id)
  60.     return if enemy_id == 0
  61.     @defeat[enemy_id] = 0 unless @defeat.keys.include?(enemy_id)
  62.     @defeat[enemy_id] += 1
  63.   end
  64. end

  65. class Game_Actors
  66.   #--------------------------------------------------------------------------
  67.   # ● 撃破数取得
  68.   #--------------------------------------------------------------------------
  69.   def defeat(enemy_id=0, actor_id=0)
  70.     return defeat_all(enemy_id) if actor_id == 0
  71.     return self.[](actor_id).defeat(enemy_id)
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 撃破数取得
  75.   #--------------------------------------------------------------------------
  76.   def defeat_all(enemy_id=0)
  77.     @data.inject(0) { |n, actor| n += (actor.nil? ? 0 : actor.defeat(enemy_id)) }
  78.   end
  79. end

  80. #==============================================================================
  81. # ■ Game_Battler
  82. #==============================================================================
  83. class Game_Battler < Game_BattlerBase
  84.   #--------------------------------------------------------------------------
  85.   # ● ダメージの処理
  86.   #    呼び出し前に @result.hp_damage @result.mp_damage @result.hp_drain
  87.   #    @result.mp_drain が設定されていること。
  88.   #--------------------------------------------------------------------------
  89.   alias execute_damage_defeat execute_damage
  90.   def execute_damage(user)
  91.     execute_damage_defeat(user)
  92.     return if actor? or !dead? or user.enemy?
  93.     return if $game_troop.enable_dead_count?(self.index)
  94.     $game_troop.defeat_dead_count(self.index)
  95.     user.defeat_cnt(self.enemy_id)
  96.   end
  97. end


  98. #==============================================================================
  99. # ■ Game_Troop
  100. #==============================================================================
  101. class Game_Troop < Game_Unit
  102.   #--------------------------------------------------------------------------
  103.   # ● セットアップ
  104.   #--------------------------------------------------------------------------
  105.   alias setup_defeat setup
  106.   def setup(troop_id)
  107.     setup_defeat(troop_id)
  108.     @enemy_defeat = []
  109.   end
  110.   #--------------------------------------------------------------------------
  111.   # ● 撃破時のカウント
  112.   #--------------------------------------------------------------------------
  113.   def defeat_dead_count(index)
  114.     @enemy_defeat[index] = true
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● 既にカウント済み?
  118.   #--------------------------------------------------------------------------
  119.   def enable_dead_count?(index)
  120.     @enemy_defeat[index] || false
  121.   end
  122. end


  123. class Game_Interpreter
  124.   #--------------------------------------------------------------------------
  125.   # ● 指定した変数にアクターの撃破数を格納する
  126.   #       actor_id      :対象アクター(0を指定すると全アクター)
  127.   #       enemy_id      :対象エネミー(0を指定すると全エネミー)
  128.   #       variable_id   :撃破数を格納する変数
  129.   #--------------------------------------------------------------------------
  130.   def input_defeat_count(actor_id, enemy_id, variable_id)
  131.     $game_variables[variable_id] = $game_actors.defeat(enemy_id, actor_id)
  132.     return true
  133.   end
  134. end

  135. class Window_Base < Window
  136.   #--------------------------------------------------------------------------
  137.   # ● 指定した変数にアクターの撃破数を表示する
  138.   #       actor_id      :対象アクター(0を指定すると全アクター)
  139.   #       enemy_id      :対象エネミー(0を指定すると全エネミー)
  140.   #       x             :横方向の表示位置
  141.   #       y             :縦方向の表示位置
  142.   #--------------------------------------------------------------------------
  143.   def draw_defeat_count(actor_id, enemy_id, x, y)
  144.     draw_text(x, y, 200, line_height, $game_actors.defeat(enemy_id, actor_id), 2)
  145.   end
  146. end



复制代码

Lv1.梦旅人

风雪夜不归人

梦石
0
星屑
50
在线时间
276 小时
注册时间
2006-3-7
帖子
6721

贵宾

2
发表于 2012-8-31 11:22:01 | 只看该作者
我也不会用,帮顶起来。
不过这个任务系统不只有这一个脚本,而是好几个组成的一套,你的是齐全的么?
首先要在任务设定那个脚本中设定你要打怪的ID

点评

我那边太严了还是回答的人太多了前辈转战VA区了嘛。。。  发表于 2012-8-31 15:48
有些人,到了七八月份就会诈尸。
宫斗,是女生永远的爱。
冷门,是本人不变的欲。
作弊,是玩家自由的痛。
练级,是橙光割舍的情。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-19 14:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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