From 081e846e612f0d4dc87a7560b78d4446f5e1a32d Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Thu, 19 Nov 2015 06:25:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=83=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Applications/InfoPanel/Icon.pic | Bin 0 -> 265 bytes Applications/InfoPanel/InfoPanel.lua | 163 +++++++++++++++++++-------- Applications/InfoPanel/Rules.txt | 49 ++++++++ lib/ECSAPI.lua | 32 +++++- 4 files changed, 199 insertions(+), 45 deletions(-) create mode 100644 Applications/InfoPanel/Icon.pic create mode 100644 Applications/InfoPanel/Rules.txt diff --git a/Applications/InfoPanel/Icon.pic b/Applications/InfoPanel/Icon.pic new file mode 100644 index 0000000000000000000000000000000000000000..91bbd794d2e4a1a019d9985ccbaf205ece709fa5 GIT binary patch literal 265 zcmeCoPtHt};^JUQyZs*s7<{30B9zY5)zxJH0tFxqk`IE?rBFHtN~Z!PflLMuC=KI- r scrollValue then + currentString = currentString - scrollValue + drawMain() + drawScrollBar() + end + else + if currentString < (#stroki - scrollValue + 1) then + currentString = currentString + scrollValue + drawMain() + drawScrollBar() + end + end + + break + end + end + end +end + + + + + + + + + diff --git a/Applications/InfoPanel/Rules.txt b/Applications/InfoPanel/Rules.txt new file mode 100644 index 00000000..a19ebf76 --- /dev/null +++ b/Applications/InfoPanel/Rules.txt @@ -0,0 +1,49 @@ + Правила + +На сервере существует лишь одно правило: §FF5555нет никаких правил§FFFFFF. + +Вам дозволяется абсолютно все: гриферство, читерство, мат в чате, +оскорбление админа и других игроков, ибо все это - неотъемлимая +часть нашего бытия. Вы можете быть культурным и святым человеком, +а можете крушить все направо-налево, строя члены и свастики из грязи. +Помните, что не существует плохих или хороших деяний, есть лишь +поступки и их закономерные последствия. Таким образом, если вы +загадите личную хату админа, то он отымеет вас по самые гланды, а если +будете неадекватным малым, то крайне велика вероятность, что вам +всадят нож в спину. + + Багоюз + +Любые баги - это вина администрации, безответственно отнесшейся к +исправлению ошибок плагинов и модов. Таким образом, если вы нашли +способ дюпа, способ использования недочетов сервера себе на благо, +крайне рекомендуется сообщить об этом админам - вы получите приятный +бонус за бдительность, а другие игроки получат честную игру. + + Флуд + +Если в чате творится полный бардак, и нежелательные личности флудят +или просто раздражают вас - используйте систему Серверной Поддержки +Игроков, чтобы навести порядок: команда "§FFAA00сервер замуть Cyka§FFFFFF" +откроет голосование за мут игрока под ником Cyka. + + Убийства + +Вас убил сильно развитый игрок? Ну что ж, печально. Чтобы избежать +подобных эксцессов, защищайте ваше жилище тщательнее, закрывайте +дыры в обороне, копайте больше ресурсов для создания орудия мести. + + Гриферство + +Чей-то робот своровал ваши солнечные панели и механизмы IC2? Какая +неприятность! Чтобы защититься от этого, грамотно приватьте зону +вашего дома, закрывайте все щели, ставьте двери, которые нельзя +открыть редстоуном. Если вы узнали имя вора, обратитесь к обладателям +мощной брони и оружия, чтобы восстановить справедливость. + + Заключение + +Причиной всему этому "беззаконию" послужило наличие слишком больших +ограничений на большинстве серверов, где складывается впечатление, +что админы - нежные телки с завышенным ЧСВ. Но долой такую чушь! +Добро пожаловать на §FFAA00Buttex§FFFFFF, где каждый сам себе хозяин! \ No newline at end of file diff --git a/lib/ECSAPI.lua b/lib/ECSAPI.lua index 449e3b20..cedffbe9 100644 --- a/lib/ECSAPI.lua +++ b/lib/ECSAPI.lua @@ -11,7 +11,7 @@ local libraries = { ["computer"] = "computer", ["serialization"] = "serialization", ["internet"] = "internet", - ["image"] = "image", + --["image"] = "image", } local components = { @@ -457,6 +457,35 @@ function ECSAPI.smartText(x, y, text) end end +--Аналог умного текста, но использующий HEX-цвета для кодировки +function ECSAPI.formattedText(x, y, text, limit) + --Ограничение длины строки + limit = limit or math.huge + --Стартовая позиция курсора для отрисовки + local xPos = x + --Создаем массив символов данной строки + local symbols = {} + for i = 1, unicode.len(text) do table.insert(symbols, unicode.sub(text, i, i)) end + --Перебираем все символы строки, пока не переберем все или не достигнем указанного лимита + local i = 1 + while i <= #symbols and i <= limit do + --Если находим символ параграфа, то + if symbols[i] == "§" then + --Меняем цвет текста на указанный + gpu.setForeground(tonumber("0x" .. symbols[i+1] .. symbols[i+2] .. symbols[i+3] .. symbols[i+4] .. symbols[i+5] .. symbols[i+6])) + --Увеличиваем лимит на 7, т.к. + limit = limit + 7 + --Сдвигаем итератор цикла на 7 + i = i + 7 + end + --Рисуем символ на нужной позиции + gpu.set(xPos, y, symbols[i]) + --Увеличиваем позицию курсора и итератор на 1 + xPos = xPos + 1 + i = i + 1 + end +end + --Инвертированный текст на основе цвета фона function ECSAPI.invertedText(x,y,symbol) local info = {gpu.get(x,y)} @@ -1525,6 +1554,7 @@ ECSAPI.OSIconsHeight = 6 --Вся необходимая информация для иконок local function OSIconsInit() + if not _G.image then _G.image = require("image") end if not _G.buffer then _G.buffer = require("doubleBuffering") end if not ECSAPI.OSIcons then --Константы для иконок