Тема для вопросов по скриптингу.
Функции папируса:
На английском
На русском (не все, но базис)
#421
Отправлено
- werr, Chesh¡re и Olechkafum нравится это
#422
Отправлено
Как ты игре добавлять сказал - так она это и делает. И это не ингридиент - это обычное сообщения о том, что игроку что-то добавлено. Магия, абилка, ингридиент, предмет - неважно
Да это понятно - я про то что надпись идет (ДОБАВЛЕНО) как у ингредиента или предмета и это бесило - хотелось бы что бы надпись была другой - попробую сделать без надписи как ты сказал (кстати СПС) а можно добавить в скрипт напрямую нужный мне вариант (Вы просыпаетесь и чувствуете что хорошо отдохнули)? а MyMessage просто раскроет полностью то что я хочу донести до игрока.
У меня кстати есть сомнения, как это вот будет работать, если у тебя, скажем, на часах - 23:00, а в Time стоит 2 часа.
Проверю - отпишусь.
Какой еще кейворд? Зачем?
Ну я тебе не раз говорил что я плохо разбираюсь в СК - просто как я понял на кроватях ГГ отдых получает через кейворд
#423
Отправлено
И то, и другое вызывается одним и тем же кодом.можно добавить в скрипт напрямую нужный мне вариант (Вы просыпаетесь и чувствуете что хорошо отдохнули)? а MyMessage просто раскроет полностью то что я хочу донести до игрока.
Разница только в том, как это в СК прописано. MessageBox и обычный message там где-то галочкой отличаются.
Можешь вообще ванильное сообщение про отдых найти (должно где-то быть) и его уже тем же самым кодом вызывать.
Это нужно только для определения кровати игрока, как я понимаю.Ну я тебе не раз говорил что я плохо разбираюсь в СК - просто как я понял на кроватях ГГ отдых получает через кейворд
#424
Отправлено
И то, и другое вызывается одним и тем же кодом.
Разница только в том, как это в СК прописано. MessageBox и обычный message там где-то галочкой отличаются.
Можешь вообще ванильное сообщение про отдых найти (должно где-то быть) и его уже тем же самым кодом вызывать.
в общем скрипт допилил в точности до того эффекта что и хотел. спасибо за помощь.
Протестировал - на прокрутку времени - всё работает - было 11:07 PM - прокрутил стало 01:07 AM (прокрутку выставил на два часа игрового времени)
Сообщение отредактировал CISCO.:i:..:i:.: 13 сентября 2018 - 20:03
#425
Отправлено
А дату не проверил? Вдруг там на один год время вперед ушло? =)всё работает - было 11:07 PM - прокрутил стало 01:07 AM (прокрутку выставил на два часа игрового времени)
(Без шуток - в новом "платном моде" из КрейшнКлаба для Ф4 при включении введеных там камер наблюдения с датой творились совершенно адские вещи).
#426
Отправлено
#427
Отправлено
Цепляй свой скрипт, который будет включать\отключать твои водопады прямо к копью.
В нем используй ивент OnActivate.
Копье активируется скриптом, в скрипте копья срабатывает ивент, ивент включает\отключает водопады.
Должно работать (если, конечно, этот ивент сработает - активация предмета скриптом может и не дать это сделать).
P.s. если честно, ты все еще делаешь какую-то ерунду. Как я тут выше писал - пилишь дерево ради зубочистки.
#428
Отправлено
P.s. если честно, ты все еще делаешь какую-то ерунду. Как я тут выше писал - пилишь дерево ради зубочистки.
ахах - это ты мне писал)) а щас серьёзно - можешь подсказать что дописать в двемерском скрипте баллиста - что бы после выстрела - балиста сразу перезарежалась - ну то есть совершала выстрелы каждый раз при активации.
#431
Отправлено
Сам то в такой портянке разбираться хочешь? Нет? Вот и я не буду.
Согласен портянка - я просто ни фига не понимаю что там и к чему - знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V из них собираю то что в конечном итоге скомпелируется)))) после скажем так 100 попыток.
Сообщение отредактировал CISCO.:i:..:i:.: 14 сентября 2018 - 20:59
#432
Отправлено
если бы это было так просто, я бы не писал здесь... не работает это!
Scriptname aaaNetVeschi extends ObjectReference Bool bToggle ObjectReference Property MyThing1 Auto ObjectReference Property MyThing2 Auto ObjectReference Property MyThing3 Auto ObjectReference Property MyThing4 Auto Event OnActivate(ObjectReference akActionRef) bToggle = !bToggle If bToggle ; True MyThing1.Enable() MyThing2.Enable() MyThing3.Enable() MyThing4.Enable() Else ; False MyThing1.Disable() MyThing2.Disable() MyThing3.Disable() MyThing4.Disable() EndIf EndEvent
Сообщение отредактировал stanislavd: 14 сентября 2018 - 20:17
#434
Отправлено
Согласен портянка - я просто ни фига не понимаю что там и к чему
Когда код хоть немного структурирован - его намного легче читать.
Привыкай хоть какой-то порядок в скриптах держать.
Я могу в нем разобраться, но это займет много времени, и мне тупо некогда это делать.
знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V из них собираю то что в конечном итоге скомпелируется)))) после скажем так 100 попыток.
Тут главное не просто бездумно копировать-вставить, а еще и стараться разобраться, какая строчка и буква за что в итоге отвечает.
Я тоже так начинал.
если бы это было так просто, я бы не писал здесь... не работает это!
Ну, видать ивент с такой активации не работает.
Не судьба =)
Но рекомендую сначала упростить скрипт до минимума - убрать оттуда все условия if и bool. Чтоб сразу наглядно было, что к чему.
#435
Отправлено
Ну, видать ивент с такой активации не работает.
Не судьба =)
Но рекомендую сначала упростить скрипт до минимума - убрать оттуда все условия if и bool. Чтоб сразу наглядно было, что к чему.ты читал о материнских и дочерних скриптах??
ты читал об материнских и дочерних скриптах? о том что можно использовать функцию из материнского скрипта дочерним?.. просто это правилильно надо прописать...
вот например скрипт рычага по отношению к скрипту пики является материнским, и передается её значение в скрипт пики, а там уже запускается програмка относительно этой функции...
и вешая скрипт вкл/выкл вещи на рычаг ты также используешь эту функцию! но когда у тебя в разрыве стоит трамплинкер ета функция теряется! т.к. в моём случае, трамплинкер служит передаточным звеном... поэтому я и пытаюсь, либо сделать подмену пики, либо вынуть функцию из скрипта пики... и если это получится, то то откроются большие возможности для сборки квестов! квестовых локаций!... и будет не просто: меня обидел тот придурок, отнял вещь, пойди вломи ему и отними эту вещь, а я тебя вознагражу... а будет попробуй доберись до него!
у меня сейчас простаивают 5 линеек квестов из-за этого... из-за реализации передачи функции на статический предмет...
#436
Отправлено
Тупо - 3 рычага, каждый отключает\включает по 3 водопада из 4-х.
И скрипт такой вот на каждый рычаг - только проперти у каждого привязаны на разные водопады.
Scriptname aaaNetVeschi extends ObjectReference ObjectReference Property MyThing1 Auto ObjectReference Property MyThing2 Auto ObjectReference Property MyThing3 Auto Event OnActivate(ObjectReference akActionRef) if MyThing1.IsEnabled() MyThing1.Disable() else MyThing1.Enable() endif if MyThing2.IsEnabled() MyThing2.Disable() else MyThing2.Enable() endif if MyThing3.IsEnabled() MyThing3.Disable() else MyThing3.Enable() endif EndEvent
Сообщение отредактировал Azazellz: 15 сентября 2018 - 09:23
#437
Отправлено
Ну так напиши уже свой скрипт, ё-моё.
Тупо - 3 рычага, каждый отключает\включает по 3 водопада из 4-х.
И скрипт такой вот на каждый рычаг - только проперти у каждого привязаны на разные водопады.Scriptname aaaNetVeschi extends ObjectReference ObjectReference Property MyThing1 Auto ObjectReference Property MyThing2 Auto ObjectReference Property MyThing3 Auto Event OnActivate(ObjectReference akActionRef) if MyThing1.IsEnabled() MyThing1.Disable() else MyThing1.Enable() endif if MyThing2.IsEnabled() MyThing2.Disable() else MyThing2.Enable() endif if MyThing3.IsEnabled() MyThing3.Disable() else MyThing3.Enable() endifне все так просто! я пробовал это... не работает так как надо!...вот тебе скрипт квеста:
scriptName dunHarmugstahlLeverScript extends objectReference import Debug import Utility ObjectReference Property doorStart Auto ObjectReference Property door01 Auto ObjectReference Property door02 Auto ObjectReference Property door03 Auto ObjectReference Property door04 Auto ObjectReference Property door05 Auto ;ObjectReference Property doorController Auto ObjectReference Property lever01 Auto ObjectReference Property lever02 Auto ObjectReference Property lever03 Auto ObjectReference Property lever04 Auto ObjectReference Property startTrigger Auto default2StateActivator door01Script default2StateActivator door02Script default2StateActivator door03Script default2StateActivator door04Script ObjectReference Property Collision Auto bool isComplete = false event OnCellLoad() door01Script = door01 as default2StateActivator door02Script = door02 as default2StateActivator door03Script = door03 as default2StateActivator door04Script = door04 as default2StateActivator door01script.SetOpen(False) door02script.SetOpen(False) door03script.SetOpen(False) door04script.SetOpen(False) endEvent event OnActivate (objectReference TriggerRef) ;checkAllOpen() if (isComplete == false) if (TriggerRef == lever01) openDoorPatternA() checkAllOpen() elseif (TriggerRef == lever02) openDoorPatternB() checkAllOpen() elseif (TriggerRef == lever03) openDoorPatternC() checkAllOpen() elseif (TriggerRef == lever04) openDoorPatternD() checkAllOpen() elseif (TriggerRef == startTrigger) ;Notification("Start Trigger") puzStart() endif endif endevent function puzStart() startTrigger.Disable() openDoorStart() endFunction function openDoorPatternA() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor01() openDoor02() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternB() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor01() openDoor02() openDoor03() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternC() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor02() openDoor03() openDoor04() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternD() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor03() openDoor04() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoor01() wait(0.1) door01script.SetOpen(!door01script.isOpen) endFunction function openDoor02() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) door02script.SetOpen(!door02script.isOpen) endFunction function openDoor03() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) door03script.SetOpen(!door03script.isOpen) endFunction function openDoor04() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) door04script.SetOpen(!door04script.isOpen) endFunction function openDoorStart() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) door05.Activate(self) ;openDoor01() ;openDoor02() ;openDoor03() ;openDoor04() endFunction function checkAllOpen() if (door01script.isOpen && door02script.isOpen && door03script.isOpen && door04script.isOpen) ;Notification("COMPLETED") isComplete = true lever01.goToState( "Inactive" ) lever02.goToState( "Inactive" ) lever03.goToState( "Inactive" ) lever04.goToState( "Inactive" ) lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() Collision.Disable() door05.Activate(self) door01script.SetOpen(TRUE) door02script.SetOpen(TRUE) door03script.SetOpen(TRUE) door04script.SetOpen(TRUE) else ;Notification("NOT COMPLETED") endif endfunction
#438
Отправлено
мне же надо, что бы не просто отключались водопады, а чтобы выполнялось после этого действие! водопады - лампочки подбора кода!)))
ты же весь мой квест не знаешь!... это первая часть квеста.. открыть проход, а вторая часть там свои заморочки.. вот мне и надо сделать скрипт связи... чтобы я туда кучу вещей мог подключить... новые условия прописать!... а не просто вкл/выкл водопадов!..
#439
Отправлено
Естестевенно, ведь ты так нифига про него и не рассказал.ты же весь мой квест не знаешь!..
Пики, траплинкеры, водопады, куча вещей... А суть, что надо сделать и что в итоге получить - так и не сказал.
Сильно секретно, видать.
Ну, раз секретно - разбирайся сам.
Скрипт вон есть, сделай копию, правь ее как тебе угодно - хоть водопады туда впихивай, хоть лампочки, и привязывай ее куда там тебе захочется.
Ибо скрипт лишь чуть-чуть сложнее того, что я тебе сбрасывал до этого. Добавлена защита от дурака, все сведено в один скрипт, а заодно и в конце добавлена функция на проверку открытых пик, которая вызывается каждый раз, как ты дергаешь рычаги.
Другими словами - скрипта, который отдельно сидел бы и мониторил состояние пик - нет. Все тут.
Сообщение отредактировал Azazellz: 15 сентября 2018 - 12:25
#440
Отправлено
Вообще то я сразу сформулировал задание! что мне надо привязать к пике водопад! и то что вместо него началась демагогия, это твоя проблема, которая мешает решению моей задачи! я давно проанализировал, решил что нужно и сформулировал что именно нужно сделать! и я не тупо копирую тексты в скрипты, а нахожу нужные строчки и нужные места!!! ну не совсем я разобрался, как нужно прописывать в разные функции и связи с другими скриптами... вот и ищу как это сделать на подобных примерах!
Сообщение отредактировал stanislavd: 15 сентября 2018 - 13:46
#441
Отправлено
Азазель, в следующий раз читай внимательно людей!
я писал: давно не занимался этим и мне надо вспомнить... есть квест в локации хармугстал с 4 рычагами и 4 пиками. необходимо либо подменить пик на водопады, либо привязать - водопады к пикам... т.е. пика выдвинута водопада нет, пика убрана - водопад есть!
вот тебе переработанный скрипт квеста хармугстала с под замену пик... сам увидишь какие строчки я аннулировал, а какие заменил...
Scriptname aaaaKvestDrevnegoProhoda extends ObjectReference import Debug import Utility ObjectReference Property doorStart Auto ObjectReference Property door01 Auto ObjectReference Property door02 Auto ObjectReference Property door03 Auto ObjectReference Property door04 Auto ObjectReference Property door05 Auto ;ObjectReference Property doorController Auto ObjectReference Property lever01 Auto ObjectReference Property lever02 Auto ObjectReference Property lever03 Auto ObjectReference Property lever04 Auto ObjectReference Property startTrigger Auto ;default2StateActivator door01Script ;default2StateActivator door02Script ;default2StateActivator door03Script ;default2StateActivator door04Script ObjectReference Property Collision Auto bool isComplete = false ;event OnCellLoad() ; door01Script = door01 as default2StateActivator ; door02Script = door02 as default2StateActivator ; door03Script = door03 as default2StateActivator ; door04Script = door04 as default2StateActivator ; door01script.SetOpen(False) ; door02script.SetOpen(False) ; door03script.SetOpen(False) ; door04script.SetOpen(False) ;endEvent event OnActivate (objectReference TriggerRef) ;checkAllOpen() if (isComplete == false) if (TriggerRef == lever01) openDoorPatternA() checkAllOpen() elseif (TriggerRef == lever02) openDoorPatternB() checkAllOpen() elseif (TriggerRef == lever03) openDoorPatternC() checkAllOpen() elseif (TriggerRef == lever04) openDoorPatternD() checkAllOpen() elseif (TriggerRef == startTrigger) ;Notification("Start Trigger") puzStart() endif endif endevent function puzStart() startTrigger.Disable() openDoorStart() endFunction function openDoorPatternA() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor01() openDoor02() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternB() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor01() openDoor02() openDoor03() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternC() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor02() openDoor03() openDoor04() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoorPatternD() lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() openDoor03() openDoor04() lever01.BlockActivation(false) lever02.BlockActivation(false) lever03.BlockActivation(false) lever04.BlockActivation(false) endfunction function openDoor01() wait(0.1) ; door01script.SetOpen(!door01script.isOpen) if door01.IsEnabled() door01.Disable() else door01.Enable() endif endFunction function openDoor02() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) ; door02script.SetOpen(!door02script.isOpen) if door02.IsEnabled() door02.Disable() else door02.Enable() endif endFunction function openDoor03() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) ; door03script.SetOpen(!door03script.isOpen) if door03.IsEnabled() door03.Disable() else door03.Enable() endif endFunction function openDoor04() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) ; door04script.SetOpen(!door04script.isOpen) if door04.IsEnabled() door04.Disable() else door04.Enable() endif endFunction function openDoorStart() ;lever01.goToState( "Inactive" ) ;lever02.goToState( "Inactive" ) ;lever03.goToState( "Inactive" ) ;lever04.goToState( "Inactive" ) door05.Activate(self) ;openDoor01() ;openDoor02() ;openDoor03() ;openDoor04() endFunction function checkAllOpen() if (door01.IsEnabled() && door02.IsEnabled() && door03.IsEnabled() && door04.IsEnabled()) ;Notification("COMPLETED") isComplete = true lever01.goToState( "Inactive" ) lever02.goToState( "Inactive" ) lever03.goToState( "Inactive" ) lever04.goToState( "Inactive" ) lever01.BlockActivation() lever02.BlockActivation() lever03.BlockActivation() lever04.BlockActivation() Collision.Disable() door05.Activate(self) ; door01script.SetOpen(TRUE) ; door02script.SetOpen(TRUE) ; door03script.SetOpen(TRUE) ; door04script.SetOpen(TRUE) else ;Notification("NOT COMPLETED") endif endfunction
Темы с аналогичным тегами papyrus, help, скрипты, вопросы
Моддинг →
Моддинг Skyrim →
Восстановление на основе Зала ДозораАвтор Alex_andra, 11 дек 2023 mod, help |
|
|||
|
Моддинг →
Моддинг Skyrim →
Отстройка ВинтерхолдаАвтор Alex_andra, 10 авг 2023 bugs, moding, help |
|
||
Моддинг →
Моддинг Oblivion →
Скрипт Для СнаряженияАвтор БесездаБойчик, 07 сен 2022 скрипты, скрипт |
|
|||
Моддинг →
Моддинг Skyrim →
Нужны добровольцы для теста модаАвтор arkadiy111, 11 апр 2022 help |
|
|||
help
Моддинг →
Моддинг Skyrim →
Ram and Skyrim seАвтор Samurai1, 03 апр 2022 help |
|
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 скрытых