Сразу скажу, я в скриптинге полный ноль, поэтому если сделаешь это, то только на свой страх и риск.
Спойлер спойлер:
Сразу скажу, я в скриптинге полный ноль, поэтому если сделаешь это, то только на свой страх и риск.
Спойлер спойлер:
Спасибо. С HUDом здорово, что работает. Так и сделаю. А вот с вылетанием я тоже мучался. Как я понял, встроенная боёвка и боёвка Requiem по разному высчитывают повреждение, поэтому иногда конфликтуют.
Метод atk не определен для пустого класса user. То есть указатель user ссылается на объект который возможно был только что уничтожен или еще не задан. Можно попробовать поставить проверку на существование класса.
Типа такого.
К сожалению нету VX проверить не могу.
Смысл в том, что при расчете повреждения будет сначала проверяться на существование класса и если его нет то damage = 0, то есть кто-то не получит урон. =)
Теперь вылезает другая ошибка.
Спойлер спойлер:
А объекты там постоянно уничтожаются, то есть враги.
Последний раз редактировалось Neocris; 29.05.2014 в 15:07.
Ну собственно все правильно. Можно попробовать заменить на эту строчку на такую.
user.reflect = (rand(100) < reflect_rate) if user != nil
Вообще эта ошибка будет возникать там где обращаются к несуществующему классу. Она может и еще где-нибудь всплыть. =)
>_<
Спойлер ппц:
Я молчаливо наблюдаю, потому что и сказать нечего =) Если получится решить проблему, я урыдаюсь от счастья.
Ну собственно то о чем я и говорю, что эта ошибка так и будет всплывать пока не уберем все вызову несуществующего класса.
Можно попробовать отсеивать эти функций на стадии вызова. =) Но так как у меня нет VX я проверить не могу и кода не вижу. =)
Поставь в этом скрипте (который Requiem ABS 9.0)
после вызова:
def skill_effect(user, skill)
return if user == nil #вот эту строчку
и соответственно после
def item_effect(user, item)
return if user == nil
То есть выглядеть они будут как-то так.
Код:def skill_effect(user, skill) return if user == nil #вот сюда вставляем строчку clear_action_results unless skill_effective?(user, skill) @skipped = true @damage = $Requiem_ABS.damage_properties["Texts"][0] return end if rand(100) >= calc_hit(user, skill) @missed = true @damage = $Requiem_ABS.damage_properties["Texts"][0] return end if rand(100) < calc_eva(user, skill) @evaded = true @damage = $Requiem_ABS.damage_properties["Texts"][0] return end make_obj_damage_value(user, skill) make_obj_absorb_effect(user, skill) execute_damage(user) return if skill.physical_attack and @hp_damage == 0 apply_state_changes(skill) end def item_effect(user, item) return if user == nil #и вот сюда вставляем строчку clear_action_results unless item_effective?(user, item) @damage = $Requiem_ABS.damage_properties["Texts"][0] @skipped = true return end if rand(100) >= calc_hit(user, item) @missed = true @damage = $Requiem_ABS.damage_properties["Texts"][0] return end if rand(100) < calc_eva(user, item) @evaded = true @damage = $Requiem_ABS.damage_properties["Texts"][0] return end hp_recovery = calc_hp_recovery(user, item) mp_recovery = calc_mp_recovery(user, item) make_obj_damage_value(user, item) @hp_damage -= hp_recovery @mp_damage -= mp_recovery make_obj_absorb_effect(user, item) execute_damage(user) item_growth_effect(user, item) return if item.physical_attack and @hp_damage == 0 apply_state_changes(item) end
Это с учётом всех предыдущих изменений, или то, что ты писал до этого, можно не делать?
Ну первое изменение было в game_battler так что да со всеми предыдущими. =) Хуже не будет. =) наверное... =)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)
Социальные закладки