Скрипты - Страница 225 - Форум HeroesWorld-а

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

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

Ответ
Страница 225 из 237
 
Опции темы
#3361
Старый 12.05.2021, 18:32
  #3361
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

Доброго времени суток
Очень рад, что вы работаете над картой! smile03 "Стариков" маловато в последнен время. К вопросу, нет, это невозможно. Хотя можно (теоретически) создать непроходимый объект статики с плотной-плотной моделью чёрного облака и создавать его в нужном месте.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3362
Старый 12.05.2021, 22:44
  #3362
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

}{0TT@6bI4Доброго времени суток
Очень рад, что вы работаете над картой! smile03 "Стариков" маловато в последнен время. К вопросу, нет, это невозможно. Хотя можно (теоретически) создать непроходимый объект статики с плотной-плотной моделью чёрного облака и создавать его в нужном месте.

Жаль, спасибо за ответ, нет это не вариант, для моей задумки это огромная нагрузка на карту, буду обходиться костылями)
KioM вне форума
Ответить с цитированием
#3363
Старый 12.05.2021, 23:18
  #3363
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

Можно убрать стандартное открытие тумана и организовать обзор скриптом (с маленькой нагрузкой). Тогда можно будет вычислять, подходит ли герой к области нужного объекта, и в таком случае не открывать. То есть, обзор (наш, скриптовый) сделать 7 клеток, и если координаты героя меньше либо равны уравнению окружности вокруг обьекта + 8 клеток, то перестать открывать туман... Что-то вроде запретного города, радиусом 8 клеток. Не подойдет такой костыль?
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3364
Старый 13.05.2021, 00:24
  #3364
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Как идея норм, но не мой случай. Я примерно представляю что и как сделать, просто думал есть механизм нормальный для тумана войны, жаль разработчики не предусмотрели такую возможность
KioM вне форума
Ответить с цитированием
#3365
Старый 02.06.2021, 08:43
  #3365
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Доброго времени суток, давно не работал с боевыми скриптами, наклепал короткий и с виду простой код, но каст не отрабатывает, не могу понять почему (пробовал со всеми заклами света, работает только с регеном, в тьме только с замедлением, остальные тоже ругаются). Прошу помощи у знатоков. Пример ниже:
Заголовок
function Start()
    local creaturesList = GetAttackerCreatures();
    local manaSave = GetUnitManaPoints(GetAttackerHero());
    sleep(5);
    SetUnitManaPoints(GetAttackerHero(), 500);
    for i, target in creaturesList do
        UnitCastAimedSpell(GetAttackerHero(), SPELL_BLESS, target);
        print("Unit"..GetAttackerHero().."casted".. SPELL_BLESS.." to target"..target);
    end;
    sleep(5);
    SetUnitManaPoints(GetAttackerHero(), manaSave);
    startThread(checkWinAttacker);
    startThread(checkWinDefender);
    sleep(5);
    EnableAutoFinish(nil);
end;

function checkWinAttacker()
    repeat sleep(1); until length(GetDefenderCreatures()) == 0;

    sleep(30);
    Finish(ATTACKER);
end;

function checkWinDefender()
    repeat sleep(1); until length(GetAttackerCreatures()) == 0;
    
    sleep(30);
    Finish(DEFENDER);
end;
KioM вне форума
Ответить с цитированием
#3366
Старый 02.06.2021, 10:36
  #3366
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

Почему бы не упростить скрипт и не воспользоваться масскастами? UnitCastGlobalSpell(GetAttackerHero(), SPELL_MASS_BLESS).

function Start()
local mana = GetUnitManaPoints(GetAttackerHero())
SetUnitManaPoints(GetAttackerHero(), 200)
sleep(1)
UnitCastGlobalSpell(GetAttackerHero(), SPELL_MASS_BLESS)
sleep(1)
end

В вашем скрипте, вероятно, не хватает sleep-ов внутри цикла for; всё-таки время выполнения у функций каста есть и заметное.

__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3367
Старый 02.06.2021, 11:39
  #3367
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Проблема прежняя
Миниатюры
Нажмите на изображение для увеличения
Название:  1.jpg
Просмотров: 5
Размер:	6.6 Кбайт
ID:	65213  
KioM вне форума
Ответить с цитированием
#3368
Старый 02.06.2021, 11:40
  #3368
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

}{0TT@6bI4Почему бы не упростить скрипт и не воспользоваться масскастами? UnitCastGlobalSpell(GetAttackerHero(), SPELL_MASS_BLESS).

function Start()
local mana = GetUnitManaPoints(GetAttackerHero())
SetUnitManaPoints(GetAttackerHero(), 200)
sleep(1)
UnitCastGlobalSpell(GetAttackerHero(), SPELL_MASS_BLESS)
sleep(1)
end

В вашем скрипте, вероятно, не хватает sleep-ов внутри цикла for; всё-таки время выполнения у функций каста есть и заметное.

Не смогу упростить, т.к. битва проходит между героем и армией нейтралов, потому каст бафов нейтралам приходится производить от лица героя
KioM вне форума
Ответить с цитированием
#3369
Старый 02.06.2021, 12:06
  #3369
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

Но наш герой не может накинуть то же ускорение на соперника! Это противоречит игровой логике.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3370
Старый 02.06.2021, 12:08
  #3370
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

KioMПроблема прежняя
Ошибка утверждает, что кастовать пытался герой защищающихся, а его нет. Вероятно, это вызвано как раз попыткой накинуть баф на врага
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3371
Старый 02.06.2021, 15:41
  #3371
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Получается нужно эмулировать каст мобам?

Другой вопрос, можно ли как-то кастовать мобом скажем ускор, на экспертном уровне без редактирования самого моба? Онли скриптом
KioM вне форума
Ответить с цитированием
#3372
Старый 02.06.2021, 17:00
  #3372
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 805
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 805
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

KioMПолучается нужно эмулировать каст мобам?

Другой вопрос, можно ли как-то кастовать мобом скажем ускор, на экспертном уровне без редактирования самого моба? Онли скриптом
нет, если у существа явно не прописано заклинание, то оно будет кастовать его на продвинутом уровне. Если мне нужно кастануть спелл существом на каком-то специальном уровне/специальных условиях, я использую скрытых существ, которым явно прописаны заклинания. В бою вызываю скрытое существо -> кастую -> убираю существо. При такой схеме, появление существа остается незаметным. Пример кода(рабочий пример из NHF):
  -- призыв
  AddCreature(side, HELPER, 30, -1, -1, nil, 'fiona_sorrow_helper')
  while not exist('fiona_sorrow_helper') do
    sleep()
  end
  -- каст
  for creature, _ in enemy_stacks_to_sorrow do
    pcall(UnitCastAimedSpell, 'fiona_sorrow_helper', SPELL_SORROW, creature)
  end
  -- удаление существа
  removeUnit('fiona_sorrow_helper')
  while exist('fiona_sorrow_helper') do
    sleep()
  end
__________________
MCCS v0.3.6 - мультиплеерный мод, добавляющий уникальный контент и механики в игру

Ушел в геймдев.
MCCS v0.3.6 - мультиплеерный мод, добавляющий уникальный контент и механики в игру

Ушел в геймдев.
Gerter вне форума
Ответить с цитированием
#3373
Старый 02.06.2021, 17:00
  #3373
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1368
Выставка наград
По умолчанию
Re: Скрипты

Нет. Можно создать специального моба со всеми заклинаниями на нужных уровнях, вызывать его, кастовать им что-то (на своих) и удалять. Это реализовано, например, в карте Проклятый
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3374
Старый 02.06.2021, 18:20
  #3374
^
KioM
 
Аватар для KioM
📖
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
Регистрация: 01.02.2012
Адрес: Херсон, Украина
Сообщения: 349
Выставка наград
По умолчанию
Re: Скрипты

Gerter, }{0TT@6bI4, Спасибо, буду разбираться.
KioM вне форума
Ответить с цитированием
#3375
Старый 07.06.2021, 21:49
  #3375
^
Sunix
 
Аватар для Sunix
📖
Регистрация: 07.06.2021
Адрес: Гродно, Беларусь
Сообщения: 1
Sunix#9809
Регистрация: 07.06.2021
Адрес: Гродно, Беларусь
Сообщения: 1
Sunix#9809
Радость
Re: Скрипты

Не знаю спрашивали ли до меня об этом, но все же. Как сделать так, чтобы при входе в регион диалога он проигрывался лишь один раз и при повторном входе в этот регион, диалог больше не открывался?
Sunix вне форума
Ответить с цитированием
Ответ
Страница 225 из 237


Опции темы



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


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

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