Zer0Galaxy
-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Сообщения, опубликованные пользователем Zer0Galaxy
-
-
Почему просить? Ты для себя одного что ли делаешь? А на общественно полезное дело ресурсы всегда найдутся.
-
Идея, на мой взгляд, довольно не глупая и может оказаться весьма полезной. Попробуй обкатать ее в сингле и перенесем на сервер. Ресурсы - не вопрос. А если Алекс даст добро, то эти кабинки для обмена можно будет разместить на территории банка где царит безопасность.
-
Я понял, что в сундуке лежат уже запрограммированные черепахи, имеющие метку. Черепаха-матка под сундуком достает их из сундука и ставит перед собой. Робот нужен чтобы дать пинка установленной черепахе, но это может сделать и черепаха-матка, как рассказал Алекс.
-
Постоянно наблюдаются проблемы с мониторами если компьютеры объединены в локальную сеть. Так и норовят написать что то на чужой монитор. Что то можно сделать?
-
В режиме Internal, сообщение пришедшее на левую сторону стойки также получит сервер А. Сообщение будет передано всем серверам в стойке, т.е. B, C и D, но не будет передано на стороны стойки и провода, подключенные к этим сторонам.
Если сервер А отправит сообщение, оно будет передано на все другие сервера в стойке а также на левую сторону (и подключенный к ней провод). Но не будет передано другим сторонам блока.
Если сервер D отправит сообщение - оно будет передано только другим серверам в стойке (A, B и C).
Предположим, мы имеем сеть, состоящую из серверной стойки и компьютера. Сеть подключена к серверной стойке с левой стороны. В стойке находятся сервер А, связанный с левой стороной, и не привязанный сервер D. Стойка находится в режиме Internal. В каждом сервере и компьютере установлена сетевая плата.
Исходя из вышесказанного, получается, что пакет, отправленный компьютером, может быть принят сервером D, но пакет, отправленный сервером D не может быть принят компьютером.
Односторонняя связь получается или я что то не так понял?
-
(хоть я и не разбираюсь в сетях =))
И это говорит человек, который научил меня как работать с сетевыми платами и серверными стойками?
-
Может связь должна быть гибридной?Можно организовать публичные роутеры. Это устройства, обменивающиеся с сервером посредством связанной платы и раздающие интернет по проводной или беспроводной сети конечным пользователям. Может кто то захочет стать местным провайдером. Такие роутеры, занимая только один слот в сервере, могут обслуживать множество игроков. Вот только должны быть размещены в прогруженном чанке.
Вопрос по структуре IP-адреса пока открыт. И на счет одного дня кодинга это Нео, конечно, погорячился.
Я сейчас хотел бы узнать, интересно ли это кому нибудь вообще и кто хотел бы заняться продвижением этого проекта?
-
1
-
-
Но мне не совсем понятна пока топология сети?Топология сети - звезда. Т.е. в центре несколько серверных стоек, связанных между собой локальной сетью. Пользователи подключаются посредством связанных плат.
Сколько тогда мы сможем подключить юзеров, и какова вероятность, что прилинкованные пользователи не будут висеть мертвым грузом и не занимать слоты сети?Есть план выдавать пользователям связанные платы. Точнее не выдавать, а продавать через банк за тугрики или другим образом. Не из корыстных побуждений конечно, а чтобы уменьшить количество мертвых душ. Можно вести базу реализованных плат в привязке к игрокам. Занятые слоты можно контролировать на активность и если обмена по данной плате нет да и пользователь месяц не появляется, освобождать такой слот.
>>И в сети на основе только связанных плат может же не оказаться никого из игроков, кто мне нужен вообще??? Для связи с другом Васей я сам могу скрафтить две связанных платы и одну отдать ему? Или я что-то не так понял?
Безусловно, для связи только с Васей, персональная пара плат - лучшее решение. А вот с пятью друзьями так уже не пообщаешься.
Кроме того, глобальная сеть это не только чат между игроками. Можно организовать централизованное хранилище файлов, web-сервер, доступ к pastebin-у без интернет-платы, связь с Android устройствами, которую Рид скоро доделает. Да и много еще чего.
>>плюс компьютер ограничение имеет на количество слотов под платы.
В компьютер клиента нужно будет только одну плату вставить. А в серверную стойку можно до 12 плат впихнуть
-
Предлагаю сделать систему связи на основе связанных плат (СП). Каждая пара таких плат позволяет общаться только двум абонентам. Но, если в серверную стойку напихать много СП и должным образом запрограммировать перекидывание пакетов с одной платы на другую, количество абонентов можно существенно увеличить.
Немного арифметики. В один сервер можно установить четыре сетевые платы. Одна из них будет проводной сетевой платой для связи между серверами. Для связи с клиентами остается три места, если считать, что сервер может работать без видеокарты. В серверную стойку можно установить четыре сервера, т.е. одна серверная стойка может обслуживать до 12 клиентов. Учитывая опыт CraftNet, думаю 3-4 таких серверных стойки покроют потребность всех желающих подключиться к глобальной сети.
Достоинства такой системы связи:
- обеспечивается покрытие в любой точке любого мира
- пакет от отправителя к получателю не будет проходить через кучу роутеров, а максимум через два сервера
Недостатки:
- пользователь не сможет подключиться к сети самостоятельно. Потребуется обратиться в сервисный центр.
- управление сетью централизовано т.е. падение одной серверной стойки приведет к отключению всей сети или существенной её части.
Если кому то интересно принять участие в подобном проекте (требуется 2-3 человека, владеющих начальными навыками программирования под ОС) отписывайтесь.
-
1
-
-
Спасибо. Вот теперь что то проясняется.
Еще вопрос. Могут ли сервера, которые стоят в одной серверной стойке обмениваться информацией при помощи обычных проводных сетевых плат? Достаточно ли того, что они стоят в одной стойке или надо какую то внешнюю сеть городить?
-
Шины расширяот количество компонентов, подерживаемое сервером. К сожалению, количество слотов в интерфейсе при этом не растет =)Сервер может сколько угодно (в рамках лимита на компоненты) связных плат поддерживать.
Так. Что мы называем компонентами? Внешние устройства, как принтер, дисковод и т.д? А куда тогда платы засовывать?
Если в сервере стоит несколько связанных плат, как программно указать, что передача будет осуществляться через конкретную плату?
-
Как при помощи шин расширять количество слотов сервера?
Сможет ли один сервер работать с несколькими связанными платами?
Какое максимальное количество связанных плат может обрабатывать один сервер?
-
Поддержу реализацию интересной идеи на модах СС и ОС. Ваша идея и программирование, моё железо.
-
Берешь каменный ПК, на башку ему ставишь визжалку-сирену из Нуклеар Контрол.Пишешь код:
Пойдет такая напоминалка?

А можно ли подобную напоминалку сделать на основе планшета? Каменный ПК с собой сильно не потакаешь.
-
Было бы очень хорошо, если бы ты документировал все API в этой теме. Как что называется, что делает и что возвращает. в деталях.
Плюс привел несколько примеров использования
В первом посте я попытался вкратце рассказать про все функции библиотеки и привел примерчик.
Давным давно пользуюсь либой под СС, чень удобно!
Ввиду особенностей программирования событий, либа под ОС несколько отличается, а посему требует дополнительного тестирования.
-
У меня 2 вопроса:1 - thread'ы убиваются сами после завершения функции или их надо убивать в ручную?
2 - Можно ли убивать thread'ы вручную не дожидаясь их завершения?
1. Насильного убийства не присходит. Когда функция завершается, её поток принимает статус "dead" автоматически, после чего он исключается из списка активных потоков и удаляется сборщиком мусора.
2. Да. Для этого нужно сохранить значение, возвращаемое функцией create, и вызвать kill
-
Ценою неимоверных усилий удалось портировать уже известную вам библиотеку thread в ОС.
Библиотека доступна для скачивания по команде
Установка: pastebin get E0SzJcCx /lib/thread.lua [код]
По сравнению с версией для СС, библиотека имеет еще две функции, вызываемых без параметров:
thread.init() - инициализирует многозадачный режим. Должна вызываться один раз перед вызовом других функций библиотеки.
thread.waitForAll() - ожидает завершения всех дочерних потоков. В отличии от СС-версии, дочерние потоки прерываются при завершении родительского. Поэтому, waitForAll следует вызывать в конце основной программы, чтобы дать возможность дочерним завершиться корректно.
Функции create, kill и killAll работают аналогично версии для СС.
thread.create(f , ...) - создает поток, который сразу же начинает выполняться параллельно основному потоку. При желании можно создать серию потоков, вызвав функцию create несколько раз подряд. В качестве параметра f необходимо указать функцию, содержащую тело потока. После f можно указать параметры, передаваемые ей.
Функция create возвращает вновь созданный поток как объект типа нить ("thread"). Значение это может понадобиться если вы захотите прервать принудительно созданный поток.
thread.kill(co) - прерывает выполнение параллельного потока. co - завершаемый поток, значение, полученное при вызове функции create.
thread.killAll() - прекращает выполнение всех параллельных потоков, за исключением основного.
Пример работы с библиотекой:
local thread = require("thread") -- Инициализируем многозадачность thread.init() -- Функция, которая выводит строку str несколько раз с интервалом секунда function foo(str,n) for i=1,n do print(str) os.sleep(1) end end -- Запускаем два экземпляра функции с разными параметрами thread.create(foo,"AAA",5) thread.create(foo,"BBB",7) -- Ждем завершения thread.waitForAll()Результат работы программы
-
13
-
-
ОС позволяет же определять кто именно в экран тыкает
-
Предлагаю реализовать один(или несколько) из трех вариантов:
1. На основе обычного ВайФая - чат каждый-с-каждым в пределах 400 блоков.
2. На основе связанных плат - связь на любом расстоянии даже между мирами, но только с одним абонентом.
3. На основе глобальной сети.
Разработкой OpenNet сети занимается NEO. Не знаю в каком она состоянии
-
1
-
-
Алекс, Фингер, что вы так жестоки к новичкам? Я вот сам не всегда помню какой командой снять приват. Ну и что, если я спрошу об этом в чате? Ну и что, если мне кто то ответит?
А по поводу предложения Никиты.
Чат отключать никто не будет. Мало кто сможет таскать с собой планшет для общения. Не говоря у же о том, чтобы собрать и запрограммировать его самостоятельно. Но это ведь не запрещает нам создать работающий заменитель чата и испытать его в действии. Я бы даже в этом поучаствовал.
-
Что мы имеем на выходе. Никакого гемора с крафтом полсотни черепах. Даже ванильные рецепты КК потребуют 144 алмаза, 48 ендерперлей, кучу железа и по мелочи. Крафт буровой, согласен, тоже не прост, цепочки довольно длинные, но там нужно 5 алмов, много железа, немного композита и углепластика.
Прочитав вышесказанное, нуб, перед которым стоит задача выбиться в папки, не пойдет изучать программирование, а пойдет кликать голосовалку. Посему предлагаю не усложнять крафт черепах, а наоборот упростить. К примеру, крафтить черепах-шахтеров из железной кирки.
Если, конечно, мы боремся за робосервер.
-
3
-
-
Нет, хотя есть в разработке: http://oc.cil.li/index.php?/topic/419-ocemulator-very-very-beta/
Кому нибудь удалось его скомпилировать?
-
Да, ты прав, но мне как-то хочется больше для OC сделать)
Ну так в чем дело? Встроенный редактор для ОС действительно слабовато выглядит, даже по сравнению с СС. Нет автосмещения курсора при переносе строки и подсветки синтаксиса.
Сделай для начала выделение-копирование-удаление блоков, например.
Будут вопросы - задавай.
-
Попробуй, быстродействия Луа должно хватить. А по поводу регулярных выражений, почитай тему "Шаблоны". Это оно или где-то рядом.

Безопасный бартер
в Инфраструктура
Опубликовано:
Тут дело не только в потере ресурсов, но и в недоверии игроков друг другу. Вот договорились, к примеру, Вася с Петей обменяться, шкуру коровы на стак алмазов. Как осуществить такой обмен, что бы никто из участников не имел технической возможности обмануть другого? Только через посредника. Именно таким посредником и призвана быть подобная система обмена.