Исходник project edith

qrlk

Известный
Автор темы
Друг
411
926
Хочу поделиться с вами своим проектом, который я раз в несколько месяцев ковырял последние 2.5 года.
Делится я им не планировал, но я наконец решил его починить и всю последнюю неделю рефакторил и думал, а надо ли оно кому-нибудь.

Может кто-то из тех, кто сейчас это читает, сталкивался с какой-то идеей/проблемой, которую я реализовал/решил в этом скрипте, ну а вдруг!

Это не чит, а набор самописных модулей разного качества, сшитых в один скрипт c возможностью реализации функционала, усиленного сервером на python.
Модули эти я писал для себя, но часть из них была выпущена отдельно в виде самостоятельных скриптов в 19-21 годах.

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

1642282338356.png

Зачем мне это нужно?
Допустим, вы понимаете lua scripting и у вас есть небольшая группа игроков, вроде сквада, байкерского клуба или какого-нибудь госерского подразделения.
Идея в том, чтобы засунуть всё нужные скрипты в один файл в виде модулей, защитить использование скрипта паролем и через сервер синхронизировать данные некоторых модулей.
Вы как скриптер хостите сервер, добавляете по шаблону свои модули и распространяете скрипт среди игроков. Получаете свой МЕТАскрипт с общей картой или чем вам угодно.
Таким образом, одним скриптом можно преобразить игровой опыт членов вашей группировки и сделать свою МЕТАВСЕЛЕННУЮ внутри сервера сампа.

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

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

