[Ajuda] Roubo a banco com minimo 3 players.
#1

Boa noite a todos.
Antes de iniciar gostaria de dizer que eu procurei no forum do samp e em outros blogs relacionados antes de vir aqui pedir ajuda.

Tenho um sistema de roubo com base no Raven's (para deixar claro)
Preciso que o assalto ao banco comece com no minimo 3 players

pawn Код:
if(strcmp(cmd, "/roubarbanco", true) == 0)
    {
        //new success = random(2);
        new success = 1;
        if(gTeam[playerid] == 2 || IsACop(playerid))
        {
            return 1;
        }
        if(BankRobbedRecently == 1)
        {
            SendClientMessage(playerid, COLOR_GREY, "O Banco de Los Santos foi roubado recentemente, tente novamente mais tarde.");
            return 1;
        }
        if(PlayerInfo[playerid][pRobTime] >= 1)
        {
            SendClientMessage(playerid, COLOR_GREY, "Voce ja roubou recentemente, tente novamente mais tarde.");
            return 1;
        }
        if(IsPlayerInRangeOfPoint(playerid, 2, 2306.9514,-4.7727,26.7422))
        {
            if(GetPlayerWeapon(playerid) >= 24 && GetPlayerWeapon(playerid) <= 40)
            {
                /*if(PlayerInfo[playerid][pDuty] == 0) // Remover
                {*/

                    if(success == 1)
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "O assalto ao Banco de Los Santos foi anunciado, permaneca ao lado do cofre.");
                        GetPlayerPos(playerid, xp[playerid], yp[playerid], zp[playerid]);
                        ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
                        Bomba[playerid] = CreateObject(1654, xp[playerid], yp[playerid], zp[playerid] - 0.8,270,0,0);
                        SetTimerEx("DestruirCofre",10000,0,"i",playerid); // Explodir o cofre (10000 = 10 segundos)
                        RobbingTime[playerid] = 300000; // Roubar o dinheiro do cofre (300000 = 5 minutos)
                        RobBankTimer = SetTimerEx("RobBank",1000,true,"i",playerid); // (analizar)
                        WantedPoints[playerid] = 5;
                        SetPlayerCriminal(playerid,255, "Tentativa de Roubo a Banco");
                        //PlayerInfo[playerid][pRobTime] = 900; original
                        PlayerInfo[playerid][pRobTime] = 0;
                        BankRobbedRecently = 1;
                        SetTimer("UnsetBankRob",3600000,false); // Reformar o cofre 120s (3600000 = 1 hora)
                        //OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout
                    }
                    /*else
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "O alarme do cofre foi ativado, voce nao obteve sucesso ao roubo do Banco de Los Santos.");
                        WantedPoints[playerid] = 2;
                        SetPlayerCriminal(playerid,255, "Tentativa de Roubo a Banco");
                        //PlayerInfo[playerid][pRobTime] = 500; original
                        PlayerInfo[playerid][pRobTime] = 0;
                    }*/

                }
                /*else
                {
                    SendClientMessage(playerid, COLOR_GREY, "Bata cartao do seu emprego antes de cometer atos ilicitos."); // Remover
                    return 1;
                }*/

            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "Voce precisa estar armado(a) para assaltar o Banco.");
                return 1;
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "Voce nao esta no cofre do Banco de Los Santos.");
            return 1;
        }
        return 1;
    }
OBS: O sistema nгo estб todo ai, postei apenas o que й preciso.
Confesso que o sistema estб ficando realmente bom, bem realistico, talvez depois publicarei em forma de FS para outros players terem acesso.

Obrigado.
Reply
#2

Ninguйm?
Reply
#3

posta tudo kra T_T sou noobzaoo hehehehehehe

pelo visto parece ser bem da hora mesmo kra quero muito usar lo
Reply
#4

Vc tenque usar uma array para contar os players:
pawn Код:
new count = 0;
new string[128];
count++; // Cada player que usar o comando serб como +1 player ao assaulto
format(string,sizeof(string)," Agora o assaulto do banco comeзarб com mais %d players", count);
SendClientMessageToAll(COR, string);
Agora pra 3:
pawn Код:
if(count < 3) return SendClientMessage(playerid, COR, " Para o assault comeзar, o numero de players necessarios й 3");
else return true; // Caso tenha 3 ou +, o assaulto continuarб a valer.
Reply
#5

tou cansado destas pessoas nгo usarem search!

https://sampforum.blast.hk/showthread.php?tid=198691
Reply
#6

Uma funзгo que retorna a quantidade de jogadores perto de um certo jogador, sу um exemplo, vocк vai precisar analisar se eles sгo gangsters tambйm.
pawn Код:
//Exemplo de uso:
if(JogadoresAoRedor(playerid, 4.0) < 3) return SendClientMessage(playerid, 0xFF4040AA, "[ERRO] Vocк precisa de mais 3 gangsters!");

stock JogadoresAoRedor(demin, Float: TamanhoDoCirculo)
{
    new Float: Pos[3], count;
    GetPlayerPos(demin, Pos[0], Pos[1], Pos[2]);
   
    for(new i = 0; i < MAX_PLAYERS; ++i)
    {
        if(IsPlayerInRangeOfPoint(i, TamanhoDoCirculo,Pos[0], Pos[1], Pos[2])
        {
            count++;
        }
    }
    return count;
}
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)