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

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



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




Artem13  Offline  Сообщение №301 написано: 30 июля 2011, 14:22


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


Смотрим внимательно скрипт, прикреплённый к упомянутому квесту. Там должна быть переменная hasVBRadio.
И вообще, скрипт к квесту прикреплён? Не этот, а тот, с переменной из которого работаешь.

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



KAIN48,
Цитата KAIN48

hasVBRadio


Это объект Vintbird Radio. Дело в том что это все это из enclave commander фола 3. Мне бы было гораздо проще если бы я хоть чуть чуть "рубил" в скриптах и их орфографии, а не только в программировании. Я нашел ошибку: она в ;.
Нет ли в сети туторов по скриптингу и их орфографии.
Все это для разработки этого мода: Veintbird Mod

Artem13  Offline  Сообщение №303 написано: 30 июля 2011, 14:40


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


Э, а при чём тут ; ? Это просто закомментированные строки. Ты в след. раз пиши, в чем проявляется ошибка.

Тут я пытался разъяснять скрипты https://modgames.net/publ....1-0-371

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



Artem13, в том то и юмор, что скрипт рабочиq в таком положении
Code
scn RIFFVertibirdComScript

begin onadd player
    set RIFFVertibirdAIQuest.hasVBRadio to 1
end

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

Artem13  Offline  Сообщение №305 написано: 30 июля 2011, 14:59


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


Riff, я верю, что он рабочий. Твой изначальный вопрос непонятен - в чем проявлялась неработоспособность? Я решил, что он не сохраняется. Потому и прошу - пиши, что и как не работает.

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



Artem13, во-перывх, не сохранялся. Во-вторых, черный экран в игре

Artem13  Offline  Сообщение №307 написано: 30 июля 2011, 15:10


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


Riff, у меня прекрасно сохранился при "забитой " строке set RIFFVertibirdAIQuest.hasVBRadio to 1 (просто этого квеста и скрипта нету). Так что явно не из-за ; было несохранение.

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



А теперь вопрос: как быть с нвсе? ГЕКК такие скрипты не понимает.

Добавлено (31.07.2011, 15:01)
---------------------------------------------
например выделенное он не знает

Code
begin scripteffectfinish
  [b]printtoconsole[/b] "Player has landed"
  ;    player.placeatme DLC03VertibirdRumble 1
  playsound OBJVertibirdPilotLand

Scarabay  Offline  Сообщение №309 написано: 31 июля 2011, 11:20 | Отредактировано: Scarabay - 31 июля 2011, 11:22



85
Riff, прекрасно понимает, если запускать через nvse. Создаешь батник с параметром nvse_loader -editor в папке с nvse, либо через консоль. Рид Ми нужно читать <_<

RustWays  Offline  Сообщение №310 написано: 31 июля 2011, 15:20



Scarabay, эт как?

Scarabay  Offline  Сообщение №311 написано: 31 июля 2011, 16:26



85
Цитата Riff

Scarabay, эт как?


Очень просто. Создаешь текстовый файл, в него пишешь nvse_loader -editor и сохраняешь с расширением .bat вместо .txt. Ложишь его в папку с ГЕККом и запускаешь. Усе))

Airborn  Offline  Сообщение №312 написано: 1 августа 2011, 16:09





Какой скрипт нужен чтобы при активации специальной книги в инвентаре открывалось окно контейнера?

Попробовал сам вот что вышло

Code

scn aaRolexScript

begin OnOpen aaRolexCont
end


Что не так? Или может что добавить надо?

Artem13  Offline  Сообщение №313 написано: 1 августа 2011, 16:36


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


ByRolex, учи матчасть - секции (блока) OnOpen не существует. Хотя бы отсюда https://modgames.net/publ....1-0-371

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

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





Artem13, Книга просто активатор. Надо чтобы я мог через этот активатор получить доступ к контейнеру, и в любой момент забрать или положить вещи в него.

Добавлено (01.08.2011, 20:57)
---------------------------------------------

Цитата Artem13

OnOpen не существует


а с OnActivate скрипт не сохраняется

Добавлено (01.08.2011, 21:03)
---------------------------------------------
Или может просто обычный контейнер нельзя активировать? И лучше в качестве ящика сделать существо?


Artem13  Offline  Сообщение №315 написано: 1 августа 2011, 18:13 | Отредактировано: Artem13 - 1 августа 2011, 18:17


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


ByRolex, ёжику понятно, что активатор. Только вот в чём беда - в инвентаре невозможно создать просто активатор (очередной плевок в сторону Обсидиана). Поэтому идут обходными путями - активацию делают либо через экипировку оружия/одежды, либо через использование объектов типа "Помощь".
В первом случае скрипт, повешенный на псевдоактиватор имеет тело вида
Code
begin OnEquip player
      ID_контейнера.Activate
end


Во втором случае приходится создавать новый эффект типа Script effect, в скрипте которого той же командой, что и выше, активируется контейнер.

ЗЫ Да, ошибка твоя (почему скрипт не сохраняется) в том, что ты пытаешься указать в качестве параметра для "begin OnActivate" ID того контейнера, который нужно открыть. Это неверно, параметром для OnActivate является актёр, открывающий контейнер. Т.е. ты указывал ID контейнера там, где компилятор скрипта ожидает ID актёра.

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





Цитата ByRolex

И лучше в качестве ящика сделать существо?


Artem13  Offline  Сообщение №317 написано: 1 августа 2011, 18:30


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


ByRolex,а ты так и написал ID_контейнера? :) подставь ID своего контейнера

Цитата ByRolex

Или может просто обычный контейнер нельзя активировать? И лучше в качестве ящика сделать существо?


нет, не поможет.

Давай я завтра тебе напишу поподробнее.

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





Цитата Artem13

а ты так и написал ID_контейнера?



begin OnEquip player
aaRolexCont.Activate
end

И не сохраняется. А до завтра подожду, главное чтобы получилось сделать :)

Enerus  Offline  Сообщение №319 написано: 1 августа 2011, 20:32



27
Кто нибудь может подсказать как написать эффект тряски камеры в скрипте

Graf  Offline  Сообщение №320 написано: 1 августа 2011, 21:33



179
Цитата Artem13

begin OnEquip player       ID_контейнера.Activate end


Я хотел написать скрипт ему такого вида:

Code


short button

begin OnEquip player

if MenuMode
ShowMessage aaaArmorInventorySMessage
endif
end

begin MenuMode
set button to GetButtonPressed
if button == 0
aaaArmorInventorySContainerRef.activate
elseif button == 1
endif
end

begin OnUnEquip player

if MenuMode
ShowMessage aaaArmorInventorySMessage
endif
end

begin MenuMode
set button to GetButtonPressed
if button == 0
aaaArmorInventorySContainerRef.activate
elseif button == 1
endif
end


Но активация контейнера не происходит.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Enerus  Offline  Сообщение №321 написано: 2 августа 2011, 10:39



27
Скрипт для главного героя а вот сколько времени тряски думаю где то 4,5 минут а да ещё куда он ну конечно для мода.

Graf  Offline  Сообщение №322 написано: 2 августа 2011, 13:26



179
Gion, Я тебе через 7 с половиной часов скину скрипт, просто трафик должен обновится. И еще, один раз используется ?

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Artem13  Offline  Сообщение №323 написано: 2 августа 2011, 16:45


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


ByRolex, ну, в общем принцип такой:
на примере одевания Разведброни, контейнер - новый ящик. Ящик открывается при надевании разведброни. Меню контейнера появляется после закрытия пип-боя.
1. Создаём контейнер
2. помещаем контейнер в мир, дважды щёлкаем на его модели В МИРЕ чтобы открыть окно Reference.
3. в открывшемся окне Reference в поле Reference Editor ID (самое верхнее) вбиваем имя ссылка, например MyContainerREF
4. Пишем скрипт вида
Code
scn A13RemoteContainerScript

begin OnEquip
    MyContainerREF.Activate player
end

5. Вешаем скрипт на разведброню.
6. Радуемся жизни.

Внимание ВСЕМ в процессе ковыряния активации выяснил одну занимательную штуку - как минимум для команды Activate имя ссылки (Reference Editor ID) не может начинаться с цифры! Только с латинской буквы!

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



73
Привет всем.
Скажите кто знает, можно ли сделать так, чтобы в отдельно выбранный контейнер могло помещаться только ограниченное количество предметов?

И еще вопрос - как посредством скрипта заставить персонажа 'съесть' например стимулятор?

Вот сдам бутылки - тогда и куплю гранатомет (©)
Graf  Offline  Сообщение №325 написано: 2 августа 2011, 22:22



179
Цитата Wolkinkot

Скажите кто знает, можно ли сделать так, чтобы в отдельно выбранный контейнер могло помещаться только ограниченное количество предметов?


Можно попробывать через инвентарь другого нпц, будет примерно так:
Code

begin OnActivate

npcRef.OpenTeammateContainer
activate

End

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Volkogava  Offline  Сообщение №326 написано: 3 августа 2011, 09:39



73
Цитата Graf

Можно попробывать через инвентарь другого нпц, будет примерно так:



Получилось, спасибо!
Как совет, если кому понадобится - можно также установить его вместимость:

Code

   
NPCref.SetAV CarryWeight 20


Вот сдам бутылки - тогда и куплю гранатомет (©)
Graf  Offline  Сообщение №327 написано: 3 августа 2011, 10:13



179
Wolkinkot, Я когда то делал глобальный мод, и писал этот скрипт на сундуках (вместимость 25 фунтов) в шкаф 40 и т.д. Но незнаю выйдет ли когда нибудь мой глобальный мод с полными изменениями :)

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Enerus  Offline  Сообщение №328 написано: 3 августа 2011, 10:51



27
Graf, думаю мне подойдет такой скрипт.

Graf  Offline  Сообщение №329 написано: 3 августа 2011, 11:25 | Отредактировано: Graf - 3 августа 2011, 11:31



179
Gion, Эээ... Какой ? Я тебе не написал скрипт так как ты мне не ответил на вопросы, я спросил на чем будит скрипт, ты ответил на гг. На гг от чего то же должен то происходить эффект. Может у тебя на еде или активаторе должно быть, а может на квесте ? Я же не могу предсказать.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Enerus  Offline  Сообщение №330 написано: 3 августа 2011, 12:23



27
Эффект должен происходить от активатора.

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





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