[Ajuda] "timer" para sair da cadeia
#1

Quando o player recebe 5 preso automaticamente por 12 minutos;

pawn Код:
if(strfind(text, "pica", true) != -1 || strfind(text, "fdp", true) != -1 || strfind(text, "f.d.p", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "Vtnc", true) != -1 || strfind(text, "Vai toma no cu", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Adm Noob", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Server Lixo", true) != -1 || strfind(text, "Filho da puta", true) != -1)
{
    new string[256];
    new pname[MAX_PLAYER_NAME];
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Vocк foi avisado por chingar");
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Ao receber 5 avisos vocк serб preso por 12 Minutos");
    format(string, sizeof(string), "{0099FF}|BLC Admin|{CCCCFF} O Adminstrador [L.M]Guardiao Avisou o jogador %s ( Motivo: Chingamento )(%d/5)" ,PlayerName(playerid),aviso[playerid]);
    SendClientMessageToAll(outraadm, string);
    aviso[playerid]+=1;
    if(aviso[playerid] >= 5) {
        format(string, sizeof(string), "|BLC Admin| O Administrador [L.M]Guardiao Prendeu o jogador %s por 12 minutos ( Motivo: Chingamentos 5/5 )",pname);
        SendClientMessageToAll(Amarelo, string);
        SetPlayerPos(playerid, 263.8820,77.4002,1001.0391);
        SetPlayerInterior(playerid, 6);
        SetPlayerHealth(playerid, 99999);
        ResetPlayerWeapons(playerid);
        format(file2, sizeof(file2), P_CONTAS, pname);
        dini_IntSet(file2, "Preso", 1);

    }
}
Ele prende o jogador, mas o jogador nгo й solto.
Preciso de um settime mas nгo sei como adiciona-lo!
Reply
#2

pawn Код:
if(strfind(text, "pica", true) != -1 || strfind(text, "fdp", true) != -1 || strfind(text, "f.d.p", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "Vtnc", true) != -1 || strfind(text, "Vai toma no cu", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Adm Noob", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Server Lixo", true) != -1 || strfind(text, "Filho da puta", true) != -1)
{
    new string[256],
        pname[MAX_PLAYER_NAME];

    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Vocк foi avisado por chingar");
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Ao receber 5 avisos vocк serб preso por 12 Minutos");

    format(string, sizeof(string), "{0099FF}|BLC Admin|{CCCCFF} O Adminstrador [L.M]Guardiao Avisou o jogador %s ( Motivo: Chingamento )(%d/5)" ,PlayerName(playerid),aviso[playerid]);
    SendClientMessageToAll(outraadm, string);

    aviso[playerid]+=1;

    if(aviso[playerid] >= 5) {
        format(string, sizeof(string), "|BLC Admin| O Administrador [L.M]Guardiao Prendeu o jogador %s por 12 minutos ( Motivo: Chingamentos 5/5 )",pname);
        SendClientMessageToAll(Amarelo, string);
        SetPlayerPos(playerid, 263.8820,77.4002,1001.0391);
        SetPlayerInterior(playerid, 6);
        SetPlayerHealth(playerid, 99999);
        ResetPlayerWeapons(playerid);
        GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
        format(file2, sizeof(file2), P_CONTAS, pname);
        dini_IntSet(file2, "Preso", 1);
        SetTimerEx("TempoPreso", 72000, false, "d", playerid);
    }
}




forward TempoPreso(playerid);
public TempoPreso(playerid){
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(file2, sizeof(file2), P_CONTAS, pname);
   
    dini_IntSet(file2, "Preso", 0);
    aviso[playerid] = 0;
/*mais alguma variavel de soltar o player*/
    SpawnPlayer(playerid);
    return 1;
}
Reply
#3

pawn Код:
if(strfind(text, "pica", true) != -1 || strfind(text, "fdp", true) != -1 || strfind(text, "f.d.p", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "Vtnc", true) != -1 || strfind(text, "Vai toma no cu", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Adm Noob", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Server Lixo", true) != -1 || strfind(text, "Filho da puta", true) != -1)
{
    new string[256];
    new pname[MAX_PLAYER_NAME];
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Vocк foi avisado por chingar");
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Ao receber 5 avisos vocк serб preso por 12 Minutos");
    format(string, sizeof(string), "{0099FF}|BLC Admin|{CCCCFF} O Adminstrador [L.M]Guardiao Avisou o jogador %s ( Motivo: Chingamento )(%d/5)" ,PlayerName(playerid),aviso[playerid]);
    SendClientMessageToAll(outraadm, string);
    aviso[playerid]+=1;
    if(aviso[playerid] >= 5) {
        format(string, sizeof(string), "|BLC Admin| O Administrador [L.M]Guardiao Prendeu o jogador %s por 12 minutos ( Motivo: Chingamentos 5/5 )",pname);
        SendClientMessageToAll(Amarelo, string);
        SetPlayerPos(playerid, 263.8820,77.4002,1001.0391);
        SetPlayerInterior(playerid, 6);
        SetPlayerHealth(playerid, 99999);
        ResetPlayerWeapons(playerid);
        format(file2, sizeof(file2), P_CONTAS, pname);
        dini_IntSet(file2, "Preso", 1);
        SetTimerEx("SairCadeia", 720000, false, "i", playerid);
    }
}

// Topo do GM

forward SairCadeia(playerid);

//public

public SairCadeia(playerid) {
      new file2[100];
      format(file2, sizeof(file2), P_CONTAS, pname);
      dini_IntSet(file2, "Preso", 0);
      aviso[playerid] = 0;
      SpawnPlayer(playerid);
      return 1;
}
Sу utilizar

@Edit - Sky, Isto й 12 Segundos, ele Pediu 12 Minutos.
Reply
#4

editei esqueci a diferenзa k
Reply
#5

Topo do Gamemode abaixo das includes
pawn Код:
forward Callback( playerid );


OnPlayerText()
pawn Код:
if(strfind(text, "pica", true) != -1 || strfind(text, "fdp", true) != -1 || strfind(text, "f.d.p", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "Vtnc", true) != -1 || strfind(text, "Vai toma no cu", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Adm Noob", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Server Lixo", true) != -1 || strfind(text, "Filho da puta", true) != -1)
    {
        new
            Float:Ppos[ 3 ],
            string[256],
            pname[MAX_PLAYER_NAME];
       
        format(file2, sizeof(file2), P_CONTAS, pname);
        dini_IntSet(file2, "Preso", 1);
       
        SetTimerEx("Callback", 1000*12*60, false, "i", playerid );
        GetPlayerPos( playerid, Ppos[0], Ppos[1], Ppos[2] );
        dini_FloatSet(file2, "SPosX", Ppos[0]),
        dini_FloatSet(file2, "SPosY", Ppos[1]),
        dini_FloatSet(file2, "SPosZ", Ppos[2]);


        SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Vocк foi avisado por chingar");
        SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Ao receber 5 avisos vocк serб preso por 12 Minutos");
        format(string, sizeof(string), "{0099FF}|BLC Admin|{CCCCFF} O Adminstrador [L.M]Guardiao Avisou o jogador %s ( Motivo: Chingamento )(%d/5)" ,PlayerName(playerid),aviso[playerid]);
        SendClientMessageToAll(outraadm, string);
        aviso[playerid]+=1;
        if(aviso[playerid] >= 5)
        {
            format(string, sizeof(string), "|BLC Admin| O Administrador [L.M]Guardiao Prendeu o jogador %s por 12 minutos ( Motivo: Chingamentos 5/5 )",pname);
            SendClientMessageToAll(Amarelo, string);
            SetPlayerPos(playerid, 263.8820,77.4002,1001.0391);
            SetPlayerInterior(playerid, 6);
            SetPlayerHealth(playerid, 99999);
            ResetPlayerWeapons(playerid);

        }
    }
