Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.
Ошибка скрипта rpg maker VX
9 года 4 нед. назад - 9 года 4 нед. назад #97416
от Kouta555
Kouta555 создал тему: Ошибка скрипта rpg maker VX
Значит дело такое, я изменил всю стандартную систему скриптов мейкера, но нахимичил немного хуже, чем нужно.
ТО есть что-то удалил, что-то заменил, что-то добавил.
Теперь большая часть команд завязана на скриптах и все работает так как мне надо, но дело в том, что я удалил программу вывода картинки из папки picture. То есть стандартная система не работает,
из Game_Interpreter я удалил несколько пунктов а именно
Конечно же после этого, вывода картинок я не добьюсь, но когда я снова поместил этот код на его законное место, вывод картинки параллельным процессом нихт арбайтен, а когда персонаж касается эвента в котором стоит эта команда
игра выдаёт ошибку
Script 'Game_Interpreter' line 472: NoMethodError occurred.
undefined method `pictures' for #<Game_Screen:0x9ee52c8>
ссылается оно на эту screen.pictures[@params[0]].show(@params[1], @params[2], строку.
В коде выше она находится в разделе Show pictures.
такие дела
ТО есть что-то удалил, что-то заменил, что-то добавил.
Теперь большая часть команд завязана на скриптах и все работает так как мне надо, но дело в том, что я удалил программу вывода картинки из папки picture. То есть стандартная система не работает,
из Game_Interpreter я удалил несколько пунктов а именно
Code:
#--------------------------------------------------------------------------
# * Show Picture
#--------------------------------------------------------------------------
def command_231
if @params[3] == 0 # Direct designation
x = @params[4]
y = @params[5]
else # Designation with variables
x = $game_variables[@params[4]]
y = $game_variables[@params[5]]
end
screen.pictures[@params[0]].show(@params[1], @params[2],
x, y, @params[6], @params[7], @params[8], @params[9])
return true
end
#--------------------------------------------------------------------------
# * Move Picture
#--------------------------------------------------------------------------
def command_232
if @params[3] == 0 # Direct designation
x = @params[4]
y = @params[5]
else # Designation with variables
x = $game_variables[@params[4]]
y = $game_variables[@params[5]]
end
screen.pictures[@params[0]].move(@params[2], x, y, @params[6],
@params[7], @params[8], @params[9], @params[10])
@wait_count = @params[10] if @params[11]
return true
end
#--------------------------------------------------------------------------
# * Rotate Picture
#--------------------------------------------------------------------------
def command_233
screen.pictures[@params[0]].rotate(@params[1])
return true
end
#--------------------------------------------------------------------------
# * Tint Picture
#--------------------------------------------------------------------------
def command_234
screen.pictures[@params[0]].start_tone_change(@params[1], @params[2])
@wait_count = @params[2] if @params[3]
return true
end
#--------------------------------------------------------------------------
# * Erase Picture
#--------------------------------------------------------------------------
def command_235
screen.pictures[@params[0]].erase
return true
end
Конечно же после этого, вывода картинок я не добьюсь, но когда я снова поместил этот код на его законное место, вывод картинки параллельным процессом нихт арбайтен, а когда персонаж касается эвента в котором стоит эта команда
игра выдаёт ошибку
Script 'Game_Interpreter' line 472: NoMethodError occurred.
undefined method `pictures' for #<Game_Screen:0x9ee52c8>
ссылается оно на эту screen.pictures[@params[0]].show(@params[1], @params[2], строку.
В коде выше она находится в разделе Show pictures.
такие дела
Последнее редактирование: 9 года 4 нед. назад пользователем Kouta555.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 4 нед. назад #97418
от Cerberus
Жуть болотная, на лапках, в тапках и с пулемётом...
Cerberus ответил в теме Ошибка скрипта rpg maker VX
А что было сделано в разделе Game_Screen? Ссылается-то указанная строчка именно туда.
Жуть болотная, на лапках, в тапках и с пулемётом...
Спасибо сказали: Amphilohiy
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 4 нед. назад #97420
от Kouta555
Kouta555 ответил в теме Ошибка скрипта rpg maker VX
Code:
class Game_Screen
attr_reader :brightness
attr_reader :tone
attr_reader :flash_color
attr_reader :shake_owner
attr_reader :shake_x
attr_reader :shake_y
attr_reader :weather_type
attr_reader :weather_max
attr_reader :fog_bitmap
attr_reader :fog_opacity
attr_reader :fog_x_speed
attr_reader :fog_y_speed
def initialize
clear
end
def clear
@brightness = 255
@fadeout_duration = 0
@fadein_duration = 0
@tone = Tone.new(0, 0, 0, 0)
@tone_target = Tone.new(0, 0, 0, 0)
@tone_duration = 0
@flash_color = Color.new(0, 0, 0, 0)
@flash_duration = 0
clear_shake
@weather_type = 0
@weather_max = 0.0
@weather_type_target = 0
@weather_max_target = 0.0
@weather_duration = 0
@fog_bitmap = nil
@fog_opacity = 0
@fog_x_speed = 0.0
@fog_y_speed = 0.0
end
def clear_shake
@shake_owner = nil
@shake_power = 0
@shake_speed = 0
@shake_duration = 0
@shake_direction = 1
@shake_x = 0
@shake_y = 0
@shake_power_random = false
@shake_speed_random = false
@shake_direction_random = false
end
def clear_flash
@flash_duration = 0
@flash_color = Color.new(0, 0, 0, 0)
end
def clear_fog
@fog_bitmap = nil
@fog_opacity = 0
@fog_x_speed = 0.0
@fog_y_speed = 0.0
end
def start_fadeout(duration)
@fadeout_duration = duration
@fadein_duration = 0
end
def start_fadein(duration)
@fadein_duration = duration
@fadeout_duration = 0
end
def black_screen
@brightness = 0
@fadein_duration = 0
@fadeout_duration = 0
end
def start_tone_change(tone, duration)
@tone_target = tone.clone
@tone_duration = duration
if @tone_duration == 0
@tone = @tone_target.clone
end
end
def start_flash(color, duration)
@flash_color = color.clone
@flash_duration = duration
end
def start_shake(args) # power, speed, duration, direction, owner
return if @shake_duration > args[2]
clear_shake
@shake_owner = args[4]
@shake_duration = args[2]
if args[0] == 0
@shake_power = rand(9) + 1
@shake_power_random = true
else
@shake_power = args[0]
@shake_power_random = false
end
if args[1] == 0
@shake_speed = rand(9) + 1
@shake_speed_random = true
else
@shake_speed = args[1]
@shake_speed_random = false
end
if args[3] == 0
@shake_direction_random = true
else
if @shake_direction != args[3] and @shake_direction != (10 - args[3])
@shake_direction = args[3]
@shake_x = 0
@shake_y = 0
end
@shake_direction_random = false
end
end
def weather(type, power, duration)
@weather_type_target = type
if @weather_type_target != 0
@weather_type = @weather_type_target
end
if @weather_type_target == 0
@weather_max_target = 0.0
else
@weather_max_target = (power + 1) * 8.0
end
@weather_duration = duration
if @weather_duration == 0
@weather_type = @weather_type_target
@weather_max = @weather_max_target
end
end
def save_fog(bitmap, opacity, x_speed, y_speed)
@fog_bitmap = bitmap
@fog_opacity = opacity
@fog_x_speed = x_speed
@fog_y_speed = y_speed
end
def update
update_fadeout
update_fadein
update_tone
update_flash
update_shake
update_weather
end
def update_fadeout
if @fadeout_duration >= 1
d = @fadeout_duration
@brightness = (@brightness * (d - 1)) / d
@fadeout_duration -= 1
end
end
def update_fadein
if @fadein_duration >= 1
d = @fadein_duration
@brightness = (@brightness * (d - 1) + 255) / d
@fadein_duration -= 1
end
end
def update_tone
if @tone_duration >= 1
d = @tone_duration
@tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
@tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
@tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
@tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
@tone_duration -= 1
end
end
def update_flash
if @flash_duration > 0
d = @flash_duration
@flash_color.alpha = @flash_color.alpha * (d - 1) / d
@flash_duration -= 1
end
end
def update_shake
if @shake_duration != 0 or @shake_x != 0 or @shake_y != 0
return if $game_temp.stop_time_count > 0
delta = (@shake_power * @shake_speed) / 10.0
if @shake_x.abs < delta and @shake_y.abs < delta
if @shake_power_random == true
@shake_power = rand(9) + 1
end
if @shake_speed_random == true
@shake_speed = rand(9) + 1
end
if @shake_direction_random == true
@shake_direction = rand(8) + 1
@shake_direction += 1 if @shake_direction > 4
end
delta = (@shake_power * @shake_speed) / 10.0
@shake_x = 0
@shake_y = 0
end
if @shake_x.abs > @shake_power * 2 or @shake_y.abs > @shake_power * 2
@shake_direction = 10 - @shake_direction
end
if @shake_duration > 0
@shake_duration -= 1
end
if @shake_duration == 0 and @shake_x.abs <= delta and @shake_y.abs <= delta
@shake_x = 0
@shake_y = 0
else
@shake_x += delta if @shake_direction % 3 == 0
@shake_x -= delta if (@shake_direction + 2) % 3 == 0
@shake_y += delta if @shake_direction < 4
@shake_y -= delta if @shake_direction > 6
end
end
end
def update_weather
if @weather_duration >= 1
d = @weather_duration
@weather_max = (@weather_max * (d - 1) + @weather_max_target) / d
@weather_duration -= 1
if @weather_duration == 0
@weather_type = @weather_type_target
end
end
end
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 4 нед. назад - 9 года 4 нед. назад #97422
от Amphilohiy
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Amphilohiy ответил в теме Ошибка скрипта rpg maker VX
Ты же не думал что я смогу пройти мимо такого поста не пумничав?
Во первых - довольно часто дают совет изначальные скрипты не трогать, а вонсить изменение отдельными скриптами. Так у тебя всегда под боком будет оргиниал, и любые изменения можно откатить простым комментированием.
Во вторых - Керберус тебе уже дал наводку, что соль в классе Game_Screen, как впрочем и сама ошибка
undefined method `pictures' for #<Game_Screen:0x9ee52c8>
Суть - есть экземпляр класса Game_Screen в переменной screen, у которого ты пытаешься вызвать метод pictures, которого нет
В третьих - ты скинул код, в котором такого метода у класса Game_Screen нет.
Ну, истоки более менее ясны - нет ни метода, ни переменной хотя бы отдаленно напоминающей нужную. Что сказать - надо прописывать всю логику картинок. Однако с учетом того что тут все наверчено буквально в исходниках, то сложно прогнозировать как все это фиксить не наступив на мину. Код интепретатора, кстати, совпадает с эйсовским, а вот Game_Screen не очень. Ты их точно не намешиваешь? Простого VX у меня и в помине нет.
Вообще прикольная тема, снести половину оригинальных скриптов, а потом их еще восстанавливать. Нет, ну серьезно, чем тебе эти команды интерпретатора помешали? Ну загрузились бы, то что они болтаются без дела много ресурсов не жрет, только инструкция валяется в оперативке, но это копейки. Зачем сносить оригинал то?
Такие дела
Во первых - довольно часто дают совет изначальные скрипты не трогать, а вонсить изменение отдельными скриптами. Так у тебя всегда под боком будет оргиниал, и любые изменения можно откатить простым комментированием.
Во вторых - Керберус тебе уже дал наводку, что соль в классе Game_Screen, как впрочем и сама ошибка
undefined method `pictures' for #<Game_Screen:0x9ee52c8>
Суть - есть экземпляр класса Game_Screen в переменной screen, у которого ты пытаешься вызвать метод pictures, которого нет
В третьих - ты скинул код, в котором такого метода у класса Game_Screen нет.
Ну, истоки более менее ясны - нет ни метода, ни переменной хотя бы отдаленно напоминающей нужную. Что сказать - надо прописывать всю логику картинок. Однако с учетом того что тут все наверчено буквально в исходниках, то сложно прогнозировать как все это фиксить не наступив на мину. Код интепретатора, кстати, совпадает с эйсовским, а вот Game_Screen не очень. Ты их точно не намешиваешь? Простого VX у меня и в помине нет.
Вообще прикольная тема, снести половину оригинальных скриптов, а потом их еще восстанавливать. Нет, ну серьезно, чем тебе эти команды интерпретатора помешали? Ну загрузились бы, то что они болтаются без дела много ресурсов не жрет, только инструкция валяется в оперативке, но это копейки. Зачем сносить оригинал то?
Такие дела
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 9 года 4 нед. назад пользователем Amphilohiy.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 нед. назад #97423
от Kouta555
Kouta555 ответил в теме Ошибка скрипта rpg maker VX
тогда можно -ли сделать отдельно скрипт для вывода картинок на экран, не через команду меню, а просто используя скрипт?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 нед. назад #97424
от Amphilohiy
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Amphilohiy ответил в теме Ошибка скрипта rpg maker VX
Можно, но тут есть подвох... Врятли кто-то возьмет писать скрипт на фитчу, которая уже есть в мейкере. Почему бы тебе не вернуть кусок Game_Screen с картинками? Особенно учитывая, что тебе по сути придется инстанцировать внутри Game_Screen класс Game_Picture и вернуть пару методов.
Или же сделать эдакий глобальный Game_Pictures и уже все действия мутить самому вызовом скриптов, методы ты можешь подглядеть в классе Game_Picture.
Или же сделать эдакий глобальный Game_Pictures и уже все действия мутить самому вызовом скриптов, методы ты можешь подглядеть в классе Game_Picture.
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 нед. назад #97425
от Kouta555
Kouta555 ответил в теме Ошибка скрипта rpg maker VX
Вернуть я его не могу, потому что это нарушит процесс работы, основной системы.
Как раз эдакий глобальный гейм пикчер подойдёт.
Как раз эдакий глобальный гейм пикчер подойдёт.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 нед. назад #97426
от Paranoid
Paranoid ответил в теме Ошибка скрипта rpg maker VX
Я конечно извиняюсь, но зачем было городить такие огороды, если можно было просто отдельные скрипты мутить? Мне чисто из интереса.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
9 года 3 нед. назад #97428
от Kouta555
Kouta555 ответил в теме Ошибка скрипта rpg maker VX
Из-за конфликтов в коде.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Время создания страницы: 0.098 секунд
