Модератор форума: КсюXa, ApeX  
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)

Скрипты
a3apbi4  Offline  Сообщение №1 написано: 7 декабря 2010, 18:01



11
Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.




rizys-mod  Offline  Сообщение №901 написано: 22 января 2013, 13:23


Команда "Rizys-Mod"


250
ITU, дело в том что я делал так, если число четное тогда такой конец, если не четное тогда другой конец, и так же с повышением или понижением стадии. Они могли так же сделать. Просто нет возможности посмотреть.

Команда "Rizys-mod" - разработка плагинов на Fallout.
ITU  Offline  Сообщение №902 написано: 24 января 2013, 14:14 | Отредактировано: ITU - 23 января 2013, 12:09



995
rizys-mod, лан, спасибо что откликнулся... сделал условие по завершению квестов разных сторон...

так, а еще вопрос, как будет лучше сделать отдельную переменную по каждому квесту

или постоянная проверка на условия их завершения?


квестов много, все из оригинальной игры

Добавлено (24.01.2013, 18:14)
---------------------------------------------
и еще вопросик, компаньоны все бессмертные не в хард игре
как их сделать смертными?
попробовал что-то вроде такого

что-то не очень помогает ((

rizys-mod  Offline  Сообщение №903 написано: 24 января 2013, 14:34


Команда "Rizys-Mod"


250
ITU, на счет бесмертия есть функция SetEssential. Вот пример - SetEssential MyFavoriteNPC 1. 1 - бесмертие, 0 - откл.

Команда "Rizys-mod" - разработка плагинов на Fallout.
ITU  Offline  Сообщение №904 написано: 24 января 2013, 14:37 | Отредактировано: ITU - 24 января 2013, 14:39



995
rizys-mod, там бесмертие не этим включено...
щас попробую добавить
RemovePerk CompanionSuite
RemoveFromFaction FollowerFaction

SetEssential ID 0 у меня вообще в блоке gamemode стоит =))

Rexdawn  Offline  Сообщение №905 написано: 11 февраля 2013, 10:40 | Отредактировано: Rexdawn - 11 февраля 2013, 10:56



2
Может кто объяснить как добавлять скриптами вещи, перки и тд. с модов?, прописываю ID потом кол-во но вылазит ошибка и скрипт не сохранятся, проверял, стандартные игровые шмотки спокойно появляются..

Graf  Offline  Сообщение №906 написано: 11 февраля 2013, 11:16



179
Rexdawn, ну в гекк наведи на нужный объект мышь и перепиши ID который высветится. Его и вводи.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
valambar  Offline  Сообщение №907 написано: 11 февраля 2013, 11:27



513
Цитата Rexdawn

Может кто объяснить как добавлять скриптами вещи, перки и тд. с модов?, прописываю ID потом кол-во но вылазит ошибка и скрипт не сохранятся, проверял, стандартные игровые шмотки спокойно появляются..


В Обливионе меня часто спасало введение ID в кавычках. Это работало, если ID начиналось с цифры, например. В фоллаутах у меня все спокойно вводится, скрипты сохраняются, проблемы не было. Правда, я с цифр ничего не называю.

Rexdawn  Offline  Сообщение №908 написано: 11 февраля 2013, 11:38



2
Graf, всё спасибо разобрался, вводил до этого Editor и Form ID, а нужно было Base, кстати где их можно посмотреть кроме как через консоль?

Xospis  Offline  Сообщение №909 написано: 12 февраля 2013, 14:09



171
Just_Evil, На маркер куда телепортируешся обязательно должна стоять галочка "Постоянная ссылка" иначе не будет работать

Galko  Offline  Сообщение №910 написано: 12 февраля 2013, 14:53


GALAктическая мартышка


Vita$, вообще-то, на маркерах по-умолчанию уже стоит такая галочка ;)

Ваше счастье, что я не ваше счастье
CraVeg  Offline  Сообщение №911 написано: 19 февраля 2013, 08:06 | Отредактировано: CraVeg - 19 февраля 2013, 16:58


BK201


275
Имею несколько вопросов:
1) Есть функция AddFormToFormList, которая добавляет предмет в форм-лист.
Используется вот так: AddFormToFormList AmmoList762x39 RSAmmo76239AP.
Есть ли аналогичная функция, но для удаления?
Гуглил, нашёл только: ListRemoveForm.
Использовал так: ListRemoveForm AmmoListRS76239 RSAmmo76239V.
Но после этого произошли - весёлые артефакты. Оружие, использующее такой форм-лист боеприпасов, позволило в пип-бое выбрать для себя любой из имеющихся боеприпасов и даже стреляло этим боеприпасом.
2) Есть ли функция добавления элементов одного форм-листа в другой?
3) Есть ли аналог функции AddItemToLeveledList, но для удаления?
Хочу удалить предмет из списка торговца, который был добавлен туда другим скриптом. Скрипт-то можно поменять, но я хочу предусмотреть возможность установки поверх уже прогнанного скрипта.

