[Ajuda] PM [dialog] [ajuda]
#1

Boa Tarde. estou tentando por um pm em dialog.. mais estou com o seguinte problema como faзo para quando eu digitar /pm abrir a dialog e apareзer para digitar o id do player ai da enter e depois apareзe a dialog novamente para digitar a menssagem e se acaso nгo tiver o id onlline mandar a msg ID nгo conectado.. como posso adaptar isso no meu cуdigo??

pawn Код:
CMD:pm(playerid, params[])
{
    ShowPlayerDialog(playerid,PMDialog,DIALOG_STYLE_INPUT,"Menssagem Privada","Digite sua mensagem para este jogador","Enviar","Cancelar");
    return 1;
}


DIALOG

if(dialogid == PMDialog) // == PM Dialog
    {
        if(response)
        {
            if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, ERRO, "Este jogador nгo estб conectado");
            if(DialogPM[playerid] == playerid) return SendClientMessage(playerid, ERRO, "* PM ERRO: Vocк nгo pode PM para si mesmo");
            if(IgnorePM[playerid] == 0) return SendClientMessage(playerid, ERRO, "Este jogador nгo estб aceitando Menssagems privadas no momento.");
            if(!inputtext[0])
            {
                SendClientMessage(playerid, ERRO, "* PM ERRO: Sua Menssagem inserida e invalida.");
                ShowPlayerDialog(playerid,PMDialog,DIALOG_STYLE_INPUT,"Menssagem privada","Digite a Menssagem correta.","Enviar","Cancelar");
                return 1;
            }

            if(!strlen(inputtext))
            {
                format(Message,sizeof(Message),"Menssagem errada\nDigite a Menssagem correta");
                ShowPlayerDialog(playerid,PMDialog,DIALOG_STYLE_INPUT,"Menssagem errada - Digite a Menssagem correta.",Message,"Enviar","Cancelar");
                return 1;
            }

            new PMRecebido[MAX_PLAYER_NAME];
            new PMEnviado[MAX_PLAYER_NAME];
            GetPlayerName(playerid, PMRecebido, sizeof(PMRecebido));
            GetPlayerName(DialogPM[playerid], PMEnviado, sizeof(PMEnviado));
            if(strlen(inputtext))
            {
                format(Message, 256, "O Player %s Enviou a mensagem privada para %s - [Menssagem: %s]", PMRecebido, PMEnviado, inputtext);
                printf("%s", Message);
                format(Message, sizeof(Message), "[-->] PM para: %s (ID: %d): %s", PMEnviado, DialogPM[playerid], inputtext);
                SendClientMessage(playerid, PMCOR, Message);
                format(Message, sizeof(Message), "[<--] PM de: %s (ID: %d): %s", PMRecebido, playerid, inputtext);
                SendClientMessage(DialogPM[playerid], PMCOR, Message);
                return 1;
            }
        }
    }
Reply
#2

Vocк tem que criar uma dialog para vocк inserir o ID e outra para vocк inserir a mensagem!
Com esse cуdigo que vocк mando vocк ja tem a base, so vocк dar mais uma pesquisada que vocк consegue fazer.
Reply
#3

sabe me dizer qual funзгo e para atribuir somente ID's ao dialog? pois inputtext e para Textos.. e para ID's? poderia dar alguma base para mim ter a ideia em si? Obrigado.
Reply
#4

inputtext mesmo que pega o ID.

use https://sampwiki.blast.hk/wiki/Strval para converter.
Reply
#5

Quote:
Originally Posted by ReDKiiL
Посмотреть сообщение
inputtext mesmo que pega o ID.

use https://sampwiki.blast.hk/wiki/Strval para converter.
Mais interessante ainda seria utilizar SSCANF usando especificador 'u', assim poderia ser digitado nome, parte ou ID.

Por exemplo:

pawn Код:
new id;
if(sscanf(inputtext,"u",id))
{
    // Nгo foi digitado dentro dos padrхes
}
else
{
    // Um possнvel ID estб na variбvel id.
    if(!IsPlayerConnected(id))
    {
        // ID Invбlido e bla blб
    }
}
Reply
#6

Quote:
Originally Posted by arakuta
Посмотреть сообщение
Mais interessante ainda seria utilizar SSCANF usando especificador 'u', assim poderia ser digitado nome, parte ou ID.

Por exemplo:

pawn Код:
new id;
if(sscanf(inputtext,"u",id))
{
    // Nгo foi digitado dentro dos padrхes
}
else
{
    // Um possнvel ID estб na variбvel id.
    if(!IsPlayerConnected(id))
    {
        // ID Invбlido e bla blб
    }
}
Com certeza! se ele utilizar sscanf pode fazer dessa maneira
Reply
#7

UM Pm por dialog nгo й mt bom! aconselho vocк usar ZCMD e sscanf
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)