[Ajuda]Comando /agendar
#1

Eu estou a tentar a fazer um comando. Ele funciona assim. O administrador usa /agendar [nome do player] [tempo]. Este comando serve para um administrador agendar o player na cadeia, o comando serve somente se o player estiver off e quando ele entrar ele seria automaticamente enviado para a cadeia adm.

pawn Код:
//>-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    if(strcmp(cmd, "/cadeia",true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new tempo[20];
            new tempo2;
            if(PlayerInfo[playerid][pAdmin] < 2)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo esta autorizado para usar este comando!");
                return true;
            }
            tmp = strtok(cmdtext, idx);
            tempo = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /cadeia [id] [Tempo] [Motivo]");
                return true;
            }
            if(!strlen(tempo))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /cadeia [id] [Tempo] [Motivo]");
                return true;
            }
            if(admtrampando[playerid] < 1)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб trabalhando! (/jogar)");
                return true;
            }
            giveplayerid = ReturnUser(tmp);
            tempo2 = strval(tempo);
            new length = strlen(cmdtext);
            while ((idx < length) && (cmdtext[idx] <= ' '))
            {
            idx++;
            }
            new offset = idx;
            new result[100];
            while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
            {
            result[idx - offset] = cmdtext[idx];
            idx++;
            }
            result[idx - offset] = EOS;
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "Admin %s colocou %s na Cadeia, por %s minutos, Motivo: %s",PlayerName(playerid), giveplayer, tempo, (result));
                    SendClientMessageToAll(COLOR_LIGHTRED, string);
                    ResetPlayerWeaponsEx(giveplayerid);
                    OnPlayerUpdate(giveplayerid);
                    PlayerInfo[giveplayerid][pJailed] = 6;
                    PlayerInfo[giveplayerid][pJailTime] = tempo2 * 60;
                    SetPlayerInterior(giveplayerid, 5);
                    SetPlayerPos(giveplayerid, 318.5804,316.9043,999.1484);
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   O jogador estб offline !");
                return true;
            }
        }
        return true;
    }
Reply
#2

Nгo vou lhe dar cуdigo pronto, pois estou sem tempo, tenho aula jб..
Porйm, podes utilizar o cуdigo abaixo para verificar se um jogador esta online pelo nome.

pawn Код:
stock IsPlayerOnline ( const _name [ ] )
{
    new bool: yesno = false ;
    new name [ 24 ] ;
    for ( new p ; p != GetMaxPlayers ( ) ; ++p ) {
        if ( IsPlayerConnected ( p ) ) {
            GetPlayerName ( p , name , sizeof ( name ) ) ;
            if ( !strcmp ( name , _name , true ) ) {
                yesno = true ;
            }
        }
    }
    return yesno ;
}
Tente concluir seu sistema com base neste cуdigo.
Reply
#3

eu tentei de uns mil geito e n resulta em nada poderiam me ajudar ai.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)