Как писать скрипты в space engineers
Перейти к содержимому

Как писать скрипты в space engineers

  • автор:

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? ⁠ ⁠

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

«Если вы хотите использовать нейросеть для получения помощи в написании кода на C# для Space Engineers, то необходимо учитывать ряд факторов, чтобы задать правильный вопрос нейросети.

Так начинается ответ на этот вопрос, о нейросети ChatGPT. Наверное, вы уже догадались, что речь пойдет о ней, хотя, возможно, вы никогда не слышали о ней. Я не буду вдаваться в подробности о том, что такое нейросеть. В статье речь пойдет о конкретных примерах использования на практике для решения простых или узкоспециализированных задач. Все, конечно, зависит от вашей фантазии и навыков. Я не умею писать на C#, но я немного понимаю Python и работаю с SQL-базами данных, поэтому некоторые операторы (функции работы), например if/else, мне понятны.

Давайте же начнем. Для начала найдем рабочую версию чата. Если у вас есть доступ к оригинальному сайту, вам повезло. Я же попробовал несколько телеграмм-ботов. Вы можете их найти через поисковик или внутри самого Телеграмм по названию. После того как вы нашли подходящую для вас систему, можете попробовать написать запрос. Я начал с такого: «Привет. Что ты знаешь об Space Engeeners?». Бот ответил, что это игра — песочница, и другую информацию из Вики. Мне показалось, что бота нужно постепенно вводить в контекст моего запроса, чтобы он лучше меня понял. Я продолжил и узнал у него о «Программируемом блоке». На что он дал ответ о подобных блоках в реальной жизни для сборки электроники. «Ага, недостаточный контекст» — подумал я. Задал вопрос снова, но написал уже «Programmable block» в Space Engeneers. Бот услужливо ответил, что он знает такой блок, из какой игры, и что код для этого блока пишется на C#. Вот тут я понял, что нащупал что-то интересное.»

Основная часть.

Я написал боту: «Напиши пример кода, чтобы вывести текст на дисплей, который имеет в названии D1». Подумав 10-15 секунд, бот ответил. Моему восторгу не было предела, когда я понял, что он не только написал мне готовый код, но и описал его работу.

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

«Вау! Да это же примитивный «Hello world»! Интересно, заработает ли он в игре. Срочно бежим туда! Ставим программируемый блок, ставим дисплей, даем нужное название дисплею. Здесь стало ясно, что бот меня понял неверно и он ищет дисплей с названием D1, а не с D1 в названии этого дисплея. Ладно, для первого раза это не проблема. Переименовываем дисплей, включаем отображение текста, затем копируем код в программный блок и запускаем проверку. И. Облом, сплошные ошибки.»

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

«Я уже был расстроен, пока внимательно не прочитал текст: «Обратите внимание, что этот код должен быть помещен в метод Main для выполнения в Programmable Block. Также убедитесь, что у вас есть блок дисплея с именем «D1″ на корабле или станции». Так, дисплей есть, а вот Main в тексте кода я не вижу. Пишу боту: «Поместите код выше в метод Main». Снова 5-10 секунд ожидания и ответ был такой:»

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

«Копируем, запускаем проверку: компиляция завершена успешно. «Ага!» — воскликнул я! Тут же в мою кровь выплеснулся адреналин от азарта. Нажимаю кнопку «Выполнить», и на моем экране D1 появляется заветное «Hello world».»

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

«Моему восторгу не было предела! Работает, собака! Мысли заметались в голове, и я понял, что бот понимает, как работать с кодом, и знает, как найти конкретный блок именно в игре. То есть он понимает внутреннюю систему. Срочно еще один тест!»

Та часть, где все пошло не по плану.

«Давай найдем. эммм. Все батареи на структуре, на которой установлен программируемый блок, выведем название этих батарей, максимальную емкость, текущую емкость и выведем построчно в дисплей [D1]» — такое задание появилось у меня в голове, но нужно было сформировать это в понятный список целей.

1. Найди все блоки батарей на структуре, на которой установлен programmable block.

2. Вычисли максимальную емкость каждого блока батарей в ваттах, текущую емкость в ваттах.

3. Выведи на дисплей [D1] для каждой новой строки: Название каждого блока батареи, его максимальную емкость, его текущую емкость.

4. Обновляй информацию о батареях каждые 5 секунд.

Вот, уже понятнее. Запускаем!

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Уже наученный опытом, я вижу что отсутствует метод Main. Указываю боту на ошибку.

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Отлично, копируем, вставляем, проверяем на ошибки.

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

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

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Ого, он понимает что допустил ошибку именно для этой среды. Ладно, пробуем запустить этот код!

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Опять ошибка, уже другая. Но мы уже знаем что делать! К сожалению я допустил ошибку в слове «type».

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Копирую, запускаю и тут заветная надпись: «Компиляция завершена успешно!» УРА! Запускаю выполнение кода, а программируемый блок пишет что код для него слишком сложный.

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Тут моя радость перешла в грусть и обиду. Казалось я почти на пороге открытия (для себя). Ничего не работает! Зачем я пишу эту статью? Надо передохнуть.

Та часть, где все снова стало солнечно.

Выпив чаю, да, закусив французской булкой я вернулся к боту и написал: «Привет. Space Engeneers. Programmable block». Бот ответил, что готов мне помочь. Так, запишем что мне нужно, при этом немного поменяю запрос:

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Копирую, проверяю опять ошибка! Указываем на ошибку боту и запускаем снова. Компиляция — ОК! Выполнение — ОК!

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

УРА! ПОБЕДА! Код выполняет функцию! Правда показывает мегаватты, а пишет что ватты. Но тут моя ошибка, ошибся когда, писал задание. Главное — функцию свою выполняет и проверяет самостоятельно наличие новых батарей. Поставил дополнительную батарею (Батарея 4) рядом. Останется только причесать инфу на дисплее, что бы глаз радовался.

Как написать свой первый скрипт для игры Space Engeeners, если никогда не занимался программированием? Программирование, ChatGPT, Csharp, Space Engineers, Игры, Длиннопост

Заключение.

