マップクエストのクリア判定はクエスト画面起動時に判定。
Map_Quest::MAP_ID_DATAはマップ踏破率を判定するマップIDの配列(ダンジョン以外のマップを除外するため)
def perfection(map_id) により該当マップの踏破率をグローバル変数 $perfection に格納(33マップ分)
$game_system.map_quests_id は現在クエストにオープン済みのマップクエストID。
これを each_with_index で回してクリア判定する。
マップ踏破率を格納した配列 $perfection にvalueでなくiでアクセスしていたため
挙動がおかしかったと思われる(名推理
とりあえずテストプレイ。
おねがいします直ってくださいなn