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

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



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




DrHax  Offline  Сообщение №271 написано: 25 июня 2011, 20:14



149
Special Combat не стоит,агрессия стоит на Very Aggressive не понимаю,что не так... unsure

Amat victoria curam
Artem13  Offline  Сообщение №272 написано: 26 июня 2011, 05:33 | Отредактировано: Artem13 - 26 июня 2011, 05:35


Mercenaries. Со смертью на ты.


ITU, такое ощущение, что он у тебя постоянно на игрока срабатывает. И еще настораживает окончание "due to crime" в описании функции. Моего аглицкого не хватает для достоверного перевода и я навскидку определяю, что фракция враждебна к ГГ по причине криминала с его стороны.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
ITU  Offline  Сообщение №273 написано: 26 июня 2011, 08:19



995
Artem13, не, я игроком отошел и заспавнил в зону триггера врагов
и тестовым сообщением проверил, выдает null

Цитата Artem13

due to crime


тоже как-то насторожила, но чет другой функции нужной не нашел

лан, попробую GetInFaction и сделать проверку только на PlayerFaction, это конечно не совсем то

KAIN48  Offline  Сообщение №274 написано: 26 июня 2011, 09:02


Шаманистый шаман


DrHax, Привет!
Не хотят по хорошему - будем по плохому! Удаляй у всех принадлежность к фракции, всё из AI пакетов.
Агрессивность ставь на Не агрессивный.
И на любого из врагов такой скрипт.
Code
scn AAAKainCombatScript

begin GameMode
if Getdistance Player < 90
AAAKain188MercARef.StartCombat Player
AAAKain188MercBRef.StartCombat Player
AAAKain188MercCRef.StartCombat Player
endif
end


Здесь третья строчка расстояние до игрока - меньше 90
Дальше список тех кто будет нападать на ГГ
Попробуй.
Пока.

Добавлено (26.06.2011, 13:02)
---------------------------------------------
ITU, Привет!
Пока

Цитата ITU

нужна функция определения враг ли непись ГГ или нет


А нельзя сделать проверку на предмет. Не знаю всех условий, но допустим так. Пришёл ГГ и если ничего плохого не сделал, у него этого предмета нет (в инвентаре, без сообщения, допустим квестовый, что бы не выбросил).
Как только совершил плохое дело. Этот предмет добавился. И тогда при входе в триггер будет проверяться наличие этого предмета и делаться соответствующие выводы. Фракция враждебна, или атака, или дверь не откроется.
Игрок даже и знать не будет, что эта "вилка, ложка" - в роли оценки поведения.
Я бы так сделал, что бы голову не ломать!
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Artem13  Offline  Сообщение №275 написано: 26 июня 2011, 09:19 | Отредактировано: Artem13 - 26 июня 2011, 09:22


Mercenaries. Со смертью на ты.


ITU, попробуй http://geck.bethsoft.com/index.php/GetActorCrimePlayerEnemy и GetPCEnemyOfFaction (она без описания, но по логике должна возвращать 1, если ГГ враждебен фракции. Фракция, вероятно, указывается в качестве параметра)
О, еще наше IsActorEvil.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
ITU  Offline  Сообщение №276 написано: 26 июня 2011, 09:19



995
Цитата KAIN48

А нельзя сделать проверку на предмет. Не знаю всех условий, но допустим так. Пришёл ГГ и если ничего плохого не сделал, у него этого предмета нет (в инвентаре, без сообщения, допустим квестовый, что бы не выбросил). Как только совершил плохое дело. Этот предмет добавился. И тогда при входе в триггер будет проверяться наличие этого предмета и делаться соответствующие выводы. Фракция враждебна, или атака, или дверь не откроется. Игрок даже и знать не будет, что эта "вилка, ложка" - в роли оценки поведения. Я бы так сделал, что бы голову не ломать! Пока.


не пойдет совсем, так я не знаю кто должен войти
это может любой нетральный, враг какой, друг ГГ или сам ГГ, вообщем все кто есть в игре или в модах
здесь не приход ГГ, тут приход в дом ГГ гостей :D
собственно если пришел враг, включается сирена, включаются защитные поля и прибегает охрана
если кто другой, то свободно проходит, перед ним автоматом отключаются защитные поля

DrHax  Offline  Сообщение №277 написано: 26 июня 2011, 09:44



149
KAIN48, сработало! good Как только я вошел в центр лагеря меня тут же атаковали .Спасибо!

Amat victoria curam
KAIN48  Offline  Сообщение №278 написано: 26 июня 2011, 09:47


Шаманистый шаман


ITU,
Цитата ITU

не пойдет совсем, так я не знаю кто должен войти


