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

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

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

Ответ
Страница 123 из 260
 
Опции темы
#1831
Старый 21.10.2014, 22:50
  #1831
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Добавил в lualib функцию table.copy, math.root теперь может вычислять корень нечётной степени из отрицательного числа, а также больше не зависает. Функции string.* стали в среднем в 16 раз быстрее работать.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

здрасте
помогите
написать скрипт
вощем его смысл таков что
на поле боя в окне битвы
появляется энное количество монстров
после их убийства призываются еще 2 отряда причем ихнее количество умножено на 2
идеальный вариант
при нажатии
клавиши убежать
бой заканчивается и получаешь приз в зависимости от убитых спаунов
ну есле этого невозможна
просто энное количество спаунов
во пришла идея
бой заканчивается после того как ты потерял больше половины войск
JORAJAN вне форума
Ответить с цитированием
#1833
Старый 11.11.2014, 13:14
  #1833
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

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

насчет бонусов за количество убитых не знаю, а вот сам спавн можно посмотреть в моей карте https://forum.heroesworld.ru/showthread.php?t=11089. (Открыть карту архиватором, посмотреть файл CombatScript.lua). Там после смерти n-ого количества стеков появляются новые, более мощные
MasteR вне форума
Ответить с цитированием
#1834
Старый 12.11.2014, 08:15
  #1834
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

так как я нуб в скриптах не удалось приспособить ваш скрипт подмою карту
пробовал
копировать этот файл в свою карту атак же вставлял этот текст в скрипты
карты
эффекта не заметил
JORAJAN вне форума
Ответить с цитированием
#1835
Старый 13.11.2014, 01:32
  #1835
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

просто скопировать недостаточно конечно. надо убрать все лишнее, прописать своего героя, вместо того, который там. Убрать глобальные переменные, либо завести их в основном скрипте, подключить сам боевой скрипт герою.
MasteR вне форума
Ответить с цитированием
#1836
Старый 13.11.2014, 06:37
  #1836
^
JORAJAN
📖
Регистрация: 24.02.2013
Сообщения: 35
Регистрация: 24.02.2013
Сообщения: 35
По умолчанию
Re: Скрипты

облом я думал будет по проще
может есть у кого небуть такой скрипт что бы на каре появлялся герой
с армией если его убеваешь он появляется рандомно на карте с усиленным войском не гуляя
JORAJAN вне форума
Ответить с цитированием
#1837
Старый 21.11.2014, 22:02
  #1837
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 507
Выставка наград
Регистрация: 08.09.2013
Сообщения: 507
Выставка наград
По умолчанию
Re: Скрипты

Бьюсь над таким боевым скриптом:
Задумка - периодически в течении боя на одно из существ игрока случайным образом должно накладываться ослепление. Состав вражеской армии априори неизвестен.
Реализация - попробовал вызывать UnitCastAimedSpell от имени вражеских существ во время их хода. Как оказалось, если существо изначально не колдун, вызов данной команды не проходит. Попробовал через костыль - во время хода существа (отлавливаемого через триггер UnitMove) вызываю на поле командами SummonCreature или AddCreature умеющее колдовать существо, скажем лича, с помощью sleep'ов дожидаюсь когда оно появится, колдую им ослепление, после чего удаляю.
Все функции вызываются в основном потоке, но на выходе я получаю рассинхронизацию ATB шкалы с реальностью - смотришь свойства существа на поле боя, пишет к примеру "ослепление будет действовать 0,5/1 хода". Смотришь свойства того же существа через иконку на ATB-шкале - там какое-нибудь "ослепление будет действовать 0,8/1 хода". Периодически из-за этого ход переходит к существу, которое на ATB-шкале еще отображается как слепое.
Никто с таким не сталкивался?
Jack_of_shadows вне форума
Ответить с цитированием
#1838
Старый 21.11.2014, 22:19
  #1838
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1839
Старый 21.11.2014, 23:14
  #1839
^
Jack_of_shadows
 
Аватар для Jack_of_shadows
📖
Регистрация: 08.09.2013
Сообщения: 507
Выставка наград
Регистрация: 08.09.2013
Сообщения: 507
Выставка наград
По умолчанию
Re: Скрипты

Хм, действительно. Раньше я по заветам мануалов давал ману и ставил задержку sleep(1), но вызов каста после этого не проходил. Увеличил задержку на порядок - мана у существа появилась и заклинание прошло. Но рассинхронизация поле боя и ATB-шкалы при этом такая же как я описывал.
Упрощенный код:
	function DefenderCreatureMove(unit)
  local last_mana = GetUnitManaPoints(unit);
  SetUnitManaPoints(unit, 100);
  sleep(30);
  local player_units = GetCreatures(ATTACKER);
  UnitCastAimedSpell(unit, SPELL_BLIND, player_units[0]);
  sleep(1);
  SetUnitManaPoints(unit, last_mana);
end


Добавлено через 22 минуты
Хотя похоже что тут какая-то более общая фишка механики - когда я накладываю обычное заклинание героем, оставшаяся длительность его действия тоже различается если смотреть через существо на поле и через иконку на шкале. Но периодически оно синхронизируется.
Jack_of_shadows вне форума
Ответить с цитированием
#1840
Старый 21.11.2014, 23:24
  #1840
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Передача хода ослеплённому существу тоже имеет место быть. Однако после нескольких минут бездейственной паузы, ход передают следующему.
Вот так, немного переделал, чтобы ход особо инициативным не давался
	function BlindAttackerUnit()
  repeat sleep() until combatStarted()
  local unit = GetCreatures(DEFENDER)[0]
  local last_mana = GetUnitManaPoints(unit);
  SetUnitManaPoints(unit, 100);
  repeat sleep() until GetUnitManaPoints(unit) == 100
  local player_unit = GetCreatures(ATTACKER)[0]
  setATB(player_unit, 0)
  UnitCastAimedSpell(unit, SPELL_BLIND, player_unit);
  sleep(1);
  SetUnitManaPoints(unit, last_mana);
end

startThread(BlindAttackerUnit)


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

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1841
Старый 23.12.2014, 11:21
  #1841
^
Рыцарь Бездны
 
Аватар для Рыцарь Бездны
📖
Регистрация: 24.07.2012
Сообщения: 88
Регистрация: 24.07.2012
Сообщения: 88
По умолчанию
Re: Скрипты

Извините за простой вопрос,но подскажите пожалуста,как сделать NEW_DAY_TRIGGER чтобы каждый 14 день месяца на надземном уровне в кординате ,х1у1 создавался караван по имени car_1 с существами (наример с 1 ангелом) и он шел в город с кординатами ворот х2у2 ?. И если нетрудно напишите пожалуста пример такого тригера... Ато вроде все правильно пишу а всеравно не работает,может ошибка в чемто(.
Рыцарь Бездны вне форума
Ответить с цитированием
#1842
Старый 23.12.2014, 13:10
  #1842
^
MasteR
 
Аватар для MasteR
📖
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
Регистрация: 24.01.2013
Сообщения: 3351
Выставка наград
По умолчанию
Re: Скрипты

вот кусок из моего скрипта
	
k=GetDifficulty();
dd=0;
urv=0;
function newDayF()
      dd=GetDate(0);
      if mod(dd, 14)==0 then
             OpenCircleFog(1, 59, 1, 4, 1);
             MoveCamera(1, 59, 1, 50, 1.2, 0, 0, 0);
             CreateCaravan("Carav"..urv, 1, 1, 1, 59, 1, 12, 21); 
             sleep(2);
             AddObjectCreatures("Carav"..urv, 131, 20+20*urv+10*(3-k));
             AddObjectCreatures("Carav"..urv, 132, 17+17*urv+9*(3-k));
             AddObjectCreatures("Carav"..urv, 133, 12+12*urv+6*(3-k));
             AddObjectCreatures("Carav"..urv, 134, 6+6*urv+4*(3-k));
             AddObjectCreatures("Carav"..urv, 135, 3+3*urv+3*(3-k));
             AddObjectCreatures("Carav"..urv, 136, 5+2*urv-k);
             AddObjectCreatures("Carav"..urv, 137, 1+urv);
             urv=urv+1;
      end;
end;

Trigger(0, "newDayF");
MasteR вне форума
Ответить с цитированием
#1843
Старый 24.12.2014, 10:08
  #1843
^
Eleondor
 
Аватар для Eleondor
📖
Регистрация: 11.01.2010
Сообщения: 428
Регистрация: 11.01.2010
Сообщения: 428
По умолчанию
Re: Скрипты

подскажите пожалуйста, как сделать так (можно скриптами, можно патчем h5u - как угодно), чтобы при постройках Грааля изменялись условия?
Например, сделал как в тройке - при постройке Грааля у Инферно - вместо бонусов к колдунству и тп - каждая неделя была бы неделей чертей)))
Это вроде надо будет смотреть эффект недели в файлах (как с вариантом астрологом)
Eleondor вне форума
Ответить с цитированием
#1844
Старый 24.12.2014, 14:13
  #1844
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

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

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1845
Старый 25.12.2014, 12:01
  #1845
^
Рыцарь Бездны
 
Аватар для Рыцарь Бездны
📖
Регистрация: 24.07.2012
Сообщения: 88
Регистрация: 24.07.2012
Сообщения: 88
По умолчанию
Re: Скрипты

MasteRвот кусок из моего скрипта
	
k=GetDifficulty();
dd=0;
urv=0;
function newDayF()
      dd=GetDate(0);
      if mod(dd, 14)==0 then
             OpenCircleFog(1, 59, 1, 4, 1);
             MoveCamera(1, 59, 1, 50, 1.2, 0, 0, 0);
             CreateCaravan("Carav"..urv, 1, 1, 1, 59, 1, 12, 21); 
             sleep(2);
             AddObjectCreatures("Carav"..urv, 131, 20+20*urv+10*(3-k));
             AddObjectCreatures("Carav"..urv, 132, 17+17*urv+9*(3-k));
             AddObjectCreatures("Carav"..urv, 133, 12+12*urv+6*(3-k));
             AddObjectCreatures("Carav"..urv, 134, 6+6*urv+4*(3-k));
             AddObjectCreatures("Carav"..urv, 135, 3+3*urv+3*(3-k));
             AddObjectCreatures("Carav"..urv, 136, 5+2*urv-k);
             AddObjectCreatures("Carav"..urv, 137, 1+urv);
             urv=urv+1;
      end;
end;

Trigger(0, "newDayF");


Спасибо огромное,наконецто заработало).
И если вам нетрудно,немогли бы вы показать пример любого рабочего скрипта QuestionBox?).Ато почемуто теже проблемы что и с караваном,немогу понять что нетак... Заранее благодарен.
Рыцарь Бездны вне форума
Ответить с цитированием
Ответ
Страница 123 из 260


Опции темы



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


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

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