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

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

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

Ответ
Страница 103 из 260
 
Опции темы
#1531
Старый 26.07.2013, 16:17
  #1531
^
AkaR
 
Аватар для AkaR
📖
Регистрация: 25.08.2011
Сообщения: 29
Регистрация: 25.08.2011
Сообщения: 29
По умолчанию
Re: Скрипты

Попробуйте использовать функцию KnowHeroSpell(heroName, spell);
Я её не использовал,но рекомендую попробовать. Пример:

KnowHeroSpell(Raelag, 16, nil);

Или вместо nil поставьте false
__________________
Создаётся карта "Забытый Авангард (готовность 80%)
Создаётся карта "Забытый Авангард (готовность 80%)
AkaR вне форума
Ответить с цитированием
#1532
Старый 26.07.2013, 16:29
  #1532
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

AkaRПопробуйте использовать функцию KnowHeroSpell(heroName, spell);
Я её не использовал,но рекомендую попробовать. Пример:

KnowHeroSpell(Raelag, 16, nil);

Или вместо nil поставьте false
Неправда ваша. Функция проверяет, знает ли герой заклинание.

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

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1533
Старый 26.07.2013, 16:30
  #1533
^
AkaR
 
Аватар для AkaR
📖
Регистрация: 25.08.2011
Сообщения: 29
Регистрация: 25.08.2011
Сообщения: 29
По умолчанию
Re: Скрипты

Тогда остается только вариант с TeachHeroSpell(heroName, spell);
Опять же,я не уверен,но попробовать можно Пример:

TeachHeroSpell(Raelag, 16, nil);
__________________
Создаётся карта "Забытый Авангард (готовность 80%)
Создаётся карта "Забытый Авангард (готовность 80%)
AkaR вне форума
Ответить с цитированием
#1534
Старый 26.07.2013, 16:56
  #1534
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

AkaRТогда остается только вариант с TeachHeroSpell(heroName, spell);
Опять же,я не уверен,но попробовать можно Пример:

TeachHeroSpell(Raelag, 16, nil);
Опять-таки нет. Это уже учит героя заклинанию.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

sta=GetHeroStats(vh, 7);
ChangeHeroStat(vh, 7, -sta);

почему этот кусок функции не работает и как исправить?

vh - переменная, сод-ая имя героя. Задумка - обнулить move points у героя

Добавлено через 50 минут
Ещё вопрос: Есть ли функция, которая возвращает массив из id существ в армии героя?
MasteR вне форума
Ответить с цитированием
#1536
Старый 29.07.2013, 22:16
  #1536
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Juss456sta=GetHeroStats(vh, 7);
ChangeHeroStat(vh, 7, -sta);

почему этот кусок функции не работает и как исправить?

vh - переменная, сод-ая имя героя. Задумка - обнулить move points у героя

Добавлено через 50 минут
Ещё вопрос: Есть ли функция, которая возвращает массив из id существ в армии героя?
1) лишняя s. Не Stats, а Stat
2) массив — нет, есть функция, которая возвращает список с идами:
_1, _2, _3, _4, _5, _6, _7 = GetHeroCreaturesTypes(hero)
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

RedHeavenHero1) лишняя s. Не Stats, а Stat
2) массив — нет, есть функция, которая возвращает список с идами:
_1, _2, _3, _4, _5, _6, _7 = GetHeroCreaturesTypes(hero)

спасибо) Но у меня не работает данный кусок. В консоли пишет что-то типа invalid ID=0 (arg1)

c1, c2, c3, c4, c5, c6, c7=GetHeroCreaturesTypes(heroname);
sleep(1);
if c1~=nil then
c11=GetHeroCreatures(heroname, c1);
else c11=0;
end;
if c2~=nil then
c22=GetHeroCreatures(heroname, c2);
else c22=0;
end;
if c3~=nil then
c33=GetHeroCreatures(heroname, c3);
else c33=0;
end;
if c4~=nil then
c44=GetHeroCreatures(heroname, c4);
else c44=0;
end;
if c5~=nil then
c55=GetHeroCreatures(heroname, c5);
else c55=0;
end;
if c6~=nil then
c66=GetHeroCreatures(heroname, c6);
else c66=0;
end;
if c7~=nil then
c77=GetHeroCreatures(heroname, c7);
else c77=0;
end;
sleep(1);
if c11~=0 then
RemoveHeroCreatures(heroname, c1, intg(c11*0.33));
end;
if c22~=0 then
RemoveHeroCreatures(heroname, c2, intg(c22*0.33));
end;
if c33~=0 then
RemoveHeroCreatures(heroname, c3, intg(c33*0.33));
end;
if c44~=0 then
RemoveHeroCreatures(heroname, c4, intg(c44*0.33));
end;
if c55~=0 then
RemoveHeroCreatures(heroname, c5, intg(c55*0.33));
end;
if c66~=0 then
RemoveHeroCreatures(heroname, c6, intg(c66*0.33));
end;
if c77~=0 then
RemoveHeroCreatures(heroname, c7, intg(c77*0.33));
end;
MasteR вне форума
Ответить с цитированием
#1538
Старый 30.07.2013, 13:25
  #1538
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Juss456спасибо) Но у меня не работает данный кусок. В консоли пишет что-то типа invalid ID=0 (arg1)

c1, c2, c3, c4, c5, c6, c7=GetHeroCreaturesTypes(heroname);
sleep(1);
if c1~=nil then
c11=GetHeroCreatures(heroname, c1);
else c11=0;
end;
if c2~=nil then
c22=GetHeroCreatures(heroname, c2);
else c22=0;
end;
if c3~=nil then
c33=GetHeroCreatures(heroname, c3);
else c33=0;
end;
if c4~=nil then
c44=GetHeroCreatures(heroname, c4);
else c44=0;
end;
if c5~=nil then
c55=GetHeroCreatures(heroname, c5);
else c55=0;
end;
if c6~=nil then
c66=GetHeroCreatures(heroname, c6);
else c66=0;
end;
if c7~=nil then
c77=GetHeroCreatures(heroname, c7);
else c77=0;
end;
sleep(1);
if c11~=0 then
RemoveHeroCreatures(heroname, c1, intg(c11*0.33));
end;
if c22~=0 then
RemoveHeroCreatures(heroname, c2, intg(c22*0.33));
end;
if c33~=0 then
RemoveHeroCreatures(heroname, c3, intg(c33*0.33));
end;
if c44~=0 then
RemoveHeroCreatures(heroname, c4, intg(c44*0.33));
end;
if c55~=0 then
RemoveHeroCreatures(heroname, c5, intg(c55*0.33));
end;
if c66~=0 then
RemoveHeroCreatures(heroname, c6, intg(c66*0.33));
end;
if c77~=0 then
RemoveHeroCreatures(heroname, c7, intg(c77*0.33));
end;
Если слот пустой, то соответствующий элемент равен не nil, а 0. Поэтому ~=nil надо заменить на ~=0.
Задумка заключается в удалении трети армии? Тогда есть скрипт покороче.
	for i=0,6 do
  local t, n = GetObjectArmySlotCreature(heroname, i)
  if t ~= 0 then
    RemoveHeroCreatures(heroname, t, n/3)
  end
end
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

RedHeavenHeroЕсли слот пустой, то соответствующий элемент равен не nil, а 0. Поэтому ~=nil надо заменить на ~=0.
Задумка заключается в удалении трети армии? Тогда есть скрипт покороче.
	for i=0,6 do
  local t, n = GetObjectArmySlotCreature(heroname, i)
  if t ~= 0 then
    RemoveHeroCreatures(heroname, t, n/3)
  end
end

спасибо)) А если n/3 будет не целым числом, он не будет ругаться на это? или всё же применять ф-ию intg() ?
MasteR вне форума
Ответить с цитированием
#1540
Старый 30.07.2013, 15:18
  #1540
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Juss456спасибо)) А если n/3 будет не целым числом, он не будет ругаться на это? или всё же применять ф-ию intg() ?
Не будет. Функции операций с армиями сами округляют.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

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

RedHeavenHeroНе будет. Функции операций с армиями сами округляют.

Получилось) Только, когда в каком-то слоте у героя только одно существо, ф-я сбрасывается и происходит ошибка (численность не может быть отрицательной). Ну и последний наверно вопрос: как в определённые моменты передавать игроку(человеку) управление на другого (главного) героя. (Т.е. переместить камеру от второстепенного героя к главному и выделить его)
MasteR вне форума
Ответить с цитированием
#1542
Старый 30.07.2013, 18:12
  #1542
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

Juss456Получилось) Только, когда в каком-то слоте у героя только одно существо, ф-я сбрасывается и происходит ошибка (численность не может быть отрицательной). Ну и последний наверно вопрос: как в определённые моменты передавать игроку(человеку) управление на другого (главного) героя. (Т.е. переместить камеру от второстепенного героя к главному и выделить его)
Тогда нужно использовать не intg, а ceil.
Камеру переместить можно, но вот выделить его в рамку не получится.
__________________
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1543
Старый 31.07.2013, 14:15
  #1543
^
Incorer
📖
Регистрация: 31.07.2013
Сообщения: 1
Регистрация: 31.07.2013
Сообщения: 1
По умолчанию
Re: Скрипты

Доброго времени суток!

Помогите пожалуйста с написание скрипта, при котором каждый день в указанном гарнизоне количество юнитов увеличивалось( например для 1 слота +10, для второго +5, для третьего +2)

Заранее спасибо.
Incorer вне форума
Ответить с цитированием
#1544
Старый 31.07.2013, 15:01
  #1544
^
RedHeavenHero
 
Аватар для RedHeavenHero
📖
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
Регистрация: 10.02.2012
Сообщения: 2378
Выставка наград
По умолчанию
Re: Скрипты

IncorerДоброго времени суток!

Помогите пожалуйста с написание скрипта, при котором каждый день в указанном гарнизоне количество юнитов увеличивалось( например для 1 слота +10, для второго +5, для третьего +2)

Заранее спасибо.
	function newday()
  local add = {[0]=10; 5, 2}
  for i=0,6 do
    local type, number = GetObjectArmySlotCreature("скриптовое имя гарнизона", i)
    if type ~= 0 and add[i] then
      AddObjectCreatures("скриптовое имя гарнизона", type, add[i])
    end
  end
end
Trigger(0, "newday")

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

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
RedHeavenHero вне форума
Ответить с цитированием
#1545
Старый 01.08.2013, 16:14
  #1545
^
Dyrman
 
Аватар для Dyrman
📖
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
Регистрация: 24.06.2008
Адрес: Там, где неба кончается край
Сообщения: 3479
Отправить сообщение для  Dyrman с помощью ICQ
По умолчанию
Re: Скрипты

А есть перехватчики на консольные команды?
Dyrman вне форума
Ответить с цитированием
Ответ
Страница 103 из 260


Опции темы



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


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

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