Есть ли возможность выполнять определенный скрипт при первом заходе на локацию? Для примера захожу я в мегатонну, выполняется скрипт единожды. Захожу в дом к шерифу выполняется тот же скрипт. При последующем заходе на ту же локацию скрипт не выполняется. Есть такая возможность? Желательно без необходимости выписывать названия всех локаций.
КсюXa, а вся задумка вроде как ясна. Я не хочу вручную вписывать локации, так как их несколько сотен. Вариант который я вижу - массив, при входе на локацию скрипт проверяет есть ли имя локации в массиве, если нет, выполняется некая функция и вносится название в массив. Умеет так geck?
Изменение репутации для пользователя Darwinian
DarwinianOffline
Сообщение №33
| Тема: Помощь по G.E.C.K.
написано: 3 декабря 2014, 16:10
| Отредактировано: Darwinian - 3 декабря 2014, 16:11
Ipatow, в принципе понятно. Да имел ввиду я интерьеры по большей части. Думаю работать только с интерьерами будет проще. Что то я только сейчас подумал что возможно я изобретаю велосипед. Конечная идея в том, что бы убрать из игры некоторые кол-во контейнеров с боеприпасами (ну или с чем угодно). Удалить допустим 30% от всего что есть в игре. Таким образом халявы будет меньше и это может привнести некоторую реиграбельность, так как каждая новая игра несет в себе новый лут.
Я пришел к выводу что нужно при первом заходе на локацию инициировать скрипт, который будет убирать эти 30% ящиков.
BigBadBoss, их же очень много. К тому же я не очень то люблю редактор карт, до сих пор не освоил там управление. К тому же при новом прохождении хотелось бы чтоб все стояло на новых местах.
Не совсем так, я хотел для каждого стандартного оружия прописать отдельные конкретные требования. И за неимением идеи лучше, решил сделать это "по грязному", просто начал перечислять все пушки по виду:
Код
if player.GetEquipped WeapPlasmaPistol == 1 if player.getav EnergyWeapons < 75 player.UnEquipItem WeapPlasmaPistol 0 1 showmessage TweakoutNotEnoughSkills elseif player.getav Strength < 2 player.UnEquipItem WeapPlasmaPistol 0 1 showmessage TweakoutNotEnoughStrength endif set VanillaWeapon to 1 endif
Но вот незадача, оказалось что форма скрипта имеет ограничение по кол-ву символов. Есть идеи как это всю жуть сжать и оптимизировать? Я имею ввиду не конкретно эту часть скрипта, а идею в целом. Вот скрипт целиком http://pastebin.com/5Z67FHVb
Ipatow, да, я думал про это. С силой проблем нет, там диапазон от 2 до 10 максимум, а вот со скиллами? Там разброс очень большой, да еще и где-то взрывчатка, где то без оружия, рукопашное и т.д. Можно конечно разделить на SmallGuns 25 SmallGuns 50 SmallGuns 75 SmallGuns 100 и так же с остальными, но это довольно скучно. И я пытался уйти от таких железобетонных значений (25*n)
Решил использовать несколько совмещенный вариант. Проверка силы через форм листы и проверка скилла через скрипт. Уместилось все.
Есть другой вопрос. Хотел добавить зависимость от простой ядер колы, без отрицательных эффектов, просто как атмосферную фишечку. Но проблема возникла с imp's more complex needs. Там переделаны все химикаты, еда и прочее. Так вот, как можно добавить зависимость, не используя отдельный esp патч совместимости? Подумал что получится вручную запихнуть ее в скрипт NukaColaAddCapEffectScript, который в оригинале дает одну крышечку после использования колы. Но по какой то причине автор imcn решил вообще не использовать этот скрипт.
Добавлено (08 Февраля 2015, 11:48) --------------------------------------------- Поясните мне работу SetScript, пробую два варианта, вроде как по инструкции, не работают
Код
if ContREF.IsScripted == 0 set Distance to player.GetDistance ContREF if Distance <= 400 set OldScript to ContREF.SetScript TweakoutMeleeLockpickScr ;другой вариант SetScript TweakoutMeleeLockpickScr, ContREF endif endif
Добавлено (08 Февраля 2015, 14:11) --------------------------------------------- Разобрался что скрипт нужно сперва привязать к любому объекту, а потом уже объект указывать в виде источника скрипта. Но все равно в игре скрипт не прикрепляется к цели.