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

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



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




Artem13  Offline  Сообщение №61 написано: 13 февраля 2011, 07:06


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



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



10
спасибо за туториал, правда уже сам разобрался как сделать.

Добавлено (15.02.2011, 20:42)
---------------------------------------------
Возникла другая нубская проблема, как сделать активатор двери. Дверь скрытая, то есть когда к ней подходишь не видно что это активатор, а открывается дверь с пульта.


RustWays  Offline  Сообщение №63 написано: 20 февраля 2011, 15:20



Скажите плиз назвыание скрипта, что дает Виктор в Лаки 38

Artem13  Offline  Сообщение №64 написано: 20 февраля 2011, 16:25


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


Riff, а теперь тоже самое, но по-русски. Виктор не может давать скрипт по определению.

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



Хотел сказать "что дает меню перемещения при у виктора". Искал на двери в лаки но она не активатор...

Artem13  Offline  Сообщение №66 написано: 20 февраля 2011, 17:41


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


Riff, поищи на двери в Коктейль-баре - там Виктора никогда нет и меню вызывается через дверь..

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



Спасибо.

И еще вопрос: возможно ли создать замену персоонажа через скрипт. Допустим я создал перса в разговоре с которым будет скрипт замены ИД. Он как бы превратится.

Добавлено (20.02.2011, 21:00)
---------------------------------------------
Спасибо.

И еще вопрос: возможно ли создать замену персоонажа через скрипт. Допустим я создал перса в разговоре с которым будет скрипт замены ИД. Он как бы превратится.


Artem13  Offline  Сообщение №68 написано: 20 февраля 2011, 18:08


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


Riff, теоретически - да. В соотв. ветке диалога в окне End script даёшь команду disable выбранному персонажу, а рядом с ним или на его место генеришь нового, например через PlaceLeveledActorAtMe
Но как оно пройдёт в реальности - не знаю.

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



179
Народ тут такой вопрос я смог с помощью скрипта двигать объект без колизии (ну и с колизией вроде тоже получилось), но вопрос невтом подскажите как сделать так чтоб скрипт активировался каждые например 2 дня ?

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Artem13  Offline  Сообщение №70 написано: 28 февраля 2011, 09:43


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


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

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



179
Artem13, Понятно, значит врятле так получится сделать ?

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Artem13  Offline  Сообщение №72 написано: 28 февраля 2011, 11:47


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


Graf, а не знаю, нет у меня готового рецепта. Поройся в функциях, посмотри можно ли как-то отслеживать Время. Кроме GetSecondPassed (или как там она, не помню) - это несколько не то. Именно определение текущего времени в мире игры.
Кроме того, теоретически можно сделать такой "финт ушами" - создать эффект на основе скрипта, а в условиях эффектов точно есть функция GameHour.
Ну и про НВСЕ я вообще не в курсе - может там вообще всё просто.

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



179
Artem13, Я гляну на скрипт мини-лабаратории там он похожий.

...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
ITU  Offline  Сообщение №74 написано: 1 марта 2011, 14:35



995
а как можно скриптом сделать проверку на "enable" объекта?

Artem13  Offline  Сообщение №75 написано: 1 марта 2011, 14:57


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


ITU, ну хотя бы так GetDisabled

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



995
в чем тут не так

Code
ScriptName 0ITUBuyShopMenuSript

int iAktivBash
int iAktivStolb
int iAktivTurret
int iAktivBarrack
int iAktivFF
int iAktivLight

int  iButton

Begin onactivate

    ShowMessage 0ITUBaseBuyMenu

End

Begin GameMode

    set iButton to GetButtonPressed

set iAktivBash to ITUMarketBashRef.GetDisabled
set iAktivStolb to ITUMarketStolbRef.GetDisabled
set iAktivTurret to ITUMarketTurretRef.GetDisabled
set iAktivBarrack to ITUMarketBarrackRef.GetDisabled
set iAktivFF to ITUMarketFFRef.GetDisabled

    if iButton == -1    
     Return

     elseif iButton == 0 ; bashni
      if iAktivBash == 0
       showmessage 0ITUBusy
      else
       if player.GetItemCount caps001 >= 1000
        player.removeitem caps001 1000
        ITUMarketBashRef.enable
        playsound OBJSwitchLights2D
                 else
                 showmessage 0ITUNotEnoughCaps
               endif
              endif

     elseif iButton == 1 ; Stolby for pole

      if iAktivStolb == 0
       showmessage 0ITUBusy
      else

       if player.GetItemCount caps001 >=1000
        player.removeitem caps001 1000
        ITUMarketStolbRef.enable
        ITUFFRubilnikOnRef.enable
        ITUFFRubilnikOffRef.disable
        playsound OBJSwitchLights2D
                else
                 showmessage 0ITUNotEnoughCaps
                endif
              endif

     elseif iButton == 2 ; turret

      if iAktivStolb == 0
       if player.GetItemCount caps001 >= 1000
        player.removeitem caps001 1000
        ITUMarketTurretRef.enable
        ITUMarketTurretRef.resurrect
        playsound OBJSwitchLights2D
                 else
                showmessage 0ITUNotEnoughCaps
                 endif
      else
       showmessage 0ITUNotFF
      endif

     elseif iButton == 3 ; Other

      if iAktivStolb == 0
       showmessage 0ITUBusy
      else
       if player.GetItemCount caps001 >= 1000
        player.removeitem caps001 1000
        ITUMarketBarrackRef.enable
        playsound OBJSwitchLights2D
       else
                 showmessage 0ITUNotEnoughCaps
                 endif
      endif

elseif iButton == 4 ; Light

      if iAktivLight == 0
       showmessage 0ITUBusy
      else
       if player.GetItemCount caps001 >= 1000
        player.removeitem caps001 1000
        ITUMarketLightRef.enable
        playsound OBJSwitchLights2D
       else
                 showmessage 0ITUNotEnoughCaps
       endif
      endif

elseif iButton == 5 ; exit
      RemoveMe
endif

RemoveMe
End

при отсутствие крышек (caps001) и отсутствия купленного в 1 пункте, при выполнении по 2 пункта, выполняется зачем-то 0 пункт
в чем дело не пойму

а так еще вопрос, как распавнить объект с тем же ID на старый кординатах

убрал спойлер О_о


Graf  Offline  Сообщение №77 написано: 1 марта 2011, 21:45



179
ITU, Спойлер неоткрывается.

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


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


ITU, а это невнимательно руководства читаем, где русским по белому написано, что "вызов функции ShowMessage не приостанавливает выполнение скрипта". А сообщение об отсутствии нужной суммы у тебя, очевидно - обычный MessageBox с кнопкой.
В результате после вывода сообщения скрипт, поскольку секция GameMode циклическая, начинает отрабатывать с начала. Пока кнопка Ок не нажата всё нормально, но как только игрок нажимает Ок, GetButtonPressed возвращает 0 и ты получаешь то, что описывал.
Выхода два:
1. Снять галочку MessageBox в настройках сообщения "Мало деньгов"
2. Ввести переменную-признак сообщения.
Я бв предпочёл первый. При этом сообщение будет выведено в верхний левый угол экрана.

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



19
Подскажите как сделать так чтобы появлялись выбранные мною NPC: при открытии двери, когда ГГ подбирает опр. предмет, через опр. время.

Когда все твои желания исполнятся
Придет конец многим твоим мечтам
Artem13  Offline  Сообщение №80 написано: 5 марта 2011, 14:56


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


С помощью объектных скриптов, прикреплённых к предмету-активатору.
ДЛя двери - функционал скрипта должен располагаться в секции OnActivate
Для предмета - в секции OnAdd
По времени - зависит от того, какой момент/событие должен служить началом отсчета

Собственно "появление" неписей
1. С помощью соотв. функций - на выбор PlaceAtMe, PlaceAtMeHealthPercent, PlaceLeveledActorAtMe
2. Расположить неписей в мире в редакторе изначально задизабленными, а при активации давать команду Enable.


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



19
Artem13,
Я забы предубредить что я в скриптах есшо неразбирабсь.

Когда все твои желания исполнятся
Придет конец многим твоим мечтам
Maelstrom2  Offline  Сообщение №82 написано: 8 марта 2011, 09:34 | Отредактировано: Maelstrom2 - 8 марта 2011, 09:40



10
Не сохраняется простой скрипт:

scn CaliberStartupXcaliberweaponryScript

begin gamemode
Startquest CaliberActivateQuest9x39
Stopquest CaliberStartupXcaliberweaponryQuest
end

Где моя ошибка?

(это квест по активации боеприпасов из плагина Хкалибр)

Делаю все как тут: http://www.newvegasnexus.com/downloads/file.php?id=39981
Но не выходит...


Graf  Offline  Сообщение №83 написано: 8 марта 2011, 10:33 | Отредактировано: Graf - 8 марта 2011, 10:35



179
Цитата Maelstrom2


scn QuestTrigSCRIPT

begin OnTrigger player

if getStage quest < 1
setStage quest 1
endif

end


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


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


Maelstrom2, Квесты то существуют? Посмотри, может в названии ошибся.

Graf, а второй endif зачем?


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



179
Artem13, Та сам заметил только что убрал сразу.

Maelstrom2, Проверяй скрипт в валидаторе здесь.


...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Cout  Offline  Сообщение №86 написано: 8 марта 2011, 13:35


Найфоман


Подскажите скрипт, который при выполнении определенной стадии квеста, выдавал игроку награду. Плачу репой

Нож может быть любого цвета, если этот цвет - черный.©

Размер подписи не должен превышать 400х150 пикселей.
Graf  Offline  Сообщение №87 написано: 8 марта 2011, 14:40 | Отредактировано: Graf - 8 марта 2011, 14:31



179
Cout, Вот:

В окне Result Script (End) вводим такие строки:
Player.RemoveItem Rifle 1
;забираем у игрока ружье
Player.AddItem Key 1
;добавляем ему ключ
хозяинRef.RemoveItem Key 1
;забираем ключ у хозяина
хозяинRef.AddItem Rifle 1
;добавляем хозяину ружье
SetObjectiveCompleted Quest 10 1
;устанавливаем стадию квеста равную 10 (выполненая)
SetObjectiveDisplayed Quest 20 1
Продолжение квеста (начало следующей стадии)

Добавлено (08.03.2011, 17:40)
---------------------------------------------
Cout, Ну там вроде ещё в Conditions надо что то прописывать немогу объянить.


...-Вот такой вот парадокс. Мы делаем моды для игр, в которые уже давно не играем...
Cout  Offline  Сообщение №88 написано: 8 марта 2011, 15:13


Найфоман


Graf, Да и за это спасибо. Мне хватит. Я просто хочу мод сделать, про мафиози. Типа новая фракция с квестами и т.п

Добавлено (08.03.2011, 18:13)
---------------------------------------------
А вот еще вопрос. Можно-ли сделать оружейный кейс по типу "Связки ключей" из Ф3??? Только вместо ключей - пушки.


Нож может быть любого цвета, если этот цвет - черный.©

Размер подписи не должен превышать 400х150 пикселей.
Graf  Offline  Сообщение №89 написано: 8 марта 2011, 15:16



179
Cout, Я тебя неочень понял, можеш объяснить поканкретней ?

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


Найфоман


Graf, Если у тебя много ключей, то они идут в связку(Ну ты знаешь) . А можно-ли ьакое с оружием организовать. Вот что я хотел спросить.

Нож может быть любого цвета, если этот цвет - черный.©

Размер подписи не должен превышать 400х150 пикселей.
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск:





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