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

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

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

Ответ
Страница 42 из 260
 
Опции темы
#616
Старый 07.05.2012, 23:13
  #616
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Скрипты

Хм. Думаю, да. Можно просто посчитать их количество (за вычетом непризывных юнитов и тех призывных, что умерли). Но тут надо экспериментировать, определённо. Потому как игра может посчитать, что в конце боя все призывные существа умерли, а в этом случае придётся делать особые условия победы, чтобы сначала всё посчитать, а потом закончить бой.
Ment вне форума
Ответить с цитированием
#617
Старый 08.05.2012, 10:31
  #617
^
djulian13
📖
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
По умолчанию
Re: Скрипты

Вообще, можно посчитать, когда у одной из сторон не останется юнитов, тогда сделать BlockGame, посчитать призванных, разблочить игру, закончить бой.
__________________
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
djulian13 вне форума
Ответить с цитированием
#618
Старый 08.05.2012, 10:41
  #618
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Скрипты

Я думаю, в этом случае механизм подсчёта юнитов, встроенный в игру, справится со своей задачей быстрее и бой кончится раньше, чем будет вызвана команда BlockGame.
Ment вне форума
Ответить с цитированием
#619
Старый 08.05.2012, 11:39
  #619
^
djulian13
📖
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
По умолчанию
Re: Скрипты

Что ж, буду пытаться экспериментировать. А вообще, как узнать, какому существу присвоена какая UnitName?
С уважением.
__________________
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
djulian13 вне форума
Ответить с цитированием
#620
Старый 08.05.2012, 11:49
  #620
^
Ment
 
Аватар для Ment
📖
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
Регистрация: 30.10.2009
Адрес: Национальный заповедник
Сообщения: 30681
По умолчанию
Re: Скрипты

Может, вызвать GetDefender(Attacker)Creatures и для каждого элемента массива GetCreatureType?
Ment вне форума
Ответить с цитированием
#621
Старый 08.05.2012, 15:29
  #621
^
djulian13
📖
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
По умолчанию
Re: Скрипты

Попробуем, спасибо.
С уважением.
__________________
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
djulian13 вне форума
Ответить с цитированием
#622
Старый 11.05.2012, 18:29
  #622
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

У меня возник такой вопрос. Допустим, по сюжету герой должен выбрать, например, каким путем ему идти. Если он пойдет по определенной дороге, то каждый день у него будет уменьшаться армия. Это можно сделать через New_day_trigger. Допустим, что переменной h в этом случае присваивается значение 1. Тогда
Trigger( NEW_DAY_TRIGGER, "hello" )
function hello()
if GetDate(DAY) == 2 and h==1 then
RemoveHeroCreatures(...);
elseif GetDate(DAY) == 3 and h==1 then
RemoveHeroCreatures(...);
и тд
end;
end;
но так придется прописывать на каждый день. Можно ли как-нибудь обнулить счет дней в определенный момент, чтобы не прописывать столко?
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#623
Старый 11.05.2012, 18:39
  #623
^
JonnyP
📖
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
Регистрация: 01.09.2011
Сообщения: 462
Отправить сообщение для  JonnyP с помощью ICQ
По умолчанию
Re: Скрипты

ОлегархУ меня возник такой вопрос. Допустим, по сюжету герой должен выбрать, например, каким путем ему идти. Если он пойдет по определенной дороге, то каждый день у него будет уменьшаться армия. Это можно сделать через New_day_trigger. Допустим, что переменной h в этом случае присваивается значение 1. Тогда
Trigger( NEW_DAY_TRIGGER, "hello" )
function hello()
if GetDate(DAY) == 2 and h==1 then
RemoveHeroCreatures(...);
elseif GetDate(DAY) == 3 and h==1 then
RemoveHeroCreatures(...);
и тд
end;
end;
но так придется прописывать на каждый день. Можно ли как-нибудь обнулить счет дней в определенный момент, чтобы не прописывать столко?
ну так если у тебя переменная h=1, то он и будет удалять часть армии каждый день. и не к чему эти навороты с определением даты. как фишка будет не нужна измениш значение h на любое кроме еденицы.
JonnyP вне форума
Ответить с цитированием
#624
Старый 11.05.2012, 18:43
  #624
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