Интересно! Они у тебя в моде по своим законам живут. Сами ходят куда хотят! Сами становятся врагами и друзьями!
Круто!
Трудно наверное будет сделать по правильному. Фракций много. Даже если взять пример с бронёй любой фракции - там скрипты, замучаешься прокручивать до конца.
Наличие оружия в руках - то же не показатель. Хотя в принципе - подошёл ГГ к границе зоны охраны. Выпало сообщение " Убрать оружие"
У брал - проходи, гостем будешь. Не убрал - огонь турелей на поражение - поля закрыты.
А на время нахождения в локации запретить игроку доступ в инвентарь.
Так он кулаками драться будет!
Не знаю - единственный путь, это убивать ГГ при попытке нападения. И убивать сразу (поставить выкрученные турели, охрану, поселить сильных NPC или скриптом забирать здоровье).
Игрок один раз попробует задираться, его убьют. Думаю после загрузки сохранения будет вести себя прилично.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Artem13  Offline  Сообщение №279 написано: 26 июня 2011, 09:59


Mercenaries. Со смертью на ты.


ITU, ну и вот еще попробуй http://geck.bethsoft.com/index.php/GetFactionRelation

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
SERGANT-AK47  Offline  Сообщение №280 написано: 27 июня 2011, 02:47


boo


594
KAIN48,
Цитата KAIN48

DrHax, Привет!
Не хотят по хорошему - будем по плохому! Удаляй у всех принадлежность к фракции, всё из AI пакетов.
Агрессивность ставь на Не агрессивный.
И на любого из врагов такой скрипт.
Code
scn AAAKainCombatScript

begin GameMode
if Getdistance Player < 90
AAAKain188MercARef.StartCombat Player
AAAKain188MercBRef.StartCombat Player
AAAKain188MercCRef.StartCombat Player
endif
end

Здесь третья строчка расстояние до игрока - меньше 90
Дальше список тех кто будет нападать на ГГ
Попробуй.
Пока.


Мы с DrHax мод вместе делаем. Обьясняю почему не подходит:
т.к. как только зашел в триггер, враги уже сразу со стволами ищут тебя.
А надо что бы они просто врагами были (я ж даже им занятия придумал - один "на стреме", один сидит на стуле - типа шишак, один че-то чинит, а один спит.)
И смысл в том что бы убить врагов неожиданно (застать врасплох я б даже сказал), т.к. я им чрезмерно уж мощные пухи, много хп и высокие скиллы поставил. А если сделать меньше, то это будет как избиение младенцев (у всех же модов дофига и пистолеты мощные как антиматериалки :D )

KAIN48  Offline  Сообщение №281 написано: 27 июня 2011, 07:06


Шаманистый шаман


SERGANT-AK47, Привет!
А вы без триггера делайте. Скрипт повесьте на любого из врагов, или на всех.
if Getdistance Player < 90 - этой строчкой регулируйте расстояние, когда они обнаружат ГГ.
Конечно по правильному было бы сделать проверки на всё - невидимость, звук, способности ГГ, например если игрок крадётся - радиус обнаружения уменьшается.
Примером может быть Призрак с крыши поста Мохаве. Там сообщения в диалоге - зависят от уровня способностей игрока.
Помните - "Как тихо ты подошёл....." или "Я тебя услышала за километр..." (примерно такие).

Если вам нужно верните, или создайте новые AI пакеты.
Того который должен спать привяжите к кровати Linked Ref связью и дайте пакет SandBoxCurrentLocation
Тому который должен сидеть на стуле - то же самое.
Тому кто должен бродить только пакет SandBoxCurrentLocation - будет бродить по локации взаимодействуя с маркерами.
Иму же можно датать пакет Guard (охрана) или Patrol (патруль) и назначить маршрут патрулирования. Почитать о этом можно здесь -
Патруль
Можно в скрипт добавить проверку на убийство, кого то из врагов.
if AAAKain188MercARef.GetDead
Или когда NPC заметит ГГ
if GetDetected player
Или когда был атакован
if AAAKain188MercARef.GetAttacked
Можно использовать все или только нужные для каждого NPC.
Пробуйте по заменять проверки и подберите нужную.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
SERGANT-AK47  Offline  Сообщение №282 написано: 27 июня 2011, 14:00 | Отредактировано: SERGANT-AK47 - 27 июня 2011, 14:01


boo


594
KAIN48,
Сделал им одну template data.
Поставил флажки на Al data, Packages и Factions.
Они стали меня без скрипта атаковать, но и друг друга тоже!!
В Al data агрессивность переставил с очень агрессивных на просто агрессивных. НО(!) Теперь они друг друга атакуют, а меня нет!!!!
Что за лажа???

KAIN48  Offline  Сообщение №283 написано: 27 июня 2011, 15:41


Шаманистый шаман


