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

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

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

Ответ
Страница 251 из 260
 
Опции темы
#3751
Старый 05.11.2022, 15:56
  #3751
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 206
Регистрация: 24.04.2016
Сообщения: 206
По умолчанию
Re: Скрипты

}{0TT@6bI4То есть у вас от 1 до k заменяются все существа при выполнении какого-то условия с удачей, а вы хотите, чтобы это происходило
а) Непоследовательно
б) Без повторений
в) Со всеми k элементами

Тогда нужен интересный алгоритм:
local used_indexes = {}
for i=1, k do
repeat N=random(k)+1
until not used_indexes[N]
used_indexes[N] = 1;
--Действия с существом с номером N (не k!!)
end

 

Кажется, у тебя тут какая-то ошибка - i никуда не передаётся. Или вместо i должно быть n? Попробовал в игре с твоим вариантом, у меня существа наспавнились в первых двух точках. Хорошо что у них фикс.спавн, иначе игра бы легла от лаггов 😆 

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

 

Да, и сразу доп.вопрос. У меня в функции есть такое условие:

local type = random( 3 ) + 1
         if ( WR_luck < 3 ) and ( type == 4 ) then
         type = random( 2 ) + 1
end

До того как занёс эти два условия в скобки, игра их игнорировала. Почему? Когда вообще нужно ставить скобки в условиях?

Азгалор вне форума
Ответить с цитированием
#3752
Старый 05.11.2022, 16:13
  #3752
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
По умолчанию
Re: Скрипты

}{0TT@6bI4Потому что hero не определена. Проверьте в консоли. В переменную hero записано nil, и очевидно, проверка IsHeroAlive возвращает ложь.
Как тогда определить hero? Я с переменными вообще не очень. 
__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием
#3753
Старый 05.11.2022, 16:15
  #3753
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 206
Регистрация: 24.04.2016
Сообщения: 206
По умолчанию
Re: Скрипты

BlueHeavenHeroКак тогда определить hero? Я с переменными вообще не очень. 
local hero = "Duncan" - вот тебе и определение героя. Но лучше вначале скрипта прописать и без local, чтобы потом можно было в любой функции скрипта hero использовать.
Азгалор вне форума
Ответить с цитированием
#3754
Старый 05.11.2022, 17:01
  #3754
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
По умолчанию
Re: Скрипты

hero крайне популярное имя, лучше его делать локальным. А в глобальную переменную можно записать в начале скрипта аля MAIN_HERO = "Duncan", как это делали разрабы
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3755
Старый 05.11.2022, 21:29
  #3755
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 206
Регистрация: 24.04.2016
Сообщения: 206
По умолчанию
Re: Скрипты

Азгалор

Кажется, у тебя тут какая-то ошибка - i никуда не передаётся. Или вместо i должно быть n? Попробовал в игре с твоим вариантом, у меня существа наспавнились в первых двух точках. Хорошо что у них фикс.спавн, иначе игра бы легла от лаггов 😆 

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

Всё, решил проблему. Прописал такое:
--Всякая всячина до этих строк
local n = random(length(creatures_positions))+1
local x = creatures_positions[n].x
local y = creatures_positions[n].y

--всякая всячина после этих строк, k заменено на n

И теперь рандом работает, существа спавнятся в случайных сохранённых координатах 😇 Всё же, огроменное спасибо за корректировку функции с сохранением координат, и помощью в функции респавна!

Азгалор вне форума
Ответить с цитированием
#3756
Старый 05.11.2022, 23:08
  #3756
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
По умолчанию
Re: Скрипты

Азгалорlocal hero = "Duncan" - вот тебе и определение героя. Но лучше вначале скрипта прописать и без local, чтобы потом можно было в любой функции скрипта hero использовать.
Но, если в скрипте hero должен быть ЛЮБЫМ героем игрока? 
__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием
#3757
Старый 06.11.2022, 00:20
  #3757
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
По умолчанию
Re: Скрипты

Если ваша функция вызывается триггером региона, то в качестве принимаемых параметров укажите hero и вот тогда можете писать везде hero
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3758
Старый 06.11.2022, 00:25
  #3758
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
По умолчанию
Re: Скрипты

АзгалорВсё, решил проблему. Прописал такое:
--Всякая всячина до этих строк
local n = random(length(creatures_positions))+1
local x = creatures_positions[n].x
local y = creatures_positions[n].y

--всякая всячина после этих строк, k заменено на n

И теперь рандом работает, существа спавнятся в случайных сохранённых координатах 😇 Всё же, огроменное спасибо за корректировку функции с сохранением координат, и помощью в функции респавна!


Всё-таки я ничего не понял из вашей задачи, ну да ладно. Мой код проходит все k существ (при этом i) не нужно и генерит случайный индекс k до тех пор, пока он есть в массиве индексов. Как только выходит — работает с существом со сгенерированным индексом k

Почему нужна такая проверка с циклом — потому что простой рандом (как у вас) может выдать повторяющиеся значения, а как я понял, так не должно быть. Возможно, неправильно понял.

И вообще, очень странно, что у вас такое не работает и генерит в двух местах. Я запустил холостые принты для k=100 и он нагенерил кучу значений, все разные (ну, я, впрочем, не скроллил все).
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3759
Старый 06.11.2022, 05:14
  #3759
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 206
Регистрация: 24.04.2016
Сообщения: 206
По умолчанию
Re: Скрипты

}{0TT@6bI4Всё-таки я ничего не понял из вашей задачи, ну да ладно. Мой код проходит все k существ (при этом i) не нужно и генерит случайный индекс k до тех пор, пока он есть в массиве индексов. Как только выходит — работает с существом со сгенерированным индексом k

Почему нужна такая проверка с циклом — потому что простой рандом (как у вас) может выдать повторяющиеся значения, а как я понял, так не должно быть. Возможно, неправильно понял.

И вообще, очень странно, что у вас такое не работает и генерит в двух местах. Я запустил холостые принты для k=100 и он нагенерил кучу значений, все разные (ну, я, впрочем, не скроллил все).
Честно, я тем более не понял) Если бы понимал то не обращался бы за помощью 😅 В общем, вот такой финальный вариант этого скрипта на спавн, как раз вот дописал его и занялся уже другим делом(сохранение координат я больше не трогал):
function RespawnUnitsByLuck()
    if ( GetDate(WEEK) == 2 ) and ( GetDate(DAY_OF_WEEK) == random(6) + 1 ) then
        local WR_luck = GetHeroStat(WR, STAT_LUCK)
	local respawns_types = { CREATURE_AIR_ELEMENTAL, CREATURE_PHOENIX, CREATURE_AIR_ELEMENTAL, CREATURE_PHOENIX }
	local respawns_quantities = { 100 * diff, 10 * diff, 100 * diff, 4 * diff }
	local respawns_mood = {3, 1, 3, 0} 
	local respawns_courage = {1, 2, 1, 0}
	local respawns_num = 0
	local previous_pos = {}
        local respawns_id = 0

