Как сделать?

Re: Как сделать?

Andrik3206,
'<<деньги>>'
gt $curloc
Пишешь gt $curloc при каждом таком действии, чтобы экран обновить

Последний из Гаяр
Неуклюжий хранитель
useravatar
Offline
62 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Спасибо

Andrik2219
_______
useravatar
Offline
9 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Всем привет, подскажите пожалуйста если знаете, как сделать нпс что бы они появлялись в определенное время на разных локациях и у каждого была как система отношений что бы например ответил плохо падала шкала отношений и ответная реакция на действие и наоборот при хорошей возрастала, и буду особенно благодарен если хоть какой-то пример кода дадите, а то игру хочется сделать хорошей, а знаний по qsp очень мало. И если не очень сложно на закрытие по времени локаций как магазин.

Andrik2219
_______
useravatar
Offline
9 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Доброго времени суток) Подскажите, будьте добры, как превратить игру в парсер, где фигурировала бы только строка ввода? Например, чтобы при вводе со строки ввода цифр 1, 2 и 3 игра переходила на локации А, В и С соответственно. Сколько ни бился, не смог придумать ничего умнее диалогового окна, которое использовать в данном проекте мне бы не хотелось...))

De@th K!d
Мечтатель
useravatar
Offline
63 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Andrik2219 написал(а):

Всем привет, подскажите пожалуйста если знаете, как сделать нпс что бы они появлялись в определенное время на разных локациях и у каждого была как система отношений что бы например ответил плохо падала шкала отношений и ответная реакция на действие и наоборот при хорошей возрастала, и буду особенно благодарен если хоть какой-то пример кода дадите, а то игру хочется сделать хорошей, а знаний по qsp очень мало. И если не очень сложно на закрытие по времени локаций как магазин.

Способов множество, необходимо сначала продумать весь концепт игры, чтоб не переписывать движок по пять раз.
Я самый простой пример дам.

Код:

if hour>18 and hour<20:

'Федя сидит на лавочке'
act 'Привет, Федя! Отлично выглядишь':
repa_fedor+=1
*clr
'Федя приветливо машет вам рукой.
- Привет. Спасибо. Ты тоже ничего.'
end
act 'Ну ты, Федя, и козел':
repa_fedor-=1
*clr
'Федя поднимается с лавочки, подбирает с земли дубину и направляется в вашу сторону.
- А ну повтори, что ты там сейчас прогавкал?'
end
end

Для этого надо еще запустить течение времени.
Более сложный вариант, но более удобный - создавать массив для НПС.

dmvikar
useravatar
Онлайн
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

De@th K!d написал(а):

Доброго времени суток) Подскажите, будьте добры, как превратить игру в парсер, где фигурировала бы только строка ввода? Например, чтобы при вводе со строки ввода цифр 1, 2 и 3 игра переходила на локации А, В и С соответственно. Сколько ни бился, не смог придумать ничего умнее диалогового окна, которое использовать в данном проекте мне бы не хотелось...))

Код:

$USERCOM='USERCOM'

А дальше в локации USERCOM любой код.

Код:

text=USRTXT

CMDCLEAR
if text=1:msg 'Заработало!!!'

dmvikar
useravatar
Онлайн
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

De@th K!d написал(а):

Доброго времени суток) Подскажите, будьте добры, как превратить игру в парсер, где фигурировала бы только строка ввода? Например, чтобы при вводе со строки ввода цифр 1, 2 и 3 игра переходила на локации А, В и С соответственно. Сколько ни бился, не смог придумать ничего умнее диалогового окна, которое использовать в данном проекте мне бы не хотелось...))

как раз сейчас готовлю видео по этому вопросу. Точно сказать, когда будет, не могу. Но ответ dmvikar, в целом, описывает всю инфу из этого видео lol

Aleks Versus
воздвигатель башни
useravatar
Offline
1495 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Нужна помощь.
Я делаю поле боя по типу HMM. Мне нужно отрисовать от юнита область доступную для перемещения. Каждой клетке заданы координаты. Юниту задано количество ходов.
Эту задачу я благополучно решил, но при условии, что в доступной области нет препятствий. Как учесть препятствия, я пока не допер. В мозгу только монструозные конструкции возникают.
Такая же ситуация обстоит и с поиском пути до цели. Если препятствий нет, то и проблемы нет. А с появление препятствий возникнет проблема определения кратчайшего расстояния. Проблема усугубится, если препятствие будет в виде буквы С, т.е. как ловушка и т.п.
Я уверен, что математечески где-то уже вывели формулы, но не могу грамотно сформулировать запрос для гугла.

dmvikar
useravatar
Онлайн
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

dmvikar,
тебе нужен алгоритм А* (а-звёздочка). Или алгоритм Дейкстры.
Есть прекрасная статья на хабре
https://habr.com/ru/post/331192/

Так же на форуме уже кто-то давал Алгоритм Дейкстры, попробуй поискать. нету.
http://qsp.su/index.php?option=com_agor … Поиск

Изменено: aleksversus
07.Дек.19 17:03:53
Aleks Versus
воздвигатель башни
useravatar
Offline
1495 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Как сделать?

Спасибо, Aleks Versus.
Как я и думал, пришлось обрабатывать каждую точку).
За воскресенье я соорудил код, который даже работает). Доступная область рисуется, кратчайший путь находится.
Но есть одна проблема. Путь составляется следующим образом: сначала происходит движение по оси Y до выравнивания по значению X, а потом сближение по X. Путь то хоть и кратчайший, но не начинается со сближения, т.е. когда каждый ход должен попеременно менять координаты X и Y.
Происходит это из-за того, что клеток соседей я обсчитываю одинаково, т.е. первая соседняя клетка - северная, а дальше по часовой стрелке. А нужно обсчитывать по какому-то условию. В статье прямо об этом не говорится, а код прочесть я не осилил, не программист я.
Пока писал пост, зародилось пару мыслей, пойду проверять)

dmvikar
useravatar
Онлайн
5 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
975
Всего опросов:
14
Всего сообщений:
16790599
Всего сообщений сегодня:
1
Пользователи форума:
 
Всего пользователей:
2380
Последним зарегистрировался:
persifar13