JonnyPну так если у тебя переменная h=1, то он и будет удалять часть армии каждый день. и не к чему эти навороты с определением даты. как фишка будет не нужна измениш значение h на любое кроме еденицы.
как я сам не допер))
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#625
Старый 11.05.2012, 19:07
  #625
^
djulian13
📖
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
Регистрация: 18.09.2011
Адрес: Сары-Тау, Ранаар.
Сообщения: 161
По умолчанию
Re: Скрипты

Ну да, значение переменной меняешь в определённом месте и всё. Два регион-триггера без остановки героя, меняющие значение + запуск нового потока.
Если мой ход мыслей правилен, то:
h = 0

function RemoveCreaturesStart()
h = 1
startThread(RemoveCreatureProgress)
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1', nil)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC1','R emoveCreaturesStart')

function RemoveCreatureProgress()
while 1 do
if h == 1 then
RemoveObjectCreatures('Oddrema', CREATURE_CERBERI,28)
end;
sleep(1)
end;
end;

function RemoveCreatureStop()
if h == 1 then
h=2
else
if (h == 2) or (h == 0) then
h = 1
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2',ni l)
end;
Trigger(REGION_ENTER_WITHOUT_STOP_TRIGGER,'RC2','R emoveCreatureStop')
С уважением.
__________________
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
Мои карты:

SinglePlayer: Выбор Зехира

Падение Стедвика(pre-release)

Готовится: Зима Титанов, Столетняя война
djulian13 вне форума
Ответить с цитированием
#626
Старый 12.05.2012, 13:28
  #626
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

нуу, приблизительно. Я вообще думаю так: повесить регион
function regf()
h=1;
Trigger(трололо, nil);
end;
Trigger(трололо);

function hello()
if h==1 then
RemoveCreatures ("Oddrema", 20, 1);
end;
end;
Trigger (NEW_DAY_TRIGGER, "hello");
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#627
Старый 13.05.2012, 13:50
  #627
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

как установить спавн только определенных существ в начале недели? И, желательно, в определенном месте?
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#628
Старый 13.05.2012, 20:46
  #628
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

как установить спавн только определенных существ в начале недели? И, желательно, в определенном месте?
Функцией
CreateMonster
	
--Пример
function NewDay()
    if GetDate(DAY_OF_WEEK) == 1 then
        CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
    end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")
RedHeavenHero вне форума
Ответить с цитированием
#629
Старый 14.05.2012, 16:32
  #629
^
Олегарх
 
Аватар для Олегарх
📖
Регистрация: 02.12.2011
Сообщения: 294
Регистрация: 02.12.2011
Сообщения: 294
По умолчанию
Re: Скрипты

RedHeavenHeroФункцией
CreateMonster
	
--Пример
function NewDay()
    if GetDate(DAY_OF_WEEK) == 1 then
        CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
    end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")
Спасибо. А как тогда отключить спавн на новой неделе? Например, наступила неделя лича и никто не спавнится?
__________________
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Мои карты:

Town

Готовится:Чума (40%), Сосиска(42%), Война Грааля
Олегарх вне форума
Ответить с цитированием
#630
Старый 14.05.2012, 17:13
  #630
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Спасибо. А как тогда отключить спавн на новой неделе? Например, наступила неделя лича и никто не спавнится?

Тогда придётся сделать так:

	function NewDay()
    if GetDate(DAY_OF_WEEK) == 1 and GetCurrentMoonWeek() < 84 then
        CreateMonster('mob1', CREATURE_PEASANT, 50, 45, 51, GROUND);
    end;
end;
Trigger(NEW_DAY_TRIGGER, "NewDay")

Тогда, если случится неделя какой-нибудь твари, монстр не поставиться на карту.
RedHeavenHero вне форума
Ответить с цитированием
Ответ
Страница 42 из 260


Опции темы



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


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

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