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

Doob

Гуру
  • Публикации

    1 089
  • Зарегистрирован

  • Посещение

  • Победитель дней

    141

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


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

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

    • Нравится 6

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

     

    Было дело, пилил такое на одном сервере с компутеркрафтом.

    r2XdaFv.png


  3. Так и бегали, как марафонцы, вместо того, чтобы копать и крафтить.

    Поселился я рядом с игроками на робике, чтобы по-соседски грузить чанки, но игроки слиняли и я остался один... и чтобы добраться до спавна уходил один игровой день, добраться до других игроков - еще около дня и это по скоростной дороге. Когда нормально заработали варпы и хомки, стало проще, но в магазин я заманил всего двух игроков (ну да, тогда уже все разошлись), был вариант - загнать робота с чатбоксом в загруженный на спавне чанк, но это все-таки дико. А от описания варпов толку <0, т. к. список смотрят еденицы, да и то, приходится орать в чат, чтобы до всех дошло.

     

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

     

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

    Можно не впадать в крайности, и сделать схему посложнее, например: нижний этаж - спавн с переходами к приватам, а верхний - соты. 

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

     

    ПС если лень админить рабочий серв, то надо как-то это автоматизировать.


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

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

    К тому-же, для торговли это совсем не юзерфрендли, т. к. конечному пользователю надо все и сразу, а не бегать искать нужный отдел. Например, если в названии варпа есть слово 'shop', то туда приходит один из 10 игроков, а если магазин стоит лицом к спавну, то туда заходит каждый.


  5. Если игрок заберет из зарядника инструмент, программа упадет.

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

    local component = require('component')
    local computer = require('computer')
    local i_c = component.inventory_controller
    local robot = component.robot
    local i_size = 1 -- количество слотов у зарядника, чтобы не путать с другими блоками
    
    local function charge()
      local st = nil
      for d = 1, 4 do -- найти сторону с зарядником
        if i_c.getInventorySize(3) and i_c.getInventorySize(3) == i_size then -- проверить размер инвентаря
          while not st do
            if robot.durability() ~= 1 then -- если не заряжен
              i_c.equip() robot.drop(3) -- скинуть в зарядник
              os.sleep(10) -- подождать
              robot.suck(3) i_c.equip() -- взять из зарядника
            else -- иначе
              st = true -- остановить цикл
            end
          end
          break
        end
        robot.turn(true)
      end
    end
    

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


  6. Вообще, хранить деньги, в виде предметов в игре - не разумно. Дюпы есть на всех серверах, чем больше модов, тем больше дюпов.

    Например: игрок задонатил пять червонцев, купил на них игровые монетки, нашел дюп, надюпал. В итоге - сервер откатывается, банятся все донатеры, убирается донат и сервер умирает (либо все чинится/запрещается, дюпающие механизмы продаются за донат).

     

    Но это я просто придираюсь, превращение цифр в предметы и обратно, займет с десяток строк, надо только пример БД, чтобы знать, как к ней обращаться.


  7. Я делал обменник через дебагу подобным образом. Гивал какие-то предметы со служебной информацией в NBT. Проблема в том, что нет возможности работать с инвентарем напрямую, а делать все через чат не интересно.

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

    А вот используя скорборды, можно привязать к валюте и БД сайта (или управлять скриптом сайта напрямую), привязать игровые события, другие системы.


  8. local component = require("component")
    local event = require("event")
    local robot = component.robot
    
    local function move(side)
      if not robot.detect(side) and not robot.move(side) then
        move(side)
      end
    end
    
    local CMD = {
      w = function() move(3) end,
      a = function() robot.turn(false) move(3) end,
      s = function() robot.move(2) end,
      d = function() robot.turn(true) move(3) end,
      e = function() move(1) end,
      q = function() move(0) end
    }
    
    while true do
      local e = {event.pull('chat_message')}
      if e[4]:sub(1,1) == '#' then
        for i = 2, #e[4] do
          local index = e[4]:sub(i,i)
          if CMD[index] then
            CMD[index]()
          end
        end
      end
    end
    

    А вот версия для ЕЕPROM:

    local robot = component.proxy(component.list('robot')())
     
    local function move(side)
      if not robot.detect(side) and not robot.move(side) then
        move(side)
      end
    end
     
    local CMD = {
      w = function() move(3) end,
      a = function() robot.turn(false) move(3) end,
      s = function() robot.move(2) end,
      d = function() robot.turn(true) move(3) end,
      e = function() move(1) end,
      q = function() move(0) end
    }
     
    while true do
      local e = {computer.pullSignal()}
      if e[1] == 'chat_message' and e[4]:sub(1,1) == '#' then
        for i = 2, #e[4] do
          local index = e[4]:sub(i,i)
          if CMD[index] then
            CMD[index]()
          end
        end
      end
    end
    
    • Нравится 4

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

    Кстати, тексты на латыни.

    KMMKXPMLZUIYDOGWYQFXYLWBAISSPWMBHZIGIXTQGEWQDAVIPTCDJQTAHAVZKMWIIZPVVPHBDBSIRTBUHZZCWWMIESVTCZXGFGDCYMQW
    QNTUTVDAUQOWSVSWMMIMLSWQNWSIVTBMHETRLAZBVSVHZOAEIIGCXQVIXWMODVREVCKXOMGXDUIXRVLZBQQYQFIFGIJIXDZVXQUNMZJT
    VRVWNXLXYFDAHSGUHZDMWTYXTXPIZAPDDZXQIQXQGXREPIGMQSQBVMIMJPDZXQWIZXZNXWYIFLDMVZIKMYXLZFHAOCVEXKIETBZGHBXC
    UEWXOACITTXUPTWYQGMOBSIISMMDLQQXBGPQKEQMIBHGEXAMGIKEUZVALTIMMGCKLEQBPUSYIKMFRSIOQINMWGEWCYBEISLUZURVIFLG
    TPCIVXVZWEGNUEXULASWOCLXZTOMCXVMIIGTHVIMMEIEUIFMOIUKYMIQEVFPHZZBQIEXZMTQLRUMPUQSHHKAWMSEUMXZLRIFAUEIIIQD
    DAXQQHZMXEEIWWMMPJMXBMQMKOOMIQWEPUMERIESDVDURWGTXUAPLSOQOQXQIMZUMEVCXXDLRWTKWFTVMAHVJVHKSAWOUIIRHUXIOMHN
    AUJZVNWIXWQWYEMBAEECR
    

  10. Лол, зачем мне вся фурнитура? Ты ведь сам понял, что за формат. Я глянул контейнер, нашел расхождение в CRC, причина в одном символе 6F AE A3 B1, создал контейнер с таким же наполнением, получил - 6F AE A3 B0.

    А дальше своим ходом.


  11. Раньше, для большего удобства делали так:

    AUDVX WHNKQ CXZOF BJOLR XTWOI SPCHV OCPXV BOUCX RZPQG THUYB VCJIT EQBPU VIBTO UCXRM XVJUL PPXLG D

     

    Но вообще, это одна строка и скрытого смысла в разбиении нет.
    AUDVXWHNKQCXZOFBJOLRXTWOISPCHVOCPXVBOUCXRZPQGTHUYBVCJITEQBPUVIBTOUCXRMXVJULPPXLGD


  12. Предлагаю вашему вниманию, не очень сложный хакерквест, из небольшой цепи заданий.
    Решение каждой задачи, открывает подсказку к следующей.
    Первый, решивший все задачи, найдет неактивированный ваучер на 1500 UU,
     
    Первая задача:

    AUDVXWHNK
    QCXZOFBJO
    LRXTWOISP
    CHVOCPXVB
    OUCXRZPQG
    THUYBVCJI
    TEQBPUVIB
    TOUCXRMXV
    JULPPXLGD
    
    • Нравится 3

  13. Кстати, да, я заметил, что мониторы отваливаются только на роботах (не сложно ребутать раз в 5 минут)

    Запустить редстоун без ванили можно кучей способов, но меня интересует, почему прога не работает, можно скрин всего компа?

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