--Памятка по сложностям чтоб посчитать множители от сложностей: diff = 0.5(easy), 2(normal), 4(veteran), 6(heroic), 10(hardcore)
        local CanRespawnUnitsByLuck = random(100) + ((10*(WR_luck+1)) * mod((WR_luck+1),diff))
        if CanRespawnUnitsByLuck >= mod(70,(WR_luck+2)) + (60+diff) then
           print("<color=blue>Рандом выдал число <color=yellow>"..CanRespawnUnitsByLuck, "<color=blue>, которое выше или равно порогу. <color=yellow>Респавним юнитов...")
        elseif CanRespawnUnitsByLuck < mod(70,(WR_luck+2)) + (60+diff) then     --( 50 + (10+diff) ) then
           print("<color=blue>Рандом выдал число <color=red>"..CanRespawnUnitsByLuck, "<color=blue>, которое ниже порога. <color=red>Никого не спавним, выходим из функции...")
           return 
        end
	
	for i = 1, 20 + diff do
                local n = random(length(creatures_positions))+1
                local x = creatures_positions[n].x
                local y = creatures_positions[n].y
		local floor = 0;
		local badpos = 0;

                if IsObjectExists("m"..n) or IsObjectExists("respawns"..n) then  
                   badpos = 1
                end
                		
		if ( badpos == 0 ) and ( IsTilePassable( x, y, floor ) ) then
                        respawns_num = respawns_num + 1
                        if respawns_num == 20 + diff then
                              print("<color=yellow>Наспавнено максимальное количество юнитов. Выходим из респавнера.")
                              return --если наспавнили больше 20+сложность юнитов то выходим, иначе дичайший переспавн
                        end

			local type = random( 3 ) + 1
                              if ( WR_luck < 3 ) and ( type == 4 ) then
                                    type = random( 2 ) + 1
                              end
                              if ( WR_luck >= 5 ) then 
                                    respawns_quantities = { 200 * diff, 4 * diff, 200 * diff, 4 * diff }
                                    respawns_courage = {1, 0, 1, 0}
                                    type = random( 2 ) + 2
                              end
			local creaturetype = respawns_types[ type ]
			local quantity = respawns_quantities[ type ]
                        local mood = respawns_mood[ type ]
                        local courage = respawns_courage[ type ]
			local respawnsname = 'respawns' .. n; 
			CreateMonster( respawnsname, creaturetype, quantity, x, y, floor, mood, courage, random( 360 ) );
		        end;
	          end;
           if respawns_num == 0 then
              print("<color=brown>Ни одно существо не было заспавнено. Вероятно, все точки спавна заняты.")
           else
              print("<color=blue>Респавн завершен. Заспавнено существ: <color=yellow>"..respawns_num)
           end;
     end;
