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

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

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

Ответ
Страница 197 из 260
 
Опции темы
#2941
Старый 07.10.2019, 05:10
  #2941
^
Jelus
📖
Регистрация: 07.10.2019
Сообщения: 4
Регистрация: 07.10.2019
Сообщения: 4
По умолчанию
Re: Скрипты

Всем привет. Решил детство вспомнить, поиграть с редактором героев 5. Ката в закрепе сообщения. Попробовал сделать обновление статуса задания, но почему-то не срабатывает. п.с да, все названия в скрипте принадлежать реальным игровым объектам и файлам карты.

function f()
MessageBox ("/Maps/SingleMissions/FunnyFantasy/Rumour.txt");
SetObjectiveState("Q", OBJECTIVE_COMPLETED)
end

function f1()
MessageBox ("/Maps/SingleMissions/FunnyFantasy/Rumour.txt");
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER, "kamilla", "f");
Вложения
Тип файла: zip FunnyFantasy.zip (9.7 Кбайт, 1 просмотров)
Jelus вне форума
Ответить с цитированием
#2942
Старый 07.10.2019, 14:57
  #2942
^
Jelus
📖
Регистрация: 07.10.2019
Сообщения: 4
Регистрация: 07.10.2019
Сообщения: 4
По умолчанию
Re: Скрипты

п.с тупанул, надо было у миссии выбрать тип kind manual
Jelus вне форума
Ответить с цитированием
#2943
Старый 10.10.2019, 16:56
  #2943
^
dredknight
📖
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
По умолчанию
Re: Скрипты

Dear all,

Sorry for the English language, I am not really fluent in Russian .

I would like to promote a patch that enables using Combat and Town scripts in Multiplayer and Hotseat games!


You can download the patch file from here.

To patch the EXE get Deflaktor's tool from here. The page also includes how-to-use guide.

The patch works for both - original ToTe and Quantomas EXE files.
dredknight вне форума
Ответить с цитированием
#2944
Старый 10.10.2019, 18:18
  #2944
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

Oh, it's really great! So many new ideas to realize
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2945
Старый 10.10.2019, 19:02
  #2945
^
dredknight
📖
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
По умолчанию
Re: Скрипты

Thank you @Gerter,

Actually I am getting into scripting as well. I see there is a lot of progress made by the community! I was wondering if you have any list with Combat script functions?

There are some in "Editor Documentation\HOMM5_A2_Script_Functions.pdf" but from what I could find around here there are so many more which are undocumented. Any tips, lessons and links will be appreciated!
dredknight вне форума
Ответить с цитированием
#2946
Старый 10.10.2019, 19:39
  #2946
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

I patched my EXE and tested it in hot-seat - it works! So it like a fresh breath for mods like NHF or NAF - we can add so many new features now! Big thanks to you!

@dredknight - there is a good tutorial from Novik - https://yadi.sk/i/9xfu8mh0Acq0kg. It's in russian, but that's best tutorial for combat functions, and it has all functions that avaliable in combat mode

Добавлено через 14 минут
but maybe now it time to make a more complex tutorial about combat functions... i use lots of combat scripts in my maps so maybe i can do it, if it'll be useful.
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2947
Старый 10.10.2019, 19:52
  #2947
^
dredknight
📖
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
По умолчанию
Re: Скрипты

Thank you I will look at the tutorial tonight.

I learn fast from examples, so if you have any work I can observe that will be helpful too!

Cheers!
dredknight вне форума
Ответить с цитированием
#2948
Старый 10.10.2019, 20:04
  #2948
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

i got a lot of experience from RedHeavenHero's scripts, so now i use many of his ideas in my own maps. Look at his works: https://forum.heroesworld.ru/showthread.php?t=11060, https://forum.heroesworld.ru/showthread.php?t=13208 and mb my map too - https://forum.heroesworld.ru/showthread.php?t=14423. Also i can help you in PM if tou want
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2949
Старый 10.10.2019, 20:34
  #2949
^
dredknight
📖
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
Регистрация: 24.10.2015
Сообщения: 696
dredknight#9852
По умолчанию
Re: Скрипты

