Project1
标题:
关于 任务所需消灭怪物数量 的系统问题!
[打印本页]
作者:
zzx2262086
时间:
2010-12-30 17:20
标题:
关于 任务所需消灭怪物数量 的系统问题!
本帖最后由 zzx2262086 于 2010-12-30 18:19 编辑
我是想做个系统事件,但遇到了问题,希望各位大大伸出援助之手!
省略前后,直击重点
我打算在 队伍事件内编写 ,比如 杀死一只老鼠(也就是一只老鼠的HP少于或等于0%的情况下),变量-杀死老鼠的数量+1 间隔使用(回合)
经过测试发现,每杀死一只老鼠,变量会加1,问题是杀死最后一只老鼠,会跳过战斗中的事件,直接结束,也就是说,一个队伍有3只老鼠,那么直到战斗结束,一共变量只加了2,如果一个技能老鼠全挂,那么老鼠的变量一个都不会加。。。!
求教 在线等!
作者:
魔能奶糖猫
时间:
2010-12-30 20:11
老鼠百分百爆某个物品不就可以了。
作者:
企鹅达达
时间:
2010-12-30 23:32
不死身,HP0时加变量然后附加濒死状态……试试行不行吧 =.=
作者:
雪流星
时间:
2011-1-1 07:59
本帖最后由 雪流星 于 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)
2011-1-1 08:10 上传
点击文件名下载附件
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1