07/12/2022 15:46
(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