Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#5485
Старый 09.03.2022, 19:19
  #5485
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 139
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 139
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

ДолгийНе помню чтобы меня просили написать скрипт, но моя идея в целом похожа на скрипт Jewill'а. Только я тот ещё программист (не особо понимаю таблицы. 2D массивы мне ближе). Стоит учесть что есть ещё недели добычи 2х(дерево + руда), а также такие же на Серу+Ртуть и Кристаллы+Самоцветы, название которых не помню. И ещё неделя золота.

Добавлено через 3 часа 6 минут

Можно ещё через while 1 do это сделать. Где шахты, которые не проходят чек на наличие существ, становятся нейтральными.

Добавлено через 18 минут
--Назовите все шахты одинаковым именем плюс номер от 1 и далее: Например mine1, mine2, mine3, mine4 и т.д.                                                                                                                  
                                   

while 1 do
 sleep(10);
 for i = 1,"количество шахт на карте" do  --"количество шахт на карте" заменить на номер
  if GetObjectCreatures("mine"..i,"IDсущества") == 0 and GetObjectOwner("mine"..i) ~= 0 then --заменить "IDсущества" на необходимое ID существа
   SetObjectOwner("mine"..i,0);
  end;
 end;
end;


Добавлено через 1 час 2 минуты
Правда нужно что-то, что остановит онейтраливание шахты, когда герой захватывает её и кладет существ в гарнизон. Иначе шахта станет нейтральной и придётся драться с этими существами. Нужно что-то по типу региона вокруг активного тайла шахты и условия что если в регионе нет героя то выполняется SetObjectOwner("mine"..i,0);. Но я думаю есть идея получше, но в голову пока не приходит.

Возможно вариант с потоками и не худший, но я не очень понимаю, как его сюда пристроить. К тому же мне, почему-то, кажется монструозным любой скрипт в котором насчитывается с десяток потоков...
Если у товарища, задавшего вопрос, нет познаний в скриптах, вариант с потоком(который нужно остановить-запустить в нужный момент) сломает всё желание заниматься картой, как по-мне.
В вашем примере было бы замечательно реализовать остановку потока и проверки по взаимодействию с шахтой, но вот события завершения взаимодействия, т.е закрытия модального окна с гарнизоном, увы нет.
А в нём можно было бы снова запускать поток, который всё проверял бы. Теоретически(но думаю сугубо теоретически), можно по взаимодействию давать скрипту отдохнуть(sleep()),на некоторое время, а затем снова включать поток.
Только в таком случае существует вероятность того, что игрок быстро закроет модальное окно , пропустит ход, и ресурсы ему начислятся, хотя не должны. 

Добавлено через 20 часов 7 минут
Всем добрый день! 
Неоднократно читал о том, что TalkBoxForPlayers бьёт сейвы в мультиплеере. И столько же раз читал, что не бьёт. 
Есть какая-то реальность? И если бьёт - может причину кто знает, приблизительную. 
На решение не надеюсь  
Потому как инструмент великолепный. 
__________________




Не уходи безропотно во тьму,
Будь яростней пред ночью всех ночей,
Не дай погаснуть свету своему!

Хоть мудрый знает – не осилишь тьму
Во мгле словами не зажжёшь лучей –
Не уходи безропотно во тьму.




                                                                                       




Не уходи безропотно во тьму,
Будь яростней пред ночью всех ночей,
Не дай погаснуть свету своему!

Хоть мудрый знает – не осилишь тьму
Во мгле словами не зажжёшь лучей –
Не уходи безропотно во тьму.




                                                                                       
Jewily вне форума
Ответить с цитированием