Azazellz Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 Цепляй свой скрипт, который будет включать\отключать твои водопады прямо к копью. В нем используй ивент OnActivate. Копье активируется скриптом, в скрипте копья срабатывает ивент, ивент включает\отключает водопады. Должно работать (если, конечно, этот ивент сработает - активация предмета скриптом может и не дать это сделать). P.s. если честно, ты все еще делаешь какую-то ерунду. Как я тут выше писал - пилишь дерево ради зубочистки.
CISCO.:i:..:i:. Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 14.09.2018 16:08:42, Azazellz сказал(-а):P.s. если честно, ты все еще делаешь какую-то ерунду. Как я тут выше писал - пилишь дерево ради зубочистки. ахах - это ты мне писал)) а щас серьёзно - можешь подсказать что дописать в двемерском скрипте баллиста - что бы после выстрела - балиста сразу перезарежалась - ну то есть совершала выстрелы каждый раз при активации. Скрипт; ;Dart Trap extending TrapBase ;integrated with the TrapTriggerBase ; ;================================================================ import debug import utility import custom int property shotCount = 3 auto {This property track the ammo that the ballista has, and starts with} ;int numShots = 20 ;might want to make this a property float fireRate = 0.1 float property initialDelay = 0.0 auto weapon property ballistaWeaponM auto weapon property ballistaWeaponL auto weapon property ballistaWeaponR auto bool property fireAllShots = True auto {if this is true all three shots will be fired at once} bool property isFiring auto hidden bool property isLoaded auto hidden bool property shotFired = false auto hidden bool property weaponResolved = false auto hidden Function initialize() endFunction Function ResetLimiter() shotFired = false ;shotCount is scoped outside of the OnActivate blocks. This will reset scopecount to 0, extending the firing time. EndFunction Function fireTrap() if !TrapDisarmed isFiring = True objectReference TrapSelf = self as objectReference if !weaponResolved ResolveLeveledWeapon() endif while !weaponResolved ;Do not fire till weapon is resolved endWhile ;TRACE("fireTrap called") WindupSound.play( self as ObjectReference) ;play windup sound wait( initialDelay ) ;wait for windup ; if (fireOnlyOnce == True) ;If this can be fired only once then disarm ; trapDisarmed = True ; endif while(shotcount > 0) && !shotfired && isLoaded if fireAllShots playAnimation("TriggerAll") ;fire all ballistaWeaponM.fire( TrapSelf, ballistaAmmo ) ;fire 01 ballistaWeaponL.fire( TrapSelf, ballistaAmmo ) ;fire 02 ballistaWeaponR.fire( TrapSelf, ballistaAmmo ) ;fire 03 shotcount -= 3 WaitForAnimationEvent("FTransAll") ;playAnimationAndWait("ResetAll","RTransAll") ;reset anim all else if shotCount == 3 playAnimation("Trigger01") ;fire anim 01 ballistaWeaponM.fire( TrapSelf, ballistaAmmo ) ;fire 01 shotcount -= 1 WaitForAnimationEvent("FTrans01") playAnimationAndWait("Reset01","RTrans01") ;reset anim 01 elseIf ShotCount == 2 playAnimation("Trigger02") ;fire anim 02 ballistaWeaponL.fire( TrapSelf, ballistaAmmo ) ;fire 02 shotcount -= 1 WaitForAnimationEvent("FTrans02") playAnimationAndWait("Reset02","RTrans02") ;reset anim 02 elseIf ShotCount == 1 playAnimation("Trigger03") ;fire anim 03 ballistaWeaponR.fire( TrapSelf, ballistaAmmo ) ;fire 03 shotcount -= 1 WaitForAnimationEvent("FTrans03") ;playAnimationAndWait("Reset03","RTrans03") ;reset anim 03 endIf endIf shotFired = True if (loop == TRUE) ;Reset Limiter resetLimiter() endif endWhile if isLoaded isFiring = false ;playAnimation("idle") goToState("Reset") endif endif endFunction State Reset Event OnBeginState() ;TRACE("State Reset") if shotcount > 0 ;shotCount = 3 GoToState ( "Idle" ) Else TrapDisarmed = True GoToState ("Disabled") endif endEvent Event OnActivate( objectReference activateRef ) ;TRACE("Reset trigger") EndEvent endState ;----------------------------------------------- int property LvlThreshold1 auto int property LvlThreshold2 auto int property LvlThreshold3 auto int property LvlThreshold4 auto int property LvlThreshold5 auto ammo property ballistaAmmo auto ammo property TrapDweBallistaBoltAmmo01 auto ammo property TrapDweBallistaBoltAmmo02 auto ammo property TrapDweBallistaBoltAmmo03 auto ammo property TrapDweBallistaBoltAmmo04 auto ammo property TrapDweBallistaBoltAmmo05 auto ammo property TrapDweBallistaBoltAmmo06 auto Function ResolveLeveledWeapon () ;Trace("ResolveLeveledWeapon") int damageLevel damageLevel = CalculateEncounterLevel(TrapLevel) ; weapon lvlWeaponM = LvlWeaponM1 ; weapon lvlWeaponL = LvlWeaponL1 ; weapon lvlWeaponR = LvlWeaponR1 Ammo LvlAmmo = TrapDweBallistaBoltAmmo01 if (damageLevel > LvlThreshold1 && damageLevel <= LvlThreshold2) ; lvlWeaponM = LvlWeaponM2 ; lvlWeaponL = LvlWeaponL2 ; lvlWeaponR = LvlWeaponR2 LvlAmmo = TrapDweBallistaBoltAmmo02 ;Trace("damage threshold =") ;Trace("2") endif if (damageLevel > LvlThreshold2 && damageLevel <= LvlThreshold3) ;lvlWeaponM = LvlWeapon3 LvlAmmo = TrapDweBallistaBoltAmmo03 ;Trace("damage threshold =") ;Trace("3") endif if (damageLevel > LvlThreshold3 && damageLevel <= LvlThreshold4) ;lvlWeaponM = LvlWeapon4 LvlAmmo = TrapDweBallistaBoltAmmo04 ;Trace("damage threshold =") ;Trace("4") endif if (damageLevel > LvlThreshold4 && damageLevel <= LvlThreshold5) ;lvlWeaponM = LvlWeapon5 LvlAmmo = TrapDweBallistaBoltAmmo05 ;Trace("damage threshold =") ;Trace("5") endif if (damageLevel > LvlThreshold5) ;lvlWeaponM = LvlWeapon6 LvlAmmo = TrapDweBallistaBoltAmmo06 ;Trace("damage threshold =") ;Trace("6") endif ; ballistaWeaponM = lvlWeaponM ; ballistaWeaponL = lvlWeaponL ; ballistaWeaponR = lvlWeaponR BallistaAmmo = LvlAmmo weaponResolved = True EndFunction event onLoad() isLoaded = TRUE if isFiring == True fireTrap() endif if shotCount == 3 playAnimationAndWait("Reset03","RTrans03") ;reset anim 01 elseIf ShotCount == 2 playAnimationAndWait("Reset01","RTrans01") ;reset anim 02 elseIf ShotCount == 1 playAnimationAndWait("Reset02","RTrans02") ;reset anim 02 endIf EndEvent event onUnload() ; debug.Trace(self + " has recieved onUnload event") isLoaded = TRUE endEvent
CISCO.:i:..:i:. Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 14.09.2018 06:34:21, Azazellz сказал(-а):Без шуток - в новом "платном моде" из КрейшнКлаба Кошмар кто то ещё моды продает - это всё ровно что кукурузой торговать прямо на колхозном поле - где собственно и росла та самая кукуруза.
Azazellz Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 (изменено) 14.09.2018 16:35:26, CISCO.:i:..:i:. сказал(-а):а щас серьёзно Используй кнопку "<>" (Код), ну ё-моё. Сам то в такой портянке разбираться хочешь? Нет? Вот и я не буду. Изменено 14 сентября, 2018 пользователем Azazellz
CISCO.:i:..:i:. Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 (изменено) 14.09.2018 17:45:25, Azazellz сказал(-а):Сам то в такой портянке разбираться хочешь? Нет? Вот и я не буду. Согласен портянка - я просто ни фига не понимаю что там и к чему - знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V из них собираю то что в конечном итоге скомпелируется)))) после скажем так 100 попыток. Изменено 14 сентября, 2018 пользователем CISCO.:i:..:i:.
stanislavd Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 (изменено) если бы это было так просто, я бы не писал здесь... не работает это! 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 Изменено 14 сентября, 2018 пользователем stanislavd
stanislavd Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 14.09.2018 18:18:01, CISCO.:i:..:i:. сказал(-а): Согласен портянка - я просто ни фига не понимаю что там и к чему - знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V из них собираю то в конечном итоге скомпелируется)))) после скажем так 100 попыток. а я хоть как то эти портянки читаю))
Azazellz Опубликовано 14 сентября, 2018 Опубликовано 14 сентября, 2018 14.09.2018 18:18:01, CISCO.:i:..:i:. сказал(-а):Согласен портянка - я просто ни фига не понимаю что там и к чему Когда код хоть немного структурирован - его намного легче читать. Привыкай хоть какой-то порядок в скриптах держать. Я могу в нем разобраться, но это займет много времени, и мне тупо некогда это делать. 14.09.2018 18:18:01, CISCO.:i:..:i:. сказал(-а):знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V из них собираю то что в конечном итоге скомпелируется)))) после скажем так 100 попыток. Тут главное не просто бездумно копировать-вставить, а еще и стараться разобраться, какая строчка и буква за что в итоге отвечает. Я тоже так начинал. 14.09.2018 19:16:27, stanislavd сказал(-а):если бы это было так просто, я бы не писал здесь... не работает это! Ну, видать ивент с такой активации не работает. Не судьба =) Но рекомендую сначала упростить скрипт до минимума - убрать оттуда все условия if и bool. Чтоб сразу наглядно было, что к чему.
stanislavd Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 14.09.2018 20:33:54, Azazellz сказал(-а): Ну, видать ивент с такой активации не работает. Не судьба =) Но рекомендую сначала упростить скрипт до минимума - убрать оттуда все условия if и bool. Чтоб сразу наглядно было, что к чему.ты читал о материнских и дочерних скриптах?? ты читал об материнских и дочерних скриптах? о том что можно использовать функцию из материнского скрипта дочерним?.. просто это правилильно надо прописать... вот например скрипт рычага по отношению к скрипту пики является материнским, и передается её значение в скрипт пики, а там уже запускается програмка относительно этой функции... и вешая скрипт вкл/выкл вещи на рычаг ты также используешь эту функцию! но когда у тебя в разрыве стоит трамплинкер ета функция теряется! т.к. в моём случае, трамплинкер служит передаточным звеном... поэтому я и пытаюсь, либо сделать подмену пики, либо вынуть функцию из скрипта пики... и если это получится, то то откроются большие возможности для сборки квестов! квестовых локаций!... и будет не просто: меня обидел тот придурок, отнял вещь, пойди вломи ему и отними эту вещь, а я тебя вознагражу... а будет попробуй доберись до него! у меня сейчас простаивают 5 линеек квестов из-за этого... из-за реализации передачи функции на статический предмет...
Azazellz Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 (изменено) Ну так напиши уже свой скрипт, ё-моё.Тупо - 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 Изменено 15 сентября, 2018 пользователем Azazellz
stanislavd Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 15.09.2018 08:22:47, Azazellz сказал(-а): Ну так напиши уже свой скрипт, ё-моё. Тупо - 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
stanislavd Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 мне же надо, что бы не просто отключались водопады, а чтобы выполнялось после этого действие! водопады - лампочки подбора кода!))) ты же весь мой квест не знаешь!... это первая часть квеста.. открыть проход, а вторая часть там свои заморочки.. вот мне и надо сделать скрипт связи... чтобы я туда кучу вещей мог подключить... новые условия прописать!... а не просто вкл/выкл водопадов!..
Azazellz Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 (изменено) 15.09.2018 10:54:00, stanislavd сказал(-а):ты же весь мой квест не знаешь!..Естестевенно, ведь ты так нифига про него и не рассказал.Пики, траплинкеры, водопады, куча вещей... А суть, что надо сделать и что в итоге получить - так и не сказал.Сильно секретно, видать.Ну, раз секретно - разбирайся сам.Скрипт вон есть, сделай копию, правь ее как тебе угодно - хоть водопады туда впихивай, хоть лампочки, и привязывай ее куда там тебе захочется.Ибо скрипт лишь чуть-чуть сложнее того, что я тебе сбрасывал до этого. Добавлена защита от дурака, все сведено в один скрипт, а заодно и в конце добавлена функция на проверку открытых пик, которая вызывается каждый раз, как ты дергаешь рычаги.Другими словами - скрипта, который отдельно сидел бы и мониторил состояние пик - нет. Все тут. Изменено 15 сентября, 2018 пользователем Azazellz
stanislavd Опубликовано 15 сентября, 2018 Опубликовано 15 сентября, 2018 (изменено) Вообще то я сразу сформулировал задание! что мне надо привязать к пике водопад! и то что вместо него началась демагогия, это твоя проблема, которая мешает решению моей задачи! я давно проанализировал, решил что нужно и сформулировал что именно нужно сделать! и я не тупо копирую тексты в скрипты, а нахожу нужные строчки и нужные места!!! ну не совсем я разобрался, как нужно прописывать в разные функции и связи с другими скриптами... вот и ищу как это сделать на подобных примерах! Изменено 15 сентября, 2018 пользователем stanislavd
stanislavd Опубликовано 16 сентября, 2018 Опубликовано 16 сентября, 2018 Азазель, в следующий раз читай внимательно людей! я писал: давно не занимался этим и мне надо вспомнить... есть квест в локации хармугстал с 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
CISCO.:i:..:i:. Опубликовано 16 сентября, 2018 Опубликовано 16 сентября, 2018 (изменено) 16.09.2018 07:00:44, stanislavd сказал(-а):Азазель, в следующий раз читай внимательно людей! Друг тебе тут - никто ни чего не обещал! Ведешь себя так будто все тебе должны - хотя бы свои портянки скрывал под спойлер - но нет - ты же звезда и твои проблемы важнее всех. Изменено 16 сентября, 2018 пользователем CISCO.:i:..:i:.
Azazellz Опубликовано 16 сентября, 2018 Опубликовано 16 сентября, 2018 16.09.2018 16:18:06, CISCO.:i:..:i:. сказал(-а):хотя бы свои портянки скрывал под спойлер Ну, он хотя бы код проставил - уже неплохо =) Самое главное - он вроде как смог разобраться, что там в скрипте надо поменять, чтоб вместо пик - водопады активировались.
stanislavd Опубликовано 16 сентября, 2018 Опубликовано 16 сентября, 2018 16.09.2018 16:18:06, CISCO.:i:..:i:. сказал(-а): Друг тебе тут - никто ни чего не обещал! Ведешь себя так будто все тебе должны - хотя бы свои портянки скрывал под спойлер - но нет - ты же звезда и твои проблемы важнее всех. друг! дело не в звезде! когда ты задаешь вопрос, и у тебя убивают время, приходя к тому же вопросу, что ты сформулировал в самом начале....
CISCO.:i:..:i:. Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 (изменено) Доброго времени суток Azazellz) - сразу к тебе - так как только ты оперативен. написал скрипт - он работает без проблем: СкриптScriptname _0000_HMD_TEST11111111111111111111111 extends ObjectReference Message property FailMessage auto Miscobject property ClawToPlace auto ObjectReference property Object_Activate_01 auto ObjectReference property Object_Activate_02 auto ObjectReference Property Object_Enable_01 Auto ObjectReference Property Object_Enable_02 Auto ObjectReference Property Object_Disable_01 Auto ObjectReference Property Object_Disable_02 Auto ObjectReference property Animation_Object_Open auto function onActivate(objectReference actronaut) if actronaut.getItemCount(ClawToPlace as form) >= 3 Object_activate_01.activate(actronaut) Object_activate_02.activate(actronaut) Object_Enable_01.enable() Object_Enable_02.enable() Object_Disable_01.disable() Object_Disable_02.disable() Animation_Object_Open.playAnimation("Open") else FailMessage.show(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) endIf endFunction Но есть одно но. Строка функции Object_activate_02.activate(actronaut) добавлена от безысходности. мне нужно что бы эта строка функции вызывала активацию анимации открытия или закрытия двери у большого сейфа - но этого не происходит. Добиться нужного эффекта получается лишь когда я привязываю в Properties к Object_activate_02 - другой триггер активатор - а вот уже к нему через Activate Parents привязываю большой сейф и дверь сейфа открывается или закрывается в зависимости от положения. Так вот - что мне прописать вместо Object_activate_02.activate(actronaut) что бы убрать промежуточное звено? Изменено 21 сентября, 2018 пользователем CISCO.:i:..:i:.
werr Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 Тебе не обязательно вводить такую конструкцию. Просто открой/закрой дверь командой SetOpen(). А текущее состояние, открыт ObjectReference или закрыт, ты можешь проверять например локальным проперти типа bool. A Random Dude's Story
CISCO.:i:..:i:. Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 21.09.2018 08:03:40, werr сказал(-а):Просто открой/закрой дверь командой SetOpen() Спасибо за подсказку - помогло - но увы лишь но половину - только открывает - закрывать не хочет - даже написал скрипт простейший - но и он работает только на открытие. ObjectReference property Object_Animation Auto Function onActivate (objectReference actronaut) Object_Animation.SetOpen() endFunction Лама я коматозная - ведь точно что то не понял, но вот что ума не приложу. (голова не варит вторые сутки не сплю)
Azazellz Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 Так этот SetOpen - он по умолчанию для открытия чего-нибудь работает. Чтоб это "чего нибудь" закрыть - надо SetOpen(false) использовать.
CISCO.:i:..:i:. Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 21.09.2018 09:59:56, Azazellz сказал(-а):Чтоб это "чего нибудь" закрыть - надо SetOpen(false) использовать Да - теперь то понятно - нужно было поспать просто) помнишь ты мне писал про добавление магического эффекта (хороший отдых) PlayerRef.AddSpell(GoodRestSpell) - так вот тогда я при проверке не обратил внимание на один нюанс а именно: если ты перед тем как использовать этот скрипт - предварительно поспал - то эффект хороший отдых плюсуется к эффекту отдых от кровати - что нужно сделать что бы он не плюсовался а заменял эффект полученный от кровати а так же эффект Объятия любви и прочие?
Azazellz Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 (изменено) Хм. Ну, вводишь несколько проверок "если у игрока есть определенный спелл - он удаляется". И так по всему списку. HasSpell, RemoveSpell, и все в таком духе. На СК вики смотри подробный синтаксис. Изменено 21 сентября, 2018 пользователем Azazellz
CISCO.:i:..:i:. Опубликовано 21 сентября, 2018 Опубликовано 21 сентября, 2018 21.09.2018 20:00:25, Azazellz сказал(-а):На СК вики смотри подробный синтаксис. спасибо - поищу
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти