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

Fingercomp

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

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

  • Посещение

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

    283

Все публикации пользователя Fingercomp

  1. Учитывая, что на серваке один съедает 2 гига рама, так ещё и при появлении игрока в мирах кроме ФПСа проседает и ТПС до 5, память забивается подчистую. Да и вообще задумка модая невероятно тупая. Подойдёт разве что для школоло (людей не в особо здравом уме), которым лишь бы постреляться.
  2. Могу и, самое главное, хочу быть админом (!), потому что это круто. Требования все соблюдены, обязанности будут соблюдаться. В дата-центр по идее я и так должен попасть, но "при пожаре" хотелось бы иметь защиту. С вайтом тот же крипер — а вдруг не допустят? D: Трёхразовое питание — круто, особенно если будет таскать это дело робот. Со своей стороны также могу проделать АЕ-сеть, заниматься машинерией, в общем, техника может полностью лежать на мне. < .S.P
  3. "Не смотрел, но знаю". Советская Вицентопедия тоже молчит... Есть ещё обсидиан, но уродливый он. Так что да, только углеблок.
  4. Чёрный-синий-голубой-оранжевый. Прям как я люблю. Выглядит уже круто! Жаль, нельзя юзать хамелиум снаружи — там красить можно. Но есть чёрная глина, что будет получше угля, думаю. По крайней мере, потому, что у меня не будет желания каждый раз, когда буду проходить мимо, добыть эти блоки
  5. Эмулятор для OpenComputers есть. Но ОЧЕНЬ сырой, и, похоже, автор доделывать его не собирается. Вдобавок компилировать не под Линуксом проблематично. Да и в Лине тоже проблемы есть, например, ту же либу X11 надо взять из кедов и запихать в папку с либами. Not user-friendly at all, то есть.
  6. Fingercomp

    Псевдо ООП для новичков. L1

    А я дополню, что за хаос творится в коде Начнём по порядку. Сначала мы создаём локальную таблицу class, в который мы указали, что есть x и y как переменные. Так как это у нас будет класс, то будем учиться говорить правильно: это свойства класса. Их можно изменять как в обычной таблице: class["x"] = 42 -- Способ первый. class.x = 42 -- Способ второй. (отступление 1. Обратите внимание на второй способ: индексирование через точку, как я это называю. Это удобно, когда Вы точно знаете называние поля. Кроме того, это может сэкономить Вам несколько символов при кодинге в БИОСе, но не об этом речь. И есть ещё один нюанс, о котором я расскажу далее) С таблицей мы закончили. Теперь Вам понятна запись class.__index = class. Мы индексируем таблицу class, находя там свойство __index, и присваивая ему значение class. Стоп. Откуда, во-первых, взялся __index, ведь мы же его не указывали! И зачем писать таблицу саму в себя? D: Оказывается (и тут начинается магия ООП), у любой таблицы есть список "скрытых" свойств! В этом уроке рассказывается только об одном из них — индексирование... А давайте не будем бежать впереди паровоза, а то он Вас и задавить может спокойненько, как бы. Познакомимся с понятием "ООП". Это Объектно-Ориентированное Программирование. Такая штука после основательного осмысления может помочь Вам в особо крупных программах, экономя код и нервы. ООП построено по принципу эволюции: сначала создаётся объект, который содержит только базовые функции, затем он наследуется, получая функции своего "родителя", и, вероятно, модифицируясь (убирая, например, некоторые свойства предка и добавляя свои). Сейчас Вы на примере поймёте, о чём я говорю. Пропустим эту строку, и поедем дальше. function class:addObject() end Обратите внимание на ":" между class и addObject(). Если бы мы добавляли функцию через точку, то нам пришлось бы дополнительно указывать self в аргументы: function class.addObject(self) end Но, согласитесь, это нерационально. ":" же сам вставляет self в аргументы, так что теперь нужно только указывать параметры. Кстати, любая такая функция класса (function someclass:somefunc() end или function someclass.comefunc(self) end называется методом класса) С этим понятно. Рассмотрим код. local a = {} Такая строка затруднений вызывать не должна. Но на очереди новая стандартная функция, которая служит для работы с псевдо-ООП: setmetatable()! Она осуществляет наследование, о котором я рассказывал выше. В первый аргумент мы должны указать ссылку на таблицу (попросту, аргумент с таблицей, которая будет "ребёнком"), а во второй — ссылку на таблицу-"родитель". Так как это происходит внутри класса, достаточно указать self. Затем вы возвращаем получившегося "ребёнка". (Отступление 2. Обычно метод класса, который осуществляет наследование, называется new() или create()) Теперь метод setPos(). Помните, мы указывали в таблице свойства x и y? Так вот, чтобы обращаться к методом своего класса, используется всё тот же self. Мы просто устанавливаем для них значения. Фух, с объявлением класса мы закончили. Следующее на очереди: процесс наследования. Наследуем очень просто: someobject = Someclass:new(), например. На так как здесь за создание отвечает addObject(), вызываем его. Мы получили объект pixel. Объект — то, что получилось после наследования класса. И так как произошло наследование, то pixel получил все методы класса. Оступление 3. И напоследок о "красоте кода". Переменная класса пишется обычно с Заглавной Буквы, слова также отделяются Заглвными Буквами: SomeClass. Метод класса, создающего объект, называется обычно new().
  7. Кстати, раз уж заговорили о правах, стало интересно, почему tpaccept и tpdeny доступен прогерам и выше. Полезнее к игрокам обычным ходить, чем к прогеру другому.
  8. Да тут надо меняться с прогеров на хелперов. Но так как Алекс "упразднил" голосования на пост (писал он, что будет сам выбирать, но голосования остались), хелперов не будет P. S. А лично мне без разницы на таких. Ну, запомню, как неадекватов и лишённых мозгов, бывают же такие люди. Пропишу там /ignore, если задолбали матом и флудом.
  9. Так как чаровать синий бур, если им ПКМ тыкать нельзя?
  10. В игровой чат писать, чтоб знали, через команду /say можно
  11. Хех, куб-компаньончик!) Жаль только, что сердечек нет, а только квадратики.
  12. А как, по-Вашему, зачаровывать синие буры, если тыкать ими даже по монитору нельзя? D:
  13. что, поттвоему, лучше — грузить многотонную Джаву как апплет, или написать на JS чатик? JS выигрывает однозначно: быстрее, меньше памяти сжирает.
  14. Если такое будет сделано (а я подозреваю, что нет), будет неплохой бонус к проекту Согласен поучаствовать в разработке (если будет) и предоставлять посильную помощь.
  15. Я ж говорю, если владелец открывает порт для всех — его проблемы. Но отключение прого-реагирования на модем-сообщения сделаю, так как это выполняется элементарно.
  16. Собственно, в комплекте идёт также немного древнего оружия типа кинжальчика, лука, какая-то броня с баффами-дебаффами и т. д. То есть, по сути, — это зачатки RPG в Майне.
  17. То, что для сетевых сообщений к нику прикрепляется префикс "[NET]". То есть если кто-то будет писать "Fingercomp", "привет всем", выведется что-то типа такого: [время] [NET]Fingercomp: привет всем. Зарезервированные имена я не делал пока что, так как открытие портов не по фильтру лежит целиком и полностью на совести владельца такого чат-сервера
  18. Итак, подробнее об использовании. Начнём с очков. Просто подходим к мосту, тыкаем очками по нему и одеваем. Если всё пройдёт успешно, то появится боксик, в который можно отправлять сообщения так: $$ сообщение. Писать это нужно в игровой чат, игрокам без прилинкованных к серверу очков это не будет видно всё равно. Кстати, в ивенте есть и имя отправителя, и uuid, и само сообщение. Дальше, чуть сложнее будет с сетевым интерфейсом. Здесь ник нужно указывать вручную. Но где и как? Всё просто, как никогда. Способ №1. modem.broadcast(PORT, вашник, сообщение) modem.broadcast(12345, "Фингер", "Привет, мир!") Способ №2. modem.broadcast(PORT, "!вашник:сообщение") modem.broadcast(PORT, "!Фингер:Привет, мир!") Второй способ немного недоработан, выложу новую версию поскорее с фиксом. P. S. Обращаю внимание, что главный чат-сервер может отрубаться, когда я буду оффлайн: может кончиться энергия, генмат быть оставленным включённым и т. д. Стабильной работы не будет до тех пор, пока чанк не будет постоянно загружен и будет отсутствовать полностью бесперебойная, не зависящая от других факторов, подача энергии. Вот такие дела.
  19. Этот дурацкий InGameInfo мне закрывает карту Но ладно. Играл я с этим модом (я думаю, это и так понятно), модик интересен, нагрузка есть, но маленькая, помню, какой-то дюп там был с этим, причём богатенький, но, надеюсь, поправили, да и не помню, как это сделать...
×
×
  • Создать...