Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.
Дайте пожалуйста скрипт для того чтобы свет мигал по разному
Напрягаю свои телепатические возможности из последних сил, но все равно не могу понять, что же Вам на самом деле нужно. Есть смутное подозрение, что Вам хочется видеть мерцающий свет, как возле автоматов по продаже Нука-Колы. Если это так, то скрипт для этого не нужен, там специальные источники света. Они сами мерцают, без посторонней помощи.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Изменение репутации для пользователя Galko
GalkoOffline
Сообщение №692
написано: 16 марта 2012, 18:56
| Отредактировано: Galko - 16 марта 2012, 18:57
Vi[RUS], у тя как-то не понятно что делает таймер, по твоему скрипту он вообще ничего не делает или это не полный скрипт? объясни чего ты хочешь после активации через 4 секунды разово должно стрелять? или стрелять сразу, а анимация взрыва через 4 сек ?
Code
scn RaiderHowitzerScript
short sFlag float fTimer
Begin GameMode if (sFlag == 1) if(fTimer > 0 ) set fTimer to (fTimer - GetSecondsPassed) else set sFlag to 0 endif endif end
Begin OnActivate if(sFlag == 0)
if (IsActionRef Player == 1) RaiderHowtizerREF.playgroup forward 1 endif
Привет всем! Я хотел сделать так что бы щит добавился игроку при загрузки сохранения, ну что бы не бегать за ним. Нашёл похожий скрипт и подправил вот так. scn AddingMyObject short val begin GameMode if (val == 0) Player.AddItem AAASpartaSteelShield 1 set val to 1 endif end Повесил на щит, но при загрузке сохранения игра вылетает. Появляется начальный кадр места сохранения, а потом вылет. Что я делаю не так? Щит стоит в локации и без скрипта всё нормально работает, он берётся, выбрасывается и тп.
Мы вышли из дома, когда во всех... Поздно вышли!
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №697
написано: 28 марта 2012, 07:00
| Отредактировано: Joopeeter - 28 марта 2012, 07:15
KAIN48, сделай скрипт квестовым, прикрепи к квесту, сам квест сделай Start Game Enable (на той же вкладке где и скрипт). На всякий случай сделай квесту приоритет 100, а чтобы он не жрал ресурсы после того как сделает дело - между "set val to 1" и "endif" вставь StopQuest [название квеста].
Joopeeter, Привет! Понял! Человеку щит понравился из модов для Скурим, он попросил перенести его в Обливион, и выдать при запуске игры. Я такого не делал раньше, теперь буду знать как - вертелась мысль про квест, но как то не пересеклась с добавлением! Спасибо! Пока.
Oder, а если какой-нибудь другой плагин делает так же они разве не перебьют друг друга? Просто 100% бесконфликтный способ добавить что-то торговцу - именно скриптовый. С рюкзаками не проверял, но там разве не так?
не проще-ли сливать подобные плагины в один и доливать по мере поступления, чем писать квесты со скриптами?
Двояко. Плагинописателю - проще, плагиноподключателю - сложнее. Он (подключатель) должен быть ещё и в курсе какие плагины используют этот способ (не сливать же всё подряд).
Изменение репутации для пользователя Airborn
AirbornOffline
Сообщение №702
написано: 7 апреля 2012, 14:25
| Отредактировано: Airborn - 7 апреля 2012, 14:26
Приветствую. Нужна помощь, нужно удалить все переменные и команды со словом weight, чтобы вещи в сумке нечего не весили. Дня 3-4 уже пытаюсь это сделать, но не как не получается. Надеюсь вы поможете, ну или хотя бы подскажите
Code
If ( activateContainer == 1 ) If ( MenuMode 1002 ) TapControl 14 ElseIf ( MenuMode ) Set LMDStorageBagQuest.activateContainer to 0 EndIf EndIf
If ( activateContainer >= 3 ) Set activateContainer to 4 EndIf
End
Begin GameMode
If ( doOnce == 0 ) Player.AddItem LMDStorageBagItem 1 Set curOwner to Player Set curContainer to LMDStorageBagRef Set startWeight to GetWeight LMDStorageBagItem Set curWeight to startWeight Set doOnce to 1 EndIf
If ( curOwner != Player ) If ( curOwner == curContainer ) ;PrintC "Don't be stupid. Containers can not be put inside of themselves." curContainer.RemoveItem LMDStorageBagItem 1 Player.AddItem LMDStorageBagItem 1 ElseIf ( curOwner != 0 ) If ( dumpedContents == 0 ) Set dumpedContents to 1 ShowMessage LMDStorageBagDropMsg SetWeight startWeight LMDStorageBagItem Set curWeight to startWeight curContainer.RemoveAllItems curOwner 0 EndIf Else Set dumpedContents to 0 EndIf Else Set dumpedContents to 0 EndIf
If ( activateContainer == 1 ) Set activateContainer to 2 Return ElseIf ( activateContainer == 2 ) Set activateContainer to 3 Set itemWeight to curOwner.GetAV InventoryWeight SetQuestItem 1 LMDStorageBagItem SetWeight curWeight LMDWeightItem curOwner.AddItem LMDWeightItem 1 1 curContainer.Activate Player 0 Return ElseIf ( activateContainer == 4 ) Set activateContainer to 0 SetQuestItem 0 LMDStorageBagItem Player.RemoveItem LMDWeightItem 1 1 Set curWeight to itemWeight - curOwner.GetAV InventoryWeight + curWeight SetWeight curWeight LMDStorageBagItem Player.AddItem LMDWeightItemTwo 1 1 Player.RemoveItem LMDWeightItemTwo 1 1 EndIf
If ( Player.GetEquipped LMDStorageBagItem ) If ( removeItems < 50 ) Set removeItems to removeItems + 1 Else Set removeItems to 0 Set itemWeight to curOwner.GetAV InventoryWeight curOwner.RemoveAllTypedItems curContainer 0 1 24 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 26 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 29 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 31 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 40 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 41 LMDStorageBagFormList curOwner.RemoveAllTypedItems curContainer 0 1 47 LMDStorageBagFormList Set curWeight to itemWeight - curOwner.GetAV InventoryWeight + curWeight SetWeight curWeight LMDStorageBagItem Player.AddItem LMDWeightItemTwo 1 1 Player.RemoveItem LMDWeightItemTwo 1 1 EndIf EndIf
End
Code
ScriptName LMDStorageBagScript
Short itemIndex Short doOnce Ref curObject Ref curOwner
Begin OnEquip Player
Set LMDStorageBagQuest.activateContainer to 1 ; If ( MenuMode 1002 ) ; TapControl 14 ; ElseIf ( MenuMode ) ; Set LMDStorageBagQuest.activateContainer to 0 ; EndIf
Set doOnce to 1
End
Begin OnUnequip Player
Set LMDStorageBagQuest.activateContainer to 1 ; If ( MenuMode 1002 ) ; TapControl 14 ; ElseIf ( MenuMode ) ; Set LMDStorageBagQuest.activateContainer to 0 ; EndIf
End
Begin OnDrop Player Set LMDStorageBagQuest.activateContainer to 0 End
Begin MenuMode
If ( doOnce == 2 ) Set doOnce to 3 EndIf
End
Begin GameMode
Set LMDStorageBagQuest.curOwner to GetContainer
If ( doOnce == 1 ) Set doOnce to 2 EndIf
If ( LMDStorageBagQuest.activateContainer > 0 ) Return EndIf
If ( doOnce != 3 ) Return EndIf
Set doOnce to 0 set curOwner to LMDStorageBagQuest.curOwner
Set itemIndex to ListGetCount LMDStorageBagFormList
Всем привет, у меня появился вопрос : Можно ли с помощью скрипта сохранить значения переменных (этого же или другого скрипта) в отдельный текстовый файл? Заранее спасибо, даже если это нельзя никак сделать.
Oh no, not me, I never lost control. You're face to face With the man who sold the world.
Кроме как перебором через GetEquipped ничего в голову не приходит. Однако, если NPC может использовать много разного оружия, или надо проверить игрока, у которого вообще может быть любое, то это долго и нудно. Расскажи в чём конкретно состоит замысел, может придумается какой-нибудь обходной путь.
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Нужен скрипт следующего характера: в рендере находится предмет, допустим это пистолет с ID gun2, нужно сделать так, что бы когда его подбераешь, стадия квеста переходила на другую, например на 50 (до этого собственно была 40).
Изменение репутации для пользователя ITU
ITUOffline
Сообщение №711
написано: 23 апреля 2012, 14:39
| Отредактировано: ITU - 23 апреля 2012, 14:43
Добавлено (27.04.2012, 19:06) --------------------------------------------- Снова требуется ваша помощь, подскажите пожалуйста результирующий скрипт, который после диалога делает нашего собеседника врагом главного героя.
подскажите пожалуйста результирующий скрипт, который после диалога делает нашего собеседника врагом главного героя
Команда StartCombat в результ-скрипт Энд Если просто сделать враждебным (настроить фракцию собеседника как враждебную к фракции игрока) то все равно после окончания диалога в таком случае начнется бой. Эт только если как-то задействовать таймер, дабы ГГ успел свалить подальше.
И на его базе сделать объектный эффект, который вешается на оужие, которое, в свою очередь, нужно будет отрегулировать, чтобы оно само по себе хит не наносило. p.s. Отвечаю на этот вопрос исключительно из любопытства - какая у данного оружия может область применения?
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Изменение репутации для пользователя Бун
БунOffline
Сообщение №716
написано: 28 апреля 2012, 09:48
| Отредактировано: Бун - 28 апреля 2012, 10:54
Spalny_Vagon, дебаговая, к примеру, у меня все жители RTS хромают, бедные, клиника их вылечить не может, так что буду дебаговой пушкой лечить. И еще вопрос: как сделать гаубицу? Чтобы при нажатии на нее вылетал снаряд.на странице 43
Добавлено (28.04.2012, 13:48) --------------------------------------------- Да, кстати, когда я стреляю в NPC этой пушкой, то все снаряды уходят мимо. Когда я выставляю урон 1, снаряды попадают, но НПС становятся агрессивными. Как это исправить?
Да, кстати, когда я стреляю в NPC этой пушкой, то все снаряды уходят мимо. Когда я выставляю урон 1, снаряды попадают, но НПС становятся агрессивными. Как это исправить?
player.scaonactor ;НПС прекращают атаки на ГГ ClearActorsFactionsPlayerEnemyFlag ;фракция жертвы прощает ГГ все грехи.
====================== Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294 Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
вот млин нефига не пойму что тут не так при выборе в меню ниже уровня ничего не делает при нажатие "Вернутся в меню выше" просто меню закрывается точно такое же в другом месте работает, я чет просто ошибки не как найти не могу
Code
scn 0ITUHTeleportVault
short Done short Button short LevMenuT INT TeleportEND INT TeleportSTART REF TeleportLocation FLoat WaitTime INT UsedIt
;Globals used here
begin OnActivate
if IsActionRef player == 1 ShowMessage 0ITUHomeTeleport0 set LevMenuT to 1 endif
end
begin gamemode
set Button to GetButtonPressed
if ( LevMenuT == 1 )
if (Button == -1) ; No button has been pressed yet Return
elseif ( Button == 0 ) ;Страница 1 ShowMessage 0ITUHomeTeleport1 Set LevMenuT to 2
elseif ( Button == 1 ) ;Страница 2 ShowMessage 0ITUHomeTeleport2 Set LevMenuT to 3
elseif ( Button == 2 ) ;Страница 3 ShowMessage 0ITUHomeTeleport3 Set LevMenuT to 4
elseif ( Button == 3 ) ;Страница 4 ShowMessage 0ITUHomeTeleport4 Set LevMenuT to 5
else ;выход Set LevMenuT to 0 endif
elseif ( LevMenuT == 2 ) ; Страница 1
set Button to GetButtonPressed
if ( Button == 0 ) ;Центральный зал Set TeleportLocation to ITUTeleportMarkerHome Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 1 ) ;Склад Set TeleportLocation to ITUTeleportMarkerStorage Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 2 ) ;Генераторная Set TeleportLocation to ITUTeleportMarkerGenerator Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 3 ) ;Фабрика Set TeleportLocation to ITUTeleportMarkerFabric Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 4 ) ;Медицинская комната Set TeleportLocation to ITUTeleportMarkerMedRoom Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 5 ) ;Комната управления Set TeleportLocation to ITUTeleportMarkerCKU Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0 ;
elseif ( Button == 6 ) ;Вернутся в меню выше ShowMessage 0ITUHomeTeleport0 Set LevMenuT to 1
elseif ( Button == 7 ) ; Отмена Set LevMenuT to 0 endif
elseif ( LevMenuT == 3 ) ; Страница 2
set Button to GetButtonPressed
if (Button == -1) ; No button has been pressed yet Return
elseif ( Button == 0 ) ;Теплицы Set TeleportLocation to ITUTeleportMarkerTepl Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 1 ) ;Музей Set TeleportLocation to ITUTeleportMarkerMuseum Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 2 ) ;Зимний зал Set TeleportLocation to ITUTeleportMarkerSad Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 3 ) ;Инкубатор Set TeleportLocation to ITUTeleportMarkerInkub Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 4 ) ;Студия Set TeleportLocation to ITUTeleportMarkerStudia Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 5 ) ;Туалеты Set TeleportLocation to ITUTeleportMarkerToilet Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0 ;
elseif ( Button == 6 ) ;Вернутся в меню выше ShowMessage 0ITUHomeTeleport0 Set LevMenuT to 1
elseif ( Button == 7 ) ; Отмена Set LevMenuT to 0 endif
elseif ( LevMenuT == 4 ) ; Страница 3
set Button to GetButtonPressed
if (Button == -1) ; No button has been pressed yet Return
elseif ( Button == 0 ) ;Столовая Set TeleportLocation to ITUTeleportMarkerRestoran Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 1 ) ;Комнаты компаньонов Set TeleportLocation to ITUTeleportMarkerFollower Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 2 ) ;Бассеин Set TeleportLocation to ITUTeleportMarkerBasein Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 3 ) ;Тренировочная Set TeleportLocation to ITUHReturnSoilder Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 4 ) ;Манекены Set TeleportLocation to ITUTeleportMarkerMann Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 5 ) ;Личная комната Set TeleportLocation to ITUTeleportMarkerRoomB Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0 ;
elseif ( Button == 6 ) ;Вернутся в меню выше ShowMessage 0ITUHomeTeleport0 Set LevMenuT to 1
elseif ( Button == 7 ) ; Отмена Set LevMenuT to 0 endif
elseif ( LevMenuT == 5 ) ; Страница 4
set Button to GetButtonPressed
if ( Button == 0 ) ;Виртуальный симулятор Set TeleportLocation to ITUTeleportMarkerSim Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 1 ) ;Склад боеприпасов Set TeleportLocation to ITUTeleportMarkerSA Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 2 ) ;Склад медикаментов Set TeleportLocation to ITUTeleportMarkerSMed Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 3 ) ;Склад продуктов Set TeleportLocation to ITUTeleportMarkerSFood Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 4 ) ;Склад мусора Set TeleportLocation to ITUTeleportMarkerSJunk Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0
elseif ( Button == 5 ) ;(ЧИТ) читерная комната Set TeleportLocation to ITUTeleportMarkerCHeats Set TeleportSTART to 1 Playsound WPNEuclidFinderUplink Set LevMenuT to 0 ;
elseif ( Button == 6 ) ;Вернутся в меню выше ShowMessage 0ITUHomeTeleport0 Set LevMenuT to 1
elseif ( Button == 7 ) ; Отмена Set LevMenuT to 0 endif
endif
If TeleportSTART == 1 Player.PlaceAtMe 0ITUHTeleportEffects DisablePlayerControls 1 1 1 1 0 1 1 imod ITUHFadetoWhite Playsound 0ITUHTeleportSound Set TeleportSTART to 0 Set TeleportEND to 1 endif
If TeleportEND == 1 Imod Addiction01ISFX EnablePlayerControls Player.Moveto TeleportLocation Set TeleportEND to 0 endif
end
Изменение репутации для пользователя Artem13
Artem13Offline
Сообщение №719
написано: 25 мая 2012, 13:39
| Отредактировано: Artem13 - 25 мая 2012, 13:40
ITU, а зачем в начале каждого elseif (кроме первого) верхнего уровня опять кнопки опрашиваешь? У тебя же стоит опрос на входе в GameMode. Похоже ты просто забиваешь значением -1 нормальное значение, полученное в начале блока.
<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a> Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)