Перейти к содержанию

Сообщения от Скрипты

В ответ пользователю Heroist
Аватар пользователя
#1489
SetHeroRoleMode('имя героя', HERO_ROLE_MODE_HERMIT)
такая штука должна по идее запрещать героям ИИ общаться между собой.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1490
ух ты. Сейчас попробую.

Добавлено через 22 минуты
великолепно! Снова меня выручили. Большое спасибо. Работает, вроде бы, пока как надо:
а) Героя в 0 тайлов от города: ИИ спрятал в гарнизон, он работает дефером.
б) Героя в 1 тайлов от города: полнейший игнор со стороны ИИ. Все прекрасно получилось.

Добавлено через 21 минуту
Может мне еще кто-нибудь про типы поведения ИИ расскажет?

warrior - воин? очевидно, агрессивно бежит на игрока.
builder - строитель. Наверно, строит замок и собирает ресурсы.
exproler - разведчик, исследователь? бегает по карте всю игру?
hunter - охотник? убивает лоу лв героев?!
victim - ???

Whatever
В ответ пользователю Heroist
Аватар пользователя
#1491
victim - наверное, ждёт, пока его прибьют :D
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1492
Перевод с гугла - жертва. Походу, у них тут еще и в зависимости от ситуации врубаются разные характеры...

Whatever
В ответ пользователю Heroist
Аватар пользователя
#1493
Можно получить скриптовое имя существа, которое находится на заданных координатах?
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля
Аватар пользователя
#1494
Не уверен. Можно сделать регион и вызвать функцию GetObjectsInRegion. Или можно написать такую функцию, которая Вам нужна, вручную, получив имя всех монстров на карте и в цикле проверить координаты каждого.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
#1495
Я спавнил монстров через цикл, так что нужды в получении всех имен монстров нет, по крайней мере, я так думаю.
Вот скрипт:
for x=66,67 do
for y=127,159 do
if IsTilePassable(x, y, 0)==1 then
CreateMonster ("name"..i, 32, 1, x, y, 0,1,2,270)

if x==67 and y==130 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
if x==67 and y==154 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
if x==66 and y==155 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
i=i+1
end
end
end

Т.е. в его результате должны получиться монстры, стоящие прямоугольником, некоторые-мертвые. При этом игра не воспроизводит анимацию смерти у существ на проверяемых координатах, консоль пишет, что не найден монстр с именем name(...)
если я ставлю sleep между CreateMonster и проверками, то монстры спавнятся не прямоугольником, а вразнобой по какому-то непонятному принципу. В чем может быть дело?
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля
В ответ пользователю Олегарх
Аватар пользователя
#1496
Олегарх
Я спавнил монстров через цикл, так что нужды в получении всех имен монстров нет, по крайней мере, я так думаю.
Вот скрипт:
for x=66,67 do
for y=127,159 do
if IsTilePassable(x, y, 0)==1 then
CreateMonster ("name"..i, 32, 1, x, y, 0,1,2,270)

if x==67 and y==130 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
if x==67 and y==154 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
if x==66 and y==155 then
PlayObjectAnimation ("name"..i, "death", ONESHOT_STILL)
end
i=i+1
end
end
end

Т.е. в его результате должны получиться монстры, стоящие прямоугольником, некоторые-мертвые. При этом игра не воспроизводит анимацию смерти у существ на проверяемых координатах, консоль пишет, что не найден монстр с именем name(...)
если я ставлю sleep между CreateMonster и проверками, то монстры спавнятся не прямоугольником, а вразнобой по какому-то непонятному принципу. В чем может быть дело?
for x=66,67 do
for y=127,159 do
startThread(function(int)
local name="name"..int
CreateMonster(name, 32, 1, %x, %y, 0, 1, 2, -90)
sleep(1)
SetObjectPosition(name, %x, %y, 0)
if (%x==67 and %y==130) or (%x==67 and %y==154) or (%x==66 and %y==155) then
PlayObjectAnimation(name, "death", ONESHOT_STILL)
end
end, i)
i=i+1
end
end
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю RedHeavenHero
Аватар пользователя
#1497
Спасибо! а в чем разница между x и %х?
А о том ,что можно записать
startThread(function(int)
end, i)
я и не догадывался, теперь буду знать) Как я понял, это вызов потока, который находится в теле функции с передачей аргумента i как числа?
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля
В ответ пользователю Олегарх
Аватар пользователя
#1498
Олегарх
Спасибо! а в чем разница между x и %х?
Для этой безымянной функции х и у - внешние локальные переменные, а перед ними нужно ставить %, иначе будет ошибка.

Добавлено через 2 минуты
Олегарх

А о том ,что можно записать
startThread(function(int)
end, i)
я и не догадывался, теперь буду знать) Как я понял, это вызов потока, который находится в теле функции с передачей аргумента i как числа?
Передавать можно любые параметры, не только числа.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1499
Тему не читай @ сразу отвечай (cотня страниц, уж извините)
Может кто-нибудь будет так добр поделиться архивом со скриптами? Теми что "дефолтно воговские" будть то маркет оф таим или казино. Был бы весьма признателен :)
Аватар пользователя
#1500
А я не понял... Вы ищете какую-то библиотеку скриптов, стилизованных под WOG?
 

К А
Стикеры GBF в Telegram
Аватар пользователя
#1501
Есть ли "обходилка", при которой выдавший ошибку скрипт, просто перешагнул бы косячную функцию и пошёл дальше?
Моды для HeroesV:
NHF 0.90 : NHF - группа в VK

Карты для HeroesV:
Путешествие , Условие крови , Рука судьбы.Часть 1: В поход , Рука судьбы.Часть 2: Отчаянье , Рука судьбы.Часть 3: Восхождение , Стойкость
Абсолютная власть , Иду на Вы! , Корона Ургаша , На задворках
Мир надо уничтожить... Чтобы создать свой...
В ответ пользователю Dyrman
Аватар пользователя
#1502
Автопереведено
Не подходит `startThread`?
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю Dyrman
Аватар пользователя
#1503
Dyrman
Есть ли "обходилка", при которой выдавший ошибку скрипт, просто перешагнул бы косячную функцию и пошёл дальше?
Погуглил, нашел это:

try
... (block) ...
end

If error occurs in the block, the control immediately jumps to the first statement after END, and
the error will be ignored.

another form,

try
... (block) ...
catch err do
... (handler) ...
end
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля

Статистика

Приветствуем новейшего участника: Emil

Сейчас на сайте 5 пользователей 1027 гостей