Skip to content

Instantly share code, notes, and snippets.

View AMD-NICK's full-sized avatar
🏠
Working from home

_AMD_ AMD-NICK

🏠
Working from home
View GitHub Profile
@AMD-NICK
AMD-NICK / .gitignore
Last active January 29, 2025 15:25
gitignore example for Garry's Mod servers. Excludes "highweight" files from uploading to repo. Special for https://blog.amd-nick.me/gmod-development
*.vmt
*.vtf
*.vmt
*.vtx
*.mdl
*.phy
*.vvd
*.mp3
*.ttf
*.wav
@AMD-NICK
AMD-NICK / matex.lua
Last active January 3, 2025 16:06
(удалить) Библиотека для скачивания материала по ссылке в гмоде. Упоминается минимум тут на форуме: https://forum.gm-donate.net/t/3238/4
-- TRIGON.IM 12 dec 2021
-- Упрощенная версия texture либы от dash
-- 2024.12.27 dec 2024 добавлена проверка is_normal_image, чтобы всякие 429 и 403 от imgur не кешировали говно
matex = matex or {}
file.CreateDir("matex")
local PNG_START = {0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A}
local PNG_TRAIL = {0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82}
@AMD-NICK
AMD-NICK / utf8to16_utf16to8_sub.lua
Last active December 8, 2024 14:45
Попытка сделать в гмоде корректный срез UTF16. Вогель говорит, что работает, но для энтитей телеги, куда и предназначался, не пашет
local function utf8to16(sData)
local ret = ""
for utf8char in string.gmatch(sData, "[%z\x01-\x7F\xC2-\xF4][\x80-\xBF]*") do
local codepoint = utf8.codepoint(utf8char)
ret = ret .. string.char(
bit.band(codepoint, 0xff),
bit.band(bit.rshift(codepoint, 8), 0xff)
)
end
return ret
@AMD-NICK
AMD-NICK / readme.md
Last active February 24, 2024 08:08
Пример конфигурации SFTP плагина для SublimeText (sftp-config.json) и VScode (sftp.json), специально для Garry's Mod: https://blog.amd-nick.me/gmod-development

Что это

Это конфиг для плагина SFTP для SublimeText, который делает, чтобы при синхронизации не скачивались тяжелые бинарные файлы, которые мы не будем редактировать через текстовый редактор. Так мы экономим место и время синхронизации

Установка

  1. Создайте в удобном месте, например, на рабочем столе папку, где будет локальная копия вашего сервера, а в ней папку addons
  2. Поместите файл в папку addons, указав в нем данные подключения к серверу, а также путь к папке с аддонами на удаленном сервере
  3. По желанию сделайте такой же файл для папки вашего гейммода, например DarkRP
  4. Запустите SublimeText, перетащите в него папку addons, и теперь в сайдбаре нажмите на нее ПКМ > SFTP > Download Folder
  5. С этого момента все изменения аддонов через саблайм будут сразу заливаться на сервер
@AMD-NICK
AMD-NICK / petrovich.lua
Created June 20, 2020 18:32
Функция для Garry's Mod, склоняющая русские слова (винительный, дательный и тд..). Тамада - тамаду/тамаде/тамадой и тд. Использует правила с github.com/petrovich. В текущей реализации хромает качество исполнения, но скрипт работает. Специально для t.me/gmodev
--[[-------------------------------------------------------------------------
2019.01.16
Урезанный класс для склонения русских слов
https://github.com/petrovich/petrovich-php
В оригинале работает с именами
Полезные ссылки:
https://petroleks.ru/gramota/13.php
https://pymorphy2.readthedocs.io/en/latest/
@AMD-NICK
AMD-NICK / api.lua
Last active December 29, 2023 12:52
Monobank Alerts Telegram Bot
local APIURL = "https://api.monobank.ua"
/*
Ошибки:
400 = Period must be no more than 31 days
400 = Missing required field 'from'
403 = Unknown 'X-Token' (левый токен)
429 = Too many requests
*/
@AMD-NICK
AMD-NICK / raw_socket_2read_2write.lua
Last active November 23, 2023 04:53
[LUA] redis query tests (нигде не публиковалось, просто публичная заметка)
-- Используется только luasocket
-- Проверял, можно ли выполнить несколько операций записи и только затем выполнить операции чтения
local auth_buff = {
"*2\r\n",
"$4\r\nAUTH\r\n",
"$14\r\nqwertyuiopasdf\r\n",
}
local host, port = os.getenv("REDIS_HOST"):match("([^:]+):?(%d*)")
@AMD-NICK
AMD-NICK / paramenter.lua
Created November 22, 2023 04:40
Parameters validation on lua. Initially created for one application on lua-express: https://github.com/TRIGONIM/lua-express/
-- Как парламентёр, только (парам)ентёр :)
-- Новый валидатор, который имеет больше опций и убирает лишнюю дичь, типа такой:
-- https://file.def.pm/o9LZgS3D.jpg
-- require("middlewares.paramenter").validator(params, messages)
local utf8 -- https://gist.github.com/Stepets/3b4dbaf5e6e6a60f3862
local ok, utflib = pcall(require, "utf8")
if ok then utf8 = utflib end
local rulesets = {}
@AMD-NICK
AMD-NICK / coroutinize.lua
Last active June 23, 2023 20:50
Play with lua coroutines. Make async http function synchronous
-- idea source: https://luyuhuang.tech/2020/09/13/callback-to-coroutine.html
-- Async request demo
--[[ http.Fetch("https://httpbin.org/get?a=b&c=d", function(code, content)
print("code, content", code, content)
end, function(err)
print("Error", err)
end, {
header_asd = "qwe"
})
@AMD-NICK
AMD-NICK / steam.lua
Last active December 25, 2022 17:08
--[[-------------------------------------------------------------------------
Портирование библиотеки генерации Steam Guard TOTP (2FA) кода
https://github.com/MarlonColhado/SteamGenerateMobileAuthPHP
Сижу весь день с 2019.03.11 14:00, до утра планирую закончить
Проблема была в HMAC SHA1 и pack/unpack, из-за чего очень много гуглил
https://gist.github.com/AMD-NICK/ea1a8cf55ec2202683db2062d966ece5
Находил кучу аналогов: на GO,
разбирал исходники плигина для хрома (js),