[Ajuda] Sistema de prisao 100%
#1

Bom galera meu problema й o seguinte eu tenho um sistema de prisгo aqui que esta junto com o meu fs de adm so que o sistema esta muito noob Tipo se o player morrer elee sai da cadeia e tem como elee usar comando dentro da prisao a e eu estarei postando meu sistema se alguem poder me ajudar colocando essas coisas para mim nelee ficarei grato...!

  • 1° Ajuda ao consertar a questao do player poder usar comandos dentro da prisгo.
  • 2° Ajuda ao consertar a questao do player morrer e sai da prisao.

Obs: Eu quero a ajuda para poder acoplar o sistema que estarei postando no meu sistema de prisao.


Sistema de nгo usar comandos dentro da prisao.
pawn Код:
if (Presos[playerid] == 1)
  {
      return SendClientMessage(playerid, COR, "Vocк estб preso e nгo pode usar comandos");
  }
Sistema de quando o player morre sai da prisao.
pawn Код:
//no topo

new bool:EstaPreso[MAX_PLAYERS] = false;

//No comando de prender ou no local onde faz com que o player fique preso:
EstaPreso[playerid] = true;

//No OnPlayerDeath e onde vocк quer que verifique que ele estб preso:

if(EstaPreso[playerid])
{
    SetPlayerPos(playerid,.......);
SendClientMessage(playerid, COLOR_LIGHTRED, "Sentenзa incompleta,Vocк voltou para Prisгo");
    return 1;
}

Sistema de Prisao.

pawn Код:
if(strcmp(cmd, "/prender", true) == 0)
    {
        if (AccountInfo[playerid][AdminLevel] >= 2)
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, ORANGE, "USO: /prender [ID] [Motivo]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(AccountInfo[giveplayerid][Jail] == 0)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, player, sizeof(player));
                        new length = strlen(cmdtext);
                        while ((idx < length) && (cmdtext[idx] <= ' '))
                        {
                            idx++;
                        }
                        new offset = idx;
                        new reason[256];
                        while ((idx < length) && ((idx - offset) < (sizeof(reason) - 1)))
                        {
                            reason[idx - offset] = cmdtext[idx];
                            idx++;
                        }
                        reason[idx - offset] = EOS;
                        if(!strlen(reason))
                        {
                            SendClientMessage(playerid, ORANGE, "USO: /prender [ID] [Motivo]");
                            return 1;
                        }
                        format(string, sizeof(string), "Vocк foi preso pelo admin %s. Motivo: %s", player, reason);
                        SendClientMessage(giveplayerid, ADMIN_RED, string);
                        format(string, sizeof(string), "-| Administrador %s te prendeu %s. [ Motivo: %s ] |-",player ,giveplayer, reason);
                        SendClientMessageToAll(ADMIN_RED,string);
                        AccountInfo[giveplayerid][Jail] = 1;
                        OnPlayerJailed(giveplayerid);
                        return 1;
                    }
                    else
                    {
                        SendClientMessage(playerid, RED, "Jogador esta preso!");
                    }
                }
                else
                {
                    format(string, sizeof(string), "%d nгo й um jogador ativo.", giveplayerid);
                    SendClientMessage(playerid, RED, string);
                }
            }
            else
            {
                format(string, sizeof(string), "%d nгo й um jogador ativo.", giveplayerid);
                SendClientMessage(playerid, RED, string);
            }
        }
        else
        {
            format(string, sizeof(string), "Vocк nгo й um administrador com o nнvel exigido.");
            SendClientMessage(playerid, RED, string);
        }
    return 1;
    }

    if(strcmp(cmd, "/soltar", true) == 0)
    {
        if (AccountInfo[playerid][AdminLevel] >= 3 || IsPlayerAdmin(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, ORANGE, "USO: /soltar [ID]");
                return 1;
            }

            giveplayerid = ReturnUser(tmp);
            if(giveplayerid != INVALID_PLAYER_ID)
            {
                if(AccountInfo[giveplayerid][Jail] == 1)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    printf("[ADMIN NEWS]: Admin %s soltou %s.", sendername, giveplayer);
                    format(string, sizeof(string), "-| Administrador %s soltou %s |-",sendername, giveplayer);
                    SendClientMessageToAll(ADMIN_RED,string);
                    AccountInfo[giveplayerid][Jail] = 0;
                    OnPlayerUnjailed(giveplayerid);
                }
                else
                {
                    SendClientMessage(playerid, RED, "O Jogador nгo esta preso!");
                }
            }
            else
            {
                format(string, sizeof(string), "%d nгo й um jogador ativo.", giveplayerid);
                SendClientMessage(playerid, RED, string);
            }
        }
        else
        {
            SendClientMessage(playerid, RED, "Vocк nгo tem admin level exigido.");
        }
        return 1;
    }



Aguardando respostas...
Reply
#2

Em relaзгo ao usar comandos dentro da prisгo repara aqui:

pawn Код:
AccountInfo[giveplayerid][Jail] = 1;
e repara no teu
pawn Код:
if (Presos[playerid] == 1)
  {
      return SendClientMessage(playerid, COR, "Vocк estб preso e nгo pode usar comandos");
  }
Em relaзгo ao morrer e sair da prisгo eu nгo estou muito familiarizado com isso mas sempre podes usar algo do tipo como em cima. Nгo poder usar o comando /kill na prisгo. Repara no que te escrevi em cima e deves lб chegar.
Reply
#3

pawn Код:
public OnPlayerSpawn(playerid)
{
    if (AccountInfo[playerid][Jail] == 1)
    {
       OnPlayerJailed(playerid);
       SendClientMessage(playerid, COLOR_LIGHTRED, "Sentenзa incompleta,Vocк voltou para Prisгo");
    }
    return 1;
}
Nгo percebi bem, mas acho que й disto que precisas.
Reply
#4

C:\Documents and Settings\Juniior\Desktop\Server 0.3a Gta Dos Loucos\filterscripts\Adm.pwn(406) : error 017: undefined symbol "Presos"

C:\Documents and Settings\Juniior\Desktop\Server 0.3a Gta Dos Loucos\filterscripts\Adm.pwn(406) : warning 215: expression has no effect

C:\Documents and Settings\Juniior\Desktop\Server 0.3a Gta Dos Loucos\filterscripts\Adm.pwn(406) : error 001: expected token: ";", but found "]"

C:\Documents and Settings\Juniior\Desktop\Server 0.3a Gta Dos Loucos\filterscripts\Adm.pwn(406) : error 029: invalid expression, assumed zero

C:\Documents and Settings\Juniior\Desktop\Server 0.3a Gta Dos Loucos\filterscripts\Adm.pwn(406) : fatal error 107: too many error messages on one line
Reply
#5

Modifiquei o de cima, quanto ao de usar comandos:

pawn Код:
if (AccountInfo[playerid][Jail] == 1)
  {
      return SendClientMessage(playerid, COR, "Vocк estб preso e nгo pode usar comandos");
  }
Reply
#6

pawn Код:
public OnPlayerSpawn(playerid)
{
    if (AccountInfo[playerid][Jail] == 1)
    {
       OnPlayerJailed(playerid);
       SendClientMessage(playerid, RED, "Sentenзa incompleta,Vocк voltou para Prisгo");
    }
    return 1;
}
Coloquei tudo certo mas o player ainda quando spawna dentro da prisao elee й solto...
Alguma ideeia oque pode ta causando isso?



Obs: Meu sistema de prisao esta junto com o sistema de adm que esta fora do gm tem alguma coisa a ver?


Alguem ajuda por favor
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)