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

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

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

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

Добавлено через 1 минуту
Скрипт с трансформацией и перестройкой сложный... по мне... я вот с этим вожусь столько времени...
В ответ пользователю AstralLein
8 лет назад
С трансформацией есть наглядный пример в карте посол от редхевенхиро.
Аватар пользователя
8 лет назад
Для меня эта карта - мануал:D по ней и учился первое время:)

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

Добавлено через 2 минуты
А вообще скрипты увлекательная штука. Куда интереснее, чем делать ландшафт.
В ответ пользователю AstralLein
8 лет назад
Они конечно интересны, но сложны.
Думаю делать ролики ещё интересней.

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

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

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 минуту
Случайная точка вызова меня устраивает.
Аватар пользователя
8 лет назад
Нужно либо писать её самостоятельно, либо использовать например библиотеку lualib.lua от RedHeavenHero (ищите по форуму). Я использовал библиотеку.
К слову об этом. В карте Эхо Пустоты реализован лучший, чем в lualib, ГПСЧ, поэтому советую брать именно оттуда.

Статистика

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

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