Текущие вопросы и ответы по редактору карт - Страница 366 - Форум HeroesWorld-а

Быстрая навигация по основным разделам форума:
Турниры
КАРТЫ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Герои Меча и Магии 5 - Картостроительство (Редактор карт) В этом разделе можно обсуждать все что касается редактора карт для Heroes of Might and Magic V. Так же здесь обсуждаем картостроительство.

Ответ
Страница 366 из 384
 
Опции темы
#5476
Старый 05.03.2022, 19:16
  #5476
^
Долгий
 
Аватар для Долгий
📖
Регистрация: 23.04.2019
Сообщения: 93
Регистрация: 23.04.2019
Сообщения: 93
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

1. Не знаю есть ли мод, но он делается довольно легко. В Shared нужно заменить ссылку анимсета на версию с арен.

2. В дневной функции нужен if чек по типу GetObjectCreatures, и если он возращает 0, то отнимается дневной прирост ресурсов шахты от общего количества.
Долгий вне форума
Ответить с цитированием
#5477
Старый 07.03.2022, 08:44
  #5477
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

2. Можете написать образец скрипта, работающего автоматически для любых шахт? То есть, добавил шахту золота — автоматически на неё распространилось действие.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#5478
Старый 07.03.2022, 16:31
  #5478
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI42. Можете написать образец скрипта, работающего автоматически для любых шахт? То есть, добавил шахту золота — автоматически на неё распространилось действие.

Не претендую на истинность, возможны ошибки(не тестировал), но прототип получился примерно вот такой.
Есть ещё вариант с отключением шахты по триггеру, и временное включение по взаимодействию, но я не знаю, что происходит раньше:
выдача ресурсов или кастомные триггеры.
По коду.
Массив можно набрать руками, он константный - то есть от карты к карте будет одинаковым, если на карте не будет шахт нужного типа, то цикл
выполнится целых 0 раз, ошибок от этого не будет. 
Ах да, ну и имена нужно задать всем шахтам, но они не обязательно должны быть осмысленные, можно любые. Лишь бы скрипт знал, что у шахты есть уникальное имя
minesArray = 
{
{type = "BUILDING_SAWMILL",res = <айди ресурса>,dailyValue = <Сколько производит шахта>}
...
{type = <Тип шахты(см types.xml /Base/Tables)>,res = <айди ресурса>,dailyValue = <Сколько производит шахта>}
}
function checkMines()
   local weekMultiplier = 1;
   if(GetCurrentMoonWeek() == <Айди недели союза>) then
      weekMultiplier = 3; 
   end;
   if(GetCurrentMoonWeek() == <Айди недели праздности(или как её)>) then
      weekMultiplier = 0.5; 
   end
   for i,minesType in minesArray do
     local allMines = GetObjectNamesByType(minesType.type);
     for ind, mine in allMines do
       local owner = GetObjectOwner(mine);
       if(owner ~= 0) then
       if(GetObjectCreatures(mine,<айди существ>) < value) then
          local currentRes = GetPlayerResource(owner,minesType.res)
          SetPlayerResource(owner,minesType.res, currentRes - minesType.dailyValue * weekMultiplier);
     end;
     end;
   end;
  end;
end;
Trigger(NEW_DAY_TRIGGER,"checkMines");
__________________




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

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




                                                                                       




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

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




                                                                                       
Jewily вне форума
Ответить с цитированием
#5479
Старый 08.03.2022, 14:35
  #5479
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Все красиво. Могу предложить упрощение:
Создать таблицу с коеффами ресурсов от недель:
multiplies={[АЙДИ_НЕДЕЛИ_СОЮЗА]=3, [АЙДИ_НЕДЕЛИ_ПРАЗНОСТИ]=0.5}
weekMultiplier=multiplies[GetCurrentMoonWeek()] or 1

 

__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#5480
Старый 08.03.2022, 14:37
  #5480
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

А, и да. Имена шахтам задавать не нужно, GetObjectNamesByType их все спокойно создаёт.

Jewill, в общем-то, я попросил товарища Долгий написать скрипт только потому, что знаю, что это не две строчки, и совет "да там в триггере нового дня отбирать ресурсы" не факт, что поможет непосвящённому
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#5481
Старый 08.03.2022, 14:52
  #5481
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI4А, и да. Имена шахтам задавать не нужно, GetObjectNamesByType их все спокойно создаёт.

Jewill, в общем-то, я попросил товарища Долгий написать скрипт только потому, что знаю, что это не две строчки, и совет "да там в триггере нового дня отбирать ресурсы" не факт, что поможет непосвящённому

Про имена спасибо - не знал, сам мучаюсь на карте объектам давать имена . Ну, пусть Долгий тоже напишет скрипт - товарищу, задавшему вопрос, будет целый зоопарк на выбор!
А тут и правда, совсем не две строчки. Хотя я прекрасно понимаю, что иногда хочется показать своё истинное знание, а тратить время - не хочется уж совсем.

Добавлено через 1 минуту
}{0TT@6bI4Все красиво. Могу предложить упрощение:
Создать таблицу с коеффами ресурсов от недель:
multiplies={[АЙДИ_НЕДЕЛИ_СОЮЗА]=3, [АЙДИ_НЕДЕЛИ_ПРАЗНОСТИ]=0.5}
weekMultiplier=multiplies[GetCurrentMoonWeek()] or 1

 

Улучшение хорошее, да, вообще лучше избегать этих смешных проверок. Возвращясь к моему небольшому комментарию: не знаете, какие триггеры работают "первее"? Ниваловские, или самописные?
__________________




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

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




                                                                                       




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

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




                                                                                       
Jewily вне форума
Ответить с цитированием
#5482
Старый 08.03.2022, 14:54
  #5482
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Отключение стандартной работы шахты по идее не отменит принос ресурсов (если захвачена). А так — ресурсы начисляются точно раньше, чем срабатывает триггер нового дня
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#5483
Старый 08.03.2022, 15:00
  #5483
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI4Отключение стандартной работы шахты по идее не отменит принос ресурсов (если захвачена). А так — ресурсы начисляются точно раньше, чем срабатывает триггер нового дня
Грустно это, хотя и логично. Просто мне кажется вот эти манипуляции с отниманием не есть правильное решение.
Хотя, просто по личному опыту и опыту всего этого топика, иногда правильного решения нет, точнее оно есть, но не реализуемо.
В любом случае, спасибо, не буду мучаться в попытках перепрыгнуть ниваловские эвенты.
__________________




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

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




                                                                                       




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

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




                                                                                       
Jewily вне форума
Ответить с цитированием
#5484
Старый 08.03.2022, 22:04
  #5484
^
Долгий
 
Аватар для Долгий
📖
Регистрация: 23.04.2019
Сообщения: 93
Регистрация: 23.04.2019
Сообщения: 93
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI4я попросил товарища Долгий написать скрипт

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

Добавлено через 3 часа 6 минут
JewillГрустно это, хотя и логично. Просто мне кажется вот эти манипуляции с отниманием не есть правильное решение.
Хотя, просто по личному опыту и опыту всего этого топика, иногда правильного решения нет, точнее оно есть, но не реализуемо.
В любом случае, спасибо, не буду мучаться в попытках перепрыгнуть ниваловские эвенты.

Можно ещё через 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);. Но я думаю есть идея получше, но в голову пока не приходит.
Долгий вне форума
Ответить с цитированием
#5485
Старый 09.03.2022, 19:19
  #5485
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
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 вне форума
Ответить с цитированием
#5486
Старый 09.03.2022, 19:58
  #5486
^
Долгий
 
Аватар для Долгий
📖
Регистрация: 23.04.2019
Сообщения: 93
Регистрация: 23.04.2019
Сообщения: 93
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

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


Всё время, когда использовал TalkBoxForPlayers не было никаких проблем. Единственное, что могу сказать версия игры должна быть 3.1, ID игрока считается не как 1,2,3,4,5,6,7,8, а как 1,2,4,8,16,32,64,128, и два аргумента: IconTooltipRef и AddTextRef должны содержать только ковычки без ссылки "", так как всё равно текст ссылки не показывают(баг и т. п.). Примеры стабильно работающих TalkBoxForPlayers можете посмотреть на моей карте "Белый Храм". И да, редактировать код .lua советую только в программе HoMM5MapScriptsEditor.

Только что проверил карту в онлайн режиме. Первый раз нормально, а второй вылетило. Хмммм
Долгий вне форума
Ответить с цитированием
#5487
Старый 09.03.2022, 22:56
  #5487
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Долгий
Всё время, когда использовал TalkBoxForPlayers не было никаких проблем. Единственное, что могу сказать версия игры должна быть 3.1, ID игрока считается не как 1,2,3,4,5,6,7,8, а как 1,2,4,8,16,32,64,128, и два аргумента: IconTooltipRef и AddTextRef должны содержать только ковычки без ссылки "", так как всё равно текст ссылки не показывают(баг и т. п.). Примеры стабильно работающих TalkBoxForPlayers можете посмотреть на моей карте "Белый Храм". И да, редактировать код .lua советую только в программе HoMM5MapScriptsEditor.

Только что проверил карту в онлайн режиме. Первый раз нормально, а второй вылетило. Хмммм
Спасибо за разъяснение. Я уже определенный срок веду работу с этой функцией, нет проблем в использовании, есть проблема в потенциальном убийстве сейвов. 
Я тестирую в хот-сите(т.к ПК один и два клиента запустить не получается), и в нем вылетов не наблюдается, сейвы вроде не бьются. Но что-то страшно продолжать работать, сидя на пороховой бочке. Карту вашу посмотрю, спасибо.
__________________




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

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




                                                                                       




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

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




                                                                                       
Jewily вне форума
Ответить с цитированием
#5488
Старый 09.03.2022, 23:38
  #5488
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Долгий, "можете написать скрипт" — это и была просьба) Вестимо, вы не заметили

Ваш вариант с проверками крайне нерационален с точки зрения времени выполнения. Это получается постоянно, всю игру, крутится цикл, внутри которого N раз за тик еще один. При этом нужно строго отслеживать число шахты и нумеровать каждую. Да, на новичку такой скрипт будет проще, чем таблицы (кстати, они до сих пор двумерные, в варианте Jewill), но тогда по итогу пользователь будет все решать таким методом в лоб и в более сложных ситуациях встанет в тупик.
Мало того — автоматический сброс владельца с шахты будет срабатывать...сразу после её захвата! Если только человек не успеет быстро прокликать шахту и закинуть нужный гарнизон (а поди еще таскай с собой)... Плюс комп потеряет возможность держать эти шахты под контролем в принципе.
Так что, при всем уважении к вашему опыту работы с мультиплеерами, кои по сей день действительно радуют глаз, предложенный вами вариант скрипта в текущем виде банально не является рабочим.

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

З.ы. Раз уж зашло дело о советах, рекомендую посмотреть, как устроены толкбоксы в карте "Путь героя" (в скриптах talkbox.lia) или в MCCS smile02
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#5489
Старый 10.03.2022, 00:36
  #5489
^
Jewily
 
Аватар для Jewily
📖
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
Регистрация: 25.09.2016
Сообщения: 140
Jewily#4267
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

}{0TT@6bI4Долгий, "можете написать скрипт" — это и была просьба) Вестимо, вы не заметили

Ваш вариант с проверками крайне нерационален с точки зрения времени выполнения. Это получается постоянно, всю игру, крутится цикл, внутри которого N раз за тик еще один. При этом нужно строго отслеживать число шахты и нумеровать каждую. Да, на новичку такой скрипт будет проще, чем таблицы (кстати, они до сих пор двумерные, в варианте Jewill), но тогда по итогу пользователь будет все решать таким методом в лоб и в более сложных ситуациях встанет в тупик.
Мало того — автоматический сброс владельца с шахты будет срабатывать...сразу после её захвата! Если только человек не успеет быстро прокликать шахту и закинуть нужный гарнизон (а поди еще таскай с собой)... Плюс комп потеряет возможность держать эти шахты под контролем в принципе.
Так что, при всем уважении к вашему опыту работы с мультиплеерами, кои по сей день действительно радуют глаз, предложенный вами вариант скрипта в текущем виде банально не является рабочим.

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

З.ы. Раз уж зашло дело о советах, рекомендую посмотреть, как устроены толкбоксы в карте "Путь героя" (в скриптах talkbox.lia) или в MCCS smile02
Спасибо за советы. "Путь героя" что называется, исколупан мною не полностью конечно, но весьма обстоятельно... многоуважаемый автор своё дело знает.
Если вы не сталкивались, то, пожалуй, не откажусь от такого соблазна - толкбоксы поиспользовать. Если я пропаду - значит они убивают сейвы и мне нужно переписывать 1000+ строк
Чего делать не хочется...
пы сы.
А пока продолжу увлекательную песню "1000 и 1 вопрос к Хоттабычу и Ко по поводу веселой пляски скриптов в героях":
Внимание вопрос(Так скажем - на подумать). Существует такая функция  CanShowPlayer() , может там чуть иначе, она незадокументирована, но проверят возможность показать игроку 
Окно с сообщением. Мои тесты показали, что функция работает странно, то есть не всегда даёт однозначно ожидаемый результат. Однако,вроде как, когда открыты стандартные модальные(и не очень) окна, по-типу гарнизона, левел-апа и т.п, она возвращает nil,а после скрытия окна not nil. Как думаете, в комбинации с триггерами на касание любого объекта и потоком, проверяющим для игрока возможность показа окна, можно сделать триггер закрытия окна? Т.Е на примере вышеобсуждаемого скрипта, ловить момент, когда игрок взаимодействует с объектом, зачем засекать x1 - момент когда показ стал невозможен(Ну а началом координат берём начало работы потока в сегментах), затем x2 - момент, когда показ стал снова возможен. И соответственно в этот момент x2 мы и считаем, что триггер активирован - даём событие. В случае же если это наше собственное окно, мы ещё и можем этому потоку кидать "сигнал" в виде имени, например, чтобы выполнять определенное действие.
Жуть какая-то вышла, но мне почему-то не дают покоя эти шахты...
пы сы сы.

Вся эта песня лишь потому, что насколько мне понятно было из документации, через стандартный параметр callback у окошек нельзя передавать аргументы(Я буду счастлив, если как обычно не прав). А так можно было бы свои передать, что упразднило бы использование преступных массивов-буферов данных.
__________________




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

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




                                                                                       




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

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




                                                                                       
Jewily вне форума
Ответить с цитированием
#5490
Старый 10.03.2022, 18:23
  #5490
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 207
Регистрация: 24.04.2016
Сообщения: 207
По умолчанию
Re: Текущие вопросы и ответы по редактору карт

Привет! Кто-нибудь знает как можно сделать погоду? Например, хотелось бы добавить в игру дождь, снегопад, песчаную бурю, такое вот в общем. В Империи Единорога видел дождь на последней карте, но вот как это всё работает увы не знаю(
Азгалор вне форума
Ответить с цитированием
Ответ
Страница 366 из 384


Опции темы



Часовой пояс GMT +4, время: 07:47.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Русский)

Яндекс цитирование    Top.Mail.Ru