Список модулей и фич (в порядке появления в меню):
  • Информация
    • Краткая информация о каждом модуле.
  • Настройки
    • Автоперезапуск скрипта при ошибке (с поддержкой ожидаемого завершения работы).
  • TWEAKS - мелкие твики
    • Скрытие /gov из чата (SRP)
    • Скрытие ~~~, рекламы доната, /ask, /music, сайта (SRP)
    • Скрытие объявлений из чата (SRP)
    • Игнорирование прыжка в оконном режиме при потере фокуса (антипауза)
    • Замена имени окна на ник персонажа (конфликует с QuickBinder)
    • Блокировка выбора радио в машине (не будет вообще селектора радио)
  • Changelog
    • Просто диалог со списком изменений, куда скриптеру легко добавлять одной функцией в лог
  • GLONASS
    • Глобальная карта пользователей скрипта с синхронизацией через сервер.
    • https://www.blast.hk/threads/80532/ - обрезанный GLONASS.
    • Возможность скрыть свои координаты.
    • Отмечается на карте перегон у байкеров (SRP)
    • Рендер текстом координат пользователей на экране.
  • BIKERLIST
    • Чекер онлайн игроков по табу на стреле у байкеров (SRP)
    • Возможность проверять их на афк в диалоге
  • CAPTURETIMER
    • Таймер, который показывает время до конца капта у байкеров (SRP)
    • Синхронизируется через сервер, игроки заходят и видят сколько времени осталось до конца.
    • Автоклист 0 после конца капта
    • Отправка уведомления в дискорд всем пользователям скрипта и ведение лога стрел
      1649532835543.png
  • HEIST BEEP
    • Помощник в ограблении матовозов/баров/дальнобойщиков у байкеров (SRP)
    • Отсчитывает и рендерит на экране время, через которое можно взять следующий ящик
    • Воспроизводит звук, когда сервер даст взять следующий ящик
    • Возможность тупо стоять на метке и грузить, а не бегать туда-сюда
  • EDISCORE
    • Локальный счётчик урона, убийств, смертей, KDA
    • После смерти показывает кто вас убил и из какого оружия, сколько урона вы нанесли и сколько у вас убийств
    • Рисует текстдрав, на который по умолчанию выводится количество урона за жизнь, по хоткею можно смотреть другую статистику
    • Доступен как отдельный скрипт (https://www.blast.hk/threads/41938/), но в эдискор вроде есть какие-то фиксы
  • CAMHACKWW
    • Камхак санька, в который был встроен обход варнингов.
    • Варнинги это когда челу приходит в чат уведомления что вы пользуетесь камхаком и вас наказывают.
    • Есть настройка показывать ли текст над головой на расстоянии, когда камхак включен.
  • ACAPTURE
    • Автокапт у байкеров (SRP)
    • /acapture -> выбираете бизнес -> сервер выделяет вам секунду -> автоматически каптится.
    • Чем больше активных каптеров, тем больше шанс закаптить, там вроде до 10.
  • RCAPTURE
    • Быстрый капт после рестарта сервера (SRP)
    • Вроде вообще не работает, так что можно считать, что его нет
  • GETGUN
    • Быстро набирает ган из набора, указанного в настройках (SRP)
  • TIER
    • Связывает через /tie всех пассажиров транспорта (SRP, мафии/байкеры)
    • Можно обезвреживать турели по хоткею
  • CIPHER
    • Шифрование в /r или /f (SRP)
    • Пользователи видят расшифрованный текст, обычные игроки 'ENC: aisjdiajdioqj'
    • Ключ зашит в скрипте
    • Защита чата фракции от прослушки администрацией
  • CHANGEWEAPON
    • Меняет активное оружие на пассажирке по хоткеям [ и ]
    • shotgun -> smg -> m4/ak47 -> rifle
  • HIDEWEAPON
    • H -> убирает оружие, если вы его достали на H.
  • GZCHECK
    • Рендерит красный квадрат, когда вы в мигающем квадрате войны за территорию
  • WKAV
    • Считает сколько гана вы взяли со склада и сколько вы потеряли (SRP, байкеры)
    • Рендерит на месте шкафа в интерьере байкеров
    • После смерти отчитывается сколько гана вы потеряли
  • LIKER
    • Обменивается /like с людьми из whitelist скрипта (SRP)
  • HEALME
    • Юзает аптечку через /healme до 100 хп, когда вы попадаете в интерьер (SRP)
  • STRUCK
    • Флуд принятия перегона (SRP, байкеры)
  • PARASHUTE
    • жмете P -> /piss -> расстояние до земли маленькое -> автоотмена /piss
    • позволяет приземлятся с большой высоты невредимым
  • VSPIWKA
    • Бинд на /anim 23, чтобы лечь по хоткею (SRP)
    • Может быть полезно в перестрелках
  • WARNINGS
    • Варнинги на рк, по группам: байкеры, гетто, госы
    • Скрипт запоминает координаты смерти персонажа, если он возвращается в район смерти -> сообщение в чат и количество секунд с момента смерти
  • DEATHLIST
    • Синхронизирует киллист между пользователями скрипта.
    • Заносит деморганы, нанесенный урон, полученный урон, убийства и смерти в базу данных на сервере
    • Строит топ по убийствам, анти-убийствам и прочую дичь по адресу IP сервера/top
    • Объединяет твинки в топе как одну сущность.
    • Там ещё система очков за убийства, которая поощряет дм в виде соревнования
    • Топ так же отображается в дискорде в виде трех обновляющихся сообщений: сутки, неделя, всё время.
    • 1649532228828.png
    • Топ-5 за сутки показывается в основном канале каждый день.
  • GANGHELPER
    • Авто /get guns когда склад открывается и вы в пределах респ банд (SRP)
    • Простые бинды на оружие (4 - deagle 15, 5 - m4 20, 6 - rifle 10) (SRP)
    • Простой флудер /capture (SRP)
  • BIKERINFO
    • Сбор данных о бизнесах (/capture) и состоянии склада (байкеры SRP)
    • Отображение этой информации в дискорде
      bikerinfo.png
  • IZNANKA
    • Персонаж прячется в стене через танец и пополняет хп наркотиками (SRP)
  • DOUBLE_JUMP
    • Рабочий DJ на хоткей (SRP)
  • ADR
    • Сбив ломки, перелома и кашля адреналином/писсом (SRP)
  • MARKER
    • Синхронизация метки.
    • Alt+3 метка ставится туда, куда целится персонаж.
    • Метка видна 30 секунд, потом удаляется.
    • Alt+4 быстро удалить метку.
  • DRUGSMATS
    • улучшенный биндер наркотиков рубина
      • сброс кд при смерти
      • автоизменение кд при бонусах (SRP)
      • учтен момент, когда нарко больше, чем есть
  • KUNAI
    • отправляет отыгровку в чат и мгновенно оффается
  • DISCORD
    • обновляет discord reach presence
  • CHECKER
    • доработанный админ чекер Рубина (SRP, список админов парсится через форум сторонним сервисом)
    • синхронизирует состояние афк админов полученное через /admins випкой, отображая это у всех игроков
  • Кнопки включения и выключения всех модулей.
1649532671617.png
1649533262268.png
Как попробовать у себя?
1. скачать репозиторий.
2. поставить python 3.
3. в консоли установить зависимости pip3 install -r requirments.txt
4. в whitelist.txt ввести свой ник и пароль из 16 символов
5. запустить сервер python3 server.py [задержка между запросами в мс]
6. в edith.lua поменять ip сервера, ip сервера samp, и папки с ресурсами (если она где-то хостится, чтобы пользователи могли подгрузить ресурсы).
7. естественно все ресурсы из репозитория скинуть в мунлодер.
8. ввести /edithpass [пароль]
9. /edith открывает менюшку

Про качество кода
У некоторых модулей код воняет с 2017 года, так что качество должно быть удручающим и с него не надо брать пример.
Сервер писался в виме по ssh без плагинов года 3 назад, там должен быть ад, но всё должно работать.
Если кто-то сможет определить почему в очень редких случаях GC вызывает ошибку 'cannot resume non-suspended coroutine' в цикле main, я поставлю много лайков!



Вот собственно и всё.
 
Последнее редактирование:

qrlk

Известный
Автор темы
Друг
411
926
короче про сборщик мусора, я тестил 20 часов и вылетов не было, потом внезапно за пару часов было два вылета.
это походу совершенно рандомно происходит
в тракхуде есть фикс проблемы спамом сборщика мусора, щас попробовал, вроде не вылетает.
фикс тракхуда:
 if true then
    lua_thread.create(function()
      while true do
        wait(500)
        collectgarbage()
      end
    end)
  end

А шпионскую хуйню свою ты че вырезал то??
если ты про спутники и глобальную карту, то эксперимент был неудачный и его пришлось убить где-то 1.5 года назад
https://www.blast.hk/threads/57580/ не взлетел, сайт с глобальной картой я забил делать, а тестеры начали абузить тот функционал, что давали спутники, было много недовольных
по совокупности причин пришлось всё это свернуть, спутники остались только в локаторе и для локатора, код их в репозитории локатора есть, если он тебе нужен
 
  • Нравится
Реакции: woke up this morning

qrlk

Известный
Автор темы
Друг
411
926
Обновил описание темы, за последние месяцы было добавлено ещё несколько штук: от новых модулей и фиксов, до рефакторинга сервера и интеграций с Discord. Ну и докер.

Во-первых была пофикшена проблема с 'cannot resume non-suspended coroutine', что дало возможность ускорить синхру за счёт вебсокетов.
Библиотеки для асинхронного клиента WS я прикрепил.

Был добавлен модуль CHECKER

1649533864046.png


Во многие модули была добавлена интеграция с дискордом:

142763

Новый модуль BIKERINFO, показывающий состояния склада и стрел.

142764

Топ

142767

Лог стрел

142770

Парсинг жалоб

142766

Сбор ошибок

Дальнейшего развития не будет скорее всего.
 

Вложения

  • kidat v lib.zip
    1 MB · Просмотры: 101
Последнее редактирование:
  • Нравится
Реакции: Vespan

Griha2005

Известный
5
2
Сразу пишу что да как!
Python скачиваем только с Microsoft Store!
То что я вводил в консоль не вводите, Всё напишу ниже что вводить.
Остольное все делаем по видео!
python3 -m pip install -r requirements.txt (Если это не запускает пишем это pip3 install -r requirements.txt )
set enable_sentry="0"
set enable_bikerinfo="0"
set enable_captureinfo="0"
set enable_top="0"
pip3 install httpx
python3 server.py 600
 
Последнее редактирование:
  • Нравится
Реакции: Vespan и Demix007

baligins

Участник
42
12
здарова, а где приобрести можно?

здарова, а где приобрести можно?
ссылка на репозиторий гитхаба, там и скачай