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

LeshaInc

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

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

  • Посещение

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

    68

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


  1. local PIF = require("PIF")
    
    io.write("Введите путь к файлу: ")
    local path = io.read()
    
    local pic = PIF.inTable(path)
    
    io.write(pic[1][1], pic[1][2], pic[1][3], pic[1][4])
    io.write(pic[2][1], pic[2][2], pic[2][3], pic[2][4])
    io.write(pic[3][1], pic[3][2], pic[3][3], pic[3][4])
    io.write(pic[4][1], pic[4][2], pic[4][3], pic[4][4])
    

    Обращается к библиотеке. А сама она - вот http://pastebin.com/UcPmkWPj

     

     

    Библиотека не возвращает методы


  2. О

    Окей. Предложи ты что-то лучше, профи в С :-D

    А то у тебя все прожки других хреновы и не по фен-шую xD

    А есть альтернатива притормозить цикл?

    Поделись этим новым способом xD

     

    Зачем создавать цикл (из которого даже выйти нельзя), для программы которая, показывает инфу? Это все равно что в цикле $ uptime. Зачем? Какому человеку понадобится просмотр аптайма (причем в секундах), и памяти (причем в байтах)? Все что хочет пользователь, это аккуратный вывод.

    $ info
    uptime: 1d 2:01:32
    memory: 123 KiB / 2048 KiB
    energy: 4096

    Ну а если пользователь хочет мониторить эту информацию, ключик -m

    который бы в цикле показывал эту инфу.

    $ info -m
    ------
    uptime: ...
    ...
    ------
    uptime: ...
    ...
    ------
    uptime: ...
    ...
    ^C
    $ _
    • Нравится 4

  3. Хм, но конечно от такого "прикольного" цикла ясно дело, что будет забита оперативная память :smile3:

     

    Нет.

     

     

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

     

    ухудшить*

    • Нравится 4

  4. Ну да. Всё чего Леша не понимает - дичь. А всё что дичь - не SQL

     

    Потому что если делаешь MySQL — описывай всю спецификацию на самом точном уровне. А то не MySQL, а MineSQL. Так же как с FTP. Сделал какую то фигню, которая ни капли не описывает из протокола FTP.

     

    Все я там поинмаю. Обычный регексп, вместо полноценного воплощения языка. SQL — это не такой язык, который можно считывать простым регекспом.


    • Написать нечто большее с нормальной 2D графикой, без ограничений и сделать самостоятельную игру на движке love2D (если знаете другой хороший lua движок сообщите мне пожалуйста)

     

    cocos2d.

     

    PS: Хватит вставлять свистоперделки всякие в пост. бальшии тексты, на 20 мониторов. ужосъ


  5. Вопросы:

    1. Он на локалке?

    2. функции такие же как у тоторо?

    И ссылку и гайд по установке!

     

    Мод, сделан @NEO. функционал норм: можно положить деньги, купить что то из витрины, поставить свою витрину, деньги в банкомат можно, их с бонусов собирать. Не на локалке, на магике.


  6. По поводу ФПС у кого 5 на клиенте, обновите железо. Помниться как только Инц зашел на ИТ только, тоже орал про 5 фпс у себя :giggle:

    @@LeshaInc, Купи себе видуху нормальную и не лохмать бабушку нам тут.

     

    Почему на других серверах (которые даже тяжелее) фпс больше чем на магике?


  7. http://imgur.com/a/mZpxz

     

    Твоя очередь, видюха, последняя версия дров 2007 годом датируется. Скинь мне пруф что именно мой мод, а не солянка из кучи где мой мод по сравнению с другими очень компактный на данный момент.

     

     

    @NEO, неоваров не будет.

     

     

    Многие винят мод нео (в том числе и я, не могут же любимые таумкрафтки и другие магомоды лагать, если раньше сто раз играл на сборках и по тяжелее под 30--40 фпс)

  8. Ребят (те у кого лагает невозможно), расходимся, нам не верят. Можете оставаться на магике лагать, можете на ит ухадить кодить (что кстати лучше), короче все что угодно. :(

    @NEO, неоваров не будет.

     

    PS: Пытался помочь с лагами как мог.


  9. Л А Г И

    Сервер лагает, жуть какая то. итак, обзор наших лагов.

    • Блоколаги. Блок выпадает не сразу, надо ждать и ударять по нескольку раз.
    • ФПСолаги. У многих проблемы с фпс, уже выявлено трое посдрадавших: [@LeshaInc, @qwertyMAN, @senbonzakura]. Лично у меня 6 фпс. на м и н и м а л к ах, когда на ит 30 фпс, на м и н и м а л к а х.
      Многие винят мод нео (в том числе и я, не могут же любимые таумкрафтки и другие магомоды лагать, если раньше сто раз играл на сборках и по тяжелее под 30--40 фпс):


      ZzHemWY.png
      U1PDb8X.png

    С этим надо что то делать О Б Я З А Т Е Л Ь Н О!!!

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

     

    PS: Будет такая же ситуация как с дримом лаги  и 3 онлайна. Только фпс меньше в 10 раз.

    PPS: А еще нео провоцировал.

    • Нравится 1

  10. И что это значит "Я тоже играю с дальностью 2 чанка (ибо на дефолтных настройках тогда фпс у меня будет в районе 10-20 против 50-60)"  ?

    У тебя там там что, пентиумы III что ли стоят? Ставь уже дальность один чанк, чего мелочиться? :D У меня с офигевшими текстурами на дальности 9 чанков при фулл графике на ссаном core i3 и на выделенных 1,5 ГБ игра летает с 80-100 ФПС.

     

    У меня Core I3 и 20 фпс.


  11. Еще была бы поддержка ключевых знаков по по аналогии с майночатом по типу "&6Привет, &3говнокодер!", а также "&FFFFFFПривет, &A8FFFFговнокодер!" - то вообще сок. А то запоминать все эти буффы, цвета - бр-р-р.

     

    7514d823845dbadcc9b202b6c16ee6b3.png

     

    Есть оно.

     

    color.core("\\F+AAAA00\\Цвет текста\\B+CCCCCC\\ Цвет фона")

    Не особо удобно так писать, хотя можно.


  12. HE0meKY.png

    Rainbow


     

    Согласитесь, писать цветной ввод не всегда удобно. Код типа:

    function coolLog(text, min, max)
      gpu.setForeground(0xFFFFFF)
      io.write(text .. " ")
      gpu.setForeground(0xDD0000)
      io.write("[" .. min .. "/" .. max .. "]")
    end
    

    не удобен и не универсален. Поэтому я написал библиотеку для цветного вывода.

     


     

    Скачать

    pastebin get C5aBuY5e /lib/rainbow.lua

     

     

    Пример кода
     

    Возможности:

     

     

    local color = require("rainbow")
    
    local buf = color.buffer{
      colors_ext = {
        foreground = {
          seroburomalinovy = 0x735184
        }
      },
      patterns = {
        progress = function (self, info, now, max)
          return self.fg_white(info) .. "  " .. 
                 self.fg_red("[" .. now .. "/" .. max .. "]") .. "\n" ..
                 self.bg_black(self.fg_white(""))
        end
      }
    }
    
    local mycoolcolor = buf.colorize(0xDEAD00, true)
    buf(true, "progress",  mycoolcolor("i am progress"), buf.fg_red(30), buf.fg_seroburomalinovy(100))
    buf("i am text\n")
    color.core(
      "i am ", 
      color.core.bg_red("core"), 
      color.core.fg_white(color.core.bg_black(" text\n"))
    )
    

    jlqKb8O.png

     

     

     

    Тест палитры:

     

     

    package.loaded["rainbow"] = nil
    local color = require("rainbow")
    
    local colors_to_test = {"red", "black", "gray", "white", "green", 
                            "yellow", "blue", "violet", "light_blue"}
         
    local buf = color.buffer{
      patterns = {
        color_info = function (self, color)
          self(
            self["fg_" .. color](self.bg_black(color .. " "))
          )
        end
      }
    }
    
    for _, v in ipairs(colors_to_test) do
      buf(true, "color_info", v)
    end
    

    nmm58H0.png

     

     

     


     

    Мануал

    Ядро

    Ядро Rainbow предоставляет функции для рисования текста. Паттерны и кастомные цвета возможны только в буфферах, о которых пойдет речь чуть позже.

    Ядро находится в таблице core.

    Пример работы с ядром:

    local color = require("rainbow")
    color.core(
      color.core.fg_red("Red Text"),
      color.core.fg_black("")
    )
    

    Функции ядра:

    • __call(...) - рисует цветной текст.
    • print(...) - делает то же что и __call, рисует текст. Функция __call использует print.
    • colorize(color: number (hex, 0xRRGGBB), isFG: boolean) :function (text: string) - возвращает функцию, которая раскрасит текст, который потом подается в __call или __print. Параметр isFG определяет, раскрашивать текст, или фон. Цвет подается в привычном формате 0xRRGGBB.

    Больше функций в ядре нет, но есть одна маленькая фича о которой нужно знать. Существует стандартная палитра цветов, доступ к которой можно получить при помощи core.fg_<цвет> или core.bg_<цвет>. Это выдаст нам функцию, которая будет раскрашивать либо текст, либо соответственно фон (определяется текстом fg_ или bg_ перед цветом)

    Буффер

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

    buffer(options: table) :table - именно так мы будем воздавать новые буфферы. В таблицу options мы подаем такие аргументы:

    • colors - палитра которая будет использоваться в буффере. Не обязательно, если не будет будет использоваться дефолтная палитра.
    • colors_ext - таблица с цветами, которые будут добавлены в палитру. Это может быть полезно, когда мы используем стандартную палитру, но хотим вставить в нее дополнительные цвета. Не обязательно.
    • patterns - самая полезная таблица - таблица с паттернами. Имеет вид pattern_name = pattern_handler. Паттерны используются вместе с функцией __call. Если в __call передать первым параметром true, а вторым имя паттерна, то наш pattern_handler будет вызван с параметрами: buffer, ..., где ... - остальные параметры переданные в __call. Значение, которое возвратит функция паттерна будет передано в функцию написания текста.

    Пример работы с буффером:

    local color = require("rainbow")
    local buf = color.buffer{
      colors = {
        foreground = {
          cool = 0xDEAD00
        },
        background = {
          cool = 0xDEAD00
        }
      },
      colors_ext = {
        foreground = {
          very_cool = 0x00DEAD
        }
      },
      patterns = {
        test = function (self, arg1)
          return self.bg_cool(arg1)
        end
      }
    }
    
    buf(true, "test", "yeah") -- yeah (со цветом 0xDEAD00)
    buf(buf.fg_very_cool("aaa")) -- aaa (со цветом 0x00DEAD)
    

    Вот собственно и все о буфферах, да и о самой библиотеке в целом.

     


     

    Заключение

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

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