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

Сообщения от Текущие вопросы и ответы по редактору карт

Аватар пользователя
С помощью GetAttackerCreatures и GetDefenderCreatures (возвращают массив существ нападающего и защищающегося), а также с помощью IsHuman(ATTACKER) (возвращает true, если нападающий играет за человека).
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
Ment
С помощью GetAttackerCreatures и GetDefenderCreatures (возвращают массив существ нападающего и защищающегося), а также с помощью IsHuman(ATTACKER) (возвращает true, если нападающий играет за человека).
Если вызывать StartCombat, то всегда нападающий-человек?
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля
Аватар пользователя
Не надо вызывать StartCombat лучше. Такие штуковины нужны, если у Вас специфические условия победы в битве (например, у врага все существа призванные, надо именно призванных существ убить, так было в 6-5 оригинала как раз). Если условия победы стандартные (замочить всех, кроме призванных), это не нужно!
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
Ment
Не надо вызывать StartCombat лучше. Такие штуковины нужны, если у Вас специфические условия победы в битве (например, у врага все существа призванные, надо именно призванных существ убить, так было в 6-5 оригинала как раз). Если условия победы стандартные (замочить всех, кроме призванных), это не нужно!
А как еще повесить битву на триггер?
Мои карты:
Town
Готовится:Чума (40%), Сосиска(42%), Война Грааля
Аватар пользователя
А, я виноват, с другой функцией перепутал. Да, нападающий человек должен быть.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Олегарх
Олегарх
А как еще повесить битву на триггер?
1-й способ: 'StartCombatom'-ом (как уже предлагали)
2-й :Можно и по другому - сделать так чтоб скрипт срабатывал независимо от того, является ли игрок нападающим или обороняющимся. Триггеры здесь не нужны, делается путем добавления нескольких строк скрипта в файл 'combat-common.lua' - файл запускается игрой при старте любого боя.
PS: второй способ универсальнее для различных ситуаций боя. Можно так же сделать проверку на определенных героев.
В ответ пользователю Ment
Аватар пользователя
Ment
А, я виноват, с другой функцией перепутал. Да, нападающий человек должен быть.
Герой под управлением ИИ тоже может быть нападающим в СтартКомбате.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

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

К А
Стикеры GBF в Telegram
В ответ пользователю Олегарх
Аватар пользователя
Да
Олегарх
А как еще повесить битву на триггер?

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

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
Этот вопрос скорее следует читать так: "А как другим способом, без СтартКомбата повесить битву на триггер?" )
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Аватар пользователя
Есть триггер с идом COMBAT_RESULTS_TRIGGER, который отвечает за это (вызывает функцию после окончания каждой битвы).
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
В ответ пользователю Ment
Подскажите, пожалуйста! Хочу сделать так, чтобы герой заходил в палатку и мог купить разные параметры по разной цене. Однако, не понимаю, как сделать так, чтобы при выборе того, что нужно купить, проверялось количество золота, и если его недостаточно, то герой бы не мог совершить покупку. Вот как я начал писать скрипт:

function tradeF()
TalkBoxForPlayers(1, nil, nil, nil, nil, "snar", 0, "путь/имя.txt", "путь/имя.txt", 0, "путь/имя.txt", "путь/имя.txt", "путь/имя.txt.", "путь/имя.txt");
end;
Trigger(OBJECT_TOUCH_TRIGGER, "trade", "tradeF");

function snar(player_id, choice)

monet = GetPlayerResource(1, GOLD);

if choice == 1
then SetPlayerResource(1, GOLD, monet-2000);
ChangeHeroStat("имя героя", STAT_ATTACK, 1);
elseif choice == 2
then SetPlayerResource(1, GOLD, monet-3000);
ChangeHeroStat("имя героя", STAT_ATTACK, 2);
elseif choice == 3
then SetPlayerResource(1, GOLD, monet-2000);
ChangeHeroStat("имя героя", STAT_DEFENCE, 1);
elseif choice == 4
then SetPlayerResource(1, GOLD, monet-6000);
ChangeHeroStat("имя героя", STAT_DEFENCE, 2);
TeachHeroSpell("имя героя", 25);
end;
end;

Вот. trade - это название объекта, где идёт торговля.
Я пробовал написать if A and B then C - чтобы после and указать второе условие (нужное количество золота) для получения нужных параметров, но получилась полная ерунда.
Аватар пользователя
Нет, ну так и делается, только потом, в самом конце нужно ещё else добавить, который выводит сообщение о нехватке денег. А как ещё?
Либо сделать такой толкбокс, чтобы он не выводил варианты, на которые нет денег изначально.
 

К А
Стикеры GBF в Telegram
В ответ пользователю Ment
Ment
Нет, ну так и делается, только потом, в самом конце нужно ещё else добавить, который выводит сообщение о нехватке денег. А как ещё?
Либо сделать такой толкбокс, чтобы он не выводил варианты, на которые нет денег изначально.

Поробовал снова - всё действительно работает. Хм... видать, я не выспался) Спасибо!
Аватар пользователя
кто-нибудь знает, что за функция активируется, если при создании карты нажать на монстра и на цифру 9 на мини-клаве? (Именно карты, не ролика). У меня случился армагеддон.

Whatever

Статистика

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