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

Totoro

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

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

  • Посещение

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

    289

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


  1. Как писал уже в похожей теме на оф. форуме Фингер, встроенная в мод интернет плата не имеет удобного саппорта PUT запросов.

    Если очень надо, можно сделать хак через сокет.

     

    Готовый хак (слегка сырой) от Фингера можно найти тут: libhttp.

     

    P.S. Issue в репозитории OpenComputers висит уже два года, и никакого шевеления.

    • Нравится 2

  2. Первый вариант:

    require = function(path)
        print(path)
        require(path)
    end
    

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

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

     

    Второй вариант:

    local r = require
    require = function(path)
        print(path)
        r(path)
    end
    

    Здесь ты добавил еще один указатель на объект функции, на который изначально ссылается переменная require.

    Таким образом, когда ты переадресовал саму переменную на новый объект, старая реализация не была удалена - на нее ведет еще одна ссылка - переменная r.

    И именно через эту ссылку твоя новая функция может вызывать старую функцию.

    Здесь все нормально и логично.

    • Нравится 1

  3. Собственно это есть часть моей общей задумки. На что мне еще разбить создание функции делающей таблу шмоток с сундука?

     

    На составные части.

    Что такое - "сделать таблу шмоток"?

     

    Это тебе надо пройти по каждому слоту и переписать оттуда информацию.

    Тут сразу целый букет подзадач и вопросов:

    * Как в Lua с помощью кода перебирать что-то от 1 до N?

    * Как определить размер инвентаря в сундуке?

    * Как получить информацию о предмете, который лежит в сундуке в слоте номер X?

    * Как создать таблицу?

    * Как записать информацию в таблицу?

    * В каком виде хранить информацию о предмете в инвентаре, и вообще какие параметры этого предмета тебе надо хранить?

    И т.п.

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

    • Нравится 4

  4.  

     

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

     

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

     

    У нас тут публикуют программы люди, которые не играют (и даже не играли никогда) на наших серверах. И это хорошо, это надо поддерживать.

    • Нравится 1

  5. OqTR0bf.png

     

    Итак, небольшое объявление.

     

    Сайт Hel может побыть оффлайн один-два дня.

    Если им кто-то таки пользовался - приношу большие извинения.

     

    Дело в том, что мы переносим весь fomalhaut целиком на новую, более мощную VPS.

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

    Старую VPS этой ночью отключили за неуплату. =) База данных пакетов и пользователей с репозитория забекаплена.

    В ближайшее время развернём репозиторий на новой машине.

     

    P.S. Логи ирки, цитатник, статистика и прочее тоже в процессе переноса, и тоже может пропадать или быть в неактуальном состоянии, какое-то время.

    • Нравится 4

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

     

    Корейцы - они такие, да. =)

    Ну значит ждем четвертую версию.


  7. Да мне кажется надо оставить просто один показатель - ранг, или рейтинг, или звание форумное.

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

    Полувоенная система такая :D

     

     

     

    кстати, глянь, хилсушки вообще не заморачивались особо, но идеи и суть некоторых наград порой очень оригинальна и интересна :)

     

    Ага. Форум у них кстати, довольно симпатично оформлен. В едином стиле.


  8. Сколько перечитывал ничего не понимал, вы как боги луа пожалуйста, объясните на пальцах как работает конструкция а.а.а.а, не понятен функционал а.а = а от слова СОВСЕМ. Просто объясните на пальцах как для дибила

     

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

     

    Таблица в Луа - это коллекция данных в формате ключ = значение.

    В таблицу можно положить что-то под конкретным ключом, и достать что-то по конкретному ключу.

     

    Конструкцию вида t.key = value можно по другому записать как t["key"] = value. Это как раз операция которая используется для того чтобы положить что-то в таблицу. t тут - таблица, key это ключ, а value - это значение которое ты кладешь в таблицу.

     

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

    Выглядит так: t.key. Или еще можно записать так: t["key"]. Это одно и то же.

     

    Когда ты пишешь a.a = a, это эквивалентно a["a"] = a. То есть в ячейку таблицы с ключом "a" кладется ссылка на саму таблицу a.

    В Lua на одну таблицу может ссылаться несколько переменных из разных мест. Дубликатов при этом не создается, все переменные на самом деле работают с одной и той же таблицей. В том что ячейка таблицы может ссылаться на саму эту же самую таблицу тоже ничего необычного нет. Это допустимо.

     

    Когда ты пишешь цепочку типа a.a.a.a, из предыдущего примера, происходит вот что:

    * Lua вычисляет все по очереди, слева направо. Если поставить скобки для понятности, то оно будет выглядеть так: ((a.a).a).a.

    * Lua смотрит на первое звено: a.a. Это то же самое что a["a"]. Это операция получения значения из таблицы по ключу. Где таблица называется a, и ключ называется "a". Поскольку перед этим мы положили в ячейку "a" таблицы a ссылку на саму эту таблицу, то операция a["a"] возвращает эту ссылку. То есть a.a можно упростить просто до a. В конце концов ты сам перед этим написал, что a.a = a.

    * После упрощения получается такая конструкция: ((a).a).a) или просто (a.a).a. Lua берет следующую пару a.a и делает то же самое - упрощает ее просто до a. Остается (a).a или a.a. А это, как мы помним равняется просто a.

     

    Таким образом, если a.a = a, то какую бы длинную цепочку мы не писали, Lua упростит ее до просто a.

    • Нравится 2

  9. Пример:

    local a = { x = 10 }
    a.a = a
    print(a.x)
    print(a.a.x)
    print(a.a.a.x)
    print(a.a.a.a.x)
    

    Если ты попробуешь запустить этот код - ты получишь четыре десятки.

    Конструкция a.a = a создает в таблице a поле с ключом a которое в качестве значения ссылается на саму таблицу a.

    Поэтому когда интерпретатор Луа начинает выполнять код, любая цепочка вида a.a(.a) сведется в конце концов просто к таблице a.

     

    Теперь добавим строку а.а.а.а = 3:

    local a = { x = 10 }
    a.a = a
    
    a.a.a.a = 3
    print(a.x)
    print(a.a)
    print(a.a.x)
    

    Мы получим последовательно число 10, число 3 и ошибку.

    Поле a в таблице a было переопределено, и теперь содержит ссылку не на таблицу a, а на константу 3.

    Поэтому конструкция a.a теперь равняется трём, и любая попытка продлить цепочку (типа a.a.a) будет приводить к ошибке индексации, потому что нельзя получить поле по ключу из числа (конструкция 3.a не имеет смысла).

    • Нравится 3

  10.  

     

    и попробовать создание экспериментального интерфейса сайта

     

    Ну ты конечно загнул. Тут вопрос постить или нет медальки обсуждали три дня. А ты хочешь переделать форум на графовое облако.

    • Нравится 1

  11. Ну я не вижу в дизайне oc.cil.li ничего ужасного. Нормальный там шаблон.

    У редов тоже хорошо сделано, у них как раз баланс чистоты и простоты.

     

    Тут главное - консистентность. Чтобы стиль в пределах сайта не нарушался. И тогда все будет клево смотреться.

    Дизайнеры же не просто так свои гайдлайны придумывают.


  12.  

     

    чего его мусолить пока игровые идеи и концепции игровых сборок. Давайте пока обсудим новый движок форумный, что на нем должно быть, какую гамму цветовую хотелось бы видеть и функционал и тд.и тп.

     

    Так мы на два фронта флудим. =) И тут и там успеваем.

     

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

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

    • Нравится 1

  13. Насчет игры - можно запилить что-то в стиле *.io игр.

    То есть:

    * арена

    * бесконечный дезматч

    * можно ввалиться в игру с любого момента, в рандомном месте карты

    * быстрая прокачка

    * такой же быстрый слив

    * текущий топ по очкам

     

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

    Либо как в кримсон ленде - перки выскакивают на выбор, при наборе опыта.


  14.  

     

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

     

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

    "Танчики", "запусти дрона", "дискето-кликер", "кто хочет стать программистом" и т.п.

    • Нравится 1
×
×
  • Создать...