Thank you I will definitely get back to you .
dredknight вне форума
Ответить с цитированием
#2950
Старый 09.11.2019, 01:40
  #2950
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

Вопрос на миллион душ! Не работают скрипты. Подскажите, где ошибка. Консоль не матерится.
Первое: если город эльфов захватил игрок 2, то ты должен проиграть, но игра продолжается.
	function CheckAnpossal()
         if GetObjectOwner ('houseElf') == 2 then
         sleep(10)
         SetObjectiveState('q4', OBJECTIVE_FAILED, 1);
         sleep(10)
         Loose()
end
end

startThread (CheckAnpossal)

Второе: в течении игры отслеживается, не умер ли юнит в армии героя. Если у героя его нет - проигрыш. Работает. Но после определённого момента сюжета этот юнит должен быть убран из армии и игра должна продолжиться. Не продолжается - проигрываешь. Консоль опять же вроде не материлась.

отслеживание юнита в армии героя (работает):

	function lostDragon() ---- Проверка потери дракона
	while 1 do
		sleep ( 10 );
		if GetHeroCreatures("Ohtarig", 83) == 0 and dragon == 1 then
		if SetRegionBlocked('CheckAstrid', false) then
			SetObjectiveState("q5", OBJECTIVE_FAILED, 1);
			sleep ( 10 );
			Loose();
			break
		end;
	end;
end;
end
startThread (lostDragon)

Ключевой момент сюжета(не работает, как нужно):

	function PokaAstrida()
         SetRegionBlocked ('CheckAstrid', false, 1)
         dragon = 0
         RemoveHeroCreatures('Ohtarig', 83, 1)
         StartDialogScene("/Maps/SingleMissions/ChoiseOTW1/Test/DialogScene.xdb#xpointer(/DialogScene)")
         sleep(5)
         StartCombat('Ohtarig', nil, 1, 41, 1, nil, nil, nil, nil)
         sleep(5)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/MagiPoka.txt");
         sleep(5)
         SetObjectiveState("q5", OBJECTIVE_FAILED);
         Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", nil);
         sleep(5)
         RemoveObject('lich1')
         RemoveObject('lich2')
         RemoveObject('lich3')
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", 'PokaAstrida');

Подскажите пожалуйста, где я не в ту сторону подумал
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2951
Старый 09.11.2019, 11:30
  #2951
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30673
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30673
По умолчанию
Re: Скрипты

Первое: если город эльфов захватил игрок 2, то ты должен проиграть, но игра продолжается.
While забыли, у вас однократная проверка там.
Не продолжается - проигрываешь
А настройки квеста q5 правильные? Может, он сам инициирует проигрыш.
Ну и хорошо бы сделать так, чтобы в функции lostDragon выходить из цикла, когда dragon==0, чтобы не было постоянных бессмысленных проверок.
Ment сейчас на форуме
Ответить с цитированием
#2952
Старый 09.11.2019, 17:27
  #2952
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

MentWhile забыли, у вас однократная проверка там.

А настройки квеста q5 правильные? Может, он сам инициирует проигрыш.
Ну и хорошо бы сделать так, чтобы в функции lostDragon выходить из цикла, когда dragon==0, чтобы не было постоянных бессмысленных проверок.

Во истину, теперь когда город ЛЭ захвачен - и кв проваливается и игра проиграна.
Но другую проблему я так и не решил. Задание q5 в редакторе корректное, кайнд_мануал в условиях, не думаю, что корень проблемы там.
А как мне остановить цикл этот?
Так де немного подредактировал эту фунцкию в надежде на исправление, однако провал. На всякий случай скину еще раз, чтобы не искать.
	
SetRegionBlocked ('CheckAstrid', true)

function lostDragon() ---- Проверка потери дракона
	while 1 do
		sleep ( 10 );
		if GetHeroCreatures("Ohtarig", 83) == 0 and dragon == 1 and
       SetRegionBlocked('CheckAstrid', false) then
			    SetObjectiveState("q5", OBJECTIVE_FAILED, 1);
			    sleep ( 10 );
			    Loose();
			break
		end;
	end;
