Òåêóùèå âîïðîñû è îòâåòû ïî ðåäàêòîðó êàðò - Ñòðàíèöà 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
Ñîîáùåíèÿ: 97
Ðåãèñòðàöèÿ: 23.04.2019
Ñîîáùåíèÿ: 97
Ïî óìîë÷àíèþ
Re: Òåêóùèå âîïðîñû è îòâåòû ïî ðåäàêòîðó êàðò

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

2. В дневной функции нужен if чек по типу GetObjectCreatures, и если он возращает 0, то отнимается дневной прирост ресурсов шахты от общего количества.
Äîëãèé âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#5477
Ñòàðûé 07.03.2022, 08:44
  #5477
^
}{0TT@6bI4
 
Àâàòàð äëÿ }{0TT@6bI4
📖
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
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
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
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
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
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
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
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
Ñîîáùåíèÿ: 97
Ðåãèñòðàöèÿ: 23.04.2019
Ñîîáùåíèÿ: 97
Ïî óìîë÷àíèþ
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
Ñîîáùåíèÿ: 97
Ðåãèñòðàöèÿ: 23.04.2019
Ñîîáùåíèÿ: 97
Ïî óìîë÷àíèþ
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
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
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
Ñîîáùåíèÿ: 219
Ðåãèñòðàöèÿ: 24.04.2016
Ñîîáùåíèÿ: 219
Ïî óìîë÷àíèþ
Re: Òåêóùèå âîïðîñû è îòâåòû ïî ðåäàêòîðó êàðò

Привет! Кто-нибудь знает как можно сделать погоду? Например, хотелось бы добавить в игру дождь, снегопад, песчаную бурю, такое вот в общем. В Империи Единорога видел дождь на последней карте, но вот как это всё работает увы не знаю(
Àçãàëîð âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
Îòâåò
Ñòðàíèöà 366 èç 384


Îïöèè òåìû



×àñîâîé ïîÿñ GMT +4, âðåìÿ: 17:08.


vBulletin v3.5.0, Copyright ©2000-2024, Jelsoft Enterprises Ltd. (Ðóññêèé)

ßíäåêñ öèòèðîâàíèå    Top.Mail.Ru