end;
Азгалор вне форума
Ответить с цитированием
#3760
Старый 06.11.2022, 10:59
  #3760
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
По умолчанию
Re: Скрипты

Доброго времени  суток! Нужна помощь по скрипту. Создал я спецу для героя, чтобы если во время боя в его армии осталось меньше 30% существ, призывались Вестники Смерти в размере УровеньГероя*0.05. Но сомневаюсь, что это будет работать...
function Start()
 if GetHeroName(GetAttackerHero())=="HafadNecro" then
 side=ATTACKER
 aside=DEFENDER
 start_creatures=CountCreatures(side)
 elseif GetHeroName(GetDefenderHero())=="HafadNecro" then
 side=DEFENDER
 aside=ATTACKER
 start_creatures=CountCreatures(side)
 end
end
function CountCreatures(_side)
 local fc_count=0
 for key, element in GetCreatures(_side) do
 fc_count=fc_count+GetCreatureNumber(element)
 end
 return fc_count
end
function UnitDeath(unit)
 sleep(4)
 if intg(start_creatures*0.30)<=CountCreatures(side) then
 for key, name in GetCreatures(aside) do
 SummonCreature(side, CREATURE_WRAITH, 0.05*GetHeroLevel("HafadNecro"), 12, 2)
 end;
 end;
end;

__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием
#3761
Старый 07.11.2022, 09:29
  #3761
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1971
Выставка наград
По умолчанию
Re: Скрипты

Интересно, как он у вас призовёт 0.05*8, т.е. 0.4 Баньши? Нужно либо ceil, либо floor добавить, иначе будет по нулям спавниться. В целом должно работать
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием
#3762
Старый 07.11.2022, 09:44
  #3762
^
AstralLein
 
Аватар для AstralLein
📖
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
Регистрация: 02.06.2017
Адрес: В Империи Незанхельм.
Сообщения: 3908
По умолчанию
Re: Скрипты

Да, число определенно выше должно быть. 0.3 * уровень героя хотя бы. Т.е. на 40-ом будет примерно 12 банши, что довольно мало, надо еще больше, наверное.

SummonCreature без координат исправно призывает в свободную случайную точку. 
__________________
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
Ох это сладостное, поглощающее разум безумие! 

Готовые проекты:


Карты для героев 5:
"Плата за любовь"
"Путь некроманта"
"Темные грани"

Карты для Disciples 3:
"Противостояние"

Проекты в разработке:

Моды для Disciples 3:
"Астельнаир" - разработка возобновлена в мае 2019 год

Карты для героев 5:
"Рок Гримхейма" - в активной разработке
AstralLein вне форума
Ответить с цитированием
#3763
Старый 07.11.2022, 18:01
  #3763
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
По умолчанию
Re: Скрипты

AstralLeinДа, число определенно выше должно быть. 0.3 * уровень героя хотя бы. Т.е. на 40-ом будет примерно 12 банши, что довольно мало, надо еще больше, наверное.

SummonCreature без координат исправно призывает в свободную случайную точку.
Поменяю на большее число.

Добавлено через 3 минуты
Возникла проблема! В кампании оригинальных героев, в пятой миссии, после того, как Годрик освободит Изабель, на замок нападет Аграил. Я решил сделать в своем сценарии такую же функцию, но диалоговая сцена проигрывается ДО того, как Витторио нападет на замок!
function ChristianAttack()
DeployReserveHero("Christian", 98, 108, 0)
sleep(10)
MoveHero("Christian", 126, 139, -1)
if IsHeroAlive("Hafad") then
    if IsHeroAlive("Christian") then
        if GetObjectOwner("castle") == PLAYER_2 then
            SetObjectiveState("prim5", OBJECTIVE_FAILED, 1)
            sleep(10)
            loose()
    else StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
		     sleep(1)
	       SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
         SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
         end;
    end;
