Вверх Вниз


Модератор форума: Ipatow, КсюXa, ApeX  
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Скрипты
a3apbi4  Offline Сообщение №1 написано: 07 Декабря 2010 в 21:01


Странник


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




Quazar  Offline Сообщение №1381 написано: 09 Февраля 2015 в 07:11



446
У меня возник вопрос по скриптам: есть ли смысл объявлять переменную в самом скрипте? Т.е не в начале, как обычно, а в каком-либо блоке (в GameMode например).. 

Заметил такое в некоторых стандартных скриптах разработчиков, например в скриптовом эффекте касадора. Просто смысл этого непонятен..

Multigone  Offline Сообщение №1382 написано: 09 Февраля 2015 в 07:34 | Отредактировано: Multigone - Понедельник, 09 Февраля 2015, 07:37



663
Quazar, переменная в теле скрипта существует (и хранит свое значение) в течение всего времени его работы. Переменная в теле события существует в течение работы события. Со скриптами Fallout не знаком, однако, поскольку он и Skyrim используют один движок, думаю, общие принципы скриптов аналогичны.

Следовательно, разница только в занимаемом объеме памяти. Если событием является обновление с малым периодом, то разницы вообще не будет заметно в этом случае.

Enclave92  Offline Сообщение №1383 написано: 19 Февраля 2015 в 20:26



252
Я столкнулся с непростой скриптовой задачкой.
Ситуация следующая: После заключения союза между НКР и Братством НПС принадлежащие к фракции
NCRSnifferFaction и со скриптом sniffer продолжают нападать на игрока в
фракционной броне Братства.
Кто знает как исправить?

War. War never changes...
Xilandro  Offline Сообщение №1384 написано: 25 Февраля 2015 в 18:10 | Отредактировано: Xilandro - Среда, 25 Февраля 2015, 18:23



33
Цитата
Цитата q2werty
Может сможет кто-нибудь подсказать: как в скриптом изменить прическу ГГ или НПС?

Player.SetHair Hair:EditorID
Дальше нужно обновить 3Д данные игрока. Попробуй одеть и снять шапку. Если не прокнет - sexchange два раза подряд.

Цитата
Цитата Вис
Всем привет! Для того чтобы узнать какой предмет находится на слоте быстрой
панели, есть команда GetHotkeyItem. А есть ли команда для установки
предмета на слот быстрой панели?
чтобы узнать
ref SomeRef
Set SomeRef to GetHotkeyItem hotkey:int
чтобы установить
SetHotkeyItem HotKey:int Item:ref

Цитата
Цитата rusik
В пипбое правым кликом ставится маркер на глобальной карте.Вопрос
заключается в том,как заставить НПС напарника ,двигаться к этому маркеру
на тактической карте-местности.Телепорт не интересует,так же как и
система заранее установленных на местности маячков-маркеров тоже.


Сначала переведи маркер на карте в координаты. Дальше выставь маячок по полученным координатам (1 маячок нужен 100%, нравится тебе это или нет). Ну а дальше напарнику включаешь пакет патруля с целью на свой маркер, и команда EVP чтобы данные о цели обновились и напарник потопал куда тебе надо. Когда дойдет до цели - удаляй пакет.

По поводу предотвращения смерти игрока. SetEssential сделает дело. Хоть фатманом бомби, игрок никогда не умрет. Там есть свои баги конечно, но при терпении они легко обходятся.


Evaluate, adapt, destroy
КсюXa  Offline Сообщение №1385 написано: 25 Февраля 2015 в 19:13 | Отредактировано: КсюXa - Среда, 25 Февраля 2015, 19:14


Гид по Мастерской


1142
Цитата Xilandro ()
Player.SetHair...
...GetHotkeyItem

Только забыл добавить, что это функции из расширителя скриптов. Не все хотят юзать NVSE. ;)

Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
Quazar  Offline Сообщение №1386 написано: 26 Февраля 2015 в 08:53



446
Xilandro, подорвал вопросы столетней давности..)

Цитата Xilandro ()
SetHotkeyItem HotKey:int Item:ref
Когда задавался этот вопрос, этой функции еще не существовало в экстендере (она добавилась с версией 4.5.6.)..

Xilandro  Offline Сообщение №1387 написано: 26 Февраля 2015 в 18:41



33
Цитата КсюXa ()
Только забыл добавить, что это функции из расширителя скриптов. Не все хотят юзать NVSE.
Да, знаю, видел таких людей. Странные типы. Пускай в ванильку играют, без нормальных модов, их право. NVSE сделан для того чтобы расширять скриптовые возможности игры, а в последнее время - еще и делает игру стабильной (особенно в связке с New Vegas Anti Crash плагином, вообще сказка).

Цитата Quazar ()
подорвал вопросы столетней давности..)
Август 2014го. Это не так уж и давно =)


Evaluate, adapt, destroy
Quazar  Offline Сообщение №1388 написано: 27 Февраля 2015 в 00:29 | Отредактировано: Quazar - Пятница, 27 Февраля 2015, 05:18



446
Цитата Xilandro ()
Август 2014го. Это не так уж и давно =)
Ну да, а вопрос о прическе вообще с марта весит, всего год прошел, тоже не так давно..)

Цитата Xilandro ()
Странные типы. Пускай в ванильку играют, без нормальных модов, их право.
Ты не понял видно. Не у всех игра хочет "играть с NVSE", не в желании дело..

Xilandro  Offline Сообщение №1389 написано: 27 Февраля 2015 в 09:26



33
Цитата Quazar ()
Ты не понял видно. Не у всех игра хочет "играть с NVSE", не в желании дело..

Аа. Я подумал вы про тех ребят которые бьются пяткой в грудь что NVSE - зло, должен гореть, и все моды работать без него. Скрипт-Инквизиция прям.
А так нормально всё работает. Если человек пытается запустить NVSE на кривом торрент-эдишн Фоле - вполне вероятно могут быть проблемы. Но как показывает опыт - чаще всего виноват сам человек, и даже на лицензии не могут запустить экстендер (то в папку дата его всунут, то напрямую фол запускают, то через ланчер). Единственная проблема которая есть у некоторых людей, и игра не играется - запуск NVSE с 4gb enable'ом. И только в СНГшной версии игры. Виноват Steam. Исправляется молитвами к Тору, установкой енаблера версии 1.2.0.3 и прописыванием в ярлыке следующего ключа: -SteamAppID 22380

Код
"C:\Steam\SteamApps\common\Fallout New Vegas enplczru\fnv4gb.exe" -SteamAppID 22380

И начинает работать. И опять таки, было бы желание - решение найдется.

Цитата Quazar ()
вопрос о прическе вообще с марта весит

Блин, там разница в одну страницу или две =)
Всё равно не вижу проблемы в том что я ответил на некоторые старые вопросы, на которые вообще не было ответа. Представь сидит новый скриптер, хочет сделать крутой мод чтобы менять прическу игроку по нажатию на кнопку, без интерфейса создания персонажа. Юзает он такой Плейер.СетХейр НьюХейр - а оно не работает на игроке. Вычитал он мол надо Update3D юзнуть, и юзает. На игроке. Хлоп, игра крашится. Он расстроен, ищет инфу что же делать. Находит вопрос на МГ в разделе скриптов. А ответа на него нет. И бросает наш юный падаван свою идею о прическе по требованию, и идет делать очередной дом в скайриме. Фол разочаровал, вайфу без причесок. Fin. А так у него есть шанс найти хоть какой-либо ответ. По себе знаю - иногда перелистывал сотни страниц LL, Bethforums'a, nexus'a и вгу в поисках нужных мне ответов по скриптам. Ты удивишься насколько бесполезным было это занятие. Вопросов на форумах куча, ответов ноль. Ведь "вопросы столетней давности", зачем на них отвечать.


Evaluate, adapt, destroy
Quazar  Offline Сообщение №1390 написано: 27 Февраля 2015 в 10:46 | Отредактировано: Quazar - Пятница, 27 Февраля 2015, 10:56



446
Цитата Xilandro ()
Всё равно не вижу проблемы в том что я ответил на некоторые старые вопросы, на которые вообще не было ответа. Представь сидит новый скриптер, хочет сделать крутой мод чтобы менять прическу игроку по нажатию на кнопку, без интерфейса создания персонажа. Юзает он такой Плейер.СетХейр НьюХейр - а оно не работает на игроке. Вычитал он мол надо Update3D юзнуть, и юзает. На игроке. Хлоп, игра крашится. Он расстроен, ищет инфу что же делать. Находит вопрос на МГ в разделе скриптов. А ответа на него нет. И бросает наш юный падаван свою идею о прическе по требованию, и идет делать очередной дом в скайриме. Фол разочаровал, вайфу без причесок. Fin. А так у него есть шанс найти хоть какой-либо ответ. По себе знаю - иногда перелистывал сотни страниц LL, Bethforums'a, nexus'a и вгу в поисках нужных мне ответов по скриптам. Ты удивишься насколько бесполезным было это занятие. Вопросов на форумах куча, ответов ноль. Ведь "вопросы столетней давности", зачем на них отвечать.
Ну так бы сразу и сказал, что ты из службы спасения )) А то так и не поймешь..

