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

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

Аватар пользователя
Вы тогда не с той стороны к задаче подходите. Боевые функции хорошо описаны в скриптовом руководстве Новика, если что.
- когда ходит единственный стек защищающегося, он кое-что делает.
Тут всё просто:
function DefenderUnitMove(unit)
-- например каст заклинания:
UnitCastGlobalSpell(unit, 'НАЗВАНИЕ_ЗАКЛИНАНИЯ');
return not nil
end
- когда умирает любой стек атакующего, появляются призраки на стороне защищающегося.
Возможно будут нюансы:
function AttackerUnitDeath(unit)
-- не проверял, возможно будет работать так:
local x, y = GetUnitPosition(unit);
AddCreature(сторона, тип, количество, x, y);
end
Эти функции нужно просто поместить в боевой скрипт, они автоматически вызовутся при соответствующем событии.
В ответ пользователю Jack_of_shadows
Ааа ненавижу систему что скрипты сохраняются только с закрытой картой. В итоге мой скрипт с замком стёрся. Его не смогу скинуть, но ещё раз поищу часть скрипта в карте единство стихий. Глупый редактор вылетает в самые неподходящие моменты:(
AstralLin а вы случаем не можете помочь с моим скриптом?
Аватар пользователя
Мои скрипты обычно работают, но они довольно громоздкие и специфические.

Добавлено через 2 минуты
Вряд ли... Я почти закончил карту... сделаю этот бой с личем и этот диалог с тремя вариантами ответа и карта почти готова. Ланшафт на 100% готов, эти функции - последние среди дополнительных квестов и останется только основной сюжет (функции).

Добавлено через 1 минуту
Скрипт с трансформацией и перестройкой сложный... по мне... я вот с этим вожусь столько времени...
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
С трансформацией есть наглядный пример в карте посол от редхевенхиро.
В ответ пользователю Годрикова впадина
Как же это сложно, написал около 200 строк скриптов от лёгких до средних, и тут надо написать такой скрипт. Борюсь с ним уже около 2 недель, безрезультатно. Думаю этот скрипт будет строк на 60. Пока хорошо получается только анимация святого слова.
Аватар пользователя
У меня примерно 420 строк сейчас. Но это еще не конец плюс комбат скрипт.

Добавлено через 2 минуты
А вообще скрипты увлекательная штука. Куда интереснее, чем делать ландшафт.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
Они конечно интересны, но сложны.
Думаю делать ролики ещё интересней.

Добавлено через 2 минуты
Думаю пока буду делать скрипты что бы на карте Существа били воздух. Тот скрипт на последний план вынесу, ибо скрипт либо самый сложный на моей карте или почти самый сложный.
Аватар пользователя
1.function SkullEndFinal(player, answer)
if answer == 1 then
Trigger(OBJECT_TOUCH_TRIGGER, "HutSkullQuest", "SkullPusty")
MessageBox (path.."endend.txt")
sleep(2)
RemoveArtefact(heroichik, 83)
SetPlayerResource(PLAYER_1, 6, GetPlayerResource(PLAYER_1, 6) + 60000)
SetPlayerResource(PLAYER_1, 2, GetPlayerResource(PLAYER_1, 2) + 50)
sleep(2)
SetObjectiveState("SkullQuest", OBJECTIVE_COMPLETED)
elseif answer == 2 then
Trigger(OBJECT_TOUCH_TRIGGER, "HutSkullQuest", "SkullPusty")
MessageBox (path.."endend.txt")
sleep(2)
RemoveArtefact(heroichik, 83)
ChangeHeroState(heroichik, 4, 5)
sleep(2)
SetObjectiveState("SkullQuest", OBJECTIVE_COMPLETED)
elseif answer == 3 then
Trigger(OBJECT_TOUCH_TRIGGER, "HutSkullQuest", "SkullPusty")
MessageBox (path.."endend.txt")
sleep(2)
RemoveArtefact(heroichik, 83)
AddHeroCreatures(heroichik, CREATURE_DEMILICH, 45)
sleep(2)
SetObjectiveState("SkullQuest", OBJECTIVE_COMPLETED)
end
end

При выборе вариантов 1 и 3 все работает как надо, а при 2 выдает ошибку.

Ошибку на ChangeHeroState(heroichik, 4, 5).

2.spells = {SPELL_MASS_WEAKNESS, SPELL_MASS_SLOW, SPELL_MASS_CURSE, SPELL_UNHOLY_WORD} как заставить применять случайное заклинание?
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
В ответ пользователю AstralLein
Пока что мне до твоих скриптов далеко:(

Добавлено через 31 секунду
Как ты научился такие сложные скрипты писать?
Аватар пользователя
При выборе вариантов 1 и 3 все работает как надо, а при 2 выдает ошибку.

Ошибку на ChangeHeroState(heroichik, 4, 5).
Нет такой функции, есть без "e" на конце.
spells = {SPELL_MASS_WEAKNESS, SPELL_MASS_SLOW, SPELL_MASS_CURSE, SPELL_UNHOLY_WORD} как заставить применять случайное заклинание?
В самом общем случае:
random_spell = spells[random(1, length(spells))];
Только если это в бою, там не реализована функция возвращающая случайное число (боевые и походные скрипты имеют разный набор функций). Нужно либо писать её самостоятельно, либо использовать например библиотеку lualib.lua от RedHeavenHero (ищите по форуму). Я использовал библиотеку.
Аватар пользователя
Вот, база. Что точно нужно дописать, чтобы работало?

diff = GetDifficulty() + 1

UnitCastGlobalSpell(unit, SPELL_MASS_SLOW);

function DefenderUnitMove(unit)
UnitCastGlobalSpell(unit, SPELL_UNHOLY_WORD);
SummonCreature(DEFENDER, CREATURE_MUMMY, 15 * diff)
return not nil
end

function AttackerUnitDeath(unit)
SummonCreature(DEFENDER, CREATURE_GHOST, 50 * diff)
end

Добавлено через 49 секунд
Чары колдует босс, который бывший йети.

Добавлено через 1 минуту
Случайная точка вызова меня устраивает.
Карты для героев 5

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
Нужно либо писать её самостоятельно, либо использовать например библиотеку lualib.lua от RedHeavenHero (ищите по форуму). Я использовал библиотеку.
К слову об этом. В карте Эхо Пустоты реализован лучший, чем в lualib, ГПСЧ, поэтому советую брать именно оттуда.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4

Статистика

Приветствуем новейшего участника: Вязов Анатолий Аркадьевич