赞 | 0 |
VIP | 13 |
好人卡 | 7 |
积分 | 7 |
经验 | 32831 |
最后登录 | 2023-12-15 |
在线时间 | 530 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 723
- 在线时间
- 530 小时
- 注册时间
- 2010-6-9
- 帖子
- 840
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
这是一个任务脚本(VA脚本整合工程里的),关于敌人击破数的,大意就是接任务后,去打指定ID的怪达到指定数量时可以完成任务。
问题来了,无论我是踩暗雷随机遇敌还是事件直接指定,战斗胜利后都无法增长这个击破数量,永远为0。任务设定那块绝对没有问题,而且即使是原工程里也一样存在这个现象,是不是少了什么地方没有设置?求指导解决。- #==============================================================================
- # ■ VXAce-RGSS3-6 撃破数カウンタ [Ver.1.0.0] by Claimh
- #------------------------------------------------------------------------------
- # 各アクターが倒したエネミーの数をカウントします。
- #------------------------------------------------------------------------------
- #・ウィンドウ上に表示させる
- #Widow_Statusなどに追記してください。
- #<記述>
- # draw_defeat_count(actor_id, enemy_id, x, y)
- # actor_id :対象アクターID(0を指定すると全アクター)
- # enemy_id :対象エネミーID(0を指定すると全エネミー)
- # x :横方向の表示位置
- # y :縦方向の表示位置
- #------------------------------------------------------------------------------
- #・変数に入れる
- #イベントのスクリプト上に記述してください。
- #<記述>
- # input_defeat_count(actor_id, enemy_id, variable_id)
- # actor_id :対象アクターID(0を指定すると全アクター)
- # enemy_id :対象エネミーID(0を指定すると全エネミー)
- # variable_id :撃破数を入れる変数
- #==============================================================================
- module DefeatCounter ## 他スクリプトとの併用のために残す
- #--------------------------------------------------------------------------
- # ● 指定アクターの撃破数
- # actor_id :対象アクターID(0を指定すると全アクター)
- # enemy_id :対象エネミーID(0を指定すると全エネミー)
- #--------------------------------------------------------------------------
- def self.defeat_count(actor_id=0, enemy_id=0)
- return $game_actors.defeat(enemy_id, actor_id)
- end
- end
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● オブジェクト初期化
- #--------------------------------------------------------------------------
- alias initialize_defeat_count initialize
- def initialize(actor_id)
- initialize_defeat_count(actor_id)
- @defeat = {}
- end
- #--------------------------------------------------------------------------
- # ● 撃破数取得
- #--------------------------------------------------------------------------
- def defeat(enemy_id=0)
- return defeat_all if enemy_id == 0
- @defeat[enemy_id] = 0 unless @defeat.keys.include?(enemy_id)
- return @defeat[enemy_id]
- end
- #--------------------------------------------------------------------------
- # ● 撃破数取得
- #--------------------------------------------------------------------------
- def defeat_all
- @defeat.keys.inject(0) { |n, id| n += @defeat[id] }
- end
- #--------------------------------------------------------------------------
- # ● 撃破数カウント
- #--------------------------------------------------------------------------
- def defeat_cnt(enemy_id)
- return if enemy_id == 0
- @defeat[enemy_id] = 0 unless @defeat.keys.include?(enemy_id)
- @defeat[enemy_id] += 1
- end
- end
- class Game_Actors
- #--------------------------------------------------------------------------
- # ● 撃破数取得
- #--------------------------------------------------------------------------
- def defeat(enemy_id=0, actor_id=0)
- return defeat_all(enemy_id) if actor_id == 0
- return self.[](actor_id).defeat(enemy_id)
- end
- #--------------------------------------------------------------------------
- # ● 撃破数取得
- #--------------------------------------------------------------------------
- def defeat_all(enemy_id=0)
- @data.inject(0) { |n, actor| n += (actor.nil? ? 0 : actor.defeat(enemy_id)) }
- end
- end
- #==============================================================================
- # ■ Game_Battler
- #==============================================================================
- class Game_Battler < Game_BattlerBase
- #--------------------------------------------------------------------------
- # ● ダメージの処理
- # 呼び出し前に @result.hp_damage @result.mp_damage @result.hp_drain
- # @result.mp_drain が設定されていること。
- #--------------------------------------------------------------------------
- alias execute_damage_defeat execute_damage
- def execute_damage(user)
- execute_damage_defeat(user)
- return if actor? or !dead? or user.enemy?
- return if $game_troop.enable_dead_count?(self.index)
- $game_troop.defeat_dead_count(self.index)
- user.defeat_cnt(self.enemy_id)
- end
- end
- #==============================================================================
- # ■ Game_Troop
- #==============================================================================
- class Game_Troop < Game_Unit
- #--------------------------------------------------------------------------
- # ● セットアップ
- #--------------------------------------------------------------------------
- alias setup_defeat setup
- def setup(troop_id)
- setup_defeat(troop_id)
- @enemy_defeat = []
- end
- #--------------------------------------------------------------------------
- # ● 撃破時のカウント
- #--------------------------------------------------------------------------
- def defeat_dead_count(index)
- @enemy_defeat[index] = true
- end
- #--------------------------------------------------------------------------
- # ● 既にカウント済み?
- #--------------------------------------------------------------------------
- def enable_dead_count?(index)
- @enemy_defeat[index] || false
- end
- end
- class Game_Interpreter
- #--------------------------------------------------------------------------
- # ● 指定した変数にアクターの撃破数を格納する
- # actor_id :対象アクター(0を指定すると全アクター)
- # enemy_id :対象エネミー(0を指定すると全エネミー)
- # variable_id :撃破数を格納する変数
- #--------------------------------------------------------------------------
- def input_defeat_count(actor_id, enemy_id, variable_id)
- $game_variables[variable_id] = $game_actors.defeat(enemy_id, actor_id)
- return true
- end
- end
- class Window_Base < Window
- #--------------------------------------------------------------------------
- # ● 指定した変数にアクターの撃破数を表示する
- # actor_id :対象アクター(0を指定すると全アクター)
- # enemy_id :対象エネミー(0を指定すると全エネミー)
- # x :横方向の表示位置
- # y :縦方向の表示位置
- #--------------------------------------------------------------------------
- def draw_defeat_count(actor_id, enemy_id, x, y)
- draw_text(x, y, 200, line_height, $game_actors.defeat(enemy_id, actor_id), 2)
- end
- end
复制代码 |
|