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

Totoro

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

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

  • Посещение

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

    289

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


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

    Но всё же, я верю что мечта о свободной торговле, которую я описывал в Базаре, когда то будет реализована. И хотя сейчас я не нашел способа работать с ME сетью через ОС, что бы хоть что то работало, можно временно использовать и админкоманды.

     

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

     

    Объединимся?

     

    В игре, в чате, постоянно спрашивают - "Когда банк будет готов?", или "Почему никто не делает банк?". Алекс решил портнуть его на ОС, и я в этой теме как бы предлагаю один из вариантов.

     

    Идея БАЗАРА по прежнему кажется мне очень привлекательной и ее безусловно надо довести до релиза.

    Проблема с МЕ сетью - это слабое место пока. Я тоже искал способы комфортно работать с ней через ОС, но пока не нашел. Оно реализовано как-то кривовато у Сангара. (Кстати, на форуме недавно кто-то опять спрашивал об этой проблеме, может Сангар таки ответит? Или улучшит интеграцию с АЕ.)

     

    Ты предлагаешь объединить Банк и Базар в один?

    В принципе можно. В текущем проекте изменения будут минимальными. Просто нужно будет чтобы сервер, в качестве альтернативного варианта не создавал предметы из воздуха а читал таблицу "лотов".

    Я думаю можно поступить двояко:

    1) Объединить терминалы. Сделать в меню еще один пункт - "Базар". И юзер попадает на "аукцион", может листать лоты, ставить свои и заказывать их. Систему валюты можно оставить ту же самую, чтобы не было путаницы.

    2) Сделать разные кабинки для Банка и Базара, но стоять они будут рядом, в одном здании и будут соединены с одним и тем же сервером Банка. Ну и роботы будут обслуживать их одинаково.

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

    Я сделал набросок терминала.

    Сейчас работает авторизация игрока и система надежных "дверей", запирающих кабинки.

     

    2015-03-05_16.50.59.png

     

    Учитывая, что в сердце сервера запрятана дебаг-плата, я не стал мудрить с "механизмом":

     

    2015-03-05_16.51.30.png


  2. Убиваете всю романтику. Просто закапываете живьем ребята. Предметы уничтожаются и берутся из воздуха!

     

    МУА-ХА-ХА-ХА-ХА-ХА!

    ХА-ХА!

     

    Я согласен с крутым, где такое видано банк который не хранит.

    Да и им никто пользоваться не будет, я специально принесу 20к булыжника, что бы если есть хранилище, оно забилось.

     

    А вот и первый пользователь нашего банка! Добро пожаловать! По текущему курсу, продав 20К булыжника, вы получите 20К кредитов на ваш счет.


  3. Итак, фича, которая, насколько я понял, совершенно необходима любому приличному банку:
    F1. Загрузка прайсов из Pastebin
    F2. Отображение цен в вестибюле банка

     

    Здесь у меня хранится таблица:

    http://pastebin.com/y9JDXd4y

     

    А так выглядят цены, прочитанные программой:

     

    2015-03-05_04.00.57.png

     

    В верхней части таблицы на Pastebin записано что-то вроде "timestamp". Время последнего обновления таблицы.

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

    Под "штампом" записано одно дробное число (от 0.0 до 1.0) - наценка. Оно означает, на сколько (процентов) дешевле банк принимает товары, чем продает их.

    Сами цены имеют такой формат:

    <id>[:metadata] <продажа> [покупка] <название>

    Если значение "покупки" не указано, то банк сам его рассчитает на основе наценки.

    • Нравится 1

  4. Банк? Ура!

    А что если сделать его на RFID картах, с ключами безопасности?

    Потеряют карту - сами виноваты.

    Как в реале :)

     

    RFID-карты и ключи безопасности - это все очень заманчиво. Я когда телепорты писал пробовал их присобачить. Карточки, коды доступа - хакерская романтика =)

     

    Но теперь я решил использовать другой подход.

    Банк будет нетребовательным и надежным как удар кувалдой. :D  Я пишу его только на ваниле + ОС. Никаких дополнительных модов Даже от АЕ отказался (взял только креативный топливный элемент).

    Авторизация игрока будет проводиться через "фейс-контроль". Т.е. игрок вошел в кабинку - по центру дисплея кнопка "Авторизоваться".

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

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

    Через пять минут бездействия (если игрок телепортнулся) компьютер разблокируется и вход снова открывается.


  5. ПЛАН БИТВЫ

    1) Схема

    bank.png

    2) Пояснение

    Внутри банка - кабинки.

    Внутри кабинок - терминалы.

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

    Возле терминалов - сундуки, в которые клиент кладет свой товар. И откуда забирает купленое.

     

    За стеклянной стенкой - орава роботов. Роботы берут товары, которые продал клиент, из сундука, пересчитывают и увозят в "хранилище" (или просто выкидывают в дезинтегратор, все равно у админа креатив).

    Затем они получают в "хранилище" покупки клиента и везут их обратно.

     

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

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

     

    Итого: для работы банка потребуется написать три программы.

    1) Терминал. По большей части - это просто графический интерфейс, который действия юзера преобразует в запросы к "шефу".

    2) Робот. Робот передвигается по банку, отвечая на вызов клиента и перевозя товары. Он проверяет ID товаров, и их количество и передает эту инфу "шефу".

    3) Сервер. Сам "шеф". Командует парадом.

    • Нравится 4

  6. Та не, дело в том, что на серваке стоит Essentials, который команду перезаписывает на свою.

     

    Кстати, если юзать ванильную команду, то прописывать нужно bukkit:weather thunder 100500, например.

     

    У них на сайте слово rain вообще в алиасы команды записано.

    Команда: weather

    Алиасы: sky, sun, storm, rain

    Описание: Manipulates the weather.

    Синтаксис: /<command> <storm|sun> <duration>

     

    (http://wiki.ess3.net/wiki/Command_Reference)


  7. Не работает  :(

     

    Вообще команда выглядит так:

    weather <clear|rain|thunder> [duration in seconds]
    

    (http://minecraft.gamepedia.com/Commands#weather)

     

    Можно попробовать задать продолжительность.

    Команда не может быть ограничена - только для админов и т.п.? Так чтобы КБ ее не смог выполнить.

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


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

    У нее есть команда

    insertItem(id:string, count:number, damage:number, nbt:string, x:number, y:number, z:number, side:number):boolean - Insert an item stack into the inventory at the specified location. NBT tag is expected in JSON format.

     

    И команда

    removeItem(x:number, y:number, z:number, slot:number[, count:number]):number - Reduce the size of an item stack in the inventory at the specified location.


  9. Интересует каким образом реализованна команда read из СС .

    Где можно посмотреть исходники таких команд ?

     

    Оболочка к этой команде, насколько я понимаю находится здесь:

    ComputerCraft1.65.jar\assets\computercraft\lua\rom\apis\io

     

    Однако она упирается в _G.read(), а это значит что сама реализация скрыта в исходниках мода.

     

    Вот тут есть пример самописного ввода данных (с ограничением максимальной длинны ввода дополнительно):

    http://www.computercraft.info/forums2/index.php?/topic/7945-max-input-length/

    Плюс, посмотреть ввод данных на эвентах можно в OpenOS - Term API (для OpenComputers).


  10. И зачем мне этот гемор? :)  :blink:  Какие такие кнопочки в банке? Нажимные плиты что ли? И как по ним прыгать? Как ник получать? 

    Чем чат то плох? Так и приватить можно отменить команты /trust через чат, а сделать на кнопках. И админ команды ворлдэдита.=) Чат то наоборот удобно. А так будет, как обычно в майне. Вася чарит, а Петя мордочкой в монитор тычется шифтом с отставленной назад задницей,  по кнопкам прыгает и мешает и прочее. Это геморой еще тот, лишние телодвижения. Головняк неописуемый, короче.

     

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


  11. И куда его к черепашке прилепить?

     

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

     

    А вообще векторные рассчеты - очень полезная библиотека. Взять хотя бы GPS, которым программисты CC пользуются "искаропки".

    Он весь построен на векторах.


  12. Вопрос, как открыть этот файл?

    edit ocs/apis/sensor
    

    Или, если так не даст, то в два приема:

    cd ocs/apis/
    edit sensor
    

    В сингле - просто открой папку с сейвом и найди каталог computer. Там все файлы внутри должны быть.


  13. Я правильно понял, что генератор заправляется только во время очистки инвентаря?

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

     

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


  14. Можно распостранятся используя бит нет вышку

     

    Это если у жертвы уже стоит "бекдор".

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

     

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

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

    И т.д.

     

    Надо посмотреть, есть ли способ держать загруженную программу фоном на компьютере с OpenOS.

    • Нравится 1

  15. Чего-то пока не нашел фейка в дронах. Потыкался по ним сканером, глухо. В роботах все гуд. И в конфиге не нашел упоминания про дронов и формата фейк-плеера. Странно. Сангар точно обещал в 1.5 привязать их? Дима, а ты смотрел?

    И еще вроде, субъективно, дрон стал еще быстрее разряжаться, как китайский планшет)

     

    Вот точная цитата его ответа:

    In 1.5 drones will have their own fake players, in 1.4 they use the general OC fake player.

     

    Да, разряжаются быстро. Глянул в конфиг -

    # The amount of energy a drone can store in its internal buffer.
          drone=5000
    

    И 0.4 энергии они жрут в такт.

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