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

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

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

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

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

"Плата за любовь"
"Путь некроманта"
"Темные грани"
"Рок Гримхейма"
Аватар пользователя
#2661
Для меня эта карта - мануал:D по ней и учился первое время:)

Трансформация это легко. Одна команда в скрипте. Дело во всем остальном.
Карты для героев 5

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

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

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

Добавлено через 2 минуты
Думаю пока буду делать скрипты что бы на карте Существа били воздух. Тот скрипт на последний план вынесу, ибо скрипт либо самый сложный на моей карте или почти самый сложный.
Аватар пользователя
#2666
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
#2667
Пока что мне до твоих скриптов далеко:(

Добавлено через 31 секунду
Как ты научился такие сложные скрипты писать?
Аватар пользователя
#2669
При выборе вариантов 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 (ищите по форуму). Я использовал библиотеку.
Аватар пользователя
#2671
Вот, база. Что точно нужно дописать, чтобы работало?

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

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

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