[PEDIDO] /puxar player se ele aceitar
#1

Pessoal,
Eu queria um comando do tipo:

Quando o player der /puxar [id] o id escolhido recebera uma mensagem, "O jogador X quer lhe puxar. Voce tem 15 segundos para /aceitar." Bom e evidente que se o cara n usar /aceitar, em 15 segundos o pedido de puxar e recusado, e o player que utilizou /puxar recebe uma mensagem, "O jogador X nao aceitou ser puxado".

OBSs: o player pode escolher /puxar qualquer player mesmo que tenha algum pedido em espera de "aceitamento". Se o player reutilizar /puxar no mesmo cara antes de passarem os 15 segundos ele deve receber a seguinte mensagem, "voce acabou de fazer um pedido para este player, aguarde a decisao dele". E como o player tem 15 segundos para /aceitar, o cara que utilizou /puxar pode ter andado, portanto GetPlayerPos so devera ser feito quando o outro player utilizar /aceitar. E para evitar os dois player ficarem na mesma posicao deve ser acresentado alguns metros na coordenada.

Aguardo por respostas.
Reply
#2

pawn Код:
//TOPO
new aceitar[MAX_PLAYERS];
//OnPlayerConnect
aceitar[playerid] = 0;
//OnPlayerText
    if(aceitar[playerid] == 1)
    {
        if(!strcmp(text, "sim", true))
        {
           SetPlayerPos(playerid, pos[0] +1.0,pos[1] +1.0,pos[2]);
           aceitar[playerid] = 0;
           return SendClientMessage(playerid,0x1DD3E2AA, "Vocк aceitou o convite, e foi teleportado.");
        }
    }

//OnPlayerCommandText
    if(!strcmp(wcmd,"/enviar", true))
    {
        tmp = strtok(cmdtext,idx);
        if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000AA, "(Erro) USE: /enviar [id]");
        new outro = strval(tmp);
        if(outro == INVALID_PLAYER_ID) return SendClientMessage(playerid,0xFF0000AA, "(Erro) Player desconhecido");
        new nome[MAX_PLAYER_NAME];GetPlayerName(playerid,nome,sizeof(nome));
        format(string, 100, "o Admin %s lhe convidou para ir atй ele, aceita? (sim, nгo)",nome);
        SendClientMessage(outro,0x1DD3E2AA,string);
        GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
        aceitar[outro] = 1;
        return 1;
    }
Serve assim? e.e eu te envio um convite, e quando tu digitar 'SIM' ou 'sim' tanto faz. Vocк vem atй mim

@Edit creio que vocк mesmo consiga usar isso como base e reaprimorar. (:
Reply
#3

Nossa vcs sao rapidos mesmo,hein... Muito obrigado vou testar e ja digo se serviu... Consigo aprimorar sim...
Reply
#4

Optimus, eu jб havia criado isso para o meu GM, ai decidi dividir com vocк. Aprimora-lo nгo serб problema, boa sort (: mais dъvidas sу postar.
Reply
#5

Willian_Luigi = D-Flash
Reply
#6

Willian... acho que ta faltando definir algumas coisas... pq deu varios erros... como pos... tmp... idx e outros
Reply
#7

Basta por
pawn Код:
new Float:Pos[3]; //no topo
e уbvio
pawn Код:
new tmp[30], wcmd[30], idx; // OnPlayerCommandText
Reply
#8

Valeu will... Consegui... Tipo n usei da forma como vc falou ae... De fato adaptei todo o conceito ao meu script... Mas pelo mwnos finalmente aprendi a usar loop entre comandos...

Deixa lhe pergutar uma coisa. Cheguei a por vclient messages ja, so que a unica que n consegui por, tipo isso "Player X recusou seu convite", pro cara que convidou... Ou seja, como faz pra se o convite for cancelado o cara que convidou ter alguma resposta? Pq tipo se nao mesmo que o cara recusar ele n vai saber se o cara recusou ou n e vai fixar esperando uma mensagem que n chegara...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)