Ладно, буду ебашить объект. Будет создаваться моб, который будет закликивать дерево и получать с этого древесину!. Второй вопрос: "Кто тут лучше всех познал ИИ"?
Бери пример с гунов. Они сделали пчёлок объектом. Это, конечно, не даёт их контролить, но зато сильно снижает нагрузку на сервер при большом количестве.
Как заставить mob/woodcutter появиться около obj/home идти к ближайшему obj/tree и совершать chop до тех пор, пока переменная woodcutter.W не будет равняться 30 а затем двигаться к obj/home.
Я просто не могу найти команду, чтобы моб проверял есть ли в поле зрения определенный объект
Это ... IF?!
Вообще, начни с поиска аналогий в коде станции. Что у нас проверяет есть ли поле зрения что-то? Ну... спейс карпы, например, летят на моба, когда тот в поле зрения. Вот и копай оттуда.
Вот тебе простой код, который еще вполне можно улучшить. Спойлер /mob/woodcutter/ var/obj/home/home
New(loc)loc = home
proc/Cut() for(var/obj/tree/T in range(src,5))//Поиск в радиусе пяти тайлов walk_to(src,T)//Погляди синтаксис процесса, я не помню точно chop(T) break walk_to(src,home)
Вызвал chop() лишь раз, что бы исключить возможную проблему, что дерево прикончишь раньше, чем W-переменная наполнится, а из цикла while никогда не выйдешь.
Вот тебе простой код, который еще вполне можно улучшить. Спойлер /mob/woodcutter/ var/obj/home/home
New(loc)loc = home
proc/Cut() for(var/obj/tree/T in range(src,5))//Поиск в радиусе пяти тайлов walk_to(src,T)//Погляди синтаксис процесса, я не помню точно chop(T) break walk_to(src,home)
Вызвал chop() лишь раз, что бы исключить возможную проблему, что дерево прикончишь раньше, чем W-переменная наполнится, а из цикла while никогда не выйдешь.
Отлично, спасибо. Барка, я бы рад , но мне его скачивать...
Он, правда, сквозь стены будет искать, это достаточно грубый способ. Лучше сделать for(var/obj/tree/T in view(src)) Опять же я не помню синтаксис процесс view(), гляди в справке.
Он, правда, сквозь стены будет искать, это достаточно грубый способ. Лучше сделать for(var/obj/tree/T in view(src)) Опять же я не помню синтаксис процесс view(), гляди в справке.
мне нужно как-раз таки чтоб через стену для этого процесса. а вот не через стену... Что-ж, и этому найдется применение. Сохранил строку. \\\\\\\\\\\\\\\\\\\ Внезапно я понял, что незнаю как заставить моба закликивать что-то. Оу щи, еще же с интерфейсом разбираться...
Ищу хореографа для изучения танцов с бубном. Желаемые движения: 1)Интерфейс как таковой 2)Открытие окна ( по типу окна раздатчика химии при клике на него).
Ищу хореографа для изучения танцов с бубном. Желаемые движения: 1)Интерфейс как таковой 2)Открытие окна ( по типу окна раздатчика химии при клике на него).
1) Интерфейс это: А) Иконки, вроде здоровья человека или давления. Добавляются так: SelectedByUClient.screen += SomeObject or icon()
Б) Интерфейс, в виде чата на экране справа. См. ссочный файл skin. 2) Можно, конечно через интерфейс(Б, окно химии так и заделано), но проще через browse(). Справка в помощь.
Лучше заяви whouse переменную не как локальную, а постоянную, в New() же назначишь дом. Сейчас ты вовсе не объявил объект-дом, а персонажа к нему посылаешь.
Рекурсия, вестимо, уровнем выше. Для тестов кода можешь сделать и так:
/client/verb/testmycutters() set name = test for(var/mob/cutter/C) C.Cut()