Скрипты - Страница 218 - Форум HeroesWorld-а

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

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

Ответ
Страница 218 из 225
 
Опции темы
#3256
Старый 24.09.2020, 15:48
  #3256
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3179
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3179
Выставка наград
По умолчанию
Re: Скрипты

Vladislav A-VДоброго дня,подскажите,пожалуйста,как можно реализовать с помощью скрипта следующую задумку:Имеются 2 второстепенных задания (SO-1),на захват нейтрального города и отображается в задачах первоначально, и (SO-2),на контроль окрестных шахт, которое является скрытным.Цель - сделать задание SO-2 видимым сразу после захвата нейтрального города.Я попытался сделать что то похожее,но получилось-то невразумительное, и можно ли получить ликбез по данной проблеме?
function detencion()
if GetObjectOwner("Dwarftown")==PLAYER_1 then
SetObjectiveVisible("SO-2", bVisible, "nPlayerID = 1")
Trigger(OBJECT_CAPTURE_TRIGGER,"Dwarftown1", "detencion")
end
end
Trigger(OBJECT_CAPTURE_TRIGGER, "Dwarftown1", nil)

Почему триггер вешается на объект "Dwarftown1", а на принадлежность игроку проверяется объект "Dwarftown"? И что такое "nPlayerID = 1"? Достаточно просто поставить 1 вместо "nPlayerID = 1", если карта - сингл, или PLAYER_1. Не хватает еще SetObjectiveState("SO-2", 2, 1). Триггер после функции должен вешаться, а в теле функции обнуляться. У вас все наоборот.
MasteR вне форума
Ответить с цитированием
#3257
Старый 24.09.2020, 17:17
  #3257
^
Vladislav A-V
 
Аватар для Vladislav A-V
📖
Регистрация: 23.10.2016
Адрес: Российская Федерация, Татарстан.
Сообщения: 12
Выставка наград
Регистрация: 23.10.2016
Адрес: Российская Федерация, Татарстан.
Сообщения: 12
Выставка наград
По умолчанию
Re: Скрипты

Всё,сделал как вы оба и советовали,скрипт работает как швейцарские часы:чётко и без сбоев,спасибо большое Хоттабыч и МАстер
Vladislav A-V вне форума
Ответить с цитированием
#3258
Старый 27.09.2020, 16:23
  #3258
^
User01322342
 
Аватар для User01322342
📖
Регистрация: 03.01.2017
Сообщения: 101
Регистрация: 03.01.2017
Сообщения: 101
По умолчанию
Re: Скрипты

}{0TT@6bI4Какую-нибудь переменную (R) в рандом (random(n)+1, где n — количество вариантов сообщений), ещё нужен массив messages с n элементами — путями к разным сообщениям, а в мессаджбоксе вместо пути к тексту простая конструкция messages[R].
Спасибо)
User01322342 вне форума
Ответить с цитированием
#3259
Старый 13.10.2020, 10:11
  #3259
^
Casesuro
 
Аватар для Casesuro
📖
Регистрация: 06.10.2020
Сообщения: 1
Регистрация: 06.10.2020
Сообщения: 1
По умолчанию
Re: Скрипты

Добрый день. Подскажите пожалуйста, хочу реализовать расходы на содержание армии но не знаю как. Не могли бы Вы пожалуйста подсказать, как к примеру сделать чтобы каждый день проверялось колличество крестьян в армии героя и после этого вычиталось по одной монете за каждого. Заранее спасибо.
Casesuro вне форума
Ответить с цитированием
#3260
Старый 13.10.2020, 10:32
  #3260
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

CasesuroДобрый день. Подскажите пожалуйста, хочу реализовать расходы на содержание армии но не знаю как. Не могли бы Вы пожалуйста подсказать, как к примеру сделать чтобы каждый день проверялось колличество крестьян в армии героя и после этого вычиталось по одной монете за каждого. Заранее спасибо.
function NewDay()
local peas=GetHeroCreatures(имя героя, CREATURE_PEASANT)
local cons=GetHeroCreatures(имя героя, CREATURE_CONSCRIPT)
local landl=GetHeroCreatures(имя героя, CREATURE_LANDLORD)
sleep(1)
if GetPlayerResource(1,6)>(peas+cons+landl) then
SetPlayerResource(1, GOLD, GetPlayerResource-(peas+cons+landl))
else
Ваш код на случай, если у игрока нет денег заплатить за крестьян.
end;
end;

Trigger(NEW_DAY_TRIGGER, "NewDay")

