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

Сообщения от Скрипты для начинающих

В ответ пользователю Ment
Аватар пользователя
А есть какой-то способ включать видеовставку после окончания/перед началом карты?
Группа в вк посвящённая моим модам

Страничка моего последнего мода на ModDB

Моя страничка на Artstation,
где можно посмотреть и повертеть внутри браузера мои 3d модели.
Аватар пользователя
Самое простое (и единственное вразумительное), что мне приходит в голову -- сделать Вашу карту заменяющей все кампании оригинальных героев, а Ваши ролики -- заменяющими соответствующие ролики про свадьбу и тот, что в конце игры запускается ;)
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
спасибо за совет, но нет, увы, это не вариант. во первых, так будет возможность поставить только один ролик, во вторых, не хочется заменять, хочется добавлять.

ладно, будем думать. может быть можно сделать какую-нибудь видео текстуру. или вроде того. и настроить кат-сцену в которой видео текстура будет проигрываться на статичном объекте-плане-стенке, а камера будет зафиксирована на этом обьекте. но, по-моему, в героях нельзя задавать текстуру как последовательность кадров. в таком случае остаётся только вариант расположить последовательность кадров на плоскости как отдельные объекты и задать в кат сцене смену камеры на каждый кадр. т.е. чтобы каждый новый кадр камера в кат сцене была зафиксирована на новом объекте с новым кадром видео.

понятно, что решение шизофреническое, понятно, что могут быть косяки по совмещению звука. но, пожалуй, других вариантов особо и нет.
Группа в вк посвящённая моим модам

Страничка моего последнего мода на ModDB

Моя страничка на Artstation,
где можно посмотреть и повертеть внутри браузера мои 3d модели.
Здравствуйте, у меня такой вопрос: как можно ограничить количество одновременно используемых героев игроку, например чтобы он не мог иметь больше 3-х героев?
Аватар пользователя
SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев)
, как то так.
Нет войне.
В ответ пользователю Gerter
Gerter
SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев)
, как то так.

Я пробовал эту функцию, но не пойму как она работает: не понятно откуда берется стандартное число героев, я даже 1000 ставил все равно мог закупать героев сколько угодно

Добавлено через 15 часов 31 минуту
Может кто-нибудь объяснить или привести пример как работает эта функция SetPlayerHeroesCountNotForHire?
кто может помочь? друг подсадил на игру герои 5 3.1 ну я и решил сделать карту огромную на 8 игроков. полностью руками рисованную. где играя за каждую рассу свои фишки и секреты будут. ну и вот сейчас делаю одну рассу и столкнулся с нееобходимостью скриптов. нужено пару базовых скриптов. в дальнейшем смогу их переделать. главное чтобы были примеры. потому как сам пытаюсь разобраться и что то не идет дело совсем. в виде спасибо закину потом свою карту сюда чтобы каждый мог сыграть.

в частности интересуют такие скрипты.
1. есть хижина пророка где выдается задание. есть условие выполнения. нужно чтобы при выполнении задания в виде награды в определенном месте карты по заданным координатам убирались препятствия и открывался проход. или того героя который выполнил условие задания телепортировало в определенную точку карты. причем это не всегда будет игрок. а возможно и ИИ играющий за эту рассу.
2. нужен скрипт который при посещении хижины пророка и выполнении задания преобразует определенный город захваченный игроком посетившим пророка в город другого типа. и вообще возможно ли через хижину пророка делать такие вещи? заранее спасибо.
Аватар пользователя
Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти.
Насчёт конвертации сразу скажу, конвертировать город в другой с сохранением строений не выйдет. Ну а так... С некрополисом точно можно, с осиальными меньше уверенности, но скорее да. Однако, задача не совсем тривиальная.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти.

я же и пишу что не смог найти как это сделать. смотрел уже и пытался разобраться. мне надо помощь профессионала.
Аватар пользователя
Удаление объекта

function gogo()
 if GetObjectiveState("имя задания у пророка") == OBJECTIVE_COMPLETED then
  RemoveObject("Название того, что надо удалить")
 end
end
Trigger(OBJECTIVE_STATE_TRIGGER, "имя задания у пророка", "gogo")

Сразу комментарии:
1) удаляемый объект должен быть типа Static, причём свойство IsRemovable должно стоять в true (смотрится в objectPropretiesTree)
Имя, ращумеется, даём там же -- поле name
2) если задание для нескольких игроков однотипное и для одного и того же объекта, вставляем проверку на IsObjectExists. Потом удаляем.
3) строго говоря, не проверял этот триггер для заданий пророков. Но скорее всего работает.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
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 a1()
if GetObjectiveState ("q1") == OBJECTIVE_COMPLETED then
RemoveObject ("qq1");
end;
end;

Trigger(OBJECTIVE_STATE_CHANGE_TRIGGER, "q1", "a1" )

вот так сделал. у тебя пару неточностей было. но все равно не работает. я уже даже на монстров поставил задание убрать и не помогает. тут случайно не нужно прописывать что для всех игроков или это само собой разумеется?

кстати ругается почему то на первую строку скрипта. а именно на - function a1() и дело не в количестве символов в названии ставил и 5 букв все равно ругается. может сама функция как то я хз. у меня уже мозг лопается.
Аватар пользователя
А можно узнать, что конкретно пишет? А то у меня маловато идей. Только что в функцию 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. Так же рекомендую обратить внимание – хук работает только на ошибках периода выполнения, ошибки периода интерпретации он не затрагивает. Что касается приведенного примера, то гораздо разумнее вместо использования хука проверять героя на предмет наличия должного артефакта.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
я поменял на твое имя. то же самое. пишет в частности вот что именно про первую строку во встроенном скриптовом редакторе. внешний скриптовой редактор не ругается.

Function gogo not defined, line 1
Аватар пользователя
Это редактор выводит при проверке карты? Это ерунда и не говорит о неверном коде. В игре надо консоль включить и там ошибку смотреть.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
на самом первом дне еще до начала хода пишет красным только одно.

Objective vith name "gaz" is not exist

скрины прилаживаю домика провидца и ммм дерева которое должно быть якобы удалено скриптом.

такое чувство что она не видит квеста в домике провидца. хотя в игре он работает и выполняется.
Вложения 2
2 файл(ов) • Общий размер: 383,3 KB

Статистика

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

Сейчас на сайте 6 пользователей 1319 гостей