Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

[VX Ace] Прерывание цикла

Больше
10 года 1 мес. назад - 10 года 1 мес. назад #91182 от Paranoid
Кто сидит в чате знает что я пилю тактическую боевку на ивентах. Игровые персонажи ходят, а вот интеллект для мобов я никак не могу осилить. Может кто-нибудь посмотрит проект и поможет мне с этим?

Ссылка: yadi.sk/d/oF3vtBLuqoM2x

В самом проекте уже есть пробный ии для зомби. смысл в том чтобы как только зомби заметит игрока он пытался дойти до него. Что он и делает, но мой цикл работает без остановки и зомби идет до тех пор пока не упрется в другое событие. На деле же мне нужно чтобы зомби делал всего 2 шага в сторону ближайшего видимого игрового персонажа.
P.S.: у меня 2 вложенных цикла for.
Последнее редактирование: 10 года 1 мес. назад пользователем Paranoid.
Тема заблокирована.
3 место 3 место в Кодировке 2 место Организатор конкурсов
Больше
10 года 1 мес. назад #91184 от Волчонок
На вскидку: введи количество ходов для каждого события, и каждый "раунд" восстанавливай. В цикле уменьшай количество ходов на единицу, добавь проверку "если ходов = 0 то выход из цикла".

Ленивый волчонок с большими амбициями

Рассказ "Рождение мага" , периодически обновляется
РПГ История Егеря . Основной текущий проект.

ВНИМАНИЕ: Спойлер!
Тема заблокирована.
Больше
10 года 1 мес. назад #91187 от Paranoid
Мысть здравая, вот только у меня уже места в коде нет(
Тема заблокирована.
3 место 3 место в Кодировке 2 место Организатор конкурсов
Больше
10 года 1 мес. назад #91189 от Волчонок
Ну... Оптимизацию проведи о_О Нарисуй схему, подумай, что можно сократить, что можно объединить, а что - убрать.

Ленивый волчонок с большими амбициями

Рассказ "Рождение мага" , периодически обновляется
РПГ История Егеря . Основной текущий проект.

ВНИМАНИЕ: Спойлер!
Тема заблокирована.
Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
10 года 1 мес. назад #91190 от Amphilohiy
Я ленивый кусок лошади, так что могу предложить ленивую мысль.
Кусок кода с 2 циклами запихай в функцию. В функции вместо break сделай return. А я просто ленив и сейчас пока не сделаю (может позже, но по опыту кодировки лучше не расчитывать).
Кстати, объявлять переменные после мейна не имеет смысла.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Спасибо сказали: yuryol
Тема заблокирована.
Больше
10 года 1 мес. назад #91191 от Paranoid

Amphilohiy пишет: Я ленивый кусок лошади, так что могу предложить ленивую мысль.
Кусок кода с 2 циклами запихай в функцию. В функции вместо break сделай return. А я просто ленив и сейчас пока не сделаю (может позже, но по опыту кодировки лучше не расчитывать).
Кстати, объявлять переменные после мейна не имеет смысла.

Было бы круто увидеть пример. А переменные я объявил там, потому что мне так Демий сказал, я не знаю "правил" руби.
Тема заблокирована.
Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
10 года 1 мес. назад - 10 года 1 мес. назад #91192 от Amphilohiy
Думаю можно обойтись лямбдой примерно так:
ВНИМАНИЕ: Спойлер!

Но я не совсем до конца понял что происходит в коде, поэтому сказать рабочий ли он в целом не могу, но сама часть с лямбдой работает на примере
ВНИМАНИЕ: Спойлер!


P.S. Все объявления после мейна просто не сработают в игре, только после нее. Может Демий имел ввиду после "Дополнения", но до мейна? Обычно так советуют.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 10 года 1 мес. назад пользователем Amphilohiy.
Тема заблокирована.
Больше
10 года 1 мес. назад #91193 от Paranoid
Хм, а что делает p [x, y]?
Тема заблокирована.
Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
10 года 1 мес. назад #91194 от Amphilohiy

Paranoid пишет: Хм, а что делает p [x, y]?

Просто выводит сообщение в консоль, если она у тебя включена. В данном случае выводит массив из x и y.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Тема заблокирована.
Больше
10 года 1 мес. назад - 10 года 1 мес. назад #91199 от Paranoid
Нет, ничего не изменилось.

Скрипт с твоим дополнением:
Code:
if $game_map.events[1].x > $game_map.events[4].x # сравнивает коордитаты x врага и юнита и забивает в ax меньшее, в bx большее ax = $game_map.events[4].x bx = $game_map.events[1].x else ax = $game_map.events[1].x bx = $game_map.events[4].x end if $game_map.events[1].y > $game_map.events[4].y # сравнивает коордитаты y врага и юнита и забивает в ay меньшее, в by большее ay = $game_map.events[4].y by = $game_map.events[1].y else ay = $game_map.events[1].y by = $game_map.events[4].y end lambda do for x in ax..bx # цикл 1 for y in ay..by # цикл второй if reachable_in_steps?(4, x, y, 2) == true # враг сможет дойти до этих координат за 2 шага? find_path(4, x, y, true) # если да, то пусть идет в них return end y+=1 #меняеем y end x+=1 #меняеем x end end.call
Последнее редактирование: 10 года 1 мес. назад пользователем Paranoid.
Тема заблокирована.
Больше
10 года 4 нед. назад #91238 от Paranoid
Я нашел ошибку, она сидела прямо перед монитором. Цикл прекрасно завершался, но так как после него не было никаких команд он просто повторял себя. К сожалению возникли новые проблемы. А так проблема решена, всем спасибо за помощь.
Тема заблокирована.
Время создания страницы: 0.110 секунд
Работает на Kunena форум