Lua Прочее DRPC: Discord Rich Presence Changer - ОБНОВЛЕНИЕ

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,766
11,208
Скрипт позволяет создать расширенный статус в Discord
1658841410352.png
1658841482600.png

1658841541009.png
1658841548235.png
1658841561356.png
1658841526722.png
Требования: mimgui, discord-rpc.dll (из вложений)
Авторы: @chapo (lua скрипт), @tr1ckster (dll)
Активация: /drpc
Установка:
  • скачать файл !DiscordRPC.lua и переместить его в папку moonloader
  • скачать файл discord-rpc.dll и переместить его в папку moonloader\lib
  • по необходимости установить mimgui
Настройка:
Client id - уникальный номер вашего приложения, от него зависит верхний текст (на скриншоте - "Application Name")
Details - текст, который будет написан под названием приложения (на скриншоте - "Details")
State - текст, который будет написан под Details (на скриншоте - "State")
  • переходите по ссылке: https://discord.com/developers/applications/
  • в правом верхнем углу нажимаете на кнопку "Add application"
  • в открывшемся окне вписываете название приложения (на скриншоте - "Application name")
  • после создания копируете client id и вставляете его в программу
  • Large Image Name- название большой картинки, загруженный в ваше приложение на сайте discord
  • Large Image Text - текст, который будет отображаться при наведении на большую картинку

  • Small Image Name - название маленькой картинки, загруженный в ваше приложение на сайте discord
  • Small Image Text - текст, который будет отображаться при наведении на маленькую картинку
  • переходите по ссылке: https://discord.com/developers/applications/
  • выбираете созданную ранее программу
  • в меню (слева) выбираете пункт "Rich Presence"
  • нажимаете на "Add image" изображение должно быть минимум 512х512 пикселей
  • запоминаете название, после чего вписываете его в поле ввода в программе
  • Button 1 Text - текст, написанный на первой (верхней) кнопке
  • Button 1 url - ссылка, которая будет открываться при нажатии на первую (верхнюю) кнопку
  • Button 2 Text - текст, написанный на второй (нижней) кнопке
  • Button 2 url - ссылка, которая будет открываться при нажатии на вторую (нижнюю) кнопку
Для выключения кнопки оставьте поле "Button ** Text" пустым!
Кнопки работают только для других пользователей Discord!
 

Вложения

  • discord-rpc.dll
    49 KB · Просмотры: 228
  • !DiscordRPC.lua
    37.4 KB · Просмотры: 276
Последнее редактирование:

GTA: Prodigy Empire

Известный
622
292
Здравствуй, собственно поставил скрипт, первое время поработал, вообще шикарный.
Но через время начала опять появляться обычная GTA в игровой активности. Как можно пофиксить?
 
  • Нравится
Реакции: XaeroXQ

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,766
11,208
Здравствуй, собственно поставил скрипт, первое время поработал, вообще шикарный.
Но через время начала опять появляться обычная GTA в игровой активности. Как можно пофиксить?
скрипт крашится, или просто не работает?
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,766
11,208
Он просто не работает, краша скрипта нет.
проверь верно ли вписан клиент айди
Но через время начала опять появляться обычная GTA в игровой активности.
он перестает показывать через какой-то промежуток времени нахождения в игре или просто один раз офнулся и после перезаходов не работает?
 

GTA: Prodigy Empire

Известный
622
292
проверь верно ли вписан клиент айди

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

Roff

Известный
29
24
Не сохраняет данные полня Large image text и галочки в other.
Возможен фикс?
 

TheClaudePlay

Активный
159
35
Посмотреть вложение 87315
Активация: /cdrpc
Настройка Client ID:
1. открыть скрипт любым текстовым редактором​
2. ввести clientid как показано на скриншоте​
p.s сделано это из-за того что в ини файл вместо нормального клиент айди сохраняется 7.5191234760121e+14
p.s2 кнопка text flags сделана на отъебись
Скрипт сделан через RakomSrakom.net ,но он работает!!!
 

sizeoftrickster

…And Megadeth For All?
Проверенный
121
436
Привет! Предлагаю возродить данный скрипт, благодаря расширению функционала. Ниже прикрепил обновленный discord-rpc.dll и обновленную структуру для него(Полную структуру можно глянуть в discord_rpc.h.
Lua:
ffi.cdef[[
    typedef struct DiscordRichPresence {
        const char* state;   /* max 128 bytes */
        const char* details; /* max 128 bytes */
        int64_t startTimestamp;
        int64_t endTimestamp;
        const char* largeImageKey;               /* max 32 bytes */
        const char* largeImageText;              /* max 128 bytes */
        const char* smallImageKey;               /* max 32 bytes */
        const char* smallImageText;              /* max 128 bytes */
        const char* partyId;                     /* max 128 bytes */
        const char *button1_label, *button1_url; /* max 128 bytes */
        const char *button2_label, *button2_url; /* max 128 bytes */
        int partySize;
        int partyMax;
        int partyPrivacy;
        const char* matchSecret;    /* max 128 bytes */
        const char* joinSecret;     /* max 128 bytes */
        const char* spectateSecret; /* max 128 bytes */
        int8_t instance;
    } DiscordRichPresence;
  
    void Discord_Initialize(const char* applicationId,
        DiscordEventHandlers* handlers,
        int autoRegister,
        const char* optionalSteamId);
  
    void Discord_UpdatePresence(const DiscordRichPresence* presence);
    void Discord_ClearPresence(void);
  
    void Discord_Shutdown(void);
]]

P.S. Для перевода в UTF8 можно использовать эту функцию:
Lua:
-- By http://mydc.ru/topic5072.html
Win1251ToUTF8 = function(data)
    local cp1251=
    {
        [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166',
        [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185',
        [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152',
        [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148',
        [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156',
        [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136',
        [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169',
        [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135',
        [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181',
        [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187',
        [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'
    }
    cp1251_utf8 = function(s)
        local r, b = ''
        for i = 1, s and s:len() or 0 do
            b = s:byte(i)
            if b < 128 then
                r = r..string.char(b)
            else
                if b > 239 then
                    r = r..'\209'..string.char(b-112)
            elseif b > 191 then
                r = r..'\208'..string.char(b-48)
            elseif cp1251[b] then
                r = r..cp1251[b]
            else
                r = r..'_'
            end
        end
        end
        return r
    end
    return cp1251_utf8(data)
end
 

Вложения

  • DRP.zip
    25.4 KB · Просмотры: 23
  • Нравится
  • Влюблен
Реакции: YarikVL и chapo

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,766
11,208
Привет! Предлагаю возродить данный скрипт, благодаря расширению функционала. Ниже прикрепил обновленный discord-rpc.dll и обновленную структуру для него(Полную структуру можно глянуть в discord_rpc.h.
Lua:
ffi.cdef[[
    typedef struct DiscordRichPresence {
        const char* state;   /* max 128 bytes */
        const char* details; /* max 128 bytes */
        int64_t startTimestamp;
        int64_t endTimestamp;
        const char* largeImageKey;               /* max 32 bytes */
        const char* largeImageText;              /* max 128 bytes */
        const char* smallImageKey;               /* max 32 bytes */
        const char* smallImageText;              /* max 128 bytes */
        const char* partyId;                     /* max 128 bytes */
        const char *button1_label, *button1_url; /* max 128 bytes */
        const char *button2_label, *button2_url; /* max 128 bytes */
        int partySize;
        int partyMax;
        int partyPrivacy;
        const char* matchSecret;    /* max 128 bytes */
        const char* joinSecret;     /* max 128 bytes */
        const char* spectateSecret; /* max 128 bytes */
        int8_t instance;
    } DiscordRichPresence;
 
    void Discord_Initialize(const char* applicationId,
        DiscordEventHandlers* handlers,
        int autoRegister,
        const char* optionalSteamId);
 
    void Discord_UpdatePresence(const DiscordRichPresence* presence);
    void Discord_ClearPresence(void);
 
    void Discord_Shutdown(void);
]]

P.S. Для перевода в UTF8 можно использовать эту функцию:
Lua:
-- By http://mydc.ru/topic5072.html
Win1251ToUTF8 = function(data)
    local cp1251=
    {
        [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166',
        [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185',
        [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152',
        [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148',
        [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156',
        [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136',
        [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169',
        [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135',
        [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181',
        [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187',
        [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'
    }
    cp1251_utf8 = function(s)
        local r, b = ''
        for i = 1, s and s:len() or 0 do
            b = s:byte(i)
            if b < 128 then
                r = r..string.char(b)
            else
                if b > 239 then
                    r = r..'\209'..string.char(b-112)
            elseif b > 191 then
                r = r..'\208'..string.char(b-48)
            elseif cp1251[b] then
                r = r..cp1251[b]
            else
                r = r..'_'
            end
        end
        end
        return r
    end
    return cp1251_utf8(data)
end
спасибо, завтра начну делать. Можешь оставить контакты? мб возникнет пару вопросов)
 
  • Нравится
Реакции: sakorus, accord- и YarikVL
У

Удалённый пользователь 439480

Гость
В чем может быть проблема?

Код:
[10:14:08.867725] (script)    DPRC: Discord Rich Presence Changer: [DRPC]: Initialize with    1023847989753679963
[10:14:11.887660] (error)    DPRC: Discord Rich Presence Changer: bad argument #1 to '?' (table expected, got string)
stack traceback:
    [C]: in function 'gsub'
    D:\Games\GTA NFS EDITION 2\moonloader\!DiscordRPC.lua:342: in function 'ConvertFlags'
    D:\Games\GTA NFS EDITION 2\moonloader\!DiscordRPC.lua:362: in function <D:\Games\GTA NFS EDITION 2\moonloader\!DiscordRPC.lua:347>
[10:14:11.887660] (error)    DPRC: Discord Rich Presence Changer: Script died due to an error. (083C70FC)

UPD: разобрался в чем проблема, не пойму почему, но при вводе в строку "State":" {nick} {server_ip}" - скрипт тупо крашит. В лог выдает то что выше. Исправить можно легко - зайти в папку с конфигом, найти DiscordRichPresenceNew.json и убрать {server_ip} в строке после "State".
 
Последнее редактирование модератором: