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

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

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

Ответ
Страница 68 из 260
 
Опции темы
#1006
Старый 24.02.2013, 01:34
  #1006
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

Привет вот столкнулся впервые с необходимостью написания скрипта
но я туг в программировании
и к тому же не знаю
границ возможности
а именно нужно запрограммировать ворота так что бы
при уничтожении всей армии находящийся в них ворота переходил под мою юрисдикцию
а охрана в воротах возрождалась в двое
может у вас уже есть похожий набросок оч был бы рад содействию
JORAJAN вне форума
Ответить с цитированием
#1007
Старый 24.02.2013, 22:33
  #1007
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

что подразумевается под словом ворота? Гарнизон? Тогда он и так станет Вашим после уничтожения всей его армии.
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1008
Старый 25.02.2013, 11:28
  #1008
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

да гарнизон
нет суть не в том что бы он стал моим
а в том что бы вся армия которую я выбил возродилась
но уже под моим началом
естественно неизвлекаемая
плюс удвоилась
JORAJAN вне форума
Ответить с цитированием
#1009
Старый 26.02.2013, 00:00
  #1009
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Есть много способов. Представлю один из них:
	SetObjectEnabled("имя гарнизона", nil);
Trigger(4, "имя гарнизона", "capture_gar");

function capture_gar(hero)
	local a = {};
	a[1], a[3], a[5], a[7], a[9], a[11], a[13] = GetObjectCreaturesTypes("имя гарнизона");
	for i = 1, 7 do
		if a[i*2-1] ~= 0 then
			a[i*2] = 2 * GetObjectCreatures("имя гарнизона", a[i*2-1]);
		end;
	end;
	SetObjectEnabled("имя гарнизона", 1);
	Trigger(4, "имя гарнизона", nil);
	MakeHeroInteractWithObject(hero, "имя гарнизона");
	local i = GetLastSavedCombatIndex();
	while i == GetLastSavedCombatIndex() do
		sleep(1);
	end;
	if not IsHeroAlive(hero) then 
		SetObjectEnabled("имя гарнизона", nil);
		Trigger(4, "имя гарнизона", "capture_gar");
		return
	end;
	for i = 1, 7 do
		if a[i*2] then
			AddObjectCreatures("имя гарнизона", a[i*2-1], a[i*2]);
		end;
	end;
	DenyGarrisonCreaturesTakeAway("имя гарнизона", 1);
end;
Тут надо только заменить "имя гарнизона" на скриптовое имя вашего гарнизона. В скрипте оно должно писаться в кавычках, а в редакторе (в поле Name в свойствах объекта) - без.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1010
Старый 26.02.2013, 00:07
  #1010
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

JORAJANда гарнизон
нет суть не в том что бы он стал моим
а в том что бы вся армия которую я выбил возродилась
но уже под моим началом
естественно неизвлекаемая
плюс удвоилась

даёшь своим "воротам" имя.
например vorota
vorotaF - функция, которая запуститься при взятии объекта
дальше объявляешь триггер
Trigger(OBJECT_CAPTURE_TRIGGER, "vorota", "vorotaF");

дальше прописывешь саму функцию

vorotaF(nPrevOwnerID, nNewOwnerID, sHeroName, sObjectID)
nPrevOwnerID - номер игрока - бывшего владельца
nNewOwnerID - текущий владелец
sHeroName - имя героя, захватившего ворота
sObjectID - название твоих ворот(vorota)

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

в теле функции для добавления существ в гарнизон использовать команду
AddObjectCreatures( sObjectName, nGreatureID, nCount );

где sObjectName - имя ворот(указывается в кавычках!!!)
nGreatureID - ID существа(в документах к редактору есть документ со всеми IDs)
nCount - количество добавляемых существ.

Trigger(OBJECT_CAPTURE_TRIGGER, "vorota", nil ); - обнуление тригера, тоже в теле функции!!!

и не забыть в конце поставить end;

вот и всё. Если важно какой именно игрок и герой захватывает, в скобке у функции указывать все параметры и писать в теле функции условное выражение if ....... end;
MasteR вне форума
Ответить с цитированием
#1011
Старый 26.02.2013, 01:38
  #1011
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Способ #2:
	gar="имя гарнизона"
gar_army={}
for i = 0, 6 do
	local t, n = GetObjectArmySlotCreature(gar, i)
	gar_army[i]={t, n}
end

Trigger(5, gar, 'capture_gar')

function capture_gar(oldowner, newowner, hero, gar)
	for i = 0, 6 do
		if gar_army[i][1] ~= 0 then
			AddObjectCreatures(gar, gar_army[i][1], gar_army[i][2]*2)
		end
	end
	DenyGarrisonCreaturesTakeAway(gar, 1)
	Trigger(5, gar, nil)
end
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1012
Старый 27.02.2013, 12:23
  #1012
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

что я не так сделал ?
открыл редактором карту
нашел гарнизон
открыл свойства пробелом
нажал edit script
вставил текст
нажал ок
JORAJAN вне форума
Ответить с цитированием
#1013
Старый 27.02.2013, 12:35
  #1013
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

JORAJANчто я не так сделал ?
открыл редактором карту
нашел гарнизон
открыл свойства пробелом
нажал edit script
вставил текст
нажал ок
чтом написать скрипт для карты, в редакторе открой Map properties(быстро это можно сделать нажав кнопку M). В ней выбери вкладку Scripts, нажми Edit script и пиши
MasteR вне форума
Ответить с цитированием
#1014
Старый 27.02.2013, 14:13
  #1014
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

ешо вопрос
как дать имя гарнизону ?
JORAJAN вне форума
Ответить с цитированием
#1015
Старый 27.02.2013, 15:29
  #1015
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

"Открывать свойства" надо не пробелом, а писать в поле Name в SelectionPropertyWindow. Оно вот так примерно выглядит
Миниатюры
Нажмите на изображение для увеличения
Название:  Безымянный.png
Просмотров: 158
Размер:	11.9 Кбайт
ID:	30977  
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1016
Старый 27.02.2013, 22:49
  #1016
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

это я нашел
а как вписать
в поле имя ?
JORAJAN вне форума
Ответить с цитированием
#1017
Старый 27.02.2013, 22:51
  #1017
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Эмм... Нажать на то место колонки Value, напротив которого находится Name. B тогда уже вводить.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1018
Старый 28.02.2013, 00:59
  #1018
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

Все спасибо еле нашол
оказывается надо кликать
в поле правее слова name
а можно еще нажать на name выделит его и нажать пробел[u]

заработало! )
JORAJAN вне форума
Ответить с цитированием
#1019
Старый 01.03.2013, 22:20
  #1019
^
Heroist
 
Аватар для Heroist
📖
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
Регистрация: 16.12.2012
Адрес: Запределье
Сообщения: 14599
Выставка наград
По умолчанию
Re: Скрипты

кто знает, как заставить супер сильного героя-компа не нападать на моего героя? Судя по описаню, attractor тут не спасет, а дружбу тоже заводить не хочется, надо, чтобы ты мог атаковать, а он нет...
__________________
Whatever
Whatever
Heroist вне форума
Ответить с цитированием
#1020
Старый 01.03.2013, 22:55
  #1020
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30682
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30682
По умолчанию
Re: Скрипты

Отключить его SetObjectEnabled("...",nil); и двигать по карте вручную ) Триггер ещё понадобится установить на прикосновение, чтобы другой герой напасть мог.
Ment вне форума
Ответить с цитированием
Ответ
Страница 68 из 260


Опции темы



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


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

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