Естественно ChatGPT это не панацея. Настоящие знания ничем не заменить, и при создании запроса приходится сталкиваться с глупыми ошибками как при постановке задачи, так и внутри кода. И здесь эти ошибки присутствуют. Плюс нейросеть при любом новом обращении может дать совершенно другой ответ, или попытаться использовать стороннюю библиотеку, что не поддерживается в Space Engeeners. Использовать такой код, написанный нейросетью, в работе, на сложных проектах я бы не советовал. В игре — почему бы и нет. Это закроет минимальные задачи, а может сподвигнет изучать язык самому. Я не кодер, да и строю я откровенные табуретки, но стало интересно, и я загорелся идеей попробовать написать код для игры таким образом. Я уверен что, ваш код будет куда лучше и интереснее, будет выполнять уйму разных полезных и нужных вам функций. Главное правильно ставьте задачу, а лучше учите язык!

Спасибо за внимание, и желаю вам классных приключений в игре!

11 месяцев назад

Класс! Буквально сегодня тестил на ардуинке, работает!

Так же просто превосходно работает с трудными формулами в Эксель.

Отлично пишет базовые запросы в sql. Но с ними такое дело, сложный запрос легче написать самостоятельно, чем описать нейросети что нужно конкретно достать 🙂 зато, кстати, чатгпт достаточно понятно может объяснить про шардирование и индексы

Молодец! Классная статья!

раскрыть ветку
6 месяцев назад

На странице магазина стима в последнем видео есть фрагмент, где поршни со сварщиками туды-сюды двигаются вокруг конструкции которую возводят, как перфораторы. Помогите со скриптом(( Я в целом не совсем соображаю как такое организовать.

раскрыть ветку
Похожие посты
3 месяца назад

Как нейросети постепенно засрут интернет (а точнее уже засрали)⁠ ⁠

Год назад я наткнулся на статью, которая предсказывала деградацию нейросетей и автор приводил интересную теорию:

● Нейросети обучаются на контенте из интернета, который по большей части делает человек.

● Качество итоговой работы нейросети на данный момент ниже, чем оригинальный контент живого автора. Логические и смысловые ошибки, а так же некое «отсутствие души».

● Несмотря на это, нейросети массово используют для создания контента. Растет количество некачественных материалов в интернете и нейросеть начинает брать эти данные для обучения.

● Из-за общего снижения качества «скармливаемой» информации, нейросеть начинает тупить, все чаще повторяя свои же ошибки и неточности.

Вот недавно я решил поиграть в Kenshi, вспомнить лор и почитать информацию о фракциях. И первая же статья которую мне выдает поиск Яндекса выглядит так:

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ Я может быть какое то обновление пропустил, но про «Сеть» в Кенши не слыхал

Увидев этот странный текст, я из интереса перешел по ссылке, а там безумие в чистом виде!

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ Даже в Kenshi есть свой филиал «Без баб»

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ А как вам такое? Холодные осадки в Kenshi осознали себя и из погодных условий превратились во фракцию

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ А Шеки решили позабыть свой культ битвы и стать торговцами тех-охотниками

Для тех кто еще не понял — эта статья написана нейросетями!

Написана убого, коряво, без намека на логику, но с нужными SEO элементами — тот самый информационный мусор. А самое забавное, что мусор вынесен на первую позицию поисковой выдачи Яндекса. Да что там, 5 из 15 ссылок на первой странице поиска вели на такие же плоды нейросетей разной степени бредовости.

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

Какая задача у информационного контента в 21 веке? Решить проблему пользователя? Нет — привлечь трафик и желательно здесь и сейчас, ведь трафик это деньги. Поэтому количество такого контента будет расти в геометрической прогрессии.

Масштаб проблемы и как она будет решаться в будущем?

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

● Для самих нейросетей встает вопрос обучения. Chat-GPT потребляет информацию из интернета и недавно с него сняли ограничения 2021 года (все что вышло позже этой даты нейросеть не учитывала). Если на системном уровне не будет фильтра, то в обозримом будущем качество ответов заметно упадет, ведь они будут составляться на основе ошибочных материалов созданных нейросетью до этого.

● Google, Яндекс и другие поисковики в какой то момент столкнутся с недоверием аудитории, ведь перестанут решать основную задачу пользователя — поиск полезной информации. Пока что их инструменты оценки качества контента слишком примитивны, что доказывает пример приведенный в начале статьи (1/3 выдачи поиска загажена мусором нейросетей). Единственный возможный критерий отбора доступный в данной ситуации — отдавать приоритет оригинальным статьям от живого автора.

А что в итоге?

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

Ждем, когда техно-жрецы найдут решение этой проблемы и оно вскроет еще десяток других. А пока подписывайся на мой гоблинский блог — тут много интересного про разработку игр и нейросети.

P.S. По поводу моего месячного отсутствия. Несмотря на навалившийся ворох дел — я не забрасывал изучение инструментов для разработки игр. Просто написание статьей не вписывалось в мое плотное расписание. В ближайшие пару недель постараюсь выложить новую статью про Godot.

ВСЕМ WAAAGH!

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

Показать полностью 5
4 месяца назад

Как нейронка за меня таблицы считала (живой пример)⁠ ⁠

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

Казалось бы обычный кликбейт в стиле «100 нейросетей для улучшения дикпиков» или «50 новых убийц чат-гпт”. Но нет.

Я работаю маркетологом, и помимо того что мне разрешают сидеть рядом с настоящими айтишниками и програмистами, мне иногда дают задачки по обработке данных. Но не тех данных, для которых нужно иметь 3 сертификата по ML и бигдате, а обычные задачки по экселю, которые встречаются у каждого из нас, практически вне зависимости от профессии. Если вы тот самый “опытный пользователь ПК”, скорее всего вы копаетесь в экселе по рабочим нуждам, и обычная задачка со сводной табличкой из-за отсутствия опыта может растянуться на 6 рабочих часов с перекурами. Большинство таких задач довольно однотипные, и более опытный коллега сделает их в 10 раз быстрее, просто потому что он уже на них собаку съел. Но задачка упала вам. Что бы не проваливаться в кроличью нору запросов в гугле про работу экселевских формул, откроем классический chatGPT 3.5.

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

Давайте более конкретно.

Представим что вы работаете с контекстом. У вас есть файл в котором содержится 20.000 поисковых фраз, визиты, посетители, отказы, глубина просмотров и время на сайте.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Файл может и реальный, а может и нет. Да какая разница, мы тут не за этим.

Ваша задача довольно простая —

  • Прочекать все поисковые фразы с >20% отказностью;
  • Вычленить из них все наиболее повторяющиеся фразы, посчитать их повторы
  • Вычленить из них все наиболее повторяющиеся слова, посчитать их повторы
  • Выстроить в порядке убывания слова и фразы от большей отказности к меньшей

Часть первая — простая (кто хочет сразу про питон — го во вторую часть)

Первый вариант работы довольно очевидный — мы просим нейросеть (в данном случае обыкновенный чат-гпт) решить нашу задачу через формулы экселя. Для этого просто пишем в чат нашу таску.

Привет! У меня есть задачка. Есть таблица из 20000 строк. Столбцы этой таблицы — «Поисковая фраза (Директ), Визиты, Посетители, Отказы, Глубина просмотра, Время на сайте». Вторая строчка «Итого и среднее» содержит суммы с средние значения моих данных. Потом идет 19.998 строк с данными. Визиты и посетители — целые числа, отказы — в процентах, глубина просмотрах в десятичных числах с тремя знаками после запятой, время формата ЧЧ:ММ:СС.

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

Далее когда нейросеть понимает что у нас за файл, можно ее просить помочь с формулами.

Напиши мне формулу, которая найдет все фразы с отказностью более 20% и добавит их на новый лист в отдельную колонку. Эксель у меня воспринимает англоязычные формулы. (про язык стоит добавлять, а лучше сразу версию указывать, что бы не было ошибок из-за разницы версий)

Нейросеть выдает нужную формулу, с описанием ее работы —

=IF(«Отчет’!D2 > 0.2, ‘Отчет’!A2 & » (» & TEXT(‘Отчет’!D2*100, «0.00%») & «)», »»)

«Эта формула проверяет, если значение отказов в ячейке D2 (на листе «Отчет»)

больше 20% (0.2 в десятичной форме), и если это условие выполняется,

она объединяет значение в столбце »Поисковая фраза (Директ)» с

отображением отказов в скобках с процентами.

В противном случае, она возвращает пустую строку.”

К сожалению в формуле есть косяк, который мы видим после пробного запуска — она не содержит разделителя для формулы (;). Спросим об этом нейросеть.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Это я в скриншотах такой борзый, обычно я пишу приличнее.

Итогом этой формулы являются опять косячные данные —

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Видим что он зачем то умножает наши проценты на 100. Исправляем формулу руками до вида (убираем «*100» из формулы) —

и получаем приемлемый результат.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Мне не нравится что у меня проценты и фраза в одной ячейке, спрошу нейросеть как это исправить, и убрать пустые строки.

Он предлагает сначала скопировать все фразы на новый лист, потом выполнить следующие действия.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Подробное описание всех необходимых действий

По итогу мы получим новый лист с фразами где отказы более 20%.

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

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

Но я собрал вас тут не для этого.

Вот бы был способ, что бы не надо было писать, протягивать формулы, самому фильтровать, вставлять, копировать данные и т. д.

Можно попросить написать макрос для экселя, который сделает за нас все самостоятельно, включая создание листов и т. д.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Пример ответа на нашу первоначальную задачку, но с просьбой использовать макросы экселя.

Но мне этот способ не очень нравится, как я ничего не понимаю в VBA, и как то у меня с макросами не срослось. Но если вы в них хоть немного шарите — это может сэкономить вам годы (ну ладно, может не годы, но дни точно) жизни.

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

Я категорически рекомендую всем кто хоть иногда работает с данными освоить самые азы питона (не читая толстенные книжки типа о-райли и прочих, а просто пройдя какой нибудь скидочный курс в любой онлайн-школе) . Но это не обязательно для решения наших задач.

Что нам позволяет делать нейросеть? Писать любой простой код на любом языке программирования, даже если мы в нем ничего не понимаем.

Начнем по порядку, что нам нужно сделать что бы затея сработала?

Для работы с питоном, его (а точнее его интерпретатор) необходимо поставить на свой пк (без этого к сожалению никак). Я использую PyCharm от компании Jetbrains (хотя пофигу что использовать, главное что бы он работал). Инструкция по установке находится в первой ссылке поискового ответа — https://pythonru.com/baza-znanij/poshagovaja-ustanovka-pycha. . Если хочется не отходить от нейросетей — можно спросить у нее, как пошагово установить PyCharm, он подробно расскажет.

Перенесемся сразу в момент когда у нас установлен PyCharm, и мы начали новый проект.

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

Как это выглядит.

Практически идентично тем запросам, которые мы отправляли в нейросеть ранее, но просто добавляем в конец просьбу “напиши решение на питоне”. Ну и говорим ему как называется наш файл, и где он лежит (что бы питон смог с ним работать напрямую) .

Вот пример ответа на мой прошлый запрос для экселя, но я попросил его написать код на питоне:

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Чуть редактируем код, меняя 20 на 0.20, потому что данные о процентах у нас меньше единицы всегда.

Вставляем код в PyCharm, и получаем сразу новый готовый файл в папке с нашим проектом.

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Да, задача решалась просто и через эксель. Но так тоже работает.

На решение этой задачки ушло минуты 3. Из которых две — на открытие программы и написание запроса. Результат ок, идем дальше.

Далее просим нейросеть перейти ко второй задачке —

  • Вычленить из полученных запросов все наиболее повторяющиеся фразы, посчитать их повторы”. (более полный запрос будет чуть ниже)

Далее нам нейросеть пишет код посложнее, со всякими сторонними библиотеками и т. д. Я не стал постить сюда этот код, думаю он мало что скажет. (Можно попросить писать объяснение всех действий, она очень подробно пишет комментарии для каждой строчки.) Нам совершенно не нужно вникать какую именно библиотеку она использует, или какой метод. Следуем указаниям умной машины.

Если (точнее «когда») получаем ошибку — не стесняемся копировать ее всю в ответ в чат, она находит причину и говорит решение — вот пример (я обрезал часть ошибки, она была длинная)

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Я ему абракадабру, а он мне — четкий план действий.

Любую полученную ошибку закидываем в нейросеть и получаем решение. Далее запускаем код. Если есть снова ошибка — кидаем снова в нейросеть. Если нет — смотрим на данные и радуемся результату, или просим переделать в другом виде. Если видите что нейросеть пишет вам ахинею (будто совсем забыла в чем изначально задача) — формулируйте изначальную задачу заново. И так повторяйте до тех пор пока не получите удобоваримый результат.

Вот как выглядел мой итоговый запрос:

Давай создадим новый файл, основываясь на этой задаче — “Есть таблица из 20000 строк. Столбцы этой таблицы — «Поисковая фраза (Директ), Визиты, Посетители, Отказы, Глубина просмотра, Время на сайте». Вторая строчка «Итого и среднее» содержит суммы с средние значения моих данных. Потом идет 19.998 строк с данными. Визиты и посетители — целые числа, отказы — в процентах, глубина просмотрах в десятичных числах с тремя знаками после запятой, время формата ЧЧ:ММ:СС.” (тут я скопировал изначальные условия) Напиши мне формулу, которая найдет все фразы с отказностью более 0.2 (эту часть добавил что бы он не написал 20, как в первый раз) и добавит их на новый лист в две отдельные колонки (фраза и отказность). Мой файл называется context_data.xlsx (что бы он понимал как называется файл) Теперь у меня в полученном мне нужно вычленить из полученных данных все наиболее повторяющиеся фразы или словосочетания и посчитать их повторы (без учета союзов и местоимений) (эти уточнения сильно фильтруют итоговый результат. Потмоу что очевидно что самые частые слова будут союзами). Сделай отдельно лист с результатами повтора словосочетаний (где больше 1 слова), и отдельно лист с самыми часто повторяющимися словами. Важно что каждая строка в целом уникальна, но в ней могут содержаться одинаковые словосочетания или фразы (если это не описать, он просто будет искать одинаковые строки, а их у меня нет). Результаты добавь на новый файл. Код напиши на питоне.

В итоге я получил длинную портянку кода и инструкцию:

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

После запуска у меня была всего одна ошибка, которая была вылечена одной доп. строчкой. После чего я получил вот такой итоговый файл

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Как нейронка за меня таблицы считала (живой пример) Программирование, IT, Python, Удаленная работа, ChatGPT, Личный опыт, Работа, Таблица, Microsoft Excel, Длиннопост

Алгоритм всегда один и тот же — описали задание, если выполнилось с ошибкой — кидаем ошибку, он ее исправляет. Если без ошибок — усложняем задачку, и заново формируем ее в запросе.

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

По итогу получаем готовую таблицу с нужными нам данными, попутно осваивая питон.

Зачем я все это пишу и показываю?
Данный метод работы сократил мое время на обработку данных, позволяет мне кинуть в разговоре “да я тут на питоне прикинул”, что резко повышает ценность в глазах других маркетологов и начальства, и вполне обоснованно позволяет писать новый навык на линкедине.

А если более серьезно — нейросеть может сильно ускорить выполнение рутинных и нудных задач. Она как гугл — главное правильно составить запрос. Не “посчитай мне итог по Сыктывкару для прошлого квартала” а “У меня есть таблица А, в ней колонки АБС, содержат данные таких то форматов. В колонке Б у меня города рф, в колонце С у меня оборот, в колонке Е вид материала. Создай новую таблицу где будет сумма всех поставок пургена для областей которые содержат букву Ы в названии и состоят из 9 букв”. Такой запрос очень понятен, его можно разбить на подзадачи и написать алгоритм. А какой в итоге для этого будет использоваться язык программирования — не имеет значения (ну вообще имеет, если язык появился после 21 года, то есть шанс что чат-гпт 3.5 не знает об этом). Нейросеть можно попросить что то объяснить в коде, рассказать о методе или причинах выбора такого способа решения, и писать запросы человеческим языком.

Использование нейросети для работы не напрямую с формулами, а через сторонний язык программирования позволяет работать сразу с нужными нам файлами. Скоро, когда майкрософт внедрит окончательно нейросеть в стандартный пакет офиса — такие задачи можно будет попросить решать нейронку сразу напрямую в экселе. Но пока что это недоступно простым менеджерам.
Поставить IDE питона — элементарно. Запустить скопированный код из чата с нейронкой — дело 2 секунд. Если у вас есть ежедневные (еженедельные, повторяющиеся) задачки с какими то однотипными выгрузками — вы один вечер потратите на написание кода через нейросеть, потом сможете использовать его постоянно. Сэкономленное время можно потратить на срач в комментариях на DTF или пикабу, или поиск новой работы аналитиком.

Если хоть одному человеку это сэкономит больше времени чем я потратил на эту простыню — это будет означать что я писал все не зря.

Телеграм канала нет, паблика нет, контактов нет, никуда не подписывайтесь, я пишу очень редко.

Показать полностью 13
7 месяцев назад

Подборка из 82-х полезных нейросетей⁠ ⁠

Подборка из 82-х полезных нейросетей Искусственный интеллект, Программирование, Халява, Бесплатно, Подписки, Услуги, Лайфхак, Подборка, Сайт, Приложение, ChatGPT, Нейронные сети, Интернет, Полезное, Длиннопост

Чехов сказал: «Краткость — сестра таланта», поэтому держите подборку из 82-х полезных нейросетей, которые можно попробовать и чуточку ощутить будущее, которое уже наступило. Постарался разделить по категориям, чтобы вам было удобнее ориентироваться.
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Необычные нейросети:
● The Dream Keeper — Оживи свой сон.
└ Визуализируйте свой сон по запросу
● AiOrNot — Полиция в сфере ИИ.
└ 95% распознает работу ИИ
● SkyBox Blockade Labs — Создай «мир».
└ Введи текст, ИИ сгенерирует «мир»
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Работа с изображениями:
● 3DFY — Генератор 3D-объектов.
└ Напиши слово и получи 3D-объект
● Kandinsky 2.1 — Генератор картинок.
└ Генерируйте по текстовому запросу
● CleanUp — Удаляет водяные знаки.
└ Можно вырезать целые объекты
● Uncrop — Расширяет фон.
└ Напоминает Generative Fill
● Mokker — Генерирует фон.
└ Загрузи фото, ИИ заменит фон
● Anything AI — Меняет объекты/фон.
└ Пару кликов прямо в браузере
● FotoFix / Restore Photos / Face PR.
└ Улучшайте качество изображений
● VectoRizer — Векторизация фото.
└ Превращает в векторную графику
● PicWish / BigJpg — Повысить пиксели.
└ Сделайте фото в 4 раза лучше
● CountThings — Считает объекты.
└ ИИ считает объекты на фото
● Зрение Mail — Ч/Б в цветное.
└ Отреставрируйте старые фото
● Synthesys X — Копирует оригинал.
└ Создайте похожее изображение
● SwitchLight — Меняет свет.
└ Меняйте цвет, угол и интенсивность
● Runway — Генерирует фон для изображения.
└ По текстовым запросам
● Aalab — Фотошоп на максималках.
└ Имеется пробная версия на 3 дня
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Работа со звуком:
● Audioread — Текст в аудио.
└ ИИ генерирует текст в аудио
● ElevenLabs / DupDub — Озвучка для видео.
└ Генератор качественной озвучки
● Whisper JAX — Аудио в текст.
└ Вставьте ссылку или видео = текст
● SonGR — Генератор музыки.
└ ИИ создаст текст, вокал и бит
● RiverSideFM — Аудио в текст.
└ Загрузите видео, получите текст
● VocalRemover — Удаление вокала.
└ Вырезать можно не только вокал
● Podcastle AI — Озвучка для видео.
└ Генератор качественной озвучки
● Ambient — Заметки после диалога.
└ Из речи собеседника (напр. в Zoom)
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Работа с видео:
● Video Editing Tool — Создай ролик.
└ Загрузи картинки, получи ролик
● ZebraCat Al — Генератор роликов.
└ Генерируйте видео через текст
● Zeroscope — Генератор видео.
└ Генерируйте эпичные видео
● Kapwing AI — ИИ-видеоредактор.
└ Монтируйте с помощью ИИ
● VOT — Закадровый перевод.
└ Работает через Tampermonkey
● Eightify — Резюмирует видео.
└ Расширение для Google Chrome
● Descript — Редактор видео и аудио.
└ Редактируйте с ИИ, свои подкасты
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Работа с документами:
● ChatGPT — Работа с документами.
└ Задавайте вопросы по документу
● Quizard Al — ИИ решит ваши тесты.
└ Загрузи фото вопроса, получи ответ
● ChatBCG — Генератор презентаций.
└ За 1 клик создавайте презентацию
● Explanepaper — Диплом вкратце.
└ Загрузи документ = Краткая статья
● OpenResume / KickResume — Резюме.
└ Генерируйте качественное резюме
● Roam Around — Генератор текста.
└ Задайте тему, ИИ пишет материал
● Tutorle.Al — ИИ по точным наукам.
└ 10 запросов/день на английском
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
Для программистов:
● 60SECsite — Генератор сайтов.
└ Напиши идею, ИИ сгенерирует сайт
● html.to.design — Генератор шаблонов.
└ Превратит любой сайт в Figma-шаблон (Figma на 2 года бесплатно)
● Piggy Magic — Генератор дизайна.
└ ИИ напишет дизайн сайта по запросу
● uKit AI — Генератор редизайна.
└ Проанализирует ЦА и напишет дизайн
● ChatGPT Prompts — Сборник промптов.
└ Настройте веб-дизайнера из ChatGPT
● Fronty — Конвертирует в HTML CSS.
└ Загрузите картинку или наброски
● Indigo.Design — Дизайн в код.
└ Конвертирует дизайн в код
● Website Builder — Конструктор сайтов.
└ Создайте сайт через ИИ-конструктор
● GhostWriter — Поиск ошибок в коде.
└ Ищет/комментирует ошибки в коде
● Adrenaline — Поиск ошибок в коде.
└ Работает в браузере и на устройстве
● Code GPT — Генерирует блоки кодов.
└ По вашим текстовым запросам
● Galileo Al — Генератор интерфейсов.
└ По вашим текстовым запросам
➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
✅ Если хотите поблагодарить автора — подпишитесь в Telegram.

Space Engineering скрипты: команда PowerTime

Space Engineering скрипты Automatic LCDs 2

Automatic LCDs 2

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

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

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

Убедитесь что вы владелец реакторов, батарей и программируемого блока. Иначе команда будет работать правильно!

ПРИМЕЧАНИЕ: внутриигровые скрипты имеют очень ограниченный доступ к вещам, которые необходимы для оценки времени энергоснабжения. Я сделал все, что мог, чтобы оценить время с максимальной точностью, но оценка не идеальна. Она имеет небольшую погрешность. С другой стороны, во время тестирования я обнаружил, что алгоритм более точен, чем время заправки, отображаемое на игровом HUD в некоторых ситуациях.

Используйте PowerTimeX , чтобы показать простой вариант только с процентами и без прогресс баров.
Примените PowerTimeP , чтобы отображать только проценты и прогресс бары без точного времени.
Используйте PowerTimeBar , чтобы отображать только прогресс бар без текста.
Примечание. Эти команды ( PowerTimeX, PowerTimeP и PowerTimeBar ) работают только в том случае, если вы укажете временную квоту.

Скачать скрипт Automatic LCDs 2 Rus (русская версия)

Программируемый блок

Программируемый блок — блок, добавленный в обновлении 1.063. Позволяет контролировать системы кораблей с помощью скриптов на языке С#. На данный момент способен управлять всем стандартным функционалом терминала.

Contents

  • 1 Ограничения
  • 2 Обзор интерфейса
    • 2.1 Программируемый блок
    • 2.2 Редактор
    • 2.3 Экран «Workshop»
    • 2.4 Детали (локальный скрипт)
    • 2.5 Детали («workshop» скрипт)
    • 3.1 Доступ к редактору
    • 3.2 Метод Main
    • 3.3 Видимость переменных
    • 3.4 Компиляция
    • 3.5 Выполнение скрипта
    • 3.6 Вычисление команд
    • 4.1 Возможные действия
    • 4.2 Переменная GridTerminalSystem
    • 4.3 IMyCubeBlock
    • 4.4 IMyTerminalBlock
    • 4.5 ITerminalAction
    • 4.6 IMyFunctionalBlock
    • 5.1 Дисклеймер
    • 5.2 Родитель
    • 5.3 Поля
    • 5.4 Действия
    • 5.5 Свойства терминала
    • 5.6 Субтип
    • 5.7 Список блоков и действий
    • 6.1 Обновление от 02/01/15

    Ограничения

    Ниже вы найдете список известных ограничений о которых мы знаем, а так же возможные их решения.

    • Проблема:
    • Решение:
    • Проблема:
    • Решение:
    • Проблема:
    • Решение:

    Обзор интерфейса

    Программируемый блок

    Steamworkshop webupload previewfile 360966557 preview.jpg

    Панель программируемого блока на данный момент содержит следующие кнопки:

    Edit – открыть редактор для редактирования скриптов и возможности сохранения/загрузки их на диск.

    Также вы можете загрузить свои скрипты в «workshop» или загрузить себе скрипты, на которые вы подписаны.

    Run – запустить скрипт сохраненный в редакторе. Скрипт будет запущен один раз. Однако эта кнопка является действием в терминале и вы можете соединить ее с сенсором, таймером или добавить на панель быстрого доступа.

    Редактор

    Steamworkshop webupload previewfile 360966557 preview (1).jpg

    Редактор кода содержит следующие кнопки:
    Help – открыть мануал по программированию в игре.
    Check code – проверить код на наличие ошибок, а так же возможность использовать данный код.
    Remember & Exit – сохранить ваш код, закрывает экран редактора и переведет к панели терминала.
    Remember code – сохранить ваш код и оставит экран редактора открытым.
    Browse Workshop – открыть окно для управления скриптами, вы можете сохранить/загрузить скрипты на диск, загрузить свои скрипты в «workshop» или загрузить себе скрипты, на которые вы подписаны.
    Line counter – отобразить текущую строку кода и общее количество строк в коде.

    Экран «Workshop»

    Browse workshop.jpg

    Этот экран аналогичный экрану с чертежами и содержит следующие кнопки:
    Ok – загрузить выбранный скрипт в редактор и закроет экран.
    Cancel – закрыть экран (изменения не будут внесены в редактор)
    Details – открыть экран «детали», где вы можете увидеть описание скрипта.
    Rename (только для локальных скриптов) – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
    Delete (только для локальных скриптов) – удалить выбранный скрипт, после подтверждения.
    Create from editor – создать новый скрипт с именем по умолчанию Script_XX, которое начинается с 0, и если скрипт с уже выбранным именем существует, то числовое значение в названии будет повышено. Для примера, первым будет Script_0, далее Script_1 и т.д.
    Replace from editor (только для локальных скриптов) – заменить (после подтверждения пользователя) выбранный скрипт на скрипт из редактора.
    Refresh Scripts – обновить локальные скрипты и скрипты на которые вы подписаны.

    Детали (локальный скрипт)

    Details (local script).jpg

    Этот экран показывает детали для локальных скриптов и содержит следующие кнопки:
    Rename – переименовать выбранный скрипт, если вы попытаетесь переименовать существующий скрипт, игра попросит подтверждение.
    Delete – удалить выбранный скрипт, после подтверждения.
    Publish – опубликовать выбранный скрипт в «workshop» и показать странницу с опубликованным скриптом.
    Browse Workshop – открыть экран «workshop» для просмотра, а также подписаться на скрипты.
    Close – закрыть экран.

    Детали («workshop» скрипт)

    Details (workshop script).jpg

    Этот экран показывает детали для скриптов из «workshop» и содержит следующие кнопки:
    Open in Workshop – открыть «workshop» страницу скрипта.
    Close – закрыть экран.

    Гайд по программированию

    Доступ к редактору

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

    Метод Main

    Метод Main — создается при первом открытии редактора, этот метод является основной точкой входа в ваш скрипт. При переименовании или удалении этого метода скрипт не запустится и вы получите уведомление.
    Пользовательские методы/переменные могут быть определены, но использованы только внутри главного метода «main».

    Видимость переменных

    Есть два типа переменных для скрипта:
    -Local (внутри методов) — эти переменные будут хранить значение только во время выполнения метода.
    Подробнее — локальная переменная находится в области видимости до тех пор, пока закрывающая фигурная скобка не укажет конец блока операторов или метода, в котором она объявлена.А так же, объявленная в операторах цикла «for», «while» или подобных им, видима в пределах тела цикла.
    -Global (за пределами методов) — эти переменные будут хранить значения при работе всего скрипта.
    Подробнее — если переменная должна сохранить значение между отдельными блоками программы, она должна быть определена вне этих методов т.е. глобально.
    -После нажатия «Remember & Exit» или «Remember» кнопки, предыдущий скрипт будет переписан и все глобальные переменные будут потеряны.

    Компиляция

    Compilation failed 1.jpg

    Когда вы нажмете кнопку “Check code”, код будет скомпилирован, также будет показан результат компиляции.
    Процесс компиляции состоит из двух этапов:
    -Во первых, код внутри редактора будет проверен на синтаксические ошибки, внутри языка C#
    Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:

    К примеру «ааа» строка была помещена перед главным методом. Это неправильное языковое построение, поэтому компиляция будет прервана.
    Также в сообщении об ошибке будет показана строка, в которой допущена ошибка и описание ошибки.

    Compilation failed 2.jpg

    -Во-вторых, код будет проверен на наличие недопустимых имен или типов. Если во время компиляции возникнут какие-либо ошибки, компиляция будет прервана и вы получите уведомление:

    К примеру System.IO.Directory был использован для удаления другого каталога. Это запрещено, и вы получите уведомление: “Not allowed type was used in script”.

    Compilation sucessfull.jpg

    -Если компиляция и проверка проходит успешно, вы получите уведомление:

    Это означает, что код не содержит ошибок в языке или неразрешенные методы.

    Выполнение скрипта

    Когда вы нажимаете кнопку «Run» или добавляете действие на панель быстрого доступа, скрипт будет выполнен. На данный момент «Run» должен быть использован вручную, т.е. пользователю нужно нажать кнопку «Run» или добавить действие на панель быстрого доступа.
    Скрипт будет выполнен только на сервере, даже если был запущен из клиента, все клиенты будут уведомлены, если запуск скрипта будет прерван.
    В случае, если работа скрипта будет прервана, скрипт не запустится до того момента, пока пользователь не откроет редактор и не отредактирует скрипт.

    Вычисление команд

    Каждый раз, когда скрипт будет запущен, происходит расчет каждой команды внутри скрипта.
    Если количество команд внутри скрипта превышает лимит, запуск будет приостановлен и пользователь получит уведомление о том, что скрипт слишком сложный для выполнения.
    Лимит помогает избежать «заморозки» игры при выполнении скрипта.

    Доступные интерфейсы

    Возможные действия

    На данный момент в скрипте вы можете использовать только действия, доступные в панели управления.
    Пользователь имеет доступ только к объектам, расположенным в одной сети, где находится программируемый блок.

    Переменная GridTerminalSystem

    В настоящее время, кроме «встроенных» переменных, пользователь может использовать переменную GridTerminalSystem.
    Она является точкой входа во всю сеть корабля, и имеет следующие доступные методы:
    List Blocks
    List BlockGroups
    void GetBlocksOfType(List blocks, Func collect = null);
    void SearchBlocksOfName(string name,List blocks, Func collect = null);
    IMyTerminalBlock GetBlockWithName(string name);
    С помощью этих методов все «терминальные» блоки внутри сети могут быть собраны.

    Blocks — данное свойство возвращает все блоки из сети терминала, данный метод внутренне выделяет новую память.
    BlockGroups — возвращает все группы блоков из сети терминала, этот метод внутренне выделяет новую память.
    GetBlocksOfType — возвращает все блоки указанного типа.
    SearchBlocksOfName — данный метод является полнотекстовым поиском между всеми блоками и возвращает блок, который содержит искомую строку, поиск не чувствителен к регистру.
    GetBlockWithName — данный метод возвращает первый блок с точным названием, которое было задано, поиск чувствителен к регистру.

    Func — данный «collect» метод определяет условие поиска внутри другого метода поиска. ( для примера: метод передается как параметр в метод поиска GetBlocksOfType или SearchBlocksOfName).
    Метод «collect» интерфейса «IMyRadioAntenna» может использоваться для поиска включенных антенн или антенн с необходимым вам радиусом вещания.

    IMyCubeBlock

    IMyCubeBlock это базовый класс для каждого «терминального» блока. Он имеет следующие свойства и методы:
    BOOL IsBeingHacked
    BOOL IsFunctional
    BOOL IsWorking
    VRageMath.Vector3I Position

    IsFunctional — свойство сообщает, если блок достроен до уровня, когда он может работать.
    IsWorking — свойство сообщает, имеет ли данный блок достаточное питание для работы.

    IMyTerminalBlock

    IMyTerminalBlock это базовый класс для каждого «терминального» блока. Он имеет следующие свойства и методы:
    string CustomName
    string CustomNameWithFaction
    string DetailedInfo
    bool HasLocalPlayerAccess()
    bool HasPlayerAccess(long playerId)
    void RequestShowOnHUD(bool enable)
    void SetCustomName(string text)
    void SetCustomName(StringBuilder text)
    bool ShowOnHUD
    void GetActions(List resultList, Func collect = null);
    void SearchActionsOfName(string name,List resultList, Func collect = null);
    Sandbox.ModAPI.Interfaces.ITerminalAction GetActionWithName(string name);

    GetActions — данный метод возвращает все доступные действия для текущего блока.
    SearchActionsOfName — данный метод является полнотекстовым поиском между всеми действиями блока и возвращает действия, название которых содержит искомую строку, например, если блок имеет действия: «OnOff, OnOff_On, OnOff_Off».

    SearchActionsOfName с «OnOff» — вернет все действия
    SearchActionsOfName с «_On» — вернется только «OnOff_On», поиск «On» вернет все действия. Поиск не чувствителен к регистру.

    GetActionWithName — данный метод вернет первое найденное действие с точно заданным названием, поиск чувствителен к регистру.

    ITerminalAction

    ITerminalAction предоставляет определенные действия, которые могут быть выполнены.
    Он имеет следующие свойства и методы:
    string Id < get; >
    StringBuilder Name < get; >
    void Apply(Sandbox.ModAPI.Ingame.IMyCubeBlock block);

    Id — это обозначение действия, к примеру: «OnOff», «OnOff_On»
    Name — это название действия, которое будет показано в интерфейсе, к примеру: «Toggle block On/Off ,Toggle block On»
    Apply — применяет действие к выбранному блоку (вам нужно определить блок, из которого вы берете действие).

    IMyFunctionalBlock

    IMyFunctionalBlock — это базовый класс для каждого блока, который может быть включен или выключен, он наследуется от «IMyTerminalBlock». Для примера, каждый блок имеющий функции, является «терминальным», но не все «терминальные» блоки могут быть включены или выключены.
    Он имеет одно свойство:
    bool Enabled
    Это свойство отображает: включен или выключен данный блок пользователем.

    Блоки и действия

    Дисклеймер

    Все «терминальные» блоки имеют следующие свойства:
    Имя интерфейса: это имя определенного блока в коде, название может отличаться от названия отображаемого на экране постройки. К примеру антенна имеет имя интерфейса «IMyRadioAntenna» — вам нужно использовать этот интерфейс, если вы хотите получить все антенны.

    Родитель

    Каждый блок имеет родителя (все блоки имеют «IMyTerminalBlock» как родителя), это нужно для того, чтобы получить все блоки одного типа, вместо конкретного блока.
    К примеру, если вы хотите получить все блоки света, следует использовать «IMyLightningBlock», а если вы хотите использовать только блок ламы, вы используете «IMyInteriorLight».

    Поля

    Данное свойство блока доступно только для чтения.
    К примеру из «IMyBeacon» вы можете получить свойство радиуса. И основываясь на этом свойстве вы можете увеличить/уменьшить радиус маяка.

    Действия

    Все действия, которые вы можете применить к блоку, доступны вам в скрипте, так что если вы хотите уменьшить радиус вещания антенны, вам нужно использовать «DecreaseRadius» действие для блока.

    Свойства терминала

    Это свойства терминала, которые вы можете получить или выставить. Эти свойства аналогичные значениям, которые находятся внутри терминала. Для установки плавающих значений, таких как радиус антенны, используйте GetValueFloat(String propertyName). Вы можете найти названия свойств для каждого блока в этом руководстве. Чтобы установить значение, используйте SetValueFloat(String propertyName,float value).
    Пример: для антенны GetValueFloat(“Radius”) вы получите текущий радиус (аналогично использованию Радиуса в антенне) и SetValueFloat(“Radius”,10) установит значение радиуса на 10.

    Вы также можете использовать void GetProperties(List resultList, Func collect = null) чтобы получить все свойства этого блока.

    Субтип

    Одинаковые блоки, которые имеют тех же родителей (к примеру в файле «cubeblocks.sbc») и различаются только по субтипу (к примеру).
    Это значит, что различия между этими блоками в коде нет.
    Примером таких блоков являются грузовые контейнеры: в игре есть три типа грузовых контейнеров: малый, средний и большой. Они различаются только по субтипу, но имеют общий тип.
    К примеру «Id» большого контейнера:

    CargoContainer
    LargeBlockLargeContainer

    Средний контейнер:

    CargoContainer
    SmallBlockMediumContainer

    Малый контейенер:

    CargoContainer
    LargeBlockSmallContainer

    В этом случае есть только один класс «IMyCargoContainer» для всех типов грузовых контейнеров.

    Список блоков и действий

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Дуговая печь

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Искусственная масса

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Кнопочная панель

    • Имя интерфейса:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Панель управления

    • Имя интерфейса:
    • Поля:
    • Действия:

    Терминал управления

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Кресло пилота

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Турель Гатлинга

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Генератор гравитации

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Имя интерфейса:
    • Поля:
    • Свойства терминала:
    • Действия:

    Посадочные шасси

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Малый грузовой контейнер

    • Имя интерфейса:
    • Поля:
    • Действия:

    Средний грузовой контейнер

    • Имя интерфейса:
    • Поля:
    • Действия:

    Большой грузовой контейнер

    • Имя интерфейса:
    • Поля:
    • Действия:

    Малый реактор

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Большой реактор

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Малый ускоритель

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Большой ускоритель

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Стыковочный блок

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Ракетная турель

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Детектор руды

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Пассажирское кресло

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Programmable block

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Interface name:
    • Parent:
    • Поля:
    • Свойства терминала:
    • Действия:

    Перезаряжаемая ракетница

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Очистительный завод

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Actions:

    Удаленное управление

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:

    Ракетная установка

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Солнечная панель

    • Имя интерфейса:
    • Поля:
    • Действия:

    Sound Block

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Сферический генератор гравитации

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Поля:
    • Свойства терминала:
    • Действия:
    • Имя интерфейса:
    • Родитель:
    • Действия:

    Подвеска колес 1×1

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Подвеска колес 3×3

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Подвеска колес 5×5

    • Имя интерфейса:
    • Родитель:
    • Поля:
    • Свойства терминала:
    • Действия:

    Обновления

    Обновление от 02/01/15

    Изменения: Доступные пространства имен.
    В настоящее время вы можете использовать только следующие пространства имен из Modding API:
    Sandbox.ModAPI.Ingame
    Sandbox.ModAPI.Interfaces
    Sandbox.Common.ObjectBuilders
    VRageMath
    VRage

    Вы не можете использовать остальные пространства имен из Sandbox.ModAPI или любые другие пространства имен игры.

    Скрипт отображения основных ресурсов на дисплее в Space Engineers

    Простейший скрипт отображения основных ресурсов на LCD дисплее в Space Engineers. Единственное, что нужно поменять в скрипте — это имя LCD дисплея (у меня это «Text panel 1»).

    The simplest script to display base resources on LCD in Space Engineers. There is only one thing to change — the name of the LCD (in my script it’s the «Text panel 1»).

    public void Save()

    public void Main(string argument, UpdateType updateSource)

    int Ice=0, Stone=0, Scrap=0, Iron=0, Silicon=0, Nickel=0, Cobalt=0, Silver=0, Gold=0, Uranium=0, Magnesium=0, Platinum=0;

    int ingotStone=0, ingotIron=0, ingotSilicon=0, ingotNickel=0, ingotCobalt=0, ingotSilver=0, ingotGold=0, ingotUranium=0, ingotMagnesium=0, ingotPlatinum=0;

    if (s.Contains(«Ore/Ice») ) Ice+=a;

    if (s.Contains(«Ore/Stone») ) Stone+=a;

    if (s.Contains(«Ore/Scrap») ) Scrap+=a;

    if (s.Contains(«Ore/Iron») ) Iron+=a;

    if (s.Contains(«Ore/Silicon») ) Silicon+=a;

    if (s.Contains(«Ore/Nickel») ) Nickel+=a;

    if (s.Contains(«Ore/Cobalt») ) Cobalt+=a;

    if (s.Contains(«Ore/Silver») ) Silver+=a;

    if (s.Contains(«Ore/Gold») ) Gold+=a;

    if (s.Contains(«Ore/Uranium») ) Uranium+=a;

    if (s.Contains(«Ore/Magnesium») ) Magnesium+=a;

    if (s.Contains(«Ore/Platinum») ) Platinum+=a;

    if (s.Contains(«Ingot/Stone») ) ingotStone+=a;

    if (s.Contains(«Ingot/Iron») ) ingotIron+=a;

    if (s.Contains(«Ingot/Silicon») ) ingotSilicon+=a;

    if (s.Contains(«Ingot/Nickel») ) ingotNickel+=a;

    if (s.Contains(«Ingot/Cobalt») ) ingotCobalt+=a;

    if (s.Contains(«Ingot/Silver») ) ingotSilver+=a;

    if (s.Contains(«Ingot/Gold») ) ingotGold+=a;

    if (s.Contains(«Ingot/Uranium») ) ingotUranium+=a;

    if (s.Contains(«Ingot/Magnesium») ) ingotMagnesium+=a;

    if (s.Contains(«Ingot/Platinum») ) ingotPlatinum+=a;

    IMyTextSurface surface = GridTerminalSystem.GetBlockWithName(«Tex t panel 1») as IMyTextSurface;

    panelText=»Resources ( raw / ingot ) :»;

    panelText=panelText+»\n»+»Stone : «+Stone.ToString()+ » / «+ingotStone.ToString();

    panelText=panelText+»\n»+»Iron : «+Iron.ToString()+ » / «+ingotIron.ToString();

    panelText=panelText+»\n»+»Silicon : «+Silicon.ToString()+ » / «+ingotSilicon.ToString();

    panelText=panelText+»\n»+»Nickel : «+Nickel.ToString()+ » / «+ingotNickel.ToString();

    panelText=panelText+»\n»+»Cobalt : «+Cobalt.ToString()+ » / «+ingotCobalt.ToString();

    panelText=panelText+»\n»+»Silver : «+Silver.ToString()+ » / «+ingotSilver.ToString();

    panelText=panelText+»\n»+»Gold : «+Gold.ToString()+ » / «+ingotGold.ToString();

    panelText=panelText+»\n»+»Uranium : «+Uranium.ToString()+ » / «+ingotUranium.ToString();

    panelText=panelText+»\n»+»Magnesium : «+Magnesium.ToString()+ » / «+ingotMagnesium.ToString();

    panelText=panelText+»\n»+»Platinum : «+Platinum.ToString()+ » / «+ingotPlatinum.ToString();

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *