Скрипты для начинающих - Страница 14 - Форум HeroesWorld-а

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

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

Ответ
Страница 14 из 28
 
Опции темы
#197
Старый 21.02.2019, 22:31
  #197
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
По умолчанию
Re: Скрипты для начинающих

Самое простое (и единственное вразумительное), что мне приходит в голову -- сделать Вашу карту заменяющей все кампании оригинальных героев, а Ваши ролики -- заменяющими соответствующие ролики про свадьбу и тот, что в конце игры запускается
Ment вне форума
Ответить с цитированием
#198
Старый 22.02.2019, 01:19
  #198
^
zahar0z
 
Аватар для zahar0z
📖
Регистрация: 09.06.2017
Сообщения: 588
Регистрация: 09.06.2017
Сообщения: 588
По умолчанию
Re: Скрипты для начинающих

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

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

понятно, что решение шизофреническое, понятно, что могут быть косяки по совмещению звука. но, пожалуй, других вариантов особо и нет.
zahar0z вне форума
Ответить с цитированием
#199
Старый 28.02.2019, 15:45
  #199
^
Sares
📖
Регистрация: 28.02.2019
Сообщения: 2
Регистрация: 28.02.2019
Сообщения: 2
По умолчанию
Re: Скрипты для начинающих

Здравствуйте, у меня такой вопрос: как можно ограничить количество одновременно используемых героев игроку, например чтобы он не мог иметь больше 3-х героев?
Sares вне форума
Ответить с цитированием
#200
Старый 28.02.2019, 21:52
  #200
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты для начинающих

	SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев)
, как то так.
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#201
Старый 01.03.2019, 13:28
  #201
^
Sares
📖
Регистрация: 28.02.2019
Сообщения: 2
Регистрация: 28.02.2019
Сообщения: 2
По умолчанию
Re: Скрипты для начинающих

Gerter
	SetPlayerHeroesCountNotForHire(id_игрока, число_на_которое_нужно_уменьшить_стандартное_число_героев)
, как то так.

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

Добавлено через 15 часов 31 минуту
Может кто-нибудь объяснить или привести пример как работает эта функция SetPlayerHeroesCountNotForHire?
Sares вне форума
Ответить с цитированием
#202
Старый 13.06.2019, 15:43
  #202
^
kycaka
📖
Регистрация: 13.06.2019
Сообщения: 6
Регистрация: 13.06.2019
Сообщения: 6
По умолчанию
Re: Скрипты для начинающих

кто может помочь? друг подсадил на игру герои 5 3.1 ну я и решил сделать карту огромную на 8 игроков. полностью руками рисованную. где играя за каждую рассу свои фишки и секреты будут. ну и вот сейчас делаю одну рассу и столкнулся с нееобходимостью скриптов. нужено пару базовых скриптов. в дальнейшем смогу их переделать. главное чтобы были примеры. потому как сам пытаюсь разобраться и что то не идет дело совсем. в виде спасибо закину потом свою карту сюда чтобы каждый мог сыграть.

в частности интересуют такие скрипты.
1. есть хижина пророка где выдается задание. есть условие выполнения. нужно чтобы при выполнении задания в виде награды в определенном месте карты по заданным координатам убирались препятствия и открывался проход. или того героя который выполнил условие задания телепортировало в определенную точку карты. причем это не всегда будет игрок. а возможно и ИИ играющий за эту рассу.
2. нужен скрипт который при посещении хижины пророка и выполнении задания преобразует определенный город захваченный игроком посетившим пророка в город другого типа. и вообще возможно ли через хижину пророка делать такие вещи? заранее спасибо.
kycaka вне форума
Ответить с цитированием
#203
Старый 13.06.2019, 19:57
  #203
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
По умолчанию
Re: Скрипты для начинающих

Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти.
Насчёт конвертации сразу скажу, конвертировать город в другой с сохранением строений не выйдет. Ну а так... С некрополисом точно можно, с осиальными меньше уверенности, но скорее да. Однако, задача не совсем тривиальная.
Ment вне форума
Ответить с цитированием
#204
Старый 13.06.2019, 21:47
  #204
^
kycaka
📖
Регистрация: 13.06.2019
Сообщения: 6
Регистрация: 13.06.2019
Сообщения: 6
По умолчанию
Re: Скрипты для начинающих

Посмотрите FAQ этого раздела: раз и два, для обучения должно подойти.

я же и пишу что не смог найти как это сделать. смотрел уже и пытался разобраться. мне надо помощь профессионала.
kycaka вне форума
Ответить с цитированием
#205
Старый 14.06.2019, 16:41
  #205
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
По умолчанию
Re: Скрипты для начинающих

Удаление объекта

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

Сразу комментарии:
1) удаляемый объект должен быть типа Static, причём свойство IsRemovable должно стоять в true (смотрится в objectPropretiesTree)
Имя, ращумеется, даём там же -- поле name
2) если задание для нескольких игроков однотипное и для одного и того же объекта, вставляем проверку на IsObjectExists. Потом удаляем.
3) строго говоря, не проверял этот триггер для заданий пророков. Но скорее всего работает.
Ment вне форума
Ответить с цитированием
#206
Старый 14.06.2019, 21:30
  #206
^
kycaka
📖
Регистрация: 13.06.2019
Сообщения: 6
Регистрация: 13.06.2019
Сообщения: 6
По умолчанию
Re: Скрипты для начинающих

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 букв все равно ругается. может сама функция как то я хз. у меня уже мозг лопается.
kycaka вне форума
Ответить с цитированием
#207
Старый 14.06.2019, 22:19
  #207
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
По умолчанию
Re: Скрипты для начинающих

А можно узнать, что конкретно пишет? А то у меня маловато идей. Только что в функцию 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. Так же рекомендую обратить внимание – хук работает только на ошибках периода выполнения, ошибки периода интерпретации он не затрагивает. Что касается приведенного примера, то гораздо разумнее вместо использования хука проверять героя на предмет наличия должного артефакта.
Ment вне форума
Ответить с цитированием
#208
Старый 14.06.2019, 23:38
  #208
^
kycaka
📖
Регистрация: 13.06.2019
Сообщения: 6
Регистрация: 13.06.2019
Сообщения: 6
По умолчанию
Re: Скрипты для начинающих

я поменял на твое имя. то же самое. пишет в частности вот что именно про первую строку во встроенном скриптовом редакторе. внешний скриптовой редактор не ругается.

Function gogo not defined, line 1
kycaka вне форума
Ответить с цитированием
#209
Старый 15.06.2019, 01:45
  #209
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30679
По умолчанию
Re: Скрипты для начинающих

Это редактор выводит при проверке карты? Это ерунда и не говорит о неверном коде. В игре надо консоль включить и там ошибку смотреть.
Ment вне форума
Ответить с цитированием
#210
Старый 15.06.2019, 03:22
  #210
^
kycaka
📖
Регистрация: 13.06.2019
Сообщения: 6
Регистрация: 13.06.2019
Сообщения: 6
По умолчанию
Re: Скрипты для начинающих

на самом первом дне еще до начала хода пишет красным только одно.

Objective vith name "gaz" is not exist

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


такое чувство что она не видит квеста в домике провидца. хотя в игре он работает и выполняется.
Миниатюры
Нажмите на изображение для увеличения
Название:  1.jpg
Просмотров: 19
Размер:	512.9 Кбайт
ID:	59493  Нажмите на изображение для увеличения
Название:  2.jpg
Просмотров: 11
Размер:	440.7 Кбайт
ID:	59494  
kycaka вне форума
Ответить с цитированием
Ответ
Страница 14 из 28


Опции темы



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


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

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