end;
end;
__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием
#3764
Старый 07.11.2022, 19:48
  #3764
^
Азгалор
 
Аватар для Азгалор
📖
Регистрация: 24.04.2016
Сообщения: 206
Регистрация: 24.04.2016
Сообщения: 206
По умолчанию
Re: Скрипты

BlueHeavenHeroВозникла проблема! В кампании оригинальных героев, в пятой миссии, после того, как Годрик освободит Изабель, на замок нападет Аграил. Я решил сделать в своем сценарии такую же функцию, но диалоговая сцена проигрывается ДО того, как Витторио нападет на замок!

Потому что у тебя по условиям(else) если объект(город?) "castle" не принадлежит 2 игроку, то запускаем ролик.

Если тебе нужно чтобы он запускался после захвата города, то нужно дописать скрипт на захват города с активацией функции через OBJECT_CAPTURE_TRIGGER где мы чекнем что захватили и кто новый владелец, и вот там уже запустим ролик если город взял игрок, которому принадлежит нужный тебе герой. Как-то так:
function TownCaptured( oldowner, newowner )
      if IsHeroAlive("Hafad") then
            if IsHeroAlive("Christian") then
                  if ( newowner == GetObjectOwner("Christian") ) then
                       StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
	               sleep(1)
	               SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
	               SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
	          elseif newowner == PLAYER_2  then
	               SetObjectiveState("prim5", OBJECTIVE_FAILED, 1)
	               sleep(10)
	               loose() 
                  end
            end
      end
end 

Trigger( OBJECT_CAPTURE_TRIGGER, "castle", "TownCaptured" );

Таким образом, после MoveHero из функции с респавном героя, условия и действия можно поубирать)

Азгалор вне форума
Ответить с цитированием
#3765
Старый 07.11.2022, 20:43
  #3765
^
BlueHeavenHero
 
Аватар для BlueHeavenHero
📖
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
Регистрация: 20.08.2022
Адрес: "Асхан/Священная Империя Единорога/Светлолесье"
Сообщения: 425
По умолчанию
Re: Скрипты

АзгалорПотому что у тебя по условиям(else) если объект(город?) "castle" не принадлежит 2 игроку, то запускаем ролик.

Если тебе нужно чтобы он запускался после захвата города, то нужно дописать скрипт на захват города с активацией функции через OBJECT_CAPTURE_TRIGGER где мы чекнем что захватили и кто новый владелец, и вот там уже запустим ролик если город взял игрок, которому принадлежит нужный тебе герой. Как-то так:
function TownCaptured( oldowner, newowner )
      if IsHeroAlive("Hafad") then
            if IsHeroAlive("Christian") then
                  if ( newowner == GetObjectOwner("Christian") ) then
                       StartDialogScene("/DialogScenes/FallenKnight/S3/DialogScene.xdb#xpointer(/DialogScene)")
	               sleep(1)
	               SetObjectiveState("prim5", OBJECTIVE_COMPLETED, 1)
	               SetObjectiveState("prim6", OBJECTIVE_ACTIVE, 1)
	          elseif newowner == PLAYER_2  then
	               SetObjectiveState("prim5", OBJECTIVE_FAILED, 1)
	               sleep(10)
	               loose() 
                  end
            end
      end
end 

Trigger( OBJECT_CAPTURE_TRIGGER, "castle", "TownCaptured" );

Таким образом, после MoveHero из функции с респавном героя, условия и действия можно поубирать)

Вы не совсем меня поняли. После захвата города игроком-человеком активируется задание удержать город. На карту ставится Витторио и начинает идти к нашему городу. Если мы победили Витторио, активируется ролик. Если же Витторио захватил город, мы проигрываем. 
Кстати, примерно такая же проблема возникла и с другой функцией - запускается кат-сцена, потом начинается битва, и ПОСЛЕ битвы вылазит текстовое сообщение. Но - запускается кат-сцена, и текстовое сообщение вылазит ДО битвы. Как это исправить? 
__________________
Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

Всем привет,я BlueHeavenHero, любитель Героев Меча и Магии 5 и фанат Дронов-убийц, пишу свою книгу.
#СинийРайскийГерой
by BlueHeavenHero 
- мой ТГ-канал со всякой ерундой, сочинениями и рисуночками.

=======================================
Мои
карты:
"Падший рыцарь"
"Сердце Хаоса"
Мои моды:

"Странствующий рыцарь"
"Наёмники"
"Существа в замке на глобальной карте"

BlueHeavenHero вне форума
Ответить с цитированием
Ответ
Страница 251 из 260


Опции темы



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


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

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