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

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

В ответ пользователю BlueHeavenHero
Аватар пользователя
3 года назад
Снова привет.
Может ли кто помочь мне разобраться с функцией SetGameVar и GetGameVar? Я ничего не понимаю - зачем они нужны и как их правильно прописать.
Аватар пользователя
3 года назад
Они нужны, чтобы перенести какие-то значения из карты приключений в любую битву. Просто переменную test=1, инициализированную в скриптах карты приключений, в бою увидеть нельзя, а вот если установить её SetGameVar("test", 1), то в любой битве GetGameVar("test") вернёт "1" (важно: строку; чтобы сдедать числом, прибавьте ноль). Так можно передать уровень героя или какой-то коэффициент
В ответ пользователю }{0TT@6bI4
Аватар пользователя
3 года назад
}{0TT@6bI4
Они нужны, чтобы перенести какие-то значения из карты приключений в любую битву. Просто переменную test=1, инициализированную в скриптах карты приключений, в бою увидеть нельзя, а вот если установить её SetGameVar("test", 1), то в любой битве GetGameVar("test") вернёт "1" (важно: строку; чтобы сдедать числом, прибавьте ноль). Так можно передать уровень героя или какой-то коэффициент
Спасибо за разъяснение,
А что делать с мостом, о котором я писал в сообщении выше?
Аватар пользователя
3 года назад
Вообще, есть одно предложение: создать новый объект типа StandShared (выставьте убежище тиеру и через Shared => New), указать ему несколько состояний (разрушен/восстановлен). Там же накидать эффектов перехода сколько надо (просто добавить в список с указанием задержки). BlockTiles не указывать, а проход заблокировать регионом... и потом сделать скриптом SetStandState("имя", номерСостояния) + разблокировка региона
В ответ пользователю BlueHeavenHero
Аватар пользователя
3 года назад
Добрый день
А никто не подскажет, возможно ли переопределить поведение юнита в хуках? В плане, например, юнит выстрелил, а на юнит, получивший урон, накладывается некий эффект.
Я увидел только UnitMove, который потом делится на "подхуки" 
Но во всех из них передается только параметр sUnitName. 
Т.е. получается, будто управлять можно только атакующим юнитом, но не атакуемым
Как-то возможно узнать, кто является атакуемым юнитом, прошедший по нему урон?
В ответ пользователю JustPeasant
Аватар пользователя
3 года назад
Всем привет! Есть вопрос. 
Можно ли сделать так, чтобы главный герой ИИ не сливал всю армию второстепенному герою, и наоборот - второстепенный герой ИИ не сливал армию главному герою? 

Добавлено через 1 минуту
JustPeasant
Добрый день
А никто не подскажет, возможно ли переопределить поведение юнита в хуках? В плане, например, юнит выстрелил, а на юнит, получивший урон, накладывается некий эффект.
Я увидел только UnitMove, который потом делится на "подхуки" 
Но во всех из них передается только параметр sUnitName. 
Т.е. получается, будто управлять можно только атакующим юнитом, но не атакуемым
Как-то возможно узнать, кто является атакуемым юнитом, прошедший по нему урон?
Вроде бы можно так сделать, но не помню как именно
В ответ пользователю BlueHeavenHero
Аватар пользователя
3 года назад
BlueHeavenHero
Всем привет! Есть вопрос. 
Можно ли сделать так, чтобы главный герой ИИ не сливал всю армию второстепенному герою, и наоборот - второстепенный герой ИИ не сливал армию главному герою? 
SetHeroRoleMode("скриптовое имя главного героя", ROLE_MODE_HERMIT)
В ответ пользователю Азгалор
Аватар пользователя
3 года назад
Спасибо, но есть ещё один вопрос - написал вот такой скрипт, но он почему-то не работает. Консоль ошибок не показывает.
function desentir()
print("Desentirs!");
CreatureList = {CREATURE_PEASANT,
CREATURE_MILITIAMAN,
CREATURE_ARCHER,
CREATURE_MARKSMAN,
CREATURE_FOOTMAN,
CREATURE_SWORDSMAN,
CREATURE_PRIEST,
CREATURE_CLERIC,
CREATURE_CAVALIER,
CREATURE_PALADIN};
for i=1,14 do
if GetHeroCreatures("Hafad",CreatureList) > 5 then
if i <= 4 then
quantity = 1+random(6);
end;
if i > 4 and i <=10 then
quantity = 1+random(2);
end;
if i > 10 then
quantity = 1;
end;
RemoveHeroCreatures("Hafad",CreatureList,quantity);
print("Hafad lost ",quantity," creatures. Creature ID = ",CreatureList);
else
print("Hero has less then 6 creatures this type. Creature ID = ",CreatureList);
end;
end;
sleep(10);
Trigger(NEW_DAY_TRIGGER,"desentir");
end;
В ответ пользователю BlueHeavenHero
Аватар пользователя
3 года назад
Автор
Добрый день
А никто не подскажет, возможно ли переопределить поведение юнита в хуках? В плане, например, юнит выстрелил, а на юнит, получивший урон, накладывается некий эффект.
Я увидел только UnitMove, который потом делится на "подхуки" 
Но во всех из них передается только параметр sUnitName. 
Т.е. получается, будто управлять можно только атакующим юнитом, но не атакуемым
Как-то возможно узнать, кто является атакуемым юнитом, прошедший по нему урон?

Быть может кто вспомнит? :((

У меня идей совсем нет

В ответ пользователю JustPeasant
Аватар пользователя
3 года назад
JustPeasant
Добрый день
А никто не подскажет, возможно ли переопределить поведение юнита в хуках? В плане, например, юнит выстрелил, а на юнит, получивший урон, накладывается некий эффект.
Я увидел только UnitMove, который потом делится на "подхуки" 
Но во всех из них передается только параметр sUnitName. 
Т.е. получается, будто управлять можно только атакующим юнитом, но не атакуемым
Как-то возможно узнать, кто является атакуемым юнитом, прошедший по нему урон?
Очень увы, этот момент нельзя отконтролировать. Существует один костыль — добавить в новом потоке проверку while 1 do, которая подсчитывает число существ в каждом стеке и смотрит, совпало ли это значение с предыдущим насчитанным. Если нет — вызывает какую-то функцию, передавая туда имя стека
Аватар пользователя
3 года назад
BlueHeavenHero, какие принты выводятся, какие нет? Вообще, существует метод отладочной печати — накидать послед "подозреваемых" строк простейшие принты аля print(123) и посмотреть, какие выводятся, какие нет, для уточнения проблемного места.
В ответ пользователю }{0TT@6bI4
Аватар пользователя
3 года назад

}{0TT@6bI4
Очень увы, этот момент нельзя отконтролировать. Существует один костыль — добавить в новом потоке проверку while 1 do, которая подсчитывает число существ в каждом стеке и смотрит, совпало ли это значение с предыдущим насчитанным. Если нет — вызывает какую-то функцию, передавая туда имя стека

Спасибо большое, буду думать. Направление я понял. Нивал странные :) Дать события на ход юнита, но не дать на атаку

В ответ пользователю JustPeasant
Аватар пользователя
3 года назад
Всем привет! Можно ли запретить определённым героям ИИ сбегать с поля боя? Или это невозможно? 
В ответ пользователю BlueHeavenHero
Аватар пользователя
3 года назад
BlueHeavenHero
Всем привет! Можно ли запретить определённым героям ИИ сбегать с поля боя? Или это невозможно? 
DenyAIHeroFlee("скриптовое имя героя", 1, "можно не прописывать, но здесь указывается герой, против которого цель не будет сбегать. Если не заполнить 3 аргумент, то не будет сбегать от всех героев")
Аватар пользователя
3 года назад
Снова привет! Нужна помощь.
Есть ли такая функция, проверяющая, посещал ли герой какой-либо объект?

Статистика

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

Сейчас на сайте 1 пользователей 1296 гостей