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

SergOmarov

Пользователи
  • Публикации

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

  • Посещение

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

    1

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


  1.  

     

    И зря ты сравниваешь IT с другими серверами. Там у них донат, школоадмины и лаги. Видимо нубам этого не хватает и они валят с IT за покупкой доната на другие сервера.
     

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

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

    Суть далеко не в донате и школо-серверах.

    P.S. И не со школо-админским сервером я IT сравнивал=)


  2. И еще небольшой вопрос: какой файл работает при работе в самой OpenOS, в плане при перемещении по папкам и т.д.?

     

    Меняет расположение. Хранятся они физически в виде обычных файлов, в обычных папках, в <world>/opencomputers/<disk address>/.


  3. кто не хочет видеть магику, не мешали ноды и другое

     

    А ты их и не увидишь, если специальные очки не натянешь...

     


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


  4. Перед написанием кода было бы полезно потестить функции либы в интерпритаторе:

    lua>=forms.run --function:<Address>

    А если заюзать мою help-функцию, и написать описание:

    lua>=forms.run --function(form:Form):void

     

    Ведь это легче, чем читать доки!


  5. Вот смотрите: например, библиотека forms содержит много конструкторов, методов, и если не часто ею пользуешься - что-то забываешь аргументы, и приходится лезть на форум. Вот для таких библиотек эту штуку я и написал.

    P.S. qwertyMAN, в твоем примере описании функции в виде комментария, который из интерпритатора невиден


  6. Есть у нас какая-то либа, мы хотим, чтобы из интерпритатора lua можно было увидеть описание функции.

    Можно воспользоваться моей библиотекой, состоящей из единственной функции.

    Пример использования:

    local somelib={}
    somelib.somefunction=function(a) print(a) end
    
    local help=require("help.lua")
    
    return help("<имя файла, содержащего таблицу описаний>",somelib)--Возвращается либа с описаниями  

    А в файл описаний:

    return {somefunction="Это описание somefunction"}

    При тесте:

     

    lua>somelib=require("somelib")

    lua>=somelib.somefunction--Это описание somefunction

    lua>somelib.somefunction("Test")--Test

     

    Исходники:

    http://pastebin.com/57Q7M1dK

    • Нравится 3

  7.  

     

    Ыер... Топикстартер, ты разве нуб? В программировании, имею в виду. Если нет, то кыш из этого раздела, пиши нормальную фигню вместо ЭТОГО.
     

    Ой, все


     

     

    К слову... Слушатели событий и таймеры позволяют творить чудеса без излишнего геммороя с coroutine.
     

    Постараюсь высыпаться)


  8. Могу даже поделиться.

     

    Буду рад,  не ожидал от тебя после тех ссор)

     

     

    Зачем выкладывать 5 строчек на форум? Да еще и бесполезных

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

     

     

    Этот код не работает. Функция io.read() без аргументов возвращает строку. Нужно использовать io.read("*n"), тогда будет возвращаться число.

     

    Пардон, забыл про tonumber, и аргументы...

    local timeStop=tonumber(io.read())
    

     

     

    О нужности и важности этого творения я уж промолчу, выше уже говорили об этом.

     

    Варка пива, там таймер нужен.

     

     

    тот же edit с подсветкой синтаксиса начинаешь писать 5 строк на форум
     

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


  9. Т.е. надо надо контролировать, является ли запрашиваемая библиотека действительно библиотекой.

     

    Я понимаю, что мой код не очень читаем, но можно было поинтересоваться/, как это реализовано у меня: итерируются имена файлов из /lib/, добавляются в массив, потом эти вхождения ищутся в тексте программы(в вашем случае проверять при каждом обращении к свойствам глобала, но лучше просто засунуть в pcall)

     

     

    через fs.list() получить список файлов в папке с либами и через цикл создавать метаметоды, как указал swg2you выше - это будет куда удобнее.

     

    Не дочитал) Но pcall все равно в приоритете.


  10.  

     

    Кстати,а если я напишу c=require('component') --код идёт дальше То среда дополнительно сделает  component = require('component') Так ведь?
     

    В последней версии впилил проверку, есть ли требование этой библиотеки, написанное самим пользователем. Доделаю еще пару фич и залью.


     

     

    Отлично!  Дело за малым. Накидать код который будет цеплять на _G метаметод подгрузки запрашиваемой библиотеки, и запихнуть его в автозагрузку. И с require() можно прощаться.
     

    Прочитал и посты ниже, очень интересная идея, но с одним недостатком: имхо это не очень эффективно, ведь обращение к local-переменной осуществляется быстрее и было бы лучше создать такую переменную на стадии инициализации(как в моей среде), а не юзать поле таблицы _G


     

     

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

    Это хорошая идея, ты не против, если я ее добавлю в патчер-установщик?


     

     

    Нельзя было сделать работоспособную ссылку, чтобы из браузер просто нажать и посмотреть код?
     

    Пожелания учитываются)


  11. Это ты еще не понял: если выполняемая программа не имеет вхождений "lol", то она и не будет загружена. А если ты ее явно загрузишь, то она займет столько же памяти, сколько бы заняла при загрузки ее средой.


  12.  

     

    Но они подгружали совсем немного библиотек. А теперь представь если это немного превратиться в много?

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


  13.  

     

    А по твоему package.loaded - это переменная которая хранится не в оперативной памяти, а в облаке из радужных какашек и пони, в котором бесконечное количество прострнанства? Если ты загружаешь все либы, они по твоему не займут никакого места? Фигушки. Они хоть и будут сидеть в package.loaded, но оперативку выжирать все равно будут.
     

    Софист ты, Леша) Хоть ты сам напишешь require, хоть среда за тебя это сделат, какая разница? Но во втором случае тебе не нужно думать о require)


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

     

    Можно и писать local, он его просто проигнорит.

     

     

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

     

    Именно так и происходит: package.preload - это хранилище)

     

     

    Что это даёт, и какая польза от этой программы?
     

    Меньше и легче код писать.

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