SERGANT-AK47, Привет!
У меня только одно предположение, что они все из разных фракций. Не могут неписи из одной фракции атаковать друг друга.
Я сейчас примерно то же самое делаю. Организую постоянные атаки врагов на пост охраны.
Создал для нападающих фракцию враждебную ГГ.
В остальных настройках у них ничего нет, в пакетах AI то же - вот смотри.

И атакуют как положено, друг с другом не дерутся.
Первая группа атакует по команде AAAKain188MercA.StartCombat Player
Все последующие по различному таймеру для смерти каждого атакующего из первой группы. Возникают из "небытия" по команде
AAAKainXMarkerRef.PlaceAtMe AAAKain188MercA 1 5 0 на маркер в нужном - невидимом ГГ месте и оттуда идут в атаку.
Сейчас вот размышляю, как лучше остановить эти атаки.
Вариантов несколько
1 - после смерти определённого NPC из охраны
2 - после необходимого колличества
3 - сделать одну, но массированную (большими силами нападающих)
4 - сделать с повтором раз в день и тп.
Если мод не очень большой и тебе не трудно вышли через Народ. Я скачаю и посмотрю.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Wulf  Offline  Сообщение №284 написано: 27 июня 2011, 19:12



276
Возможно во фракции стоит флажок Special Combat. Он вроде позволяет неписям воевать между собой, состоя в одной фракции. Ещё можно посмотреть флаги Ignore Damaging в настройке комбат-стиля. Они отвечают за возможность применения гранат, ракетниц и т.д. по своим. Вернее за запрещение применения, если свой попадает в сферу взрыва. Кстати в игре вроде есть ограничение по дружественному огню. Через три попадания непись становится агрессивным к нападающему. Но это относится в отношениях ГГ и компаньона. Возможно и неписи внутри фракции подпадают под это дело.

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

Мне бы хоть ненадолго, в любое время, кроме 90-х. Чтобы конфета была с ладошку, чтобы, упав с велосипеда, коленку разбить, чтобы на первое свидание сходить...
SERGANT-AK47  Offline  Сообщение №285 написано: 4 июля 2011, 08:16


boo


594
Всем привет.
Я хочу сделать мод для ФО3 с созданием ствола на верстаке. Я понял что это делается через скрипты и что надо работать со скриптами у которых написано в начале ИД Schematics.
Объясните плиз или дайте ссылку на тутор, как сделать свой рецепт :)

Artem13  Offline  Сообщение №286 написано: 4 июля 2011, 10:19


Mercenaries. Со смертью на ты.


SERGANT-AK47, проще посмотреть скрипт из собственно Ф3. Там на самом деле всё просто. При активации верстака проверяется:
1. наличие рецепта
2. наличие ингредиентов
затем из инвентаря удаляются ингредиенты и добавляется собранный ствол. Здесь один недостаток по сравнению с НВ - количество рецептов определено на этапе создания и расширить их количество можно только изменением скрипта и сообщения.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
SERGANT-AK47  Offline  Сообщение №287 написано: 4 июля 2011, 11:26 | Отредактировано: SERGANT-AK47 - 4 июля 2011, 11:27


boo


594
Artem13,
Я понял что смотреть надо и делать по аналогии на основе скриптов с подписью вначале Schematics и названием ствола (SchematicsDartGunItemSCRIPT) и редактировать скрипт SchematicsWorkBenchScript.
Но как именно я не могу понять. Именно это я и прошу объяснить :)

Artem13  Offline  Сообщение №288 написано: 4 июля 2011, 12:09


Mercenaries. Со смертью на ты.


SERGANT-AK47, эээ, слегка не понял что значит "как именно". Собственно сборка идёт в одном скрипте - SchematicsWorkBenchScript. Остальные, емнип, просто добавляют рецепт в пип-бой. Ладно, вечером приду домой, попробую разжевать - сейчас нет под рукой скриптов.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
SERGANT-AK47  Offline  Сообщение №289 написано: 4 июля 2011, 12:16 | Отредактировано: SERGANT-AK47 - 4 июля 2011, 12:58


boo


594
Artem13,
Мне надо:
1)Рецепт для верстака
2)Заметка в пип-бое о рецепте
3)Схема (как я понял 2 и 3 это одно и тоже находится в Note и ИД с приставкой Schematics)
Э-ээ...
Вечер уже сейчас, а позже мне возможно надо будет уйти :(

Artem13  Offline  Сообщение №290 написано: 4 июля 2011, 13:50


Mercenaries. Со смертью на ты.


SERGANT-AK47, нет, 2 и 3 не одно и тоже. Одно и тоже - 1 и 2 :) В Ф3 нет рецептов как таковых. Поэтому порядок такой:
1. Продумываешь из чего что собирать.
2. Создаёшь заметки с рецептами/схемами
3. Создаёшь рецепты/схемы-активаторы. При их активации в пип-бой добавляется заметка из п. 2, а сами активаторы исчезают. (Это как раз и делают скрипты Schematics)
4. Пишешь скрипты для пункта 3.
5. Создаёшь сообщение с кнопками выбора схемы.
6. Пишешь скрипт для верстака, в котором в секции OnActivate вызывается Сообщение из п.5., а в GameMode анализ выбора игрока и собственно сборка.

