Fingercomp
-
Публикации
1 629 -
Зарегистрирован
-
Посещение
-
Победитель дней
283
Сообщения, опубликованные пользователем Fingercomp
-
-
Черепахи выжирают ресурсы сервера бесконтрольно, поэтому даже не найдеся на их возвращение.
Радио постоянно умудряется найти способ крашнуть клиент.
-
А зачем сейчас юзать OpenComputers 1.5? Уже три релиза 1.6 вышло.
-
1
-
-

Вся инфа, доступная из IGI. Потому и удалили давно и с тех пор не ставили.
-
1
-
-
Торговая станция из Форестри не работает на тестовом сервере. Пробовал порыться в сырцах — потонул в кросс-референсах. Фз, что не так.
-
Лично у меня оптифайн вызывает проседания фпс до 10-15 максимум и ломает рендер блоков.
-
А модем-то почему не вставил беспроводной? Он на то и сетует. Как же он без модема будет дистанционно управляться?
-
Кто хоть выдаёт ошибку эту?
-
- Почему юзаешь _G.cofile, а не local cofile?
- Почему не закрываешь файл в getLastShopNumber?
- local stroka = cofile:read("*a") должно быть.
- serialization.serialize не нужен. Используй tostring(getLastShopNumber() + 1).
- serialization.unserialize тоже не нужен. Уже есть tonumber.
Итого:
-- Нахождение последнего номера заказа local shopCounter = "Shop/shopcount.cfg" local function getLastShopNumber() local cofile = io.open(shopCounter, "r") local content = cofile:read("*a") cofile:close() return tonumber(content) end -- Изменение последнего номера заказа local function changeLastShopNumber() local cofile = io.open(shopCounter, "w") cofile:write(tostring(getLastShopNumber() + 1)) cofile:close() end -
p.s. Я так кстати и не понял, для кого стоит форестри, опять же лагодромчик будет с этими пчелами. Да я знаю какой это ->
Почитай выше сообщения, там есть про это.
-
Бумагофилы крайне негодуют по поводу отсутствия OpenPrinter на сервере (примерно так:
). Ничего с ним ужасного нет на сервере? Я не помню уже. -
Обновление от 2 января 2017 года (??? дней до старта)
Описываю в этом обновлении все технические моменты, которые возникли у участников в процессе написания программ.
Конфигурация роботов
- Процессор T3.
- Видеокарта T1.
- Монитор T1.
- Клавиатура.
- Беспроводная карта.
- 2 планки памяти T2.
- Цветастая карточка из Computronics.
- Lua BIOS.
- Дисковод.
- Жёсткий диск T2.
- Сундуковый апгрейд.

Расположение роботов

Настройка
Роботов ставят, как на скрине выше, зовут участника, чтобы он настроил своих роботов. Разрешается проставить координаты позиции роботов. Координаты арены (как и сама арена, в общем) на турнире изменены не будут, поэтому смело можете их хардкодить.
Обязательно нужно покрасить робота в цвет команды:
- 0x20afff — синяя команда;
- 0xafff20 — зелёная команда;
- 0xffff20 — жёлтая команда;
- 0xff2020 — красная команда.
Красим вот так:
local colors = require("component").colors local robot = require("component").robot colors.setColor(TEAM_COLOR) robot.setLightColor(TEAM_COLOR)TEAM_COLOR — собственно, одно из значений выше.
Будет дан адрес сетевой карты сервера ещё. Это чтобы особо предприимчивые всякую хрень не творили. И, соответственно, порт.
Правила игры
За смену цвета робота во время игры следует дисквалификация игрока с турнира. Это нужно, чтобы зрители могли хоть как-то различать, чьи на арене роботы. Цвет полоски тоже не трогайте, хотя он и не так заметен будет.
За разрушение блока робот (не игрок) дисквалифицируется. Ну тут всё очевидно.
Собственно, это всё. Особенного чего-то нет, как видно.
Сообщения сервера
- "time", remaining, total — посылается каждые эн секунд, так что в код вбивать не стоит. Говорит, сколько времени осталось до конца битвы и сколько вообще длится весь раунд.
- "gamestart" — посылается после старта игры, тут всё логично.
- "gamestop" — посылается после завершения игры (может завершиться досрочно админом или по таймеру)
- "setcoin", x, y, z — установлен сундук по данным абсолютным координатам. y будет равен уровню пола, так что не нужно что есть мочи долбиться вниз.
- "unsetcoin", x, y, z — сундук по данным координатам исчез, так что нечего там искать.
На сервер можно ещё послать сообщение "getInfo", тогда вернётся вот такое: remaining, total, teams. Первые два значения — те же, что и у синхронизационного сообщения, а teams — это сериализованная таблица типа этой:
{blue = {score = 10, name = "Fingercomp"}, green = {score = 1, name = "koresh"}, red = {score = 14, name = "Totoro"}, yellow = {score = 9, name = "Byte"}}Оргвопросы
Дата и время начала пока точно неизвестны. Но это явно будет с вечера пятницы по воскресенье. Пока рассчитываем на 13-15 января.
Место игры сообщим перед началом — сейчас эта информация бессмысленна.
Софт
Решено было забить на софт оставшийся, так как никто так и не вызвался помочь. Я лично в декабре был постоянно занят, а щас у меня будут другие проекты — тоже не до софта. Мотивации писать нет тоже. Буду рад, если кто-то до 5 января допишет оставшееся. Но полагаться на это уже некогда.
Вся основная инфа будет на очках, в любом случае, так что паниковать не стоит.
-
4
-
Будет отдельный сервер/мир, где будет эта арена. У игроков будет инвентарь только с очечами на голове. Режим adventure.
Участникам даются 4 робота, которые они настраивают. И начинается игра.
Участвовать можно хоть с нуля.
-
В связи с тем, что @Totoro на каникулах новогодних будет занят немного отдыхом, а также тем, что софт оставшийся пилить никто не хочет, UT переносится на 2-3 недели вперёд. К участникам просьба как можно скорее сказать о готовности их программ.
-
АЕ мне можно/нужно, но без автокрафта, потому что не очень спортивно.
ComputerCraft ты не отстабилизируешь, потому что это не персиснутая имплементация луа на жаве. И вообще нафиг это. Там мелкой прогой серверы кладутся.
Соляры — пусть будут. Всё равно их не хватит :3
Форестри точно надо, только мультифермы в топку прежде, потому что тоже ни разу не спортивно.
-
Нужны аддоны к неи, т.к. не видны некоторые рецепты (например, с машинами из рейла).
-
Да, конечно, нужен CX везде
С таким разнообразием модов даже обязателен. Кто-то хочет с рейлом заморачиваться - а без CX там вообще никак. Всячески рекомендую.А оптифайн - люди просят раз столь слёзно, можно бы бросить.
-
Оптифайн можно влепить, на самом деле. Не включать всякие оптимизаторки, только фиксить частично что-то. Тогда ничего не сломается.
-
А вот пчелей попрошу не трогать. Это очень нужные и важные существа, которые могут быть завербованы в телохранителей благодаря Computronics, как ни странно. Поэтому ставить надо.
-
1
-
-
Эта функция сделает один или два шага вперёд, потому что не самое хорошее тело цикла. Зачем же там вызов-то?
local function fwd() while not robot.forward() do os.sleep(.1) end end
-
1
-
-
У автора OC, вообще-то, и в IRC канала раз в неделю увидеть можно на пару часов — потому что занят (очень) и нет мотивации. Мод выпускается без каких-либо гарантий. Так что не надо на него пенять.
Но я апну какие-нибудь проблемы на гитхабе, чтобы не забыть.
К слову, вроде же были пожертвования когда-то? Даже посты писались. Там не осталось денег?
Upd. Спустя примерно час подыскивания самых что ни на есть вежливых выражений опубликовал мою слезливую просьбу сделать несчастный блэклист. Let's see what happens.
-
1
-
-
Network тебе не нужен только. От слова "совсем". Он вообще к чертям не работает толково. Пастбин в OpenOS встроен.
-
1
-
-
Вот так нужно использовать, кстати, либу из OpenOS.
local inet = require("internet") local function request(url) local result = "" for chunk in inet.request(url) do result = result .. chunk end return result end@Arseniy10, ты в случае с либой код не указал. Поэтому нет смысла умничать стараться.
И вообще не хами тут. Окей? Мне не платят за то, что я тебе отвечаю, поэтому уважение проявляй хоть немного.
-
2
-
-
Давайте перепишем это безумие.
local function request(url) return net.request(url).read() end local function write(path, value) local file = io.open(path, "w") file:write(value) file:flush() file:close() end if t.name == args[2] then write(t.path, request(rep_URL .. t.path)) end
Отбрасывая в сторону вопрос о том, почему бы просто не использовать библиотеку OpenOS, теперь отвечаю. read() за раз возвращает не весь ответ. Только его часть. Поэтому-то у тебя и не качает полностью.
Поэтому тебе нужно получать кусочки всего буфера сокета, пока не вернётся nil.
То есть, так:
local function request(url) local result = "" while true do local chunk = net.request(url).read() if not chunk then break end result = result .. chunk end return result end local function write(path, value) local file = io.open(path, "w") file:write(value) file:flush() file:close() end if t.name == args[2] then write(t.path, request(rep_URL .. t.path)) endНо, на самом деле, ты теперь рискуешь уйти в бесконечный цикл при обрыве соединения. Поэтому ты должен использовать библиотеку OpenOS.
-
1
-
-
Может, не знаю, дашь вызываемый код? Ссылку на страницу? Тут же нет телепатов...
-
2
-

Сервер RoboCraft (тест, подготовка, запуск)
в Флудилка
Опубликовано:
Эти циферки показывают расстояние до ближайшего игрока, даже если он за блоками где-то. Чит читом же.