[AJUDA]onplayerclickplayer
#1

pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");
    return 1;
}
o cara clica no outro e abre uma dialog input..

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        if(response >= 1)
        {
            new string[250],id;
            format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),string);
            SendClientMessage(id,VERDE,string);
            return 1;
        }
    }
    return 1;
}
digito o texto aqui para ir para o outro jogador e sу aparece o nome dele, o que eu faзo?
Reply
#2

pawn Код:
new texto = strval(inputtext)
jб tentou assim D: ?
Reply
#3

pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");
    SetPVarInt(playerid, "ID", clickedplayerid);
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        new string[128];
        format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),strlen(inputtext));
        SendClientMessage(GetPVarInt(playerid, "ID"),VERDE,string);
        return 1;
    }
    return 1;
}
Reply
#4

Ps: o seu ricop darб erro, porque mandarб a mensagem para o id 0,
porque ele primeiro mostra o dialog e depois define a PVar 'ID' para o id clicado.

melhor mйtedo:
no topo:
pawn Код:
new Caroly[MAX_PLAYERS];
no OnPlayerClickPlayer:
pawn Код:
Caroly[playerid] = clickedplayerid;
ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");

no OnDialogResponse:
pawn Код:
if(dialogid == 9999)
    {
        if(response)
        {
            new string[250];
            format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),string);
            SendClientMessage(Caroly[playerid],VERDE,string);
            return 1;
        }
    }
Espero ter ajudado =)
Reply
#5

Quote:
Originally Posted by [O.z]Caroline
Посмотреть сообщение
Ps: o seu ricop darб erro, porque mandarб a mensagem para o id 0,
porque ele primeiro mostra o dialog e depois define a PVar 'ID' para o id clicado.

melhor mйtedo:
no topo:
pawn Код:
new Caroly[MAX_PLAYERS];
no OnPlayerClickPlayer:
pawn Код:
Caroly[playerid] = clickedplayerid;
ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");


no OnDialogResponse:
pawn Код:
if(dialogid == 9999)
    {
        if(response)
        {
            new string[250];
            format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),string);
            SendClientMessage(Caroly[playerid],VERDE,string);
            return 1;
        }
    }
Espero ter ajudado =)

Eu acho, que nгo hб problemas, em vista que os dois executarгo na mesma hora.
Penso eu que й a mesma coisa que um sendclientmessage em baixo do show, irб executar.
Mais para testes:


pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    new idString[20];
    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");
    SetPVarInt(playerid, "ID", clickedplayerid);
    format(idString, sizeof(idString), "ID ESCOLHIDO %i", GetPVarInt(playerid, "ID"));
    SendClientMessage(playerid, -1, idString);
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        new string[128];
        format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),strlen(inputtext));
        SendClientMessage(GetPVarInt(playerid, "ID"),VERDE,string);
        return 1;
    }
    return 1;
}
Reply
#6

Quote:
Originally Posted by Ricop522
Посмотреть сообщение
Tenho a absoluta certeza que nгo hб problemas, em vista que os dois executarгo na mesma hora.
Penso eu que й a mesma coisa que um sendclientmessage em baixo do show, irб executar.
Mais para testes:


pawn Код:
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    new idString[20];
    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");
    SetPVarInt(playerid, "ID", clickedplayerid);
    format(idString, sizeof(idString), "ID ESCOLHIDO %i", GetPVarInt(playerid, "ID"));
    SendClientMessage(playerid, -1, idString);
    return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999)
    {
        new string[128];
        format(string,sizeof(string),"%s diz: %s",PlayerName(playerid),strlen(inputtext));
        SendClientMessage(GetPVarInt(playerid, "ID"),VERDE,string);
        return 1;
    }
    return 1;
}
desculpe-me, realmente vocк estб certo, eu havia errado aqui, xD.
Reply
#7

fui testar os 2,nenhum funciona

o da carol nгo aparece o texto, sу fica Leo:

o do ricop diz o proprio nome na mp: Leo: Leo

'-' o que pode ser?
Reply
#8

Quote:
Originally Posted by Leeo_Perez
Посмотреть сообщение
fui testar os 2,nenhum funciona

o da carol nгo aparece o texto, sу fica Leo:

o do ricop diz o proprio nome na mp: Leo: Leo

'-' o que pode ser?
Em dialogs INPUT, nгo usa-se Response, usa-se inputtext.
Tente.


PHP код:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    switch(
dialogid)
    {
        case 
9999:
        {
            if(
response)
            {
                new
                    
Str[128],
                    
iddocara GetPVarInt(playerid"ID")
                ;
                
format(Strsizeof(Str), "%s diz: %s"PlayerName(playerid), inputtext);
                
SendClientMessage(iddocaraVERDEStr);
                return 
1;
            }
            else
                return 
0;
        }
    }
    return 
1;
}
public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    
ShowPlayerDialog(playerid9999DIALOG_STYLE_INPUT"MP""Digite seu texto abaixo.""Ok""Fechar");
    
SetPVarInt(playerid"ID"clickedplayerid);
    return 
1;

Reply
#9

Quote:
Originally Posted by DreeH
Посмотреть сообщение
Em dialogs INPUT, nгo usa-se Response, usa-se inputtext.
Tente.
Claro que utiliza response, afinal alocam o valor de qual foi o botгo pressionado pelo jogador no dialog.

Caroline:

pawn Код:
new
     Caroly[MAX_PLAYERS char]
;

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    Caroly{playerid} = clickedplayerid;
    ShowPlayerDialog(playerid,9999,DIALOG_STYLE_INPUT,"MP","Digite seu texto abaixo.","Ok","Fechar");
    return true;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 9999) {

        if(response) {

            new string[128];
            GetPlayerName(playerid, string, 24);

            format(string, 128, "%s diz: %s", string, inputtext);
            SendClientMessage(Caroly{playerid},0xFFFFFFFF, string);
            return true;
        }
    }
    return 1;
}
Seu cуdigo simplesmente daria errado quando se for utilizar com outros jogadores, que logo foi criada apenas uma variбvel e nгo uma array que podesse ids alocar todos .

Sorte boa!


Tento ajudar, reputaзгo nгo custa nada

Valeu!
Reply
#10

Quote:
Originally Posted by [M]onsieur
Посмотреть сообщение
Claro que utiliza response, afinal alocam o valor de qual foi o botгo pressionado pelo jogador no dialog.
Й, acho que errei. Porйm, vendo meu code, й o mais capaz de dar certo, obrigado pela correзгo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)