Самое простое (и единственное вразумительное), что мне приходит в голову -- сделать Вашу карту заменяющей все кампании оригинальных героев, а Ваши ролики -- заменяющими соответствующие ролики про свадьбу и тот, что в конце игры запускается ;)
спасибо за совет, но нет, увы, это не вариант. во первых, так будет возможность поставить только один ролик, во вторых, не хочется заменять, хочется добавлять.
ладно, будем думать. может быть можно сделать какую-нибудь видео текстуру. или вроде того. и настроить кат-сцену в которой видео текстура будет проигрываться на статичном объекте-плане-стенке, а камера будет зафиксирована на этом обьекте. но, по-моему, в героях нельзя задавать текстуру как последовательность кадров. в таком случае остаётся только вариант расположить последовательность кадров на плоскости как отдельные объекты и задать в кат сцене смену камеры на каждый кадр. т.е. чтобы каждый новый кадр камера в кат сцене была зафиксирована на новом объекте с новым кадром видео.
понятно, что решение шизофреническое, понятно, что могут быть косяки по совмещению звука. но, пожалуй, других вариантов особо и нет.
Здравствуйте, у меня такой вопрос: как можно ограничить количество одновременно используемых героев игроку, например чтобы он не мог иметь больше 3-х героев?
Я пробовал эту функцию, но не пойму как она работает: не понятно откуда берется стандартное число героев, я даже 1000 ставил все равно мог закупать героев сколько угодно
Добавлено через 15 часов 31 минуту Может кто-нибудь объяснить или привести пример как работает эта функция SetPlayerHeroesCountNotForHire?
kycaka
кто может помочь? друг подсадил на игру герои 5 3.1 ну я и решил сделать карту огромную на 8 игроков. полностью руками рисованную. где играя за каждую рассу свои фишки и секреты будут. ну и вот сейчас делаю одну рассу и столкнулся с нееобходимостью скриптов. нужено пару базовых скриптов. в дальнейшем смогу их переделать. главное чтобы были примеры. потому как сам пытаюсь разобраться и что то не идет дело совсем. в виде спасибо закину потом свою карту сюда чтобы каждый мог сыграть.
в частности интересуют такие скрипты. 1. есть хижина пророка где выдается задание. есть условие выполнения. нужно чтобы при выполнении задания в виде награды в определенном месте карты по заданным координатам убирались препятствия и открывался проход. или того героя который выполнил условие задания телепортировало в определенную точку карты. причем это не всегда будет игрок. а возможно и ИИ играющий за эту рассу. 2. нужен скрипт который при посещении хижины пророка и выполнении задания преобразует определенный город захваченный игроком посетившим пророка в город другого типа. и вообще возможно ли через хижину пророка делать такие вещи? заранее спасибо.
Ment
Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти. Насчёт конвертации сразу скажу, конвертировать город в другой с сохранением строений не выйдет. Ну а так... С некрополисом точно можно, с осиальными меньше уверенности, но скорее да. Однако, задача не совсем тривиальная.
Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти.
я же и пишу что не смог найти как это сделать. смотрел уже и пытался разобраться. мне надо помощь профессионала.
Ment
Удаление объекта
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;
вот так сделал. у тебя пару неточностей было. но все равно не работает. я уже даже на монстров поставил задание убрать и не помогает. тут случайно не нужно прописывать что для всех игроков или это само собой разумеется?
кстати ругается почему то на первую строку скрипта. а именно на - function a1() и дело не в количестве символов в названии ставил и 5 букв все равно ругается. может сама функция как то я хз. у меня уже мозг лопается.
Ment
А можно узнать, что конкретно пишет? А то у меня маловато идей. Только что в функцию a1 передаётся номер игрока, на самом деле, но по идее это не должно влиять. 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
Ment
Это редактор выводит при проверке карты? Это ерунда и не говорит о неверном коде. В игре надо консоль включить и там ошибку смотреть.