--------------------------------------------------------------------------------(добавил в 17.47)--------------------------
В общем пока я накатал вот такого жуткого Франкенштейна:

Код
scn QuestAddFLScript

int calibrIdx      
ref refForm

begin gamemode
      if (AddFL == 0)
          Set AddFL to 1      
          ;----------------------Add_ClaiberX_to_EarJR_(762x39)----------------------
          set calibrIdx to 0
          set refForm to ListGetNthForm AmmoList762x39 0
          ListReplaceForm AmmoListRS76239 refForm RSAmmo76239V
          set calibrIdx to calibrIdx+1
          Label 1
          if (((ListGetCount AmmoList762x39) - calibrIdx) >= 0)
              set refForm to ListGetNthForm AmmoList762x39 calibrIdx
              ListAddForm AmmoListRS76239 refForm
              set calibrIdx to calibrIdx+1
              GoTo 1
          endif   
          ;----------------------Add_EarJR_to_ClaiberX_(762x39)----------------------
          ListAddForm AmmoList762x39 RSAmmo76239AP
          ListAddForm AmmoList762x39 RSAmmo76239T
          ;--------------------------------------------------------------------------
            
          ;----------------------Add_ClaiberX_to_EarJR_(762x54)----------------------
          set calibrIdx to 0
          set refForm to ListGetNthForm AmmoList762R 0
          ListReplaceForm AmmoListRS76254 refForm RSAmmo762x54R
          set calibrIdx to calibrIdx+1
          Label 2
          if (((ListGetCount AmmoList762R) - calibrIdx) >= 0)
              set refForm to ListGetNthForm AmmoList762R calibrIdx
              ListAddForm AmmoListRS76254 refForm      
              set calibrIdx to calibrIdx+1
              GoTo 2
          endif   
          ;----------------------Add_EarJR_to_ClaiberX_(762x54)----------------------
          ListAddForm AmmoList762R RSAmmo762x54RAP
          ListAddForm AmmoList762R RSAmmo762x54RT
          ;--------------------------------------------------------------------------

          ;----------------------Add_ClaiberX_to_EarJR_(416Bar)----------------------
          set calibrIdx to 0
          set refForm to ListGetNthForm AmmoList416Barrett 0
          ListReplaceForm AmmoListRS416Barret refForm RSAmmo416Barret
          set calibrIdx to calibrIdx+1
          Label 3
          if (((ListGetCount AmmoList416Barrett) - calibrIdx) >= 0)
              set refForm to ListGetNthForm AmmoList416Barrett calibrIdx
              ListAddForm AmmoListRS416Barret refForm      
              set calibrIdx to calibrIdx+1
              GoTo 3
          endif   
          ;----------------------Add_EarJR_to_ClaiberX_(416Bar)----------------------
          ListAddForm AmmoList416Barrett RSAmmo416BarretArmorPiercing
          ;--------------------------------------------------------------------------

          ;----------------------Add_ClaiberX_to_EarJR_(Ammo9x39)--------------------
          set calibrIdx to 0
          set refForm to ListGetNthForm AmmoList9x39 0
          ListReplaceForm AmmoListRS939 refForm RSAmmoSp5
          set calibrIdx to calibrIdx+1
          set refForm to ListGetNthForm AmmoList9x39 1
          ListReplaceForm AmmoListRS939 refForm RSAmmoSp6
          set calibrIdx to calibrIdx+1
          Label 4
          if (((ListGetCount AmmoList9x39) - calibrIdx) >= 0)
              set refForm to ListGetNthForm AmmoList9x39 calibrIdx
              ListAddForm AmmoListRS939 refForm
              set calibrIdx to calibrIdx+1
              GoTo 4
          endif   
          ;----------------------Add_EarJR_to_ClaiberX_(Ammo9x39)--------------------

          ;--------------------------------------------------------------------------

      endif
      Stopquest QuestAddFLQuest
end


Жаль, что никто не посоветовал ничего.

(1.11.12) Все мы будем счастливы! Когда-нибудь...
(26.08.13) Вот и моя очередь наступила. ;)
(19.11.13) А нет... Опять граблями по лбу...
Graf  Offline  Сообщение №912 написано: 19 февраля 2013, 21:06



179
CraVeg, я вот думаю, можно же делать по кондициям, если 1 работает, else нечего не писать. Ну так делали в мотоциклах. Дабы переключать вид от 3 лица.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
CraVeg  Offline  Сообщение №913 написано: 19 февраля 2013, 21:39


BK201


275
Цитата Graf

CraVeg, я вот думаю, можно же делать по кондициям, если 1 работает, else нечего не писать. Ну так делали в мотоциклах. Дабы переключать вид от 3 лица.

Не понял сути. Ты о чём?

(1.11.12) Все мы будем счастливы! Когда-нибудь...
(26.08.13) Вот и моя очередь наступила. ;)
(19.11.13) А нет... Опять граблями по лбу...
Graf  Offline  Сообщение №914 написано: 19 февраля 2013, 22:07



179
CraVeg, да решил посоветовать, раз не нравится, ок.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
CraVeg  Offline  Сообщение №915 написано: 19 февраля 2013, 22:24


BK201


275
Цитата Graf

CraVeg, да решил посоветовать, раз не нравится, ок.

Не. Я не понял, что ты имел в виду.

(1.11.12) Все мы будем счастливы! Когда-нибудь...
(26.08.13) Вот и моя очередь наступила. ;)
(19.11.13) А нет... Опять граблями по лбу...
Graf  Offline  Сообщение №916 написано: 19 февраля 2013, 23:48



179
Цитата CraVeg

1) Есть функция AddFormToFormList, которая добавляет предмет в форм-лист. Используется вот так: AddFormToFormList AmmoList762x39 RSAmmo76239AP.

Я имел ввиду как сделать анагол.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
CraVeg  Offline  Сообщение №917 написано: 20 февраля 2013, 06:25 | Отредактировано: CraVeg - 20 февраля 2013, 17:46


BK201


275
Цитата Graf

Я имел ввиду как сделать анагол.

В смысле проверять, если уже есть объект в форм листе, то не добавлять? Или что?
Я  может жутко туплю, но пиши как-то более подробно. "А то моя твоя плохо мысль ловить." :)

И ещё. Может я криворукий ил как-то так, но если из форм-листа удалить что-то, а не реплейснуть, то артефакт с патронами (описан выше) проявляется 100%.
Так что вместо удаления приходится реплейсить на уже имеющийся в листе объект.

(1.11.12) Все мы будем счастливы! Когда-нибудь...
(26.08.13) Вот и моя очередь наступила. ;)
(19.11.13) А нет... Опять граблями по лбу...
Xospis  Offline  Сообщение №918 написано: 22 февраля 2013, 10:26



171
Ребят помогите написать скрипт, что бы после выстрела в НПС он падал и лежал без сознания некоторое время допустим секунд 30

Graf  Offline  Сообщение №919 написано: 27 февраля 2013, 16:31



179
Цитата Vita$

Ребят помогите написать скрипт, что бы после выстрела в НПС он падал и лежал без сознания некоторое время допустим секунд 30

Эсть же эффект парализирующей ладони, создай из этого перка объективный эффект и прикрепи к оружию, тут не нужны скрипты.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Бун  Offline  Сообщение №920 написано: 28 февраля 2013, 13:03


Лагогенератор


757
Народ, мне нужен скрипт наподобие:
"Если использовать предмет Х, то с вероятностью 3% игроку будет выдан предмет Y и удален предмет X, в противном случае произойдет только удаление того самого предмета X".
Что-то наподобие лотерейного билета. Если подскажете, награжу репутацией и наградой. Попробовал расковырять скрипт "Сансет саспариллы", но не получил желаемого результата.

.7
Graf  Offline  Сообщение №921 написано: 28 февраля 2013, 13:52



179
Бун, сансет спарилла это то что тебе нужно, так как функция рандома:

short rnd
set rnd to 5.0/99 * Getrandompercent


Только 1 шанс на 5 (взято с OSFM).

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
farnak  Offline  Сообщение №922 написано: 28 февраля 2013, 20:51



22
http://fose.silverlock.org/fose_command_doc.html
Что означает запись в скобках у данного значения параметра type code?
200: Actor (for ref walking only)

Graf  Offline  Сообщение №923 написано: 1 марта 2013, 08:29



179
farnak, только если нпц будет идти.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
El_Barrent  Offline  Сообщение №924 написано: 16 марта 2013, 23:31 | Отредактировано: El_Barrent - 12 марта 2013, 10:12



45
Есть ли аналог CastImmediateOnSelf, который сам воспроизводит соответствующий звук ingestible?

Добавлено (17.03.2013, 03:31)
---------------------------------------------
При использовании функций forceAV health и damageAV health временами хп перестает подниматься выше определенного уровня. Лечится ресурректом. Можно как-то обойти?


ITU  Offline  Сообщение №925 написано: 1 апреля 2013, 15:38



995
Цитата ValLео

set DoOnce to 0


Возможно у разработчиков была задумка использовать это где-то еще, а потом забыли.
Многие оригинальные скрипты наполнены не нужным

выход только делая отдельное подменю для каждого спешиала...

Wulf  Offline  Сообщение №926 написано: 1 апреля 2013, 15:55



276
Цитата ValLео

set DoOnce to 0


Ну вполне возможно сия переменная ещё откель устанавливается. Затем проверяется и ещё чего делается. :)

За сим прощаюсь, Олег.

Мне бы хоть ненадолго, в любое время, кроме 90-х. Чтобы конфета была с ладошку, чтобы, упав с велосипеда, коленку разбить, чтобы на первое свидание сходить...
Spalny_Vagon  Offline  Сообщение №927 написано: 1 апреля 2013, 16:48


Мастер


Цитата ValLео

Допустим у меня на данный момент игры у ГГ параметры СПЕШИАЛ ровно по девять очков. Значит мне будет предложено перераспределить 63 очка. Но ведь максимальное количество очков СПЕШИАЛ - это всего 10. А у меня уже по 9. То есть - я смогу добавить в каждый параметр по одному очку и у меня останется не распределенными еще 56 очков. И поскольку останутся нераспределенные очки - книжка не закроется и я не смогу выйти в игровой режим. Верно или нет?

Если у Вас имеется 63 очка, то именно их Вам и удастся ПЕРЕРАСПРЕДЕЛИТЬ. Т.е., если где-то сделать 10, то где-то придется ставить 8, лишних быть не должно. Вроде так.

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
JupiterJour  Offline  Сообщение №928 написано: 1 апреля 2013, 18:01 | Отредактировано: Joopeeter - 1 апреля 2013, 18:13


_


Цитата ValLео

Это если у меня все параметры СПЕШИАЛ по нулям. Тогда я распределю. Но ведь у меня параметры уже по 9 очков. Куда я смогу раскидать эти 63?


63 - это будет всего. То есть, например, 7 по 9, или 6 по 10 и последний 3. В Фоллаут 3 в том единственном месте, где используется эта функция, стоит 40 очков (по 5 базовых, которые у игрока в самом-самом начале и 5 на распределение). Сейчас вызвал в третьем Фоллауте с консоли - всё пучком, базовые - те, что имеются на данный момент, на распределение остаётся разность между суммой имеющихся и числом, указанным в качестве параметра функции. Всё работало, не вылетало.

JupiterJour  Offline  Сообщение №929 написано: 1 апреля 2013, 18:47 | Отредактировано: Joopeeter - 1 апреля 2013, 19:11


_


Цитата ValLео

Это Вы заменили "MenuMode 1001" на "GameMode"?


Нет, это я просто зашёл в игру и тупо ввёл с консоли ssbmp 63. Про менюмоды-гейммоды - это всего лишь предположение, просто странно этот MenuMode 1001 выглядит в таком контексте.

Ха! Вылетает при попытке указать после ssbmp число меньшее, чем сумма уже имеющихся очков. Не были ли какие-то параметры SPECIAL временно изменены в момент вызова функции (радиация, бодун, страхолюдный шлем Анклава)?

Если подтвердится, то вместо GetActorValue следует использовать GetBaseActorValue. Да и в любом случае лучше, по-моему.

JupiterJour  Offline  Сообщение №930 написано: 1 апреля 2013, 19:43 | Отредактировано: Joopeeter - 1 апреля 2013, 19:49


_


Цитата ValLео

бонусная броня, дающае +1 к силе


Ага, значит игре не нравится не только когда меньше, но и любое несоответствие базового значения и фактического. Впрочем, оно и понятно: книжка-то показывается младенцу, который ещё без каких-либо эффектов на нём. Тогда, боюсь, и GetBaseAV может не помочь.

Кстати, после получения суммы базовых значений можно сбросить все SPECIAL до единицы и показать не книжку, а меню AddSPECIALPoints, где указать количество распределяемых очков [сумма - 7].

Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск:





Ответ на жалобу смотрите в разделе жалоб