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

Рекомендуемые сообщения

Опубликовано

Цепляй свой скрипт, который будет включать\отключать твои водопады прямо к копью.

В нем используй ивент OnActivate.

Копье активируется скриптом, в скрипте копья срабатывает ивент, ивент включает\отключает водопады.

Должно работать (если, конечно, этот ивент сработает - активация предмета скриптом может и не дать это сделать).

 

P.s. если честно, ты все еще делаешь какую-то ерунду. Как я тут выше писал - пилишь дерево ради зубочистки.

  • Ответов 840
  • Создана
  • Последний ответ

Топ авторов темы

Опубликовано
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
Опубликовано
14.09.2018 06:34:21, Azazellz сказал(-а):
Без шуток - в новом "платном моде" из КрейшнКлаба

Кошмар кто то ещё моды продает - это всё ровно что кукурузой торговать прямо на колхозном поле - где собственно и росла та самая кукуруза.

Опубликовано (изменено)
14.09.2018 16:35:26, CISCO.:i:..:i:. сказал(-а):
а щас серьёзно

Используй кнопку "<>" (Код), ну ё-моё.

Сам то в такой портянке разбираться хочешь? Нет? Вот и я не буду.

Изменено пользователем Azazellz
Опубликовано (изменено)
14.09.2018 17:45:25, Azazellz сказал(-а):
Сам то в такой портянке разбираться хочешь? Нет? Вот и я не буду.

Согласен портянка - я просто ни фига не понимаю что там и к чему  - знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V  из них собираю то что в конечном итоге скомпелируется)))) после скажем так 100 попыток.

Изменено пользователем CISCO.:i:..:i:.
Опубликовано (изменено)

если бы это было так просто, я бы не писал здесь... не работает это!

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.09.2018 18:18:01, CISCO.:i:..:i:. сказал(-а):

Согласен портянка - я просто ни фига не понимаю что там и к чему  - знаешь как я скрипты пишу? беру несколько скриптов - и методом Ctrl+C - Ctrl+V  из них собираю то в конечном итоге скомпелируется)))) после скажем так 100 попыток.

 

а я хоть как то эти портянки читаю))

Опубликовано
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. Чтоб сразу наглядно было, что к чему.

Опубликовано
14.09.2018 20:33:54, Azazellz сказал(-а):

Ну, видать ивент с такой активации не работает.

Не судьба =)

Но рекомендую сначала упростить скрипт до минимума - убрать оттуда все условия if и bool. Чтоб сразу наглядно было, что к чему.ты читал о материнских и дочерних скриптах??

ты читал об материнских и дочерних скриптах? о том что можно использовать функцию из материнского скрипта дочерним?.. просто это правилильно надо прописать... 

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

и вешая скрипт вкл/выкл вещи на рычаг ты также используешь эту функцию! но когда у тебя в разрыве стоит трамплинкер ета функция теряется! т.к. в моём случае, трамплинкер служит передаточным звеном... поэтому я и пытаюсь, либо сделать подмену пики, либо вынуть функцию из скрипта пики... и если это получится, то то откроются большие возможности для сборки квестов! квестовых локаций!... и будет не просто: меня обидел тот придурок, отнял вещь, пойди вломи ему и отними эту вещь, а я тебя вознагражу... а будет попробуй доберись до него!

у меня сейчас простаивают 5 линеек квестов из-за этого... из-за реализации передачи функции на статический предмет...

Опубликовано (изменено)
Ну так напиши уже свой скрипт, ё-моё.
Тупо - 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.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



Опубликовано

мне же надо, что бы не просто отключались водопады, а чтобы выполнялось после этого действие! водопады - лампочки подбора кода!))) 

ты же весь мой квест не знаешь!... это первая часть квеста.. открыть проход, а вторая часть там свои заморочки.. вот мне и надо сделать скрипт связи... чтобы я туда кучу вещей мог подключить...  новые условия прописать!... а не просто вкл/выкл водопадов!..

Опубликовано (изменено)
15.09.2018 10:54:00, stanislavd сказал(-а):

ты же весь мой квест не знаешь!..

Естестевенно, ведь ты так нифига про него и не рассказал.
Пики, траплинкеры, водопады, куча вещей... А суть, что надо сделать и что в итоге получить - так и не сказал.
Сильно секретно, видать.

