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

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,934
11,702
Скрипт позволяет создать расширенный статус в 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 · Просмотры: 304
  • !DiscordRPC.lua
    37.4 KB · Просмотры: 353
Последнее редактирование:

GTA: Prodigy Empire

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

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,934
11,702
Здравствуй, собственно поставил скрипт, первое время поработал, вообще шикарный.
Но через время начала опять появляться обычная GTA в игровой активности. Как можно пофиксить?
скрипт крашится, или просто не работает?
 

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,934
11,702
Он просто не работает, краша скрипта нет.
проверь верно ли вписан клиент айди
Но через время начала опять появляться обычная GTA в игровой активности.
он перестает показывать через какой-то промежуток времени нахождения в игре или просто один раз офнулся и после перезаходов не работает?
 

GTA: Prodigy Empire

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

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

Roff

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

TheClaudePlay

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

sizeoftrickster

Известный
Проверенный
143
578
Привет! Предлагаю возродить данный скрипт, благодаря расширению функционала. Ниже прикрепил обновленный 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 · Просмотры: 32
  • Нравится
  • Влюблен
Реакции: YarikVL и chapo

chapo

чопа сребдс // @moujeek
Автор темы
Модератор
8,934
11,702
Привет! Предлагаю возродить данный скрипт, благодаря расширению функционала. Ниже прикрепил обновленный 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".
 
Последнее редактирование модератором: