Перейти к содержимому

Alex

Администраторы
  • Публикации

    3 168
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Alex


  1. Алекс, можно ли в районе спауна установить WiFi роутер?

    Есть ли там работающий чанклоадер?

    А где есть?

     

    Конечно! Такие моменты даже не спрашивай. Есть бункер под спавном (лючок "Не влезай, убьет")  Спавн охвачен ЧР на 9x9 вроде.  А лучше в банке давай его влепим. Там куча подсобных помещений на первом этаже, в моей берлоге можно под первой кабинкой. Поставь там себе /sethome router да и все.

     

    Банк тоже охвачен ЧР.


  2. Да, тоже раньше не слышал о такой проблеме.

    Рекурсивный майнер пахал сутками без сбоев. А там алгоритмы достаточно высокой точности требуют.

     

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

     

    Но цикл

    for i=1 , 10 do 
       robot.forward()
    end 
    

    работал, если у робота нет ничего на пути, он 10 перемещений совершал, это к бабке не ходи :D

     

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

     

    А может это фича, связанная с оптимизацией? Может так и должно быть, а мы ламеры и не знаем всей глубины глубин задумки Сангара?=)

    • Нравится 1

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

     

    Частый онлайн ты никак не отследишь (и онлайн где?),а список людей, которые полгода - получить можно,но только там мусора больше, чем полезного

     

    Можно написать простенькую программку на ОС для ведения статистики, когда был, координаты, сколько всего отыграл на сервере, сколько всего заходов, сообщений в чат, сколько голосов всего и прочее. Полное досье завести на игрока, профайл так называемый, папочка с файлами игроков одноименными. Открыл и посмотрел. Но вот беда! Удалили пока всякие АМИ-шки и чатбоксы админские, которые ловили ивенты все, логины, разлогины, смерти, чат, перемещения по мирам и прочее прочее :)

     

    Но кто ее будет писать? Дядя Вася? У нас же сейчас глобальные проблемы есть! Домены менять всякие и список несуществующих хелперов и модеров принтить на сайт ;)

     

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


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

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


  5. Прессы формовочные  АЕ там есть, вроде добавлял. Кремний можно добавить не, вопрос, говорите цену.

     

    И кстати нет вообще никаких предложений по ценам, что дорого, что халява. Что? Все устраивает? Я ж там с потолка половину цен влепил! :)


  6. Практически все команды робота возвращают true/false как индикатор успеха выполнения.

    Если вы вызываете еще один forward в то время, как робот еще предыдущий не завершил - не ждите, что он "включит нитро" и понесется быстрее.

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

    Во-во, про нитро-ускорители тоже была мысль  :D


  7. Если так, как хочет Самррр  по пробелам забить слова в массив, то можно и так, без указания типа сепаратора:

    -- разбиваем строку по словам
    local function split(line)
      local data = {}
      for word in line:gmatch("%S+") do table.insert(data, word) end
      return data
    end
    

    Тогда  split("20 samrrr der")  вернет именно то, что ему нужно {"20","samrrr","der"}


  8. Сейчас фича, что за каждый голос и так идет 20 000 $ на счет. Можно просто поднять чутка коеффициент. 

     

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

     

    Курс предметов и UU не сопоставим. Тяжело придумать UU=>$

     

    Предмет может стоить в банке 300 UU и всего 1$, то есть у него приоритет - голоса, но не ресы. А например квант-панель стоит и большого количества UU, и достаточно не малого $, то есть не только голосовать, но и "индустрить" нужно :)

     

    Мысль имеет место, но такой фичи делать,  скорее всего не будем. Даже простая передача $ и UU другому игроку, и та несет некоторые "подводные камни", которые сразу не всем видны. Но на это я закрыл глаза и ввел передачу $ другому игроку со своего счета.


  9. Решение проблемы методом контроля исполнения команды передвижения, безусловно, рабочее. Но ведь робот не только движется. use() он тоже пропускает (хотя и много реже). Как её контролировать? А другие функции?  Эдак мы придём к тому, что нужно весь API робота переписать. Что-то тут не то. Разработчик мода просто не мог такой проблемы не предусмотреть.

    Я играл на разных серверах с OC и на всех были лаги и фризы. Куда ж без них. Визуально робот застывал, а потом мгновенно перемещался на несколько позиций выполнив работу. Здесь же он застывает на месте, команды не исполняются. Такое впечатление, что сервер не успевает всё обработать, но вместо снижения TPS просто сбрасывает часть очереди, не обработав её. В их числе оказываются и "заявки" на действия роботов от виртуальных машин Lua. Для роботов такая рассинхронизация фатальна. Перемещение - это лишь часть проблем, то,  что явно видно.  :(

     

    Но факт. Я вчера был сам удивлен немного, что робот не выполняет, как положено 10 перемещений=)

    for i=1 , 10 do 
       robot.forward()
    end 
    

    Сам в шоке. Хоть и такими циклами редко пользовался. Проверь в сингле. Раньше, кстати никто не жаловался. Сервак уже 4 месяца маслает. Первый раз от тебя услышал, что у вас там на МТ такое, а теперь и на ИТ. По идее он дожен выполнить их!!! Но нет. Может как-то это связано с обновлением мода и прочее.

     

    Но раньше я не слухом не духом не слыхивал, что робот может проехать пять блоков вперед, копая под собой блоки и какой-то блок пропустить! Это нонсенс!!!!!!!


  10. Используй gcc для отладки.

     

    Тут не в отладке дело. Что тут отлаживать? Три строки?

     

     

    Итак пишем прогу, которая бесконечно гоняет робота взад-вперёд :

     

    local r = require("robot")

    local component = require("component")

    local long = 10 -- длинна участка.

    local pause = 5

    -- гоняем робота взад - вперёд

    repeat

    for bb=1 , long do

    r.forward()

    end

    r.turnAround()

    os.sleep(pause)

     

    for bb=1 , long do

    r.forward()

    end

    r.turnAround()

     

    os.sleep(pause)

    until false

     

    И убеждаемся, что робот рандомно пропускает движения.

    И не только движения. use() - тоже иногда пропускает.

    Что делать, как быть?

     

    Да, действительно!

     

    Просто цикл

    for i=1 , 10 do 
       robot.forward()
    end 
    

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

     

    Во первых: No yield / sleep in the loop => нет гарантии правильной работы GC.

     

    Во вторых:  сам метод robot.forward() то вызывается 10 раз, но так как он никак не проверяется и пытается выполнятся на огромной скорости, нет никакой гарантии, что он выполнился с TRUE. Проще говоря, может еще не наступить физическое перемещение робота, и следующий вызов метода выполняется с FALSE и перемещение пропускается. Так писать движение робота, видимо, нельзя!

     

    Вот маленькая корректировка программы: 

    local r = require("robot")
    local component = require("component")
    
    local long = 10 -- длинна участка.
    local pause = 5
    
    local function forward()
    	while not r.forward() do
    		os.sleep(1)
    	end
            os.sleep(0)
    end
    
    -- гоняем робота взад - вперёд
    while true do
    	 for i=1 , long do 
    	 	forward()
    	 end 
    	 	r.turnAround()
    	 os.sleep(pause)
    	 for i=1 , long do 
    	 	forward()
    	 end 
    	 r.turnAround()
    	 os.sleep(pause)
    end
    

    Здесь функция 

    local function forward()
    	while not r.forward() do
                    --я написал паузу, но можете атаковать, разрушить блок и прочее, поставить любую задачу роботу
    		os.sleep(1) 
    	end
            os.sleep(0)
            --здесь можно увеличить координату и вернуть TRUE	
    end
    

    дождется выполнения перемещения, пока метод r.forward() не вернет TRUE. Робот переместится и цикл for пойдет дальше. Это гарантировано убережет нас от затыков сервера, маленьких подлагиваний и прочего. Иначе, вы не выполните четко 10 перемещений!

     

    Вот робот стал кататься четко по меточкам, даже если вы встанете на пути или положите камешек, а потом уберете:

     

    zRatW5u.png

     

    До корректировки, да, он катался на случайное количество блоков, когда на 10, а иногда и на 3 или 4, потом разворачивался.


  11. Так как GET запросы, например, к  http://www.timeapi.org/utc/now , требуют на выполнение определенного времени, до нескольких секунд, наличия интернет карты и кучи телодвижений, есть еще один вариант получения астрономического времени. Точное оно настолько, насколько точно его настроил админ на хосте.

     

    Стандартные функции date +%s  в консоли и в интерпретаторе os.date() выдают пока черти что, 1970 год и время с потолка.

    Всякие счетчики работы Луа машины и ПК нам тоже не подходят, типа os.clock() и прочих.

     

    Но есть один способ. В ОС можно получить дату модификации файла методом lastModified('filename') из библиотеки filesystem в формате UNIX

    Ним и воспользуемся. Модифицируем вспомагательный файл и получим время модификации тут же.

     

     

    Вот функция получения времени:

    -- ======машинное время (время хоста)=======
    
    -- раскомментируйте библиотеку, если она не подключена в вашем коде
    --local fs = require("filesystem")  
    
    --(установить для своего часового пояса, -12 : +13, например: -2 или 6)
    local TIME_ZONE = 2  
    
    --(не изменять!)
    local t_correction = TIME_ZONE * 3600 
    
    local function getTimeHost()
        local file = io.open('/tmp/unix.tmp', 'w')
        file:write('')
        file:close()
        local lastmod = tonumber(string.sub(fs.lastModified('UNIX.tmp'), 1, -4)) + t_correction
        
        --print(lastmod)
    
    
        -- Вариант 1
        --local data = os.date('%x', lastmod)
        --local time = os.date('%X', lastmod)
        --return data, time
    
        -- Вариант 2, eсли нужно все по отдельности
        --local year = os.date('%Y', lastmod)
        --local month = os.date('%m', lastmod)
        --local day = os.date('%d', lastmod)
        --local weekday = os.date('%A', lastmod)
        --local hour = os.date('%H', lastmod)
        --local minute  = os.date('%M', lastmod)
        --local sec  = os.date('%S', lastmod)    
        --return year, month, day, weekday, hour, minute, sec
    
        -- Вариант 3, но есть нюанс, если число минут(часов) 5, то и будет выдано 5, а не 05!
        --local dt = os.date('*t', lastmod)
        --return dt.year, dt.month, dt.day, dt.hour, dt.min, dt.sec
        
        -- Вариант 4, все в куче, как мы привыкли, в правильном формате
        local dt = os.date('%Y.%m.%d %H:%M:%S', lastmod)
        return dt
    end
    
    print(getTimeHost())
    

    Вот выдержка из Советской Энциклопедии о UNIX времени. 

     

    Часовой пояс установите, как Вам угодно (например, сейчас 2 на ИТ - это время Киев, 3 - МСК). Формат, который возвращает функция, тоже выберите, какой Вам удобно. Лишние закомментированные строки (--)  удалите.

    Теперь легко можно в лог записать любое событие и приписать ему время. Так же можно легко узнать дату и день недели через 234 часов, 36 мин, 40 сек, например, предварительно переведя временной интервал в секунды и потом вернуть астрономическое время. Например вы хотите узнать, через сколько на ИТ вы скрафтите 100К ведер жидкой материи. Это например, 2256 год, 1 апреля, 12:50:12, если не останавливать "генмат" не на секунду ;)

     

    Вот ретурн функции:

    Вариант 1: string, string     04/22/15  09:05:56

    Вариант 2: number, number, number, string, number, number, number     2015 04 22   Wednesday 09   05  56

    Вариант 3: number, number, number, number, number, number     2015 04  22    9   5  56

    Вариант 4: string     2015.04.22 09:05:56

    и т.п.

     

    По сути вся функция, это 7 строчек. Не нужно никаких гетзапросов выполнять, библ всяких и интернет карт.

     

    Подробнее о форматах os.date() здесь. 

    • Нравится 7

  12. Заявка всё ещё актуальна?

     

    Дмитрий (Zer0Galaxy)  программу сделал на 99%  Необходимо только было подкрутить скорость стрельбы и добавить экшена. Гашетка была только механическая. Сенсора не было. Ну и весь затык на том, что пушка на КК, с которым у нас ведется война. Проблемно стало кидать алмы черепахе или ПК, так как отрезали билдкрафт. А также врап-модемы не приватятся КК-шные, их легко вырубить правым кликом и соответственно произойдет краш программы.

     

    Прога то сделана, и пушка стреляет. Но беды с КК и вынужденная реорганизация модов приостановили немного процесс. Сделать бы  это на ОС и подключить стрельбу к банковскому счету, то и робота не надо, который всасывает алмы за игровую стрельбу. Напиши Зеро в ЛС, что там да как, и меня подключи к разговору.

     

    Но Дима, Крутой и Нео сейчас заняты титаническим трудом с глобальной сетью ОпенНЕТ и DNS серверами, и скорее всего, им не до пушки пока.


  13. Аналогично. Теперь 1/10 по флуду. Мы глупость на проекте лечим, людей на форум посылаем. А нам предупреждение за это. Если честно, я  больше не буду больше адрес сайта новичкам давать если не излечите. Хотите лечите, хотите нет.

     

    Ссылки все равно подрезались раньше игрокам каким-то плагином упорно (вместо http://mail.ru  в чат обычный игрок при вставке урла видел http //mail ru)   Резались точки и урлы все равно были некликабельны. Какой нужен пермишен и что конкретно режет урлы, я так пока и не занимался этим толком (админ нормально вставляет урл в чат).  С вводом секирбашки урлы лучше вообще в чат не кидать. Не нужны они там флудить.

     

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

     

    Не надо их носиком тыкать и писать в чат мол, вот наш сайт http://computercraft.ru,   там смотри. :) Потом когда разберусь с урлами и настрою маски разрешенных адресов, тема возможно, будет актуальной. Сейчас отличить полезные ссылки  от мусора проблематично.


  14. Плиз не удаляйте.Половина игроков пришли на серв только из-за КК.

     

    Это только мнимое ощущение.

    Из этой половины игроков большая часть пишет проги типа:

    while true do
       print('LOL')
    end
    

    Это раз.

     

    Второе. Если покопаться в нашем форуме минут 15, то становиться понятно, что за мод КК почти никто не вспоминает.

    Чанклоадеры - ОС, голограммы - ОС, 3Д принтеры - ОС, всякие рекурсивные копальщики, фермеры, лазерщики, бурильщики, строители, даже водяные насосы - это роботы ОС. Куча тем в блогах, обновления мода, новые возможности и прочее - все относится к ОС! Простенький генератор коблы у всех на ИТ собран на роботе, так как даже черепаху то не поставишь в основном мире. Спрашивается, зачем черепахи тогда нужны вообще? Сервак валить?

     

    За КК  - молчок полный. Все схемы на ИТ работают практически на моде ОС. Если бы не Крутой, который возится с черепахами, за них бы и слова никто не вспомнил на фоуме.

     

    Скачали бы там в нете экскавейт или квери-прогу и все на том. Или принтили ЛОЛ в цикле. Вот и весь КК на сегодня пока.

     

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

    Расширитель плат 2 уровня позволит вам кинуть на ходу в робота только плату 2-го или первого уровня, 3-го уже нет. Там все очень продумано.

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

     

    Чем черепаха радовала. Что собрал ее из камня железа и сундука, дал кирку и в ней все есть уже. Редстоун сигнал может подать например. А в робота нужно еще запихать плату красного камня:

    local com = require('component')
    local rs = com.redstone
    
    rs.setOutput(sides.forward, 10)   --подать сигнал редстоуна спереди с силой 10
    

    В КК в черепахе или ПК это:

    redstone.setOutput('front', true)
    

    И в чем сильная разница, скажите мне, пожалуйста? То же самое с остальными компонентами робота.

     

    Третье! .В моде ОС есть ограничение на использование памяти каждым ПК или роботом. В КК это нет. Нет защищенных каналов передачи данных. Не приватится врап-модем, его можно включать и отключать в чужих приватах. Сеть в КК абсолютно не защищена.

    И самое главное: простой цикл бестолковый может на 100% загрузить проц сервера и выжрать всю память.

     

     

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

    Атавизм, можно так сказать,  хоть местами он и проще в освоении, не спорю.

     

    Черепахи запрещены в верхнем мире, а без чанклоадеров их использовать проблематично в майнерс мирах, оставлять там стационарный ЧР опасно. Персональный ЧР для робота в разы дешевле в банке, и его нельзя вычислить в майнерс мире, если робот там где-то ковыряется на глубине.

     

    На МТ админы вообще пошли радикальным путем. Сделали крафт черепах чуть ли не из иридия, и по заверениям админов у них на МТ сейчас всего несколько десятков ПК(или черепах) на сервере за все время его существования судя по файлам на ФТП. И все норм, ребята играют. Но там больше они вообще играют в грег и крафт молибдена с вольфрамом, перетертым на тёрочке и запиханым в центрифугу для получения "чугуния" и "алюмимбума".

    Им там вообще не до черепах пока=)

     

    КК умер как сетевой мод

    в сингле - конфетка, простой мод для освоения, на серваке - гемОр

     

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

    • Нравится 4

  15. Был проведен "консилиум"" с Главным ордена К.А. (Кровавая администрация)

     

    Группа совещавшихся пришла к заключению:

     

    Мод КК опасен, так как может создавать неограниченную нагрузку на процессор и память сервера, даже один игровой ПК.
    В моде КК нет никаких ограничений на использование памяти и ресурсов сервера.

     

    Администрация приняла беспрецедентное решение планомерно и постепенно уйти от устаревшего и не развивающегося мода.

    • КК не имеет фейковой системы, что совершенно исключает его использование в мире с приватами, в частности черепах.
    • огромная дыра в реднет, никакой защиты данных пользователей и отсутствие защищенных каналов.
    • часто не срабатывает startup после принудительной перезагрузки сервера в случае лага (зависания)
    • мод не идет в ногу со временем, не адаптируется под игру на паблик серверах упорно много лет и т.п. (за 4 года было добавлено только окрашивание черепах, планшет и смена инструмента черепахами)
    • мод имеет миллион дыр и может потенциально легко вызвать выход сервера и строя или нормального рабочего устойчивого режима.

     

    Огромная просьба администрации! Перенести все свои программы, которые существуют только в игровых ПК во внешнее хранилище данных, например, пастебин.

     

    Операция "Тайфун-1" вступает по плану в активную фазу в понедельник 20.04.2015 в 22:00 МСК.

    Мир будет полностью очищен от модификации КК.

     

    Но есть одно НО. Некоторые аддоны не работают без КК.
    С удалением КК отваливается OpenPeripheral, immibis-peripherals, MoarPeripherals, поэтому, КК будет возвращен, но полностью будет отключено взаимодействие с ним и все крафты.

    Мод ОС перспективен и развивается стремительными темпами, постоянно фиксится и улучшается функционал.
    Он должен стать флагманом модов нашего проекта.

     

    П.С. Главный более месяца обдумывал это решение. И оно ему далось очень не просто. Я полностью тоже с ним  согласен.

    • Нравится 3

  16. Изменил программку по просьбам трудящихся.

    Теперь в мыльном ящике отображается инфа о фактическом времени захода, от которого пляшет следующий заход и подарок, текущая супер-серия и прочая лабуда. http://puu.sh/hhuEs/abca628919.png

     

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

×
×
  • Создать...