Ну, раз секретно - разбирайся сам.
Скрипт вон есть, сделай копию, правь ее как тебе угодно - хоть водопады туда впихивай, хоть лампочки, и привязывай ее куда там тебе захочется.
Ибо скрипт лишь чуть-чуть сложнее того, что я тебе сбрасывал до этого. Добавлена защита от дурака, все сведено в один скрипт, а заодно и в конце добавлена функция на проверку открытых пик, которая вызывается каждый раз, как ты дергаешь рычаги.
Другими словами - скрипта, который отдельно сидел бы и мониторил состояние пик - нет. Все тут. Изменено пользователем Azazellz
Опубликовано (изменено)

Вообще то я сразу сформулировал задание! что мне надо привязать к пике водопад! и то что вместо него началась демагогия, это твоя проблема, которая мешает решению моей задачи! я давно проанализировал, решил что нужно и сформулировал что именно нужно сделать!  и я не тупо копирую тексты в скрипты, а нахожу нужные строчки и нужные места!!! ну не совсем я разобрался, как нужно прописывать в разные функции и связи с другими скриптами... вот и ищу как это сделать на подобных примерах!

Изменено пользователем stanislavd
Опубликовано

Азазель, в следующий раз читай внимательно людей! 

я писал: давно не занимался этим и мне надо вспомнить... есть квест в локации хармугстал с 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


Опубликовано (изменено)
16.09.2018 07:00:44, stanislavd сказал(-а):
Азазель, в следующий раз читай внимательно людей! 

Друг тебе тут - никто ни чего не обещал!  Ведешь себя так будто все тебе должны - хотя бы свои портянки скрывал под спойлер - но нет - ты же звезда и твои проблемы важнее всех.

Изменено пользователем CISCO.:i:..:i:.
Опубликовано
16.09.2018 16:18:06, CISCO.:i:..:i:. сказал(-а):
хотя бы свои портянки скрывал под спойлер

Ну, он хотя бы код проставил - уже неплохо =)

 

Самое главное - он вроде как смог разобраться, что там в скрипте надо поменять, чтоб вместо пик - водопады активировались.

Опубликовано
16.09.2018 16:18:06, CISCO.:i:..:i:. сказал(-а):

Друг тебе тут - никто ни чего не обещал!  Ведешь себя так будто все тебе должны - хотя бы свои портянки скрывал под спойлер - но нет - ты же звезда и твои проблемы важнее всех.

друг! дело не в звезде! когда ты задаешь вопрос, и у тебя убивают время, приходя к тому же вопросу, что ты сформулировал в самом начале.... 

Опубликовано (изменено)

Доброго времени суток 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) что бы убрать промежуточное звено?

Изменено пользователем CISCO.:i:..:i:.
Опубликовано
Тебе не обязательно вводить такую конструкцию.

Просто открой/закрой дверь командой SetOpen(). А текущее состояние, открыт ObjectReference или закрыт, ты можешь проверять например локальным проперти типа bool.
Опубликовано
21.09.2018 08:03:40, werr сказал(-а):
Просто открой/закрой дверь командой SetOpen()

Спасибо за подсказку - помогло - но увы лишь но половину - только открывает - закрывать не хочет - даже написал скрипт простейший - но и он работает только на открытие. ObjectReference property Object_Animation Auto

Function onActivate (objectReference actronaut)

Object_Animation.SetOpen()

endFunction

Лама я коматозная - ведь точно что то не понял, но вот что ума не приложу. (голова не варит вторые сутки не сплю)

Опубликовано
21.09.2018 09:59:56, Azazellz сказал(-а):
Чтоб это "чего нибудь" закрыть - надо SetOpen(false) использовать

Да - теперь то понятно - нужно было поспать просто) 

помнишь ты мне писал про добавление магического эффекта (хороший отдых) PlayerRef.AddSpell(GoodRestSpell) - так вот тогда я при проверке не обратил внимание на один нюанс а именно: если ты перед тем как использовать этот скрипт - предварительно поспал - то эффект хороший отдых плюсуется к эффекту отдых от кровати - что нужно сделать что бы он не плюсовался а заменял эффект полученный от кровати а так же эффект Объятия любви и прочие?

Опубликовано (изменено)

Хм.

Ну, вводишь несколько проверок "если у игрока есть определенный спелл - он удаляется".

И так по всему списку.

HasSpell, RemoveSpell, и все в таком духе. На СК вики смотри подробный синтаксис.

Изменено пользователем Azazellz

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...