Перейти к содержанию

Сообщения от Скрипты

#2844
Здравствуйте. Впервые знакомлюсь со скриптами.
Можете подсказать скрипт на атаку монстра на глобальной карте (воиспроизведению анимации атаки)
В ответ пользователю Barboriska
Аватар пользователя
#2845
PlayObjectAnimation, посмотри в руководстве
Аватар пользователя
#2846
Столкнулся с такой проблемой...

Есть вражеский герой (подвижный). Его смерть приводит к победе в сценарии... но если этот герой погибает на ходу ИИ (сам расшибается об игрока), то после проигрывания ролика и прочего, вместо победы игра выдает консольную ошибку No player!, а смена хода зависает. Если игрок сам нападает на героя, то все работает правильно.

Кто-нибудь знает как это исправить? Плиз)))

Собственно, сама функция:

Trigger(PLAYER_REMOVE_HERO_TRIGGER, 2, "TheEnd")

function TheEnd(hero)
if hero == "RedHeavenHero05" then
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
end
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
#2847
Это единственный герой противника?
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
#2848
Ment
Это единственный герой противника?

Нет. У него еще даже город оставался. И еще один ИИ-игрок.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
Аватар пользователя
#2849
AstralLein
Столкнулся с такой проблемой...

Есть вражеский герой (подвижный). Его смерть приводит к победе в сценарии... но если этот герой погибает на ходу ИИ (сам расшибается об игрока), то после проигрывания ролика и прочего, вместо победы игра выдает консольную ошибку No player!, а смена хода зависает. Если игрок сам нападает на героя, то все работает правильно.

Кто-нибудь знает как это исправить? Плиз)))

Собственно, сама функция:

Trigger(PLAYER_REMOVE_HERO_TRIGGER, 2, "TheEnd")

function TheEnd(hero)
if hero == "RedHeavenHero05" then
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
end

У меня была подобная проблема, если враж. герой разбивался об игрока, то игра как бы была в заморозке (BlockGame). Я решил это, что мол моё событие, которое происходило при смерти этого героя происходило во время хода третьего, левого игрока и всё окей стало. Но если у тебя всего 2 действующих игрока, то тогда не знаю, как это сможет помочь.
Автор карт:
Долина расхитителей
Выбор мира
В ответ пользователю AstralLein
#2850
AstralLein
Столкнулся с такой проблемой...

Есть вражеский герой (подвижный). Его смерть приводит к победе в сценарии... но если этот герой погибает на ходу ИИ (сам расшибается об игрока), то после проигрывания ролика и прочего, вместо победы игра выдает консольную ошибку No player!, а смена хода зависает. Если игрок сам нападает на героя, то все работает правильно.

Кто-нибудь знает как это исправить? Плиз)))

Собственно, сама функция:

Trigger(PLAYER_REMOVE_HERO_TRIGGER, 2, "TheEnd")

function TheEnd(hero)
if hero == "RedHeavenHero05" then
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
end

Запиши, как я предлагал, через startThread.

function TheEnd()
while IsHeroAlive( "RedHeavenHero05" ) == true do sleep(5) end
sleep(1)
StartDialogScene(path.."DialogScenes/DialogFinal/DialogScene.xdb#xpointer(/DialogScene)")
sleep(5)
SetObjectiveState("Final", OBJECTIVE_COMPLETED)
SetObjectiveState("NecroTown", OBJECTIVE_COMPLETED)
SetObjectiveState("ArantirLive", OBJECTIVE_COMPLETED)
sleep(10)
Win()
end
(Мог что-то пропустить)
Саму функцию нужно запустить после победы над Весселем.
Карты: Экспедиция ГрувераНаследие ШантириВременной парадоксПоиски рунной сферыПуть возвращения
В ответ пользователю OrnsteinDragonslayer
Аватар пользователя
#2851
OrnsteinDragonslayer
У меня была подобная проблема, если враж. герой разбивался об игрока, то игра как бы была в заморозке (BlockGame). Я решил это, что мол моё событие, которое происходило при смерти этого героя происходило во время хода третьего, левого игрока и всё окей стало. Но если у тебя всего 2 действующих игрока, то тогда не знаю, как это сможет помочь.

Три игрока.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
#2852
Ребят, подскажите скрипт на то, что бы существо типо атаковало и типо радовалось на карте, для карты очень важно, скажите пж
В ответ пользователю JackBrainPredtech
Аватар пользователя
#2853
JackBrainPredtech
Ребят, подскажите скрипт на то, что бы существо типо атаковало и типо радовалось на карте, для карты очень важно, скажите пж

PlayObjectAnimation("скриптовое название юнита", "happy", ONESHOT_STILL);

ONESHOT_STILL - если анимация должна проигрываться лишь 1 раз;
если хочешь, чтобы анимация была постоянной, то нужна другая команда, почитай в руководстве какая конкретно.
Автор карт:
Долина расхитителей
Выбор мира
В ответ пользователю OrnsteinDragonslayer
#2854
OrnsteinDragonslayer
PlayObjectAnimation("скриптовое название юнита", "happy", ONESHOT_STILL);

ONESHOT_STILL - если анимация должна проигрываться лишь 1 раз;
если хочешь, чтобы анимация была постоянной, то нужна другая команда, почитай в руководстве какая конкретно.

Читал, и нифига не понял, помогите

Добавлено через 35 минут
OrnsteinDragonslayer
PlayObjectAnimation("скриптовое название юнита", "happy", ONESHOT_STILL);

ONESHOT_STILL - если анимация должна проигрываться лишь 1 раз;
если хочешь, чтобы анимация была постоянной, то нужна другая команда, почитай в руководстве какая конкретно.

Там все на ингл. напишите команды, которые я попросил, если не затруднит...

Добавлено через 8 минут
OrnsteinDragonslayer
PlayObjectAnimation("скриптовое название юнита", "happy", ONESHOT_STILL);

ONESHOT_STILL - если анимация должна проигрываться лишь 1 раз;
если хочешь, чтобы анимация была постоянной, то нужна другая команда, почитай в руководстве какая конкретно.
помогите же
Аватар пользователя
#2855
OrnsteinDragonslayer более чем все расписал.

Вы задаете в редакторе скриптовое имя тому, кто должен играть анимацию. После чего копируете в скрипт сию строчку для каждого из этих существ.

PlayObjectAnimation("сюда писать скриптовое имя существа", "happy", IDLE) - для зацикленной радости
PlayObjectAnimation("сюда писать скриптовое имя существа", "attack00", IDLE) - для зацикленной атаки
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
#2856
AstralLein
OrnsteinDragonslayer более чем все расписал.

Вы задаете в редакторе скриптовое имя тому, кто должен играть анимацию. После чего копируете в скрипт сию строчку для каждого из этих существ.

PlayObjectAnimation("сюда писать скриптовое имя существа", "happy", IDLE) - для зацикленной радости
PlayObjectAnimation("сюда писать скриптовое имя существа", "attack00", IDLE) - для зацикленной атаки

Увы, они как стояли яйки чесали, так и продолжают чесать
В ответ пользователю JackBrainPredtech
Аватар пользователя
#2858
JackBrainPredtech
Увы, они как стояли яйки чесали, так и продолжают чесать

Фрагмент из моей карты, где дерутся 2 элементаля
function BattleThread()
while (true) do
if (IsObjectExists("elemF")) then
PlayObjectAnimation("elemF", "attack00", ONESHOT);
end
sleep(random(10)+5);
if (IsObjectExists("elemW")) then
PlayObjectAnimation("elemW", "attack00", ONESHOT);
end
sleep(random(10)+5);
end
end

startThread (BattleThread);

Где elemF и elemW - скриптовое название существ. Если вы не знаете, то тыкните в редакторе на нужного юнита, слева в менюшке в строке Name (вроде) дайте ему какое-нибудь название, это названию юзайте и в функции выше.
Автор карт:
Долина расхитителей
Выбор мира

Статистика

Приветствуем новейшего участника: Emil

Сейчас на сайте 4 пользователей 1092 гостей