赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
本帖最后由 雪流星 于 2010-12-31 18:12 编辑
- class Game_System
- alias count_initialize initialize
- # 初始化
- def initialize
- count_initialize
- # 要計算的怪物ID
- @count_kill_enemy_id = []
- # 已殺死的怪物計數
- @count_kill_enemy_count = Array.new(1+$data_enemies.size, 0)
- # 怪物計數對應的系統變量ID
- @count_kill_enemy_vid = Array.new(1+$data_enemies.size, nil)
- end
- # 開始計算
- # 參數︰id 敵人ID 、 var_id 系統變量ID
- def start_count(id, var_id=nil)
- @count_kill_enemy_id.push(id)
- @count_kill_enemy_vid[id] = var_id
- end
- # 終結計算
- # 參數︰id 敵人ID
- def stop_count(id)
- @count_kill_enemy_id.delete(id)
- @count_kill_enemy_count[id] = 0
- $game_variables[@count_kill_enemy_vid[id]] = 0 if @count_kill_enemy_vid[id]
- end
- # 返回已殺死數量
- # 參數︰id 敵人ID
- def count_enemy(id)
- return @count_kill_enemy_count[id]
- end
- def count_enemy?(id)
- return @count_kill_enemy_id.include?(id)
- end
- def enemy_killed(id)
- @count_kill_enemy_count[id]+=1 if count_enemy?(id)
- $game_variables[@count_kill_enemy_vid[id]] = @count_kill_enemy_count[id] if @count_kill_enemy_vid[id]
- end
- end
- class Game_Enemy < Game_Battler
- alias count_perform_collapse perform_collapse
- def perform_collapse
- $game_system.enemy_killed(@enemy_id)
- count_perform_collapse
- end
- end
复制代码 插入在 main 前面
在事件裡面用腳本 start_count(敵人ID[, 系統變量ID]) 開始計算
用 end_count(id) 結束計算
若有在 start_count 中提供 系統變量ID,則會自動存入ID對應的系統變量中
若是不想用系統變量,則可以用腳本 $game_system.count_enemy(敵人ID) 獲得已殺死數量
範例工程︰
CountKilled.exe
(405.79 KB, 下载次数: 72)
|
|