Ultima linha
pawn Код:
public Callback( playerid )
{
    new
        name[ MAX_PLAYER_NAME + 1];
    GetPlayerName( playerid, name, sizeof( name ));
   
    format( file2, sizeof(file2), P_CONTAS, name ),
    dini_IntSet( file2, "Preso", 0);

    new
        Float:PosX = dini_Float( file2, "SPosX" ),
        Float:PosY = dini_Float( file2, "SPosY" ),
        Float:PosZ = dini_Float( file2, "SPosZ" );
    // Suas funзхes
    SetPlayerPos( playerid, PosX, PosY, PosZ );
    return true;
}

Duvidas - Pergunte...
Esta й uma base para o seu aprendizado...

Espero ter ajudado
Reply
#6

pawn Код:
C:\Users\USER\Desktop\Server\gamemodes\GM.pwn(19009) : warning 219: local variable "file2" shadows a variable at a preceding level
C:\Users\USER\Desktop\Server\gamemodes\GM.pwn(19010) : error 017: undefined symbol "pname"
Linhas:
19010: new file2[100];
19011: format(file2, sizeof(file2), P_CONTAS, pname);
Reply
#7

Dica : crie uma array para as palavras ...
Reply
#8

Quote:
Originally Posted by WotusPower
Посмотреть сообщение
pawn Код:
C:\Users\USER\Desktop\Server\gamemodes\GM.pwn(19009) : warning 219: local variable "file2" shadows a variable at a preceding level
C:\Users\USER\Desktop\Server\gamemodes\GM.pwn(19010) : error 017: undefined symbol "pname"
Linhas:
19010: new file2[100];
19011: format(file2, sizeof(file2), P_CONTAS, pname);
Remova o new file2[100]; e crie isto:

pawn Код:
new pname[24];
GetPlayerName(playerid, pname, 24);
Apenas substitua um pelo outro
Reply
#9

Quote:
Originally Posted by SkyX
Посмотреть сообщение
pawn Код:
if(strfind(text, "pica", true) != -1 || strfind(text, "fdp", true) != -1 || strfind(text, "f.d.p", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "f.dp", true) != -1 || strfind(text, "Vtnc", true) != -1 || strfind(text, "Vai toma no cu", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Adm Noob", true) != -1 || strfind(text, "FDP", true) != -1 || strfind(text, "Server Lixo", true) != -1 || strfind(text, "Filho da puta", true) != -1)
{
    new string[256],
        pname[MAX_PLAYER_NAME];

    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Vocк foi avisado por chingar");
    SendClientMessage(playerid,Vermelho,"{0099FF}|Player|{CCCCFF} Ao receber 5 avisos vocк serб preso por 12 Minutos");

    format(string, sizeof(string), "{0099FF}|BLC Admin|{CCCCFF} O Adminstrador [L.M]Guardiao Avisou o jogador %s ( Motivo: Chingamento )(%d/5)" ,PlayerName(playerid),aviso[playerid]);
    SendClientMessageToAll(outraadm, string);

    aviso[playerid]+=1;

    if(aviso[playerid] >= 5) {
        format(string, sizeof(string), "|BLC Admin| O Administrador [L.M]Guardiao Prendeu o jogador %s por 12 minutos ( Motivo: Chingamentos 5/5 )",pname);
        SendClientMessageToAll(Amarelo, string);
        SetPlayerPos(playerid, 263.8820,77.4002,1001.0391);
        SetPlayerInterior(playerid, 6);
        SetPlayerHealth(playerid, 99999);
        ResetPlayerWeapons(playerid);
        GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
        format(file2, sizeof(file2), P_CONTAS, pname);
        dini_IntSet(file2, "Preso", 1);
        SetTimerEx("TempoPreso", 72000, false, "d", playerid);
    }
}




forward TempoPreso(playerid);
public TempoPreso(playerid){
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    format(file2, sizeof(file2), P_CONTAS, pname);
   
    dini_IntSet(file2, "Preso", 0);
    aviso[playerid] = 0;
/*mais alguma variavel de soltar o player*/
    SpawnPlayer(playerid);
    return 1;
}

simples..
Reply
#10

Sу mais uma coisa,
O Player pode falar no chat geral quando estб preso.
Gostaria que ele pudesse falar sу no /p [ Chat Proximo]
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)