Сообщения от Скрипты для начинающих
ладно, будем думать. может быть можно сделать какую-нибудь видео текстуру. или вроде того. и настроить кат-сцену в которой видео текстура будет проигрываться на статичном объекте-плане-стенке, а камера будет зафиксирована на этом обьекте. но, по-моему, в героях нельзя задавать текстуру как последовательность кадров. в таком случае остаётся только вариант расположить последовательность кадров на плоскости как отдельные объекты и задать в кат сцене смену камеры на каждый кадр. т.е. чтобы каждый новый кадр камера в кат сцене была зафиксирована на новом объекте с новым кадром видео.
понятно, что решение шизофреническое, понятно, что могут быть косяки по совмещению звука. но, пожалуй, других вариантов особо и нет.
SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев), как то так.
, как то так.SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев)
Я пробовал эту функцию, но не пойму как она работает: не понятно откуда берется стандартное число героев, я даже 1000 ставил все равно мог закупать героев сколько угодно
Добавлено через 15 часов 31 минуту
Может кто-нибудь объяснить или привести пример как работает эта функция SetPlayerHeroesCountNotForHire?
в частности интересуют такие скрипты.
1. есть хижина пророка где выдается задание. есть условие выполнения. нужно чтобы при выполнении задания в виде награды в определенном месте карты по заданным координатам убирались препятствия и открывался проход. или того героя который выполнил условие задания телепортировало в определенную точку карты. причем это не всегда будет игрок. а возможно и ИИ играющий за эту рассу.
2. нужен скрипт который при посещении хижины пророка и выполнении задания преобразует определенный город захваченный игроком посетившим пророка в город другого типа. и вообще возможно ли через хижину пророка делать такие вещи? заранее спасибо.
function gogo()
if GetObjectiveState("имя задания у пророка") == OBJECTIVE_COMPLETED then
RemoveObject("Название того, что надо удалить")
end
end
Trigger(OBJECTIVE_STATE_TRIGGER, "имя задания у пророка", "gogo")
Сразу комментарии:
1) удаляемый объект должен быть типа Static, причём свойство IsRemovable должно стоять в true (смотрится в objectPropretiesTree)
Имя, ращумеется, даём там же -- поле name
2) если задание для нескольких игроков однотипное и для одного и того же объекта, вставляем проверку на IsObjectExists. Потом удаляем.
3) строго говоря, не проверял этот триггер для заданий пророков. Но скорее всего работает.
Удаление объекта
function gogo()
if GetObjectiveState("имя задания у пророка") == OBJECTIVE_COMPLETED then
RemoveObject("Название того, что надо удалить")
end
end
Trigger(OBJECTIVE_STATE_TRIGGER, "имя задания у пророка", "gogo")
Сразу комментарии:
1) удаляемый объект должен быть типа Static, причём свойство IsRemovable должно стоять в true (смотрится в objectPropretiesTree)
Имя, ращумеется, даём там же -- поле name
2) если задание для нескольких игроков однотипное и для одного и того же объекта, вставляем проверку на IsObjectExists. Потом удаляем.
3) строго говоря, не проверял этот триггер для заданий пророков. Но скорее всего работает.
function a1()
if GetObjectiveState ("q1") == OBJECTIVE_COMPLETED then
RemoveObject ("qq1");
end;
end;
Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER, "q1", "a1" )
вот так сделал. у тебя пару неточностей было. но все равно не работает. я уже даже на монстров поставил задание убрать и не помогает. тут случайно не нужно прописывать что для всех игроков или это само собой разумеется?
кстати ругается почему то на первую строку скрипта. а именно на - function a1() и дело не в количестве символов в названии ставил и 5 букв все равно ругается. может сама функция как то я хз. у меня уже мозг лопается.
Novik в своём руководстве пишет, как делать хуки, можно воспользоваться
void errorHook( fCallback )
Позволяет установить перехватчик ошибки. По умолчанию при возникновении ошибки скрипта текущий поток завершает свою работу. Благодаря данной функции у Вас есть возможность откорректировать это поведение – перед остановом управление будет передано функции fCallback.
Пример:
function onError()
print("Error occured ")
end
function SetArtefactUntrans(nArtefactName)
errorHook(onError)
RemoveArtefact("Berein",nArtefactName)
GiveArtefact("Berein",nArtefactName,1)
end
при возникновении ошибки в функции SetArtefactUntrans (например, требуемого артефакта у героя нет) в консоль будет выдана строка "Error occured ". Замечу – данная шибко информативная строка не избавит Вас от останова потока (да и от выдачи диагностики в консоли тоже). Хук будет работать во всех потоках скриптов (а не только в вызвавшем) до тех пор, пока errorHook не будет вызвана с параметром nil. Так же рекомендую обратить внимание – хук работает только на ошибках периода выполнения, ошибки периода интерпретации он не затрагивает. Что касается приведенного примера, то гораздо разумнее вместо использования хука проверять героя на предмет наличия должного артефакта.
Function gogo not defined, line 1
Objective vith name "gaz" is not exist
скрины прилаживаю домика провидца и ммм дерева которое должно быть якобы удалено скриптом.
такое чувство что она не видит квеста в домике провидца. хотя в игре он работает и выполняется.