Перейти к содержанию

stanislavd

Пользователь
  • Постов

    118
  • Зарегистрирован

  • Посещение

Весь контент stanislavd

  1. сделал квест - подошёл, заговорил, получил информацию, согласился, получил ключ, пошёл и достал, вернулся, отдал вещь, получил золото и информацию, согласился заинтересованостью и должен получить бумажку... но вторую алиасовскую вещь не помещают в инвентарь героя!  первая вещь - ключ, вторая - бумага, третья (которую находишь) - книга. пишу в скрипте квеста "Game.GetPlayer().Additem(Alias_rukopis.GetReference())", а алиас не появляется в инвентаре героя!
  2. вопрос про бег снят... создал свой пакет и привязал к udle-маркеру... для сцены нормально... но вот к сожалению этот пакет действует только на одном маркере и размножение нпс не позволяет менять на другие маркеры! пришлось делать несколько нпс со своими пакетами!
  3. ситуация: создал нпс, у него один пакет на бег. в игре нпс выключен, гг входит в триггер, срабатывает команда enable, появляется нпс и вальяжно тащится к маркеру! а где бег?
  4. не подскажите команду для скрипта для выполнения нпс аи-пакета
  5. ищу единомышленников! имеются: сценарий, наработки...   фактически занимаюсь всем, не пробовал только озвучку... но одному очень долго....
  6. я пока занимаюсь переделкой моделей для своего аддона и вот что вышло: http://www.youtube.com/watch?v=JUxyjJt7LRw
  7. ребят возникла проблема при загрузке: MASTERFILE: Missing base object for ref '' (010799E8) in interior cell '01KomnataOhranyLeft' (010D3F04). Ref will be deleted. MASTERFILE: Missing/Invalid base object (0160242A) for reference (010799E9)   после чего кит вылетает   как это исправить??
  8. Слушай я всю модель облазил в поисках этого havok, в видео автор на него и залазил, но не нашёл!
  9. Ребят.. Есть такое видео: https://m.youtube.com/watch?v=1lkrX3HYSDc&ebc=ANyPxKrF3J6oDL6MlLDypSwmUw2tsfmcmthqiIjmzHuB66ZU4VEBKmCcaPH6rdlwYDE-BC06Xnvv-6nFWur7kBrlHKjn7jMSlw Вопрос по nifscope как сделать анимирование коллизию как у автора видео, когда я открываю элемент Скайрима в этой программе и не нахожу эти строки для редактирования???
  10. что не так? Scriptname aaaaaVtoroyKvestDrevnegoProhoda extends ObjectReference int paukdeadA = 0 int paukdeadB = 0 Actor Property Pauk1 Auto Actor Property Pauk2 Auto ObjectReference Property startTrigger Auto bool isComplete = false event OnActivate (objectReference TriggerRef) if (isComplete == false) DeadPaukPatternA() DeadPaukPatternB() endif endevent function puzStart() startTrigger.Disable() endFunction function DeadPaukPatternA() if (Pauk1.isDead()) Debug.MessageBox("УПС!") paukdeadA += 1 else Debug.MessageBox("ПАУЧОК!") endif endFunction function DeadPaukPatternB() if (Pauk2.isDead()) Debug.MessageBox("УПС2!") paukdeadB += 1 else Debug.MessageBox("ПАУЧОК2!") endif endFunction нужно чтобы выдавал когда жив и когда мёртв паук, а он только когда жив пишет и всё
  11. мне и нужно получить статус, чтобы потом воскресить... будут ещё строчки wait и воскрешение.. (кстати какой оператор это делает??? но мне нужно, чтобы не на том месте где его грохнули, а на том где он первый раз появился, т.е. стоит маркер) и ещё одно: можно ли менять уровень сложности нпс командой?
  12. как правильно написать условие определения умер ли нпс? Actor Property Actor1 Auto If (Actor1.GetDead()) Debug.MessageBox("Yippee!") EndIf (середину не смотри)
  13. друг! дело не в звезде! когда ты задаешь вопрос, и у тебя убивают время, приходя к тому же вопросу, что ты сформулировал в самом начале.... 
  14. Азазель, в следующий раз читай внимательно людей!  я писал: давно не занимался этим и мне надо вспомнить... есть квест в локации хармугстал с 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
  15. Вообще то я сразу сформулировал задание! что мне надо привязать к пике водопад! и то что вместо него началась демагогия, это твоя проблема, которая мешает решению моей задачи! я давно проанализировал, решил что нужно и сформулировал что именно нужно сделать!  и я не тупо копирую тексты в скрипты, а нахожу нужные строчки и нужные места!!! ну не совсем я разобрался, как нужно прописывать в разные функции и связи с другими скриптами... вот и ищу как это сделать на подобных примерах!
  16. мне же надо, что бы не просто отключались водопады, а чтобы выполнялось после этого действие! водопады - лампочки подбора кода!)))  ты же весь мой квест не знаешь!... это первая часть квеста.. открыть проход, а вторая часть там свои заморочки.. вот мне и надо сделать скрипт связи... чтобы я туда кучу вещей мог подключить...  новые условия прописать!... а не просто вкл/выкл водопадов!..
  17. ты читал об материнских и дочерних скриптах? о том что можно использовать функцию из материнского скрипта дочерним?.. просто это правилильно надо прописать...  вот например скрипт рычага по отношению к скрипту пики является материнским, и передается её значение в скрипт пики, а там уже запускается програмка относительно этой функции... и вешая скрипт вкл/выкл вещи на рычаг ты также используешь эту функцию! но когда у тебя в разрыве стоит трамплинкер ета функция теряется! т.к. в моём случае, трамплинкер служит передаточным звеном... поэтому я и пытаюсь, либо сделать подмену пики, либо вынуть функцию из скрипта пики... и если это получится, то то откроются большие возможности для сборки квестов! квестовых локаций!... и будет не просто: меня обидел тот придурок, отнял вещь, пойди вломи ему и отними эту вещь, а я тебя вознагражу... а будет попробуй доберись до него! у меня сейчас простаивают 5 линеек квестов из-за этого... из-за реализации передачи функции на статический предмет...
  18.   а я хоть как то эти портянки читаю))
  19. если бы это было так просто, я бы не писал здесь... не работает это! 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 
  20. Привет Азазелз! Я взял скрипт активатора, копья... Вписал 5 строчек... И теперь при проперти указываю на вещь. И она исчезает и проявляется в зависимости от состояния копья... Но мне нужен скрипт, который можно белобрыс подвесить к основному скрипту активатора без внесения изменения в основной скрипт... В скрипте квеста только выдаётся команда на скрипт активатора, но как я ещё не просек, а то можно былого снять информацию со скрипта квеста... В общем сделано через жопу, но первая часть того, что я хотел у меня получилась... Но это надо сделать по нормальному... У тебя идей нет???
  21. в папирусе 2 вида скриптов: материнский и дочерний (образно говоря)  материнский - основной скрипт имеет переменные  дочекрний - скрипт расширения 
  22. я нуб... пока не получается написать дочерний скрипт... НО! вставив в скрипт default2StateActivator 5 строчек я добился нужного эффекта!!! одну ObjectReference Property MyThing1 Auto и по две: MyThing1.Disable() MyThing1.Enable()   сам скрипт: Scriptname default2StateActivator extends ObjectReference Conditional {for any activator with standard open/close states} import debug import utility bool property isOpen = false auto conditional {set to true to start open} bool property doOnce = false auto {set to true to open/close on first activation only} bool property isAnimating = false auto Hidden {is the activator currently animating from one state to another?} string property openAnim = "open" auto {animation to play when opening} string property closeAnim = "close" auto {animation to play when closing} string property openEvent = "opening" auto {open event name - waits for this event before considering itself "open"} string property closeEvent = "closing" auto {close event name - waits for this event before considering itself "closed"} string property startOpenAnim = "opened" auto {OnLoad calls this if the object starts in the open state} bool property bAllowInterrupt = FALSE auto {Allow interrupts while animation? Default: FALSE} bool property zInvertCollision = FALSE auto {Typically this will be False (DEFAULT). The References LinkRef'd Chained with the TwoStateCollisionKeyword will typically be Enabled onOpen, and Disabled on Close. If you want that functionality inverted set this to TRUE} ObjectReference Property MyThing1 Auto int property myState = 1 auto hidden keyword property TwoStateCollisionKeyword auto ; true when static or animating ; 0 == open or opening ; 1 == closed or closing EVENT OnLoad() SetDefaultState() endEVENT Event OnReset() SetDefaultState() EndEvent ;This has to be handled as a function, since OnLoad and OnReset can fire in either order, and we can't handle competing animation calls. Function SetDefaultState() if (isOpen) playAnimationandWait(startOpenAnim, openEvent) if (zInvertCollision == FALSE) trace(self + " Disabling Collision") DisableLinkChain(TwoStateCollisionKeyword) else trace(self + " Enabling Collision") EnableLinkChain(TwoStateCollisionKeyword) endif myState = 0 Else playAnimationandWait(closeAnim, closeEvent) if (zInvertCollision == FALSE) trace(self + " Enabling Collision") EnableLinkChain(TwoStateCollisionKeyword) else trace(self + " Disabling Collision") DisableLinkChain(TwoStateCollisionKeyword) endif myState = 1 EndIf EndFunction auto STATE waiting ; waiting to be activated EVENT onActivate (objectReference triggerRef) ; Debug.Trace("d2SA RESETS: " + Self + " " + isOpen) ; switch open state when activated SetOpen(!isOpen) if (doOnce) gotostate("done") endif endEVENT endState STATE busy ; This is the state when I'm busy animating EVENT onActivate (objectReference triggerRef) if bAllowInterrupt == TRUE ; send the activation\ SetOpen(!isOpen) else ; block activation trace (self + " Busy") endif endEVENT endSTATE STATE done EVENT onActivate (objectReference triggerRef) ;Do nothing endEVENT endSTATE function SetOpen(bool abOpen = true) ; if busy, wait to finish while getState() == "busy" wait(1) endWhile ; open/close if necessary isAnimating = true if abOpen && !isOpen gotoState ("busy") trace(self + " Opening") if bAllowInterrupt == TRUE || !Is3DLoaded() playAnimation(openAnim) ; Animate Open else playAnimationandWait(openAnim, openEvent) ; Animate Open endif trace(self + " Opened") if (zInvertCollision == FALSE) trace(self + " Disabling Collision") DisableLinkChain(TwoStateCollisionKeyword) MyThing1.Enable() else trace(self + " Enabling Collision") EnableLinkChain(TwoStateCollisionKeyword) MyThing1.Disable() endif isOpen = true gotoState("waiting") elseif !abOpen && isOpen gotoState ("busy") trace(self + " Closing") if bAllowInterrupt == TRUE || !Is3DLoaded() playAnimation(closeAnim) else playAnimationandWait(closeAnim, closeEvent) ; Animate Closed endif trace(self + " Closed") if (zInvertCollision == FALSE) trace(self + " Enabling Collision") EnableLinkChain(TwoStateCollisionKeyword) MyThing1.Disable() else trace(self + " Disabling Collision") DisableLinkChain(TwoStateCollisionKeyword) MyThing1.Enable() endif isOpen = false gotoState("waiting") endif isAnimating = false endFunction мне нужен просто дочерний скрипт, чтобы не влазить каждый раз в ванильные скрипты! ну не научился я ещё этому...до конца тему не понимаю....
  23. А я и Паскаля не знаю.... То что мне удалось прочитать ещё в школьные годы это маленькая брошюрка... И с папирусом так же как и у тебя... Ничего.... Вспомним потихоньку... А там и вернёмся к прошлому квесту, который 3 года назад делал... Только теперь, благодаря этой ситуации, я вижу в какую сторону копать....
×
×
  • Создать...