Сообщения от Скрипты
Добрый вечер, пытался создать скрипт, который удалял бы героя, который взаимодействует с тюрьмой (то есть тюрьму активировал, героя получил, а тот, кто активировал тюрьму, должен удалиться). Но, к сожалению не получилось. Если такое сделать возможно, помогите пожалуйста.
function PrisonTouch(hero)
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", nil)
startThread(function(hero) pl=GetObjectOwner(hero); while not (length(GetPlayerHeroes(pl))>1) do sleep() end; RemoveObject(hero) end, hero)
end
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", "PrisonTouch")
Как вариант; функция запускает проверку, которая ждет, пока у игрока-владельца не станет больше одного героя (чтобы удаление не привело к поражению), затем удаляет героя.
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
Как вариант; функция запускает проверку, которая ждет, пока у игрока-владельца не станет больше одного героя (чтобы удаление не привело к поражению), затем удаляет героя.
Великолепно, спасибо.
Привет! В общем, написал функцию, сделал в ней уведомление через print, и чтобы глаза не мозолить об зелёный шрифт, решил его перекрасить. Поэтому, есть такой код:
function AllowHero( PLAYER, Hero )
print( "Героя ", Hero, " нет на карте. Функция по его добавлению на карту работает" )Т.е. в игре в консоли должен выдаваться желтый текст с оранжевым названием героя Hero, однако почему-то Hero у меня с вырвиглазным зелёным цветом. Как бы мне поправить этот косяк? И ещё, можно ли как-нибудь цвет шрифта консоли с зелёного на другой поменять? А то зелёный для меня очень неудобный.
Из точно доступных по "названиям" цветов — black, blue, neutral, negative, positive и так далее, как в MlTags. А если перед строкой добавлять \n, то весь принт будет белый
Поменять дефолтный цвет в консоли вообще — думаю, возможно через костыли, если, опять-таки, найти в файлах игры тэг цвета color_positive и внутри прописать другой цвет, например #FFFFFF (белый)...
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
попробуйте конкатенировать имя героя, а не указывать следующим
Не совсем понял что имеешь ввиду, буду признателен если покажешь на примере)
Добавлено через 2 минуты
Из точно доступных по "названиям" цветов — black, blue, neutral, negative, positive и так далее, как в MlTags. А если перед строкой добавлять \n, то весь принт будет белый
Поменять дефолтный цвет в консоли вообще — думаю, возможно через костыли, если, опять-таки, найти в файлах игры тэг цвета color_positive и внутри прописать другой цвет, например #FFFFFF (белый)...
По цветам: Вообще, впервые увидел такую фишку на карте "Завеса срывается" от RedHeavenHero, от чего сделал выводы что его карты не только сюжетом и ландшафтным дизайном интересны, а ещё и "закулисье" интересно подглядеть)
По цвету консоли: Хм, спасибо... Надо попробовать глянуть, но что-то мне кажется что это дело вшито где-то в ресурсах игры, до которых без вскрытия движка никак не добраться.
С тегами я сейчас потестирую xdb, если не получится — видимо, и правда, только exe
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С тегами я сейчас потестирую xdb, если не получится — видимо, и правда, только exe
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
function PrisonTouch(hero)
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", nil)
startThread(function(hero) pl=GetObjectOwner(hero); while not (length(GetPlayerHeroes(pl))>1) do sleep() end; RemoveObject(hero) end, hero)
end
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", "PrisonTouch")Попробовал я данный скрипт, к сожалению, герой не удаляется(
Просто ничего не происходит.
function PrisonTouch(hero)
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", nil)
startThread(function(hero) pl=GetObjectOwner(hero); while not (length(GetPlayerHeroes(pl))>1) do sleep() end; RemoveObject(hero) end, hero)
end
Trigger(OBJECT_TOUCH_TRIGGER, "Prison", "PrisonTouch")Попробовал я данный скрипт, к сожалению, герой не удаляется(
Просто ничего не происходит.
Да, консоль никаких проблем не показывает. Да, тюрьме дал имя Prison. А если брать консоль самого редактора героев, он не понимает, нафига нужен Length
Знает ли кто, как работает сохранение скриптовых данных при сохранении карты?К примеру я хочу хранить некоторые данные об игроке(собственные), чтобы они сохранялись при перезапуске карты.
Понятно, что mapscript.lua исполняется по загрузке карты. Есть ли возможность хранить данные глобально? Возможно GameVars?(В мануале тусклое их описание, не смог найти хорошего примера в чужих картах). P.S У MasteR в его замечательном сценарии Закат тьмы видел реализацию через прогресс задания, однако всё же хочется менее "обходной" путь.
Про закат тьмы не слышал, можно поподробнее?
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________