Могу завтра-послезавтра нарисовать тебе тутор небольшой :)

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
SERGANT-AK47  Offline  Сообщение №291 написано: 4 июля 2011, 14:08


boo


594
Artem13,
Цитата Artem13

Могу завтра-послезавтра нарисовать тебе тутор небольшой


Хорошо, спасибо, а то я почти не че не понял :D
1 - продумал.
2 - сделал
3 - э-ээ. чего-чего о0
4 - скрипты не мое
5 - Это в message делается?
6 - аналогично 4

Artem13  Offline  Сообщение №292 написано: 7 июля 2011, 11:12


Mercenaries. Со смертью на ты.


Друзья, кому что обещал я помню, работа идёт, в скором времени раздам слонов :)

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Kraas  Offline  Сообщение №293 написано: 11 июля 2011, 15:55



114
Подскажите пожалуйста, если я хочу поставить всплывающие сообщения, появляющиеся, когда происходят различные события. Пример. ГГ натыкается на когтя смерти, появляется сообщение типа "во попал", ну как мысли вслух. Весь скрипт можно не писать, просто как он должен выглядеть. Спасибо.

"Ковальски, если ты не выживешь…, я могу забрать твой музыкальный центр?" Полковник Джек О'Нилл "Звездные врата"
Artem13  Offline  Сообщение №294 написано: 11 июля 2011, 16:11


Mercenaries. Со смертью на ты.


Kraas, боле-менее приемлемо с т.зр. совместимости - почти никак. Придётся вешать скрипт либо на игрока, либо на цель, что приведёт к несовместимости с к-л другим модом или даже патчем. В рамках стандартных возможностей. Как дела с этим в НВСЕ, я не в курсе - не использую.
Есть другой вариант - создать собственных монстров, хоть техже КС, но с твоими собтв. ID, и на них повешать скрипт.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Kraas  Offline  Сообщение №295 написано: 11 июля 2011, 16:23



114
Artem13, Не не канает. Я хотел изобразить реакцию ГГ более живо, что-ли. Ну мы же все время думаем, и обо всем. Вот и хотел этакий "поток сознания" бегущей строкой пустить. Жаль, что так нельзя, ну что ж. Мож кто-нить додумается. :D

"Ковальски, если ты не выживешь…, я могу забрать твой музыкальный центр?" Полковник Джек О'Нилл "Звездные врата"
Artem13  Offline  Сообщение №296 написано: 11 июля 2011, 16:29


Mercenaries. Со смертью на ты.


Не,я не утверждаю 100%, но в первом приближении такой возможности не нашёл.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
iDrug  Offline  Сообщение №297 написано: 17 июля 2011, 17:12



люди , кто из вас умеет скрипты прописывать???можно тутор скинуть??? или объяснить??? unsure
а то очень нужно ;)

Graf  Offline  Сообщение №298 написано: 17 июля 2011, 21:51



179
DrAgGoN, Напиши в личку что нужно.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
RustWays  Offline  Сообщение №299 написано: 30 июля 2011, 11:13



Помогите найти ошибку
Code
scn RIFFVertibirdCommunicationScript

begin onadd player
  set RIFFVertibirdAIQuest.hasVBRadio to 1
end

begin ondrop player
  ;if player.getitemcount J3XVertibirdCom < 1
  ;    set RIFFVertibirdAIQuest.hasVBRadio to 0
  ;endif
end

KAIN48  Offline  Сообщение №300 написано: 30 июля 2011, 14:11 | Отредактировано: KAIN48 - 30 июля 2011, 14:12


Шаманистый шаман


Riff, Привет!
Цитата Riff

set RIFFVertibirdAIQuest.hasVBRadio to 1


А вот это у тебя правильно написано
Судя по названиям вот эта часть RIFFVertibirdAIQuest квест, а вот эта часть hasVBRadio to 1 - я не знаю что такое.
Но set (установить) квест,
либо set (неизвестное) - оба никакак
Сам то скрипт простой.
При добавлении в инвентарь предмета (на котором скрип) должно что то произойти, а вот что непонятно.
Напиши просто словами, что должно произойти и при каких условиях, если они есть дополнительные условия.
И если не секрет, что это hasVBRadio to 1. Has - похоже на начало функции, а VBRadio - на ID радиостанции.
Напиши, что нужно и попробуем сделать.
Пока.

Мы вышли из дома, когда во всех... Поздно вышли!
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск:





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