end;
startThread (lostDragon)

И, собственно момент, когда дракон должен пропасть из армии, квест по его сохранению провалится, но игра должна продолжиться.

	function PokaAstrida()
         SetRegionBlocked ('CheckAstrid', false, 1)
         dragon = 0
         RemoveHeroCreatures('Ohtarig', 83, 1)
         StartDialogScene("/Maps/SingleMissions/ChoiseOTW1/Test/DialogScene.xdb#xpointer(/DialogScene)")
         sleep(5)
         StartCombat('Ohtarig', nil, 1, 41, 1, nil, nil, nil, nil)
         sleep(5)
         MessageBox("/Maps/SingleMissions/ChoiseOTW1/MagiPoka.txt");
         sleep(5)
         SetObjectiveState("q5", OBJECTIVE_FAILED);
         Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", nil);
         sleep(5)
         RemoveObject('lich1')
         RemoveObject('lich2')
         RemoveObject('lich3')
end

Trigger(REGION_ENTER_AND_STOP_TRIGGER , "Corrupted", 'PokaAstrida');

Здесь всё работает до того момента, когда ты выходишь из боя. Далее, как я полагаю, идёт проверка наличия юнита - его нет - проиграл.
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2953
Старый 09.11.2019, 18:19
  #2953
^
Gerter
 
Аватар для Gerter
📖
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
Регистрация: 16.07.2012
Адрес: Санкт-Петербург
Сообщения: 824
pegn0ly#9113
Выставка наград
По умолчанию
Re: Скрипты

настройку задания 'q5' CanUncomplete чекни. Кажется, нужно true, чтобы не было луза при провале.

	and SetRegionBlocked('CheckAstrid', false)

не оч понимаю суть этой проверки. здесь всегда будет 1, если регион существует
__________________
Нет войне.
Нет войне.
Gerter вне форума
Ответить с цитированием
#2954
Старый 09.11.2019, 20:12
  #2954
^
OrnsteinDragonslayer
 
Аватар для OrnsteinDragonslayer
📖
Регистрация: 10.01.2016
Сообщения: 172
Регистрация: 10.01.2016
Сообщения: 172
По умолчанию
Re: Скрипты

Gerterнастройку задания 'q5' CanUncomplete чекни. Кажется, нужно true, чтобы не было луза при провале.

	and SetRegionBlocked('CheckAstrid', false)

не оч понимаю суть этой проверки. здесь всегда будет 1, если регион существует

Действительно, было false, поставил на true. Но бтв это проблему не решило. Вот чо консоль говорит в этот момент (EWA стоит если шо).

А про проверку региона - я уж отчаился и какой-то кривой костыль поставил, чтобы вместе с коэфф. менялся, но как-то бесполезно.
OrnsteinDragonslayer вне форума
Ответить с цитированием
#2955
Старый 08.12.2019, 17:24
  #2955
^
thenekoor
📖
Регистрация: 29.03.2017
Сообщения: 4
Регистрация: 29.03.2017
Сообщения: 4
По умолчанию
Re: Скрипты

Помогите новичку со скриптом.

function MakeHeroes()
DeployReserveHero("Mardigo", 17, 161, 0);

end;



Trigger(REGION_ENTER_AND_STOP_TRIGGER, "Start", "MakeHeroes");

function podkrep()
MessageBox(Вы обнаружили отряд союзных мятежников, которые уничтожили пограничный город.);
MoveCamera(28, 148, 0, 50, 0, 0, 1, 1);

end;



Trigger(REGION_ENTER_AND_STOP_TRIGGER, "gorod", "podkrep");



Что должен сделать скрипт?
1. При входе на определенную локацию спавнит ласло
2. При входе на определенную локацию показывает месседж бокс в котором написанно о том что вы нашли подкрепление, и камера плавно летит на указанные координаты

В игре в скрипте выбивает ошибку
thenekoor вне форума
Ответить с цитированием
Ответ
Страница 197 из 260


Опции темы



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


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

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