Portal SAMP
[Ajuda] Como usar o DCC_EditMessage? - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Como usar o DCC_EditMessage? (/showthread.php?tid=2514)

Páginas: 1 2


RE: Como usar o DCC_EditMessage? - [JEFERSON_GAMES] - 07/12/2022

(07/12/2022 14:02)Carlos Victor Escreveu: Eu fui atrás e consegui.

Bom, basicamente a função `DCC_SendChannelMessage` possui o paramêtro para chamar um callback, no inicio eu não sabia para que servia, mas depois um cara do discord SA-MP me explicou como funciona.

Por que não? `DCC_EditMessage(messageid, string[])`? Pois é, eu também pensei que poderia ser fácil assim, mas pelo o que ele me explicou, isso não pode acontecer por que é necessário que a mensagem seja enviada primeiro(para retornar o ID) e por isso tem o parametro callback na função, para você conseguir coletar o ID da mensagem após ser confirmada o envio.

Vou deixar o exemplo que eu fiz abaixo:
Código:
#include <a_samp>
#include <discord-connector>
#include <discord-command>

#define DCC_CHANNEL_TEST         ("Channel ID")

new DCC_Channel:channel_test = DCC_INVALID_CHANNEL;
new DCC_Message:msg_id = DCC_Message:0;

main(){}

public OnGameModeInit()
{
    channel_test = DCC_FindChannelById(DCC_CHANNEL_TEST);
    
    DCC_SendChannelMessage(channel_test, "Mensagem teste.", "GetMessageTestID");
    return 1;
}

forward GetMessageTestID();
public GetMessageTestID()
{
    new DCC_Message:message = DCC_GetCreatedMessage();
    if(msg_id != DCC_Message:0)
    {
        DCC_DeleteInternalMessage(msg_id);
    }
    msg_id = message;
    return 1;
}

DCMD:edit(user, channel, params[])
{    
    DCC_EditMessage(msg_id, params);
    return 1;
}

Isso foi apenas um teste que eu fiz, e funcionou.

Espero que tenho respondido sua dúvida.

Estranho coloquei código aqui ele manda msg ao liga host, mas ao usa cmd para editar ela ainda não edita a mensagem, cmd está bem simples só de teste também para depôs eu evoluir 

DCMD:edi1(user, channel, params[])
{
  DCC_EditMessage(msg_id, "Boa"); 
  return 1 ;
}

Eu sei que com isso ele consegue edita a mensagem pq usando ela em DCC_OnMessageCreate responsável mensagem criadas no dc aonde bot está, funciona


RE: Como usar o DCC_EditMessage? - Carlos Victor - 07/12/2022

Você está fazendo alguma coisa errada, acabei de testar e está funcionando certinho.


RE: Como usar o DCC_EditMessage? - [JEFERSON_GAMES] - 07/12/2022

(07/12/2022 15:55)Carlos Victor Escreveu: Você está fazendo alguma coisa errada, acabei de testar e está funcionando certinho.

Nao sei pq já atualizei minha plugins e includ scanff e do discord tbm mas nada, a programação eu acho que está certa pq eu literalmente copiei e colei na minha fs do discord, mas nada.


RE: Como usar o DCC_EditMessage? - [JEFERSON_GAMES] - 07/12/2022

Realmente o sistema funciona pq meu amigo testo e está normal mas n sei qual motivo o meu não está editando a mensagem mas uma hora devo descobrir o pq, brigado ae mn


RE: Como usar o DCC_EditMessage? - [JEFERSON_GAMES] - 09/12/2022

Salveee consegui arruma o bug, e se acontece com vc e fácil de arruma, basta olha se seu sistema do discord estiver em uma FS olhe se vc n definiu a public Da fs como OnGameModeInit se estiver mude para OnFilterScriptInit, não sei pq mas isso faz buga algumas funções da plugin do discord, espero ter ajudo.