electronic_steve 344 Опубликовано: 18 февраля, 2017 Как же я люблю писать программы которые не возможно использовать на наших серверах. Для работы данного кода нужен OpenComputers Stargate Interface у которого на сервере нет крафта. Представляю вашему вниманию SGCP (StarGate control panel). Эта программа позволяет управлять вашими звёздными вратами через keypad из мода OpenSecurity. Программа написана таким образом что бы не мешать работе компьютера. То есть можно использовать компьютер в своих целях даже когда программа работает. вот так выглядит наша панель: Желтая кнопка - врата с которыми мы уже связаны. Красные кнопки - врата для связи с которыми недостаточно энергии. Голубые кнопки - врата связь с которыми не возможна. Белые кнопки - врата связь с которыми возможна. Сверху дисплей с информацией. некоторые возможности: Когда с нашими вратами связываются чужие врата создаётся новая кнопка с адресом чужих врат. Каждые 30 секунд проверяется доступность врат в плане энергии. Адреса новых врат записываются в файл. после перезапуска компьютера новые кнопки не пропадают. установка: patebin get Gb2tkzXs /bin/sgcp.lua 8 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость Kartze Опубликовано: 19 февраля, 2017 Какова разница между красным и голубым? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
electronic_steve Автор темы 344 Опубликовано: 19 февраля, 2017 Какова разница между красным и голубым? синие показывают врата с которыми невозможно связаться в принципе. например потому что их нет. красные показывают врата для связи с которыми нехватает энергии. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 19 февраля, 2017 Голубые кнопки - врата связь с которыми не возможна. Белые кнопки - врата связь с которыми возможна. а откуда врата вообще знают, с кем возможна связь, а с кем нет? Может тех врат там уже давным-давно не существует в природе и их выключили или сломали вообще? Их прога пингует как-то что-ли? Чего-то я не нашел намека в программке на sg.sendMessage Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 20 февраля, 2017 а откуда врата вообще знают, с кем возможна связь, а с кем нет? Может тех врат там уже давным-давно не существует в природе и их выключили или сломали вообще? Их прога пингует как-то что-ли? Чего-то я не нашел намека в программке на sg.sendMessageПолагаю, sg.energyToDial что-то знает об этом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 20 февраля, 2017 Полагаю, sg.energyToDial что-то знает об этом. а разве оно не возвращает просто величину энергии, необходимую на прыжок (точнее коннект) к этой координате и к воображаемым вратам, не зависимо от того, есть ли они там или нет? Или оно все-таки их там проверяет, что они там есть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 20 февраля, 2017 а разве оно не возвращает просто величину энергии, необходимую на прыжок (точнее коннект) к этой координате и к воображаемым вратам, не зависимо от того, есть ли они там или нет? Или оно все-таки их там проверяет, что они там есть?Возвращает nil, "No stargate at address" при отсутствии врат, требует тик времени на проверку. Выжирает ли память сервера такой пинг врат, не знаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 20 февраля, 2017 Возвращает nil, "No stargate at address" хмм, толково сделали, удобно, не знал. Ну а по поводу выжирания памяти, то куда ж оно денется. Любая расшифровка адреса и поиск врат на определенных координатах требует, судя по всему, какой-то подгрузки чанка(мира) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 20 февраля, 2017 хмм, толково сделали, удобно, не знал. Ну а по поводу выжирания памяти, то куда ж оно денется. Любая расшифровка адреса и поиск врат на определенных координатах требует, судя по всему, какой-то подгрузки чанка(мира) По идее, компонент написан на уровне мода. А мод должен без подгрузки чанков знать, где у него и сколько миров по каким адресам. Хз как на самом деле оно там сделано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 20 февраля, 2017 Честно говоря, не понятно, как мод может знать, есть ли где-то Врата в непрогруженных чанках. Вряд ли это возможно. Что-то оно должно наверно вызывать. Надо кстати, в сингле запустить "поиск врат от балды перебором". И поглядеть, растет ли потребление памяти. Там еще вопрос, грузят ли сами врата рабочие чанк по умолчанию, так как в конфине то я это оставил пока. Ну и есть подозрение, что именно на сервере плагин Multiverse инициализирует лоад каких-то несуществующих миров. В консоль, например, кидаются следующие эксепшины при dial координатах с потолка: java.lang.IllegalArgumentException: Could not get provider type for dimension -795, does not exist at net.minecraftforge.common.DimensionManager.getProviderType(DimensionManager.java:108) at net.minecraftforge.common.DimensionManager.createProviderFor(DimensionManager.java:228) java.lang.IllegalArgumentException: Could not get provider type for dimension 493, does not exist at net.minecraftforge.common.DimensionManager.getProviderType(DimensionManager.java:108) at net.minecraftforge.common.DimensionManager.createProviderFor(DimensionManager.java:228) а где у нас 493-й или -799-й дименшн? Вот именно, что его нет и в помине. 1- энд 0 - овер -1 ад 3 - майнерс 2- звездолет Так что где там собака порылась - один крип знает. Но факт есть факт. Сервер после 5 минут переборов врат в цикле просто виснет и валится от переполнения памяти. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 20 февраля, 2017 Вот то что оно эксепшнами спамит - это нехорошо. Уже какой-то говнокод там у автора мода. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 20 февраля, 2017 Именно то, что у игроков есть кроссДименшн шеврон-апгрейд (он разрешен в крафте), врата получают возможность вызывать дименшины, а не работать только в рамках одного измерения. Вот они и от балды пытаются грузить несуществующие миры. А что там в том шифре 9-ти значном скрыто - один крип знает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 20 февраля, 2017 (изменено) Алгоритм =) Расшифровка координат чанка и id измерения из адреса врат. Получение мира. Загрузка чанка. Получение списка тайлов в чанке. Итератор по списку и коннект к тайлам врат. Профит. Изменено 20 февраля, 2017 пользователем NEO 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 20 февраля, 2017 Расшифровка координат чанка и id измерения из адреса врат. Получение мира. Загрузка чанка. Получение списка тайлов в чанке. Итератор по списоку и коннект к тайлам врат. это в опенсорсах глянул? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 409 Опубликовано: 20 февраля, 2017 Ну, как бы, мод опенсурсный, сырцы качаются там же, где мод. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Jayfeather96 1 Опубликовано: 14 сентября, 2017 Когда формируются врата, они заносятся в определенный реестр. При попытке установления соединения проверяется, есть ли в данном реестре данный адрес. Если есть - начинается установка соединения. Если врат в данном списке нет (ошибочный адрес или врата были уничтожены/убраны), то врата сообщают об невозможности соединения. Это чисто теория судя по тому, что писалось в консоли моего сервера при создании врат где угодо и кем угодно 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 14 сентября, 2017 Когда формируются врата, они заносятся в определенный реестр. эх если бы оно так было, то не было бы беды, если бы только какой-то реестр врат созданных проверялся. А на деле - строишь одни единственные врата на серве, запускаешь поиск врат от балды через опенКонтроллер в цикле генерируя случайные адреса, и начинается анал-карнавальный лоадчанкреквест, при котором генерятся чанки где попало, ищутся миры, выжерается вся озу и, как следствие, обваливается сервак за несколько минут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах