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

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



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




JupiterJour  Offline  Сообщение №1411 написано: 13 марта 2015, 16:03


_


Цитата dianka48

В FalloutNV  скрипт scn vGomorrahSlot01Script  содержит  строчку ShowSlotMachineMenuParams GomorrahCasinoData 1 60 0, при чем не пойму что за 60 и 0, а в скрипте от мода такая же строчка но выглядит так : ShowSlotMachineMenuParams GomorrahCasinoData 1 CasinoMillionCaps.RateCasinoChips 0.


Здесь изменяется максимальная ставка. Вместо фиксированного значения 60 крышек назначается какая-то переменная. К фишкам это отношения, похоже не имеет. А вот предупреждение Invalid Chip in CasinoData list, откуда бы оно там ни выскакивало, имеет. Неправильная фишка в объекте "казино"... То есто смотреть надо, что там переправлено в этих казино и их фишках (Miscellaneous - Casino и Miscellaneous - Casino Chip).
Хм, фишка там в каждом казино одна на все виды развлечений. Почему тогда не работают только автоматы? В чём эта нерабочесть, кстати, выражается в смысле симптомов?

Добавлено (13 Марта 2015, 19:03)
---------------------------------------------
Скачал, посмотрел. Мод простой как табуретка, ломаться там нечему. В казино ничего не трогали, кроме максимального выигрыша. В игре бага не наблюдал. Версия игры 1.4.


КсюXa  Offline  Сообщение №1412 написано: 13 марта 2015, 16:29 | Отредактировано: КсюXa - 13 марта 2015, 18:20


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


Цитата Joopeeter

Любой теоретик знает, что

Не знаю, как там в Лондоне на ГЕКК-вики, я не была. Может, там собака — друг человека! А у нас управдом — друг человека! а тут я проверила такую конструкцию ... Взяла модельку с набором анимашек, написала тот скрипт и зашла в игру. Работает жа. Что еще нужно человеку, чтобы достойно встретить старость,  получить желаемое.
RustWays, только там в скрипт нужно внести маленькое изменение. Потому что переменная State  успевает смениться, и анимашка форвард прерывается, едва начавшись. Попробуй так:
Scn RWTstcrn

int State

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

-------------
тут на твое усмотрение: хочешь - в типе блока пишешь OnActivate Player, хочешь - внутри блока - && GetActionRef == player . раз так  более правильно.
Я проверила именно на приведенном варианте.

Добавлено (13 Марта 2015, 19:29)
---------------------------------------------
А, да... Вместо
int State
я использовала
Short State
Переменной типа Short вполне достаточно, чтоб отслеживать два состояния: 0 и 1 без точности до n-знаков после запятой

Ой, всё...
JupiterJour  Offline  Сообщение №1413 написано: 13 марта 2015, 17:30


_


Цитата КсюXa

без точности до n-знаков после запятой


int это short и есть. Целые числа.

КсюXa  Offline  Сообщение №1414 написано: 13 марта 2015, 17:54 | Отредактировано: КсюXa - 13 марта 2015, 17:57


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


Цитата Joopeeter

int это short и есть. Целые числа.


Бааааалиннн... спутала с Float
То-то казалось, что буков должно быть больше.

Ой, всё...
dianka48  Offline  Сообщение №1415 написано: 14 марта 2015, 17:23



9
Цитата Joopeeter

Здесь изменяется максимальная ставка. Вместо фиксированного значения 60 крышек назначается какая-то переменная. К фишкам это отношения, похоже не имеет. А вот предупреждение Invalid Chip in CasinoData list, откуда бы оно там ни выскакивало, имеет. Неправильная фишка в объекте "казино"... То есто смотреть надо, что там переправлено в этих казино и их фишках (Miscellaneous - Casino и Miscellaneous - Casino Chip).
Хм, фишка там в каждом казино одна на все виды развлечений. Почему тогда не работают только автоматы? В чём эта нерабочесть, кстати, выражается в смысле симптомов?



Я пыталась найти проблему, почему у меня мод не хочет работать, точнее работает все кроме игровых автоматов. Все происходит следующим образом: Покупаю фишки у кассира, подхожу к игровому автомату, пытаюсь его использовать, и мне выводится это сообщение : Invalid Chip in CasinoData list.   Вот и вся проблема. Версия игры 1.4.  НВСЕ МСМ ФНВЭДИТ всякие баг фиксы, и ни чего не спасает.

От Сердца К Солнцу
Xilandro  Offline  Сообщение №1416 написано: 14 марта 2015, 21:53 | Отредактировано: Xilandro - 14 марта 2015, 21:57



33
Цитата КсюXa

Я - теоретик.

 метко

Evaluate, adapt, destroy
JupiterJour  Offline  Сообщение №1417 написано: 17 марта 2015, 08:12


_


Цитата dianka48

Я пыталась найти проблему, почему у меня мод не хочет работать, точнее работает все кроме игровых автоматов. Все происходит следующим образом: Покупаю фишки у кассира, подхожу к игровому автомату, пытаюсь его использовать, и мне выводится это сообщение : Invalid Chip in CasinoData list.   Вот и вся проблема. Версия игры 1.4.  НВСЕ МСМ ФНВЭДИТ всякие баг фиксы, и ни чего не спасает.


Как я уже говорил, этот мод никаких фишек не трогает. В казино он меняет только максимальный выигрыш, в скриптах автоматов, рулетки и блэкджека - только максимальную ставку.
Что самое смешное, в основном мастер файле и в дополнениях никаких сообщений о фишках-инвалидах не обнаруживается.
Пожалуй, на всякий случай уточню. Проверялось на чистой игре (по крайней мере без других "улучшителей казино")? Без этого мода работает? Если на чистой и без мода работает... Что ж, необъяснимое иногда случается. unsure

dianka48  Offline  Сообщение №1418 написано: 17 марта 2015, 11:10



9
Joopeeter,  какие фишки инвалиды? :) Там же написано, что неправильное *ID*  фишки в CasinoData List или фишка которой я хочу активировать Слот-машину не найдена в CAsinoData List.  Улучшений на казино кроме этого мода нет. Посмотрела в FNVEdit, ну не пойму в чем проблема, может в различиях с поле SCDA - Complited Script.  RefCount?   Тогда будьте добры скажите мне, как найти CasinoData List?   Сама

От Сердца К Солнцу
Galko  Offline  Сообщение №1419 написано: 17 марта 2015, 11:25


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


Цитата dianka48

и мне выводится это сообщение : Invalid Chip in CasinoData list



:)

Ваше счастье, что я не ваше счастье
JupiterJour  Offline  Сообщение №1420 написано: 17 марта 2015, 19:04


_


Цитата dianka48

Тогда будьте добры скажите мне, как найти CasinoData List?


Полагаю, это те самые казино, которые в разделе Casino, если смотреть через FNVEdit. Через ГЭКК их видно наглядней (раздел Miscellaeuos - Casino). Признаюсь, что-то в них сломать мне так и не удалось.

dianka48  Offline  Сообщение №1421 написано: 17 марта 2015, 21:25 | Отредактировано: dianka48 - 17 марта 2015, 21:51



9
Joopeeter,  , зачем вы надо мной издеваетесь? Разве у слова Invalid  только одно значение? Я Вам сделал, что-то плохое или оскорбила Вас? Ни когда не понимала глум над человеком который пытается разобраться с проблемой и просит помощи у более знающих людей, а те в свою очередь вместо конструктива, буквально переводят слова, хотя это абсолютно неуместный перевод. Если посмотреть с юмором на это, то фишка то правда инвалид, раз её не видит игра.
А вот все моды:


В FOMM в другом порядке все выставлено.
 Тогда как игра определяет; могу я поиграть в слот-машину; какое количество у меня фишек; и соответствуют ли фишки этому казино?

От Сердца К Солнцу
JupiterJour  Offline  Сообщение №1422 написано: 18 марта 2015, 06:29 | Отредактировано: Joopeeter - 18 марта 2015, 00:00


_


Да не издевается никто. Это я просто так шучу, что без смайлика об этом и не догадаешься.
Я вот о чём. Текст сообщения - его игра не сама сочинила, он где-то написан. В FalloutNV.esm и DLC его нет, по крайней мере поиск в ГЭКК ничего не выдаёт, а поиск там будь здоров какой дотошный. Значит оно в каком-то из этих модов. Значит мод, в котором оно находится, каким-то образом затрагивает казино, иначе за каким бы лешим автору мода вносить туда это сообщение. Значит, возможен конфликт с другими модами, затрагивающими казино. Наш рассматриваемый мод сам по себе, когда он единственный подключенный, ничего в казино сломать не может.
Конечно, скачивать всю эту гору модов я не стану. Да и поиск конфликтов среди чьих-то чужих модов - это не то, что я называю интересной задачей. Да и тема совсем не о том.
Поэтому просто несколько соображений, куда, по моему мнению, надо смотреть. Загрузить всю кучу в FNVEdit и в ГЭКК (ну, может, кроме тех, которые совсем вне подозрений - типа всяких классикпаков). Особенно под подозрением "исправители всех ошибок" и "улучшители всего". В Эдите посмотреть в разделы Casino и Casino Chip - какие моды туда залезают. Глянуть, не затронуты ли сами игровые автоматы - они в разделе Activator, игровой автомат Гоморры, например, называется, vGomorrahSlot01. В ГЭКК зайти в меню Edit - Find Text и ввести в поиск текст сообщения или его часть. В каком моде сообщение отыщется, тот, голубчик, и конфликтует.

Цитата Xilandro

              Player.PlayGroup Forward 0 ;потому что 1-ца  багнутая


Нажал на кнопку и пошёл, пошёл, пошёл... А что, можно было бы использовать. Жаль, что это не работает хоть сколько-нибудь удовлетворительно. Особенно с нолём.

Quazar  Offline  Сообщение №1423 написано: 19 марта 2015, 11:28



446
Никто еще не разбирался с этим плагином - JIP NVSE Plugin ?
Проект вроде многообещающий..

Xilandro  Offline  Сообщение №1424 написано: 19 марта 2015, 14:51



33
Цитата Quazar

Никто еще не разбирался с этим плагином - JIP NVSE Plugin ?Проект вроде многообещающий..

Я разбирался. Есть пара странных функций типа Get\SetPrimitiveBound, а в остальном всё очень цивильно, звуки, погода, прожектили, интерфейс, новые функции для оружия и аммуниции. С первого взгляда плагин очень легко недооценить, но он на самом деле дает возможность сделать очень крутые моды о которых раньше даже мечтать было страшно) Да и проект очень быстро вышел из разряда пряника в разряд мастхеф.

Evaluate, adapt, destroy
JupiterJour  Offline  Сообщение №1425 написано: 19 марта 2015, 16:06 | Отредактировано: Joopeeter - 19 марта 2015, 16:13


_


Цитата Xilandro

лучше делать что-то вроде этого


Не смотря на разные незнакомые слова типа IsKeyPressed и let, мне кажется, что принципиальных отличий от предыдущего скрипта тут нету. Это теоретически. Посмотрел бы и на практике, но я из тех странных типов, которые играют в ванильку без нормальных модов.

Xilandro  Offline  Сообщение №1426 написано: 19 марта 2015, 16:25 | Отредактировано: Xilandro - 19 марта 2015, 16:27



33
Цитата Joopeeter

а мне показалось наоборот.

Всё там работает. Если нужно форвард\бэквард анимацию для активатора (не объекта) и есть какие-то проблемы с проигрыванием - нужно проверить
cycle type в kf и убедиться что там clamp. Одного фрейма playgroup
хватит чтобы анимация проигралась полностью. Если нет - можно
попробовать вместо нуля единицу, хотя не уверен багнется ли. Если начнет глючить - анимация типа specialIdle и rActivator.playIdle всё сделает.

Отличие второго скрипта в том что "нажал кнопку и пошел пошел пошел", а не "нажал кнопку и типа пошел, но не пошел" + всё на одной кнопке, работает как on\off
по поводу IsKeyPressed -  http://geck.bethsoft.com/index.php?title=IsKeyPressed
А let - тот же set только с кучей полезных возможностей, позволяет работать с массивами, стрингами и прочей кучей полезных новых функций в NVSE 4+. Чем быстрее перешел на Let - тем лучше, потому использую повсеместно вместо set. http://geck.bethsoft.com/index.php?title=Let

Evaluate, adapt, destroy
КсюXa  Offline  Сообщение №1427 написано: 19 марта 2015, 16:26


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


Цитата Joopeeter

которые играют в ванильку без нормальных модов.

Дай, Джу, на счастье лапу мне! Я тоже из таких.

Ой, всё...
JupiterJour  Offline  Сообщение №1428 написано: 19 марта 2015, 17:14 | Отредактировано: Joopeeter - 19 марта 2015, 17:40


_


Может быть, скрипт отказывается работать за бесплатно?

Цитата КсюXa

на счастье лапу


Кроличью?

Xilandro  Offline  Сообщение №1429 написано: 19 марта 2015, 17:46 | Отредактировано: Xilandro - 19 марта 2015, 18:26



33
Фонтан сарказма в лучшем виде. Видимо, подробно объяснить что и где не работает, здесь не позволяет либо менталитет, либо религия.
p.s.



Может всё-таки проблема не в скрипте, а в тех у кого скрипт отказывается работать за бесплатно.

Evaluate, adapt, destroy
JupiterJour  Offline  Сообщение №1430 написано: 19 марта 2015, 19:27 | Отредактировано: Joopeeter - 19 марта 2015, 19:29


_


Скрипт - молодец. Вот только что он смог? Запустил ли он player.PlayGroup? По виду, он запустил просто PlayGroup или ВывескаРеф.PlayGroup. Это и я могу.

Цитата Xilandro

объяснить что и где не работает, здесь не позволяет либо менталитет, либо религия.


Вообще-то да, ну да ладно.
На всякий случай напомню, что речь о запуске анимации на игроке, а не на активаторе.
От первого лица только чуть дёргается камера, как при коротком нажатии на клавишу движения. Да и то, только если шевельнёшь мышкой или клавой. Что с нолём, что с единицей - без разницы.
От третьего лица с нолём та же история - короткий порыв к движению, как при кратком нажатии клавиши. От третьего лица с единицей начинается медленное движение. Шевельнёшь чем-нибудь - движение обретает нормальную скорость. При движении активировать активатор снова не удаётся, но это ладно, чёрт бы с ним.
Чистая игра без модов, улучшителей, исправителей и т.п.
Подробно описывать, как я, падкий до халявы, на форуме нажал Ctrl+C, а в редакторе - Ctrl+V, не стану. В то, что эту операцию я проделал правильно, придётся поверить на слово.

Добавлено (19 Марта 2015, 22:27)
---------------------------------------------
NPC на PlayGroup с нолём реагируют так же - коротким подёргиванием.

Quazar  Offline  Сообщение №1431 написано: 20 марта 2015, 03:33



446
Цитата Xilandro

интерфейс,

Там достаточно много документации, нет возможности полностью с ней ознакомится. Меня интересовал вопрос - нет ли там функции, которая позволяет задать референс-ссылку на выделенный в пип-бое объект? Именно выделенный, а не одетый или использованный..

Ipatow  Offline  Сообщение №1432 написано: 20 марта 2015, 04:30



Цитата Quazar

референс-ссылку на выделенный в пип-бое объект

Если я правильно понимаю этот механизм, у большинства предметов, находящихся в инвентаре, нет собственного FormID. Точнее, он есть только у тех, которые недавно были именно референс-объектами, самостоятельными объектами игрового мира - на полу валялись например (и существование этого FormID привязано к загруженности той ячейки, в которой оно валялось).

Даже в тех случаях, когда FormID есть, это не "полноценный" референс - например, оружие в контейнере не может быть заряжено, хотя владелец у предмета может быть, отсутствуют координаты X/Y/Z, хотя масштаб может быть не единица...

Quazar  Offline  Сообщение №1433 написано: 20 марта 2015, 05:38 | Отредактировано: Quazar - 20 марта 2015, 05:39



446
Ipatow, дело в том что в Обливионе такая функция была (точнее не в самой игре, а опять же в экстендере), вот правда ее название я конечно уже не вспомню.. Была надежда, что возможно ее все же перенесут в фоллаут.

Хотя, я уже сам думал о том, что если это до сих пор не сделали, то видимо у этих двух игр действительно есть какие-то значительные отличия в механизме инвентарных предметов, либо какие-то другие серьезные причины...

Филя12  Offline  Сообщение №1434 написано: 20 марта 2015, 10:36



11
А поможете еще с одним вопросом? Вот мне нужно сделать так чтобы после убийства гг 20 когтей смерти появился мессадж об этом... Есть лист-form куда вписаны все когти и есть GetDeadCount но скрипт не хочет сохранятся - пишет что-то про actorbase. 
Сама строчка такая:
IF Player.GetDeadCount CrDeathClawList > 20
   ShowMessage DeathClawDead20Message
ENDIF

и ничего не сохраняется. Вот так. Если вместо лист-form пишу ИД какогото когтя, тогда все хорошо сохраняется и работает. Но когтей ж много разных в игре у всех ИД разные, как тогда быть? как можно GetDeadCount вместе с  form заставить работать? Или нельзя так? 

..

и спасибо заранее ^_^

Galko  Offline  Сообщение №1435 написано: 20 марта 2015, 10:41 | Отредактировано: Galko - 20 марта 2015, 10:45


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


Цитата Филя12

пишет что-то про actorbase.

А полностью текст ты привести не можешь? И мы должны гадать - что же там компилятор пишет?
А во вторых: CrDeathClawList
Лист. т.е - список. Получается в скрипте написано: если количество убитых СПИСКОВ больше 20. Как можно убить список?

А вообще-то все это уже реализовано в достижениях (в ГЕКК это раздел Challenge) Когда после убийства скольких-то там тараканов, скорпионов, мутантов, (нужное подчеркнуть) выводится сообщение о награде. Можешь посмотреть, как это сделано и повторить.

Ваше счастье, что я не ваше счастье
Филя12  Offline  Сообщение №1436 написано: 20 марта 2015, 12:15



11
Пишет такую ошибку: invalid actor base 'CrDeathClawList' for parameter Actor Base  

и три кнопки Да , Нет, Отмена 

И все, скрипт не сохраняется.

>> в ГЕКК это раздел Challenge

А мне для Фоллаута нужно, там нет этих достижений.

>> Как можно убить список?

Я думал что будут считаться те кричеры которые в этом списке. Если убито 20 или больше кричеров из списка тогда и появится мессадж. 

..
я млжет не так что пишу но я 3 недели назад только gekk первый раз открыл, ничего не знаю еще.
Вот и пишу чтобы узнать как можно сделать такой скрипт. Очень нужно. я как раз и хочу сделать типа достижений как в Вегасе но конечно попроще. Для себя.

Xilandro  Offline  Сообщение №1437 написано: 20 марта 2015, 12:38



33
Цитата Quazar

вот правда ее название я конечно уже не вспомню..

Давай вспоминай. Вспомнишь - пойду спрошу злых кодеров ее портировать.)

Evaluate, adapt, destroy
Quazar  Offline  Сообщение №1438 написано: 20 марта 2015, 13:48 | Отредактировано: Quazar - 20 марта 2015, 13:52



446
Цитата Филя12

Пишет такую ошибку: invalid actor base 'CrDeathClawList' for parameter Actor Base


GetDeadCount работает только с базовыми актерами, не со списками. Поэтому у тебя скрипт компилируется когда ты в качестве проверки используешь EditorID существа (ты сам писал Если вместо лист-form пишу ИД какогото когтя, тогда все хорошо сохраняется и работает.), но НЕ компилируется когда указываешь список. Текст ошибки как раз на это и указывает. "Помирить" ты их никак не сможешь, если функция не работает со списками, то она не работает не чуть-чуть а насовсем..

Ipatow  Offline  Сообщение №1439 написано: 20 марта 2015, 16:04



Цитата Xilandro

пойду спрошу злых кодеров ее портировать

Интересно, кто-нибудь сделал функцию SetLinkedRef в пару к оригинальной Get..? Она ведь до скрежета зубовного напрашивается с незапамятных времён - у линка роскошное почётное место практически во всех кондишнах, пакеты поведения без динамической линковки просто бледная тень того, что могло бы быть... Среди FOSE-плагинов такая определённо не появлялась.

Xilandro  Offline  Сообщение №1440 написано: 20 марта 2015, 16:17 | Отредактировано: Xilandro - 20 марта 2015, 16:25



33
SetLinkedReference есть в JIP плагине. Но функция не сохраняет изменения в сейв. Вот что мне сказал кодер по поводу похожей функции CloneForm "The function relies on functionality of the saves that no longer exists in the engine since FO3"
Скорее всего потому SetLinkedRef и была оставлена ребятами за бортом как в FOSE, так и в NVSE. Hlp с оф.форума пытался найти выход, эдакой обходной путь сохранения разных изменений в сейв файл, но безуспешно. Можно в принципе подолбать разрабов NX'а, они сохраняют свои данные в отдельный файл, может смогут сделать то же самое с референсами.

вот описание SetLinkedReference:
(null) reference.SetLinkedReference objectRef:ref

Sets the calling reference's linked reference to objectRef or, if the latter is not provided, removes its current linked
reference. Unfortunately, the changes are not saved with the game and this function must be called again when the game is restarted.

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





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