Ñêðèïòû - Ñòðàíèöà 234 - Ôîðóì HeroesWorld-à

Áûñòðàÿ íàâèãàöèÿ ïî îñíîâíûì ðàçäåëàì ôîðóìà:
Òóðíèðû
ÊÀÐÒÛ
Heroes 6
Heroes 5
Heroes 4
Heroes 3
Heroes 2
Heroes 1
Might&Magic

Ãåðîè Ìå÷à è Ìàãèè 5 - Êàðòîñòðîèòåëüñòâî (Ðåäàêòîð êàðò)  ýòîì ðàçäåëå ìîæíî îáñóæäàòü âñå ÷òî êàñàåòñÿ ðåäàêòîðà êàðò äëÿ Heroes of Might and Magic V. Òàê æå çäåñü îáñóæäàåì êàðòîñòðîèòåëüñòâî.

Îòâåò
Ñòðàíèöà 234 èç 261
 
Îïöèè òåìû
#3496
Ñòàðûé 26.08.2021, 16:22
  #3496
^
}{0TT@6bI4
 
Àâàòàð äëÿ }{0TT@6bI4
📖
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

while 1 do
  pfonix = GetHeroCreatures( "Main_Hero", CREATURE_PHOENIX);
  if pfonix >= 5 then
    SetObjectiveState("dzad3", OBJECTIVE_COMPLETED);
    SetObjectiveState("dzad2", OBJECTIVE_FAILED);
    break;
  end;
  sleep(1)
end

Не хватает sleep-а в последнем цикле, поэтому при невыполнении условия pfonix >= 5 (по-английски правильно пишется phoenix, а не пфоникс) после первой итерации игра вылетает. Как-то так.

__________________
Ñ óâàæåíèåì, }{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 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3497
Ñòàðûé 26.08.2021, 16:27
  #3497
^
Andrei_21
 
Àâàòàð äëÿ Andrei_21
📖
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

}{0TT@6bI4
while 1 do
  pfonix = GetHeroCreatures( "Main_Hero", CREATURE_PHOENIX);
  if pfonix >= 5 then
    SetObjectiveState("dzad3", OBJECTIVE_COMPLETED);
    SetObjectiveState("dzad2", OBJECTIVE_FAILED);
    break;
  end;
  sleep(1)
end

Не хватает sleep-а в последнем цикле, поэтому при невыполнении условия pfonix >= 5 (по-английски правильно пишется phoenix, а не пфоникс) после первой итерации игра вылетает. Как-то так.


Теперь всё понятно. Большое вам спасибо! 
__________________
Ñöåíàðèé: "Íàñëåäèå ïðîøëîãî"
Êàìïàíèè:
"
Íîâûé ïîðÿäîê", "Ñåðûé Àëüÿíñ""Ïîèñêè Èñòèíû"

Òðåéëåð êàìïàíèè "Äûõàíèå Ïóñòîòû": https://www.youtube.com/watch?v=NH04dyKPmw8&ab_channel=%D0%90ndrei_21

Andrei_21 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3498
Ñòàðûé 28.08.2021, 20:57
  #3498
^
Alinksolo
 
Àâàòàð äëÿ Alinksolo
📖
Ðåãèñòðàöèÿ: 02.08.2021
Ñîîáùåíèÿ: 41
Ðåãèñòðàöèÿ: 02.08.2021
Ñîîáùåíèÿ: 41
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Какой нужен скрипт чтобы в зданиях где нанимают существ, можно было нанять существ один раз за всю игру?
Alinksolo âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3499
Ñòàðûé 28.08.2021, 22:28
  #3499
^
}{0TT@6bI4
 
Àâàòàð äëÿ }{0TT@6bI4
📖
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

В функции нового дня:
if GetDate(DAY_OF_WEEK)==0 then
SetObjectDwellingCreatures("Имя города", id-существа, 0)
end

Если таких существ несколько, то составьте массив айди:
if GetDate(DAY_OF_WEEK)==0 then
local id_table = {id1, id2, id3, ....}
for key, id in id_table do
SetObjectDwellingCreatures("Имя города", id, 0)
end
end
__________________
Ñ óâàæåíèåì, }{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 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3500
Ñòàðûé 29.08.2021, 10:41
  #3500
^
Alinksolo
 
Àâàòàð äëÿ Alinksolo
📖
Ðåãèñòðàöèÿ: 02.08.2021
Ñîîáùåíèÿ: 41
Ðåãèñòðàöèÿ: 02.08.2021
Ñîîáùåíèÿ: 41
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Какой скрипт нужен чтобы после диалога выдавалось несколько заданий?
Alinksolo âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3501
Ñòàðûé 29.08.2021, 11:21
  #3501
^
Ãðèãîðèé Êîâàëåâ
 
Àâàòàð äëÿ Ãðèãîðèé Êîâàëåâ
📖
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Кстати, а как все-таки работает скрипт sleep?Вообще понять не могу
Ãðèãîðèé Êîâàëåâ âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3502
Ñòàðûé 29.08.2021, 11:37
  #3502
^
Andrei_21
 
Àâàòàð äëÿ Andrei_21
📖
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Григорий КовалевКстати, а как все-таки работает скрипт sleep?Вообще понять не могу

Григорий, это задержка между скриптами работает примерно так:
 Ваш код
 sleep(1) - в скобках указываем время задержки. При этом нужно помнить, что sleep(1) равен 200мс.
Ваш код 

Очень удобна функция, если сначала нужно, допустим, проиграть красивый эффект, а по его завершении разрушить какой-либо объект.
__________________
Ñöåíàðèé: "Íàñëåäèå ïðîøëîãî"
Êàìïàíèè:
"
Íîâûé ïîðÿäîê", "Ñåðûé Àëüÿíñ""Ïîèñêè Èñòèíû"

Òðåéëåð êàìïàíèè "Äûõàíèå Ïóñòîòû": https://www.youtube.com/watch?v=NH04dyKPmw8&ab_channel=%D0%90ndrei_21

Andrei_21 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3503
Ñòàðûé 29.08.2021, 12:05
  #3503
^
Ãðèãîðèé Êîâàëåâ
 
Àâàòàð äëÿ Ãðèãîðèé Êîâàëåâ
📖
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

То есть если я правильно понял, sleep дает задержку между скриптами? Если это так, бегу пробовать.
Ãðèãîðèé Êîâàëåâ âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3504
Ñòàðûé 29.08.2021, 13:38
  #3504
^
Andrei_21
 
Àâàòàð äëÿ Andrei_21
📖
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 14.03.2021
Ñîîáùåíèÿ: 235
andrei_21
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Пробуйте, Григорий. Знание, где поставить sleep одно из важнейших понятий в lua.
__________________
Ñöåíàðèé: "Íàñëåäèå ïðîøëîãî"
Êàìïàíèè:
"
Íîâûé ïîðÿäîê", "Ñåðûé Àëüÿíñ""Ïîèñêè Èñòèíû"

Òðåéëåð êàìïàíèè "Äûõàíèå Ïóñòîòû": https://www.youtube.com/watch?v=NH04dyKPmw8&ab_channel=%D0%90ndrei_21

Andrei_21 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3505
Ñòàðûé 29.08.2021, 16:08
  #3505
^
John_Lock
 
Àâàòàð äëÿ John_Lock
📖
Ðåãèñòðàöèÿ: 03.01.2017
Ñîîáùåíèÿ: 124
Ðåãèñòðàöèÿ: 03.01.2017
Ñîîáùåíèÿ: 124
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

AlinksoloКакой скрипт нужен чтобы после диалога выдавалось несколько заданий?
Задание выдаётся этой командой SetObjectiveState('имя_задания', state, playerID = PLAYER_1); Можете несколько раз прописать эту команду для выдачи разных заданий
John_Lock âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3506
Ñòàðûé 29.08.2021, 16:30
  #3506
^
Ãðèãîðèé Êîâàëåâ
 
Àâàòàð äëÿ Ãðèãîðèé Êîâàëåâ
📖
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

User01322342Задание выдаётся этой командой SetObjectiveState('имя_задания', state, playerID = PLAYER_1); Можете несколько раз прописать эту команду для выдачи разных заданий
Если оно выставлено как управляемое в ручную.
Ãðèãîðèé Êîâàëåâ âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3507
Ñòàðûé 30.08.2021, 08:25
  #3507
^
Ìàðòà
📖
Ðåãèñòðàöèÿ: 31.01.2020
Ñîîáùåíèÿ: 80
Ðåãèñòðàöèÿ: 31.01.2020
Ñîîáùåíèÿ: 80
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Хелп, люди добрые.
Никто случайно не знает, как написать отдельный скрипт на ворота гарнизона?
Что-то мне ни разу такое не попадалось, а между тем, в этой модели есть вкладка Script.
Ведь это, наверное, не function, а надо писать просто, без всяких предисловий?
Я хочу, чтобы в ворота мог проехать только владелец такого-то замка, и сякого-то замка, то есть, два условия.
Как это пишется?
Ìàðòà âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3508
Ñòàðûé 30.08.2021, 09:34
  #3508
^
Ãðèãîðèé Êîâàëåâ
 
Àâàòàð äëÿ Ãðèãîðèé Êîâàëåâ
📖
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ðåãèñòðàöèÿ: 16.08.2021
Àäðåñ: Êðåñòüÿíñêèå õèæèíû
Ñîîáùåíèÿ: 81
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

МартаХелп, люди добрые.
Никто случайно не знает, как написать отдельный скрипт на ворота гарнизона?
Что-то мне ни разу такое не попадалось, а между тем, в этой модели есть вкладка Script.
Ведь это, наверное, не function, а надо писать просто, без всяких предисловий?
Я хочу, чтобы в ворота мог проехать только владелец такого-то замка, и сякого-то замка, то есть, два условия.
Как это пишется?

Можно создать регион где стоит гарнизон.Потом скриптом SetRegionBlocked блокируем регион.SetRegionBlocked("имя региона", true или false,  1)
true блокировка, false разблокировка.
1 номер игрока, то есть красный.Второй - синий и т.д.
Ãðèãîðèé Êîâàëåâ âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3509
Ñòàðûé 30.08.2021, 09:48
  #3509
^
}{0TT@6bI4
 
Àâàòàð äëÿ }{0TT@6bI4
📖
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ðåãèñòðàöèÿ: 05.09.2019
Àäðåñ: Ñåðåáðÿíûå Ãîðîäà, Àëü-Ñàôèð
Ñîîáùåíèÿ: 1980
Âûñòàâêà íàãðàä
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Есть вариант проще.
function GarrisonBlock()
while 1 do
if GetObjectOwner("Замок2")==GetObjectOwner("Замок1")  then --Ваше условие истинно, только если оба замка принадлежат одному игроку
SetObjectEnabled("Гарнизон", 1, GetObjectOwner("Замок1")) --Разблокируем гарнизон владельцу обоих замков
while not IsObjectEnabled("Гарнизон") do sleep(1) end
end
for i=1,8 do
if GetPlayerState(i)==PLAYER_ACTIVE and  i~=GetObjectOwner("Замок1") and i~=GetObjectOwner("Замок2") and IsObjectEnabled("Гарнизон") then --Если игрок активен и не владелец обоих замков, но гарнизон ему разблокирован, то
SetObjectEnabled("Гарнизон", nil, i) --Заблокировать гарнизон ему
end
end
sleep(1)
end

startThread(GarrisonBlock)

Да, скрипт не очень красивый, можно было бы и имена в переменные загнать, чтобы не писать 5 раз, а еще лучше в аргументы функции, можно еще использовать триггер смены владельца замка и проверку на старте карты, чтоб лишний цикл не крутился.
__________________
Ñ óâàæåíèåì, }{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 âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
#3510
Ñòàðûé 30.08.2021, 10:58
  #3510
^
Ìàðòà
📖
Ðåãèñòðàöèÿ: 31.01.2020
Ñîîáùåíèÿ: 80
Ðåãèñòðàöèÿ: 31.01.2020
Ñîîáùåíèÿ: 80
Ïî óìîë÷àíèþ
Re: Ñêðèïòû

Спасибо, сейчас буду пробовать.

Добавлено через 36 минут
Хоттабыч, что-то не фурычит скрипт.
Скрипт эдитор сразу начал ругаться, но я там ещё один end добавила перед sleep, и он перестал.
Однако, теперь при попытке загрузить карту, на надписи "нажмите любую клавишу" игра наглухо зависает, и приходится выходить через Ctrl + Alt + Del, по-другому никак.
Я правильно поняла, надо было скрипт в Меп скрипт прописывать, а не на сами ворота?
И вот эта вот строчка меня смущает:
while not IsObjectEnabled("Garnizon_1") do sleep(1)end
Я в луа, и вообще в скриптах, ничего не понимаю, - но впервые сталкиваюсь, что end пишут просто так в конце, - это так и надо, do sleep(1)end, или это надо было с новой строчки или двух строчек писать?
Ìàðòà âíå ôîðóìà
Îòâåòèòü ñ öèòèðîâàíèåì
Îòâåò
Ñòðàíèöà 234 èç 261


Îïöèè òåìû



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


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

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