Однако отобранная за каждого крестьянина монетка будет лишь нивелировать умение Налогоплательщик. Да и в конце хода игрок может сгружать крестьян в лесопилку или куда-то ещй и не платить. Очень хорошо ситсема оплаты войск реализована в Наёмниках, рекомендую посмотреть скрипт этой карты.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3261
Старый 13.10.2020, 12:36
  #3261
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23324
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 23324
По умолчанию
Re: Скрипты

Мне понравился вопрос, так как сам давно мечтаю склепать тру стратегическую карту с зонами контроля, расходами на армию и всем таким (но делать что-то кроме скрипта жутко лень).
__________________
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
"Мечты не уход от действительности, а средство приблизиться к ней."











Стикеры GBF в Telegram
Ment вне форума
Ответить с цитированием
#3262
Старый 13.10.2020, 15:38
  #3262
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

MentМне понравился вопрос, так как сам давно мечтаю склепать тру стратегическую карту с зонами контроля, расходами на армию и всем таким (но делать что-то кроме скрипта жутко лень).

Удачи в любых начинаниях)
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3263
Старый 11.11.2020, 00:11
  #3263
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

Работал с функцией GetHeroCreaturesType, по идее она должна возвращать таблицу айдишников существ в армии героя, а по факту записывает их в 1 число (например, вместо 138, 72, 73, 0, 0, 0, 0 - 138727300). Переприсваивание в другую переменную возвращаемый пресловутой ф-ей результат, конечно же, не дал результатов, стерев всё число до первого значения (138). В связи с этим вопрос: как мне вычленять эти айдишники?? Заранее спасибо.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3264
Старый 11.11.2020, 10:00
  #3264
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 766
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 766
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

}{0TT@6bI4Работал с функцией GetHeroCreaturesType, по идее она должна возвращать таблицу айдишников существ в армии героя, а по факту записывает их в 1 число (например, вместо 138, 72, 73, 0, 0, 0, 0 - 138727300). Переприсваивание в другую переменную возвращаемый пресловутой ф-ей результат, конечно же, не дал результатов, стерев всё число до первого значения (138). В связи с этим вопрос: как мне вычленять эти айдишники?? Заранее спасибо.

можешь попробовать как-то так:

function pack(...)
  return arg
end

id_table = pack(GetHeroCreaturesTypes(hero))
Gerter вне форума
Ответить с цитированием
#3265
Старый 11.11.2020, 10:01
  #3265
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

Спасибо, попробую
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3266
Старый 11.11.2020, 19:11
  #3266
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Сообщение
Re: Скрипты

Gerterможешь попробовать как-то так:

function pack(...)
  return arg
end

id_table = pack(GetHeroCreaturesTypes(hero))

Не помогло...
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3267
Старый 11.11.2020, 22:12
  #3267
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2364
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2364
Выставка наград
По умолчанию
Re: Скрипты

GetHeroCreaturesTypes возвращает результат как 7 значений, которым нужны 7 переменных (или поля таблицы).
Пример использования ниже:
-- в несколько переменных
local a, b, c, d, e, f, g = GetHeroCreaturesTypes(hero)

-- в таблицу
local t = {}
t[1], t[2], t[3], t[4], t[5], t[6], t[7] = GetHeroCreaturesTypes(hero)

Способ, названный Gerter, тоже, к слову, должен работать. Если с ним код не функционирует, то ошибка кроется в чем-то другом.
__________________
Карты для Героев Меча и Магии 5

Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты

Кампания: Империя Единорога



Существа NCF

Орден Порядка: 1

Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5

Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты

Кампания: Империя Единорога



Существа NCF

Орден Порядка: 1

Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#3268
Старый 11.11.2020, 22:25
  #3268
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

Спасибо большое. Постоянно забываю про эти функции с возвращаемыми "массивами"... Насчёт скрипта Gerter'a, протестирую ещё раз. Но воспользуюсь Вашим способом)
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3269
Старый 11.11.2020, 22:32
  #3269
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 766
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 766
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

где-то в другом месте ошибочка у тебя. Самый банальный тест вполне себе табличку в консоль выводит
function pack(...)
  return arg
end

print(pack(GetHeroCreaturesTypes(GetPlayerHeroes(P  LAYER_1)[0])))
Gerter вне форума
Ответить с цитированием
#3270
Старый 11.11.2020, 22:52
  #3270
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 978
Выставка наград
По умолчанию
Re: Скрипты

Да, уже подтвердил. Не хватает 1 точки в скобках, возможно дело в этом... В любом случае, спасибо и тебе, и RedHeavenHero за помощь. Как обычно я напортачил!
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
Ответ
Страница 218 из 225


Опции темы



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


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

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