Тогда давай, копай старину дальше, уверен тебе еще работаёнка найдется.. smile2

Но если серьезно, тут ты немного не прав, что касается "бросать идею". Тут все зависит от серьезности намерений, и серьезности самого "падавана". Ну не ответили тебе, это не значит что нужно бросать идею - бей дальше, разбирайся, ищи ответы в других источниках, проявляй самостоятельность, эспериментируй (в конце концов многие вещи можно и "методом тыка" выявить) . Или что, всем везде и всегда отвечали? Да вот ни в жизь не поверю!

Как я уже где-то писал, желание - это главное!

Xilandro  Offline Сообщение №1391 написано: 27 Февраля 2015 в 11:53



33
Цитата Quazar ()
Но если серьезно, тут ты немного не прав, что касается "бросать идею". Тут все зависит от серьезности намерений, и серьезности самого "падавана". Ну не ответили тебе, это не значит что нужно бросать идею - бей дальше, разбирайся, ищи ответы в других источниках, проявляй самостоятельность, эспериментируй (в конце концов многие вещи можно и "методом тыка" выявить) . Или что, всем везде и всегда отвечали? Да вот ни в жизь не поверю!
Не могу не согласиться. Но и без вопрос-ответов по скриптам далеко никто еще не уехал.
Цитата Quazar ()
Ну так бы сразу и сказал, что ты из службы спасения )) А то так и не поймешь..
Что у тебя за проблема? Чего ты взъелся так? Тебе не нравится что я отвечаю на вопросы по скриптам? Тема называется "Скрипты". Значит я в правильном месте делаю то зачем эта тема создана. "из службы спасения" лицорука.jpg.

Цитата Quazar ()
Тогда давай, копай старину дальше, уверен тебе еще работаёнка найдется.. :smile2:
Вопросов интересных много, ответов мало, русский сегмент моддинга мертв, новых скриптеров не появляется как и геймплейных модов. Может хоть чему-то
научились бы новому, господа самостоятельные экспериментаторы smile2 Но нет же, "нехороший Ксил тронул старые вопросы, нихарошый, надо его на смех поднять". На этом оффтоп от меня прекращается и с темы самовыпиливаюсь. Спасибо и до свидания.


Evaluate, adapt, destroy
Филя12  Offline Сообщение №1392 написано: 06 Марта 2015 в 05:51 | Отредактировано: Филя12 - Четверг, 05 Марта 2015, 11:24


Странник


11
Зарегистрировался чтоб узнать одну весчь - как проверить скриптово что гг перезаряжает оружие? Пробовал через IF player.GetAnimAction == 8 но ничего не получается, игра вовсе не реагирует никак.  Скрипт ставил на оружие, и в квест, но ничего. Что я не так делаю?
Мне это нужно для моего мода, там есть такое ружье, для него и нужно. Вот. Поможете?

Добавлено (06 Марта 2015, 05:51)
---------------------------------------------
Есть кто живой тут? unsure
Расскажу подробнее - мне нужно както сделать чтобы при перезарядке этого ружья появлялся мессадж. И все. Так можно сделать?


Galko  Offline Сообщение №1393 написано: 06 Марта 2015 в 10:15


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


1889
Цитата Филя12 ()
IF player.GetAnimAction == 8
команда вроде правильная...
Можно скрипт целиком?

Ваше счастье, что я не ваше счастье
Филя12  Offline Сообщение №1394 написано: 06 Марта 2015 в 16:28 | Отредактировано: Филя12 - Пятница, 06 Марта 2015, 16:29


Странник


11
Scn RTYRifleScript

Begin Gamemode

IF player.Getequipped WeapRTYRifle
IF player.GetAnimAction == 8
Showmessage RTYMsg
Endif
Endif

End

Xilandro  Offline Сообщение №1395 написано: 06 Марта 2015 в 17:09



33
Код
GetAnimAction == 8
не 8 а 9.


Evaluate, adapt, destroy
КсюXa  Offline Сообщение №1396 написано: 06 Марта 2015 в 17:18


Гид по Мастерской


1142
Цитата Xilandro ()
не 8 а 9.
А почему?
беседка пишет:
  • -1 - none
  • 0 - ANIM_ACTION_EQUIP_WEAPON
  • 1 - ANIM_ACTION_UNEQUIP_WEAPON
  • 2 - ANIM_ACTION_ATTACK
  • 3 - ANIM_ACTION_ATTACK_FOLLOW_THROUGH
  • 4 - ANIM_ACTION_ATTACK_THROW
  • 5 - ANIM_ACTION_ATTACK_THROW_ATTACH
  • 6 - ANIM_ACTION_???
  • 7 - ANIM_ACTION_BLOCK
  • 8 - ANIM_ACTION_RELOAD
  • 9 - ANIM_ACTION_STAGGER
  • 10 - ANIM_ACTION_DODGE
  • 11 - ANIM_ACTION_WAIT_FOR_LOWER_BODY_ANIM
  • 12 - ANIM_ACTION_WAIT_FOR_SPECIAL_IDLE
  • 13 - ANIM_ACTION_FORCE_SCRIPT_ANIM


Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
Xilandro  Offline Сообщение №1397 написано: 06 Марта 2015 в 17:22 | Отредактировано: Xilandro - Пятница, 06 Марта 2015, 17:30



33
Цитата КсюXa ()
А почему?беседка пишет:

-1 - none
0 - ANIM_ACTION_EQUIP_WEAPON
1 - ANIM_ACTION_UNEQUIP_WEAPON
2 - ANIM_ACTION_ATTACK
3 - ANIM_ACTION_ATTACK_FOLLOW_THROUGH
4 - ANIM_ACTION_ATTACK_THROW
5 - ANIM_ACTION_ATTACK_THROW_ATTACH
6 - ANIM_ACTION_???
7 - ANIM_ACTION_BLOCK
8 - ANIM_ACTION_RELOAD
9 - ANIM_ACTION_STAGGER
10 - ANIM_ACTION_DODGE
11 - ANIM_ACTION_WAIT_FOR_LOWER_BODY_ANIM
12 - ANIM_ACTION_WAIT_FOR_SPECIAL_IDLE
13 - ANIM_ACTION_FORCE_SCRIPT_ANIM
А кто тебе сказал что это беседка пишет? А еще, читай полностью описание команды.

Cкриптеры-теоретики, люблю вас <3

зы. в консоли будет последний активный animAction
Код
scn someScript
int animAction
begin gamemode
if animAction != player.getanimaction
        let animAction := player.getanimaction
        printc "%g" animaction
Endif
end


Evaluate, adapt, destroy
КсюXa  Offline Сообщение №1398 написано: 06 Марта 2015 в 17:30 | Отредактировано: КсюXa - Суббота, 07 Марта 2015, 14:45


Гид по Мастерской


1142
А я не скриптер. Я просто задала вопрос, потому что на geck.bethsoft.com было написано так.
Да, каюсь - не заглянула на том сайте на страничку обсуждения, поэтому и не знала, что на главной, оказывается, неверная инфа и вместо 8 - нужно ставить 9. Поэтому тут и спросила.
Спасибо за подсказку, мастер-сан. 

Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
Филя12  Offline Сообщение №1399 написано: 06 Марта 2015 в 19:17


Странник


11
>>не 8 а 9.
Спасибо, все заработало)

>>было написано так. 
И я тоже в примере с 8 посмотрел - пишут Determines if Buddy is performing the reload animation. думал это и есть анимация перезарядки.

RustWays  Offline Сообщение №1400 написано: 13 Марта 2015 в 01:56



5266
Принес скрипт на проверку. Что не так

Код
Scn    RWTstcrn

int State

begin onActivate
  if State == 0 && GetActionRef == player
  set State to 1
   playGroup Forward 1
endif

end

begin onActivate
if State == 1
playGroup Backward 1
endif
end


JupiterJour  Offline Сообщение №1401 написано: 13 Марта 2015 в 02:21


_


1037
Цитата RustWays ()
Что не так

Собственно, это мы от тебя должны узнать. Оно не включается? Оно не выключается?

Раньше я б сказал, что "не так" два одинаковых блока, с одинаково отсутствующими дополнительными параметрами. Но, говорят, при компиляции редактор их склеивает, так что это вроде допустимо.

Добавлено (13 Марта 2015, 02:21)
---------------------------------------------
Погадаю ещё. Оно должно шевелиться постоянно, а вместо этого шевельнулось раз и затихло?


RustWays  Offline Сообщение №1402 написано: 13 Марта 2015 в 02:56



5266
Цитата Joopeeter ()
Собственно, это мы от тебя должны узнать. Оно не включается? Оно не выключается?

Собственно как понятно (если вообще что-то понятно?) есть объект, есть две анимации -форвард и бэквард. Активируем впервые - форвард. Второй раз - бэквард. Это в теории.

На практике скрипт повешенный на этом активаторе вообще не исполняется. Ничего не происходит

JupiterJour  Offline Сообщение №1403 написано: 13 Марта 2015 в 03:39


_


1037
Цитата RustWays ()
На практике скрипт повешенный на этом активаторе вообще не исполняется.

Первая половина исполняется. А если не надеяться на то, что компилятор что-то там склеит, и самому поместить всё в один блок, то исполняется и вторая половина.

dianka48  Offline Сообщение №1404 написано: 13 Марта 2015 в 06:17 | Отредактировано: dianka48 - Пятница, 13 Марта 2015, 06:18


Странник


9
Доброго утра всем. Я в скриптах и в ГЕККе полный ноль. НО установила мод на увеличение лимита игры в казино, столкнулась с проблемой. Фишки есть, мод работает, рулетка работает, блек-джек работает, а вот автоматы напрочь отказываются принимать Фишки своего казино. Полезла в ГЕКК, не знаю что я там хотела найти, но интуитивно набрела на скрипты. И заметила некую разницу в содержании скрипта в falloutNV.esm и в 7758_CasinoMillionCa.esp.  В FalloutNV  скрипт scn vGomorrahSlot01Script  содержит  строчку ShowSlotMachineMenuParams GomorrahCasinoData 1 60 0, при чем не пойму что за 60 и 0, а в скрипте от мода такая же строчка но выглядит так : ShowSlotMachineMenuParams GomorrahCasinoData 1 CasinoMillionCaps.RateCasinoChips 0.  Гоморру взяла просто как пример. В чем проблема почему фишки казино не видят только автоматы? в игре кстати выскакивает предупреждение следующего характера : Invalid Chip in CasinoData list.  Поэтому наверное я и полезла в скрипты.

От Сердца К Солнцу
RustWays  Offline Сообщение №1405 написано: 13 Марта 2015 в 16:42



5266
Цитата Joopeeter ()
А если не надеяться на то, что компилятор что-то там склеит, и самому поместить всё в один блок, то исполняется и вторая половина.

Я больше теоретик. Как засунуть в один блок?

КсюXa  Offline Сообщение №1406 написано: 13 Марта 2015 в 16:50 | Отредактировано: КсюXa - Пятница, 13 Марта 2015, 17:03


Гид по Мастерской


1142
Цитата RustWays ()
Как засунуть в один блок?

Ну как-то так:
------------------------
Scn RWTstcrn

int State

begin onActivate Player
if State == 0 ; это можно убрать && GetActionRef == player
set State to 1
playGroup Forward 1
endif
if State == 1
playGroup Backward 1
endif
end

--------------------------
Зачем два блока OnActivate - можно все в одном сделать.
В переводе на человеческий язык, текст скрипта гласит:
  Начало исполнения При активации (чего-то) Игроком
     если состояние = 0, то проиграть анимашку форвард
     если состояние = 1, то проиграть анимашку бэквард
  Конец выполнения


Состояние устанавливается при ПЕРВОЙ активации: было ноль по-умолчанию - стало 1. И осталось навсегда. И при всех последующих активациях будет проигрываться анимашка бэквард

Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
RustWays  Offline Сообщение №1407 написано: 13 Марта 2015 в 16:58 | Отредактировано: RustWays - Пятница, 13 Марта 2015, 17:00



5266
Цитата КсюXa ()
было ноль по-умолчанию - стало 1

А вернуть на форвард? Setstate to 0?

КсюXa  Offline Сообщение №1408 написано: 13 Марта 2015 в 17:05


Гид по Мастерской


1142
А было заявлено:
Цитата
Активируем впервые - форвард. Второй раз - бэквард.
:D

Добавлено (13 Марта 2015, 17:02)
---------------------------------------------
Наверное, так:
Scn RWTstcrn 

int State 

begin onActivate Player 
 if State == 0 
   playGroup Forward 1 
   set State to 1 
endif 
if State == 1 
playGroup Backward 1 
   set State to 0 
endif 
end

--------

Добавлено (13 Марта 2015, 17:05)
---------------------------------------------
Я - теоретик. :)


Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
RustWays  Offline Сообщение №1409 написано: 13 Марта 2015 в 17:08



5266
Цитата КсюXa ()
Я - теоретик.

Дай пять. Проверю сейчас...

КсюXa  Offline Сообщение №1410 написано: 13 Марта 2015 в 18:09 | Отредактировано: КсюXa - Пятница, 13 Марта 2015, 18:11


Гид по Мастерской


1142
Цитата RustWays ()
Дай пять. Проверю сейчас...


Нам - капец... Смотри


Щя разнесут...

Я шаурму в ларьках на улице не покупаю. Делаю дома сама. Получается как настоящая. Даже траванулась пару раз.
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск: