[Ajuda] Assalto em gangue
#1

Olб galera... Estou desenvolvendo um sistema de assalto em gangue para meu RPG...

1є Primeiro, nгo tб vindo dinheiro para a mгo do assaltante...
2є Ele fica roubando e mesmo dando a ъltima mensagem para fugir, ele volta a roubar novamente, acho que deve ser algum problema no loop... Entгo tб aqui o cуdigo:

pawn Код:
COMMAND:realizarassalto(playerid, params[])
{
    new tmp[128];
    if(sscanf(params, "s", tmp))
    {
        return SendClientMessage(playerid, COLOR_GRAY, "USO: /realizarassalto [loja]");
    }
    if(!IsPlayerInGang(playerid)){
        SendClientMessage(playerid, COLOR_GRAY, "Vocк nгo pertence a nenhuma gang nгo poderб fazer assaltos.");
        return 1;
    }
    if(pStats[playerid][GangueCargo] > 3){
        SendClientMessage(playerid, COLOR_GRAY, "Vocк nгo pode realizar assaltos em quadrilhas, apenas: Traficante, Torre, Braзo-Direito e Lнder podem iniciar.");
        return 1;
    }
    new string[128];
    new gangueiros = 0;
    for(new i = 0; i < MAX_SLOTS; i++){
        if(GetDistanceBetweenPlayers(playerid,i) < 80){
            if(compare(pStats[playerid][GangueNome], pStats[i][GangueNome])){
                gangueiros++;
            }
        }
    }
    if(gangueiros < 3){
        SendClientMessage(playerid, COLOR_GRAY, "Para realizar um assalto й necessбrio no mнnimo 3 Gangsters.");
        return 1;
    }
    if(IniciandoAssalto[playerid] != 0){
        SendClientMessage(playerid, COLOR_GRAY, "Vocк jб estб realizando um assalto.");
        return 1;
    }
    if(CalmaAssalto[playerid] != 0){
        SendClientMessage(playerid, COLOR_GRAY, "O Tempo para assaltar nгo passou tenha calma!");
        return 1;
    }
    if(compare(tmp, "banco"))
    {
        if(PlayerArea[playerid] == AreaBanco)
        {
            IniciandoAssalto[playerid] = 1;
            GameTextForPlayer(playerid, "~r~ Assaltando...", 5000,0);
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento...");
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento, fiquem prуximo para que o assalto nгo seja cancelado, mнnimo 2 gangsters.");
            for(new i = 0; i < MAX_SLOTS; i++)
            {
                if(GetDistanceBetweenPlayers(playerid,i) < 80)
                {
                    if(compare(pStats[playerid][GangueNome], pStats[i][GangueNome]))
                    {
                        IniciandoAssalto[i] = 1;
                        GameTextForPlayer(i, "~r~ Assaltando...", 5000,0);
                    }
                }
            }
            SetTimerEx("AssaltoGang",5000,0,"dd",playerid, IniciandoAssalto[playerid]);
        }
    }
    else if(compare(tmp, "pizzaria"))
    {
        if(PlayerArea[playerid] == AreaPizzaria)
        {
            IniciandoAssalto[playerid] = 2;
            GameTextForPlayer(playerid, "~r~ Assaltando...", 5000,0);
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento...");
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento, fiquem prуximo para que o assalto nгo seja cancelado, mнnimo 2 gangsters.");
            for(new i = 0; i < MAX_SLOTS; i++)
            {
                if(GetDistanceBetweenPlayers(playerid,i) < 80)
                {
                    if(compare(pStats[playerid][GangueNome], pStats[i][GangueNome]))
                    {
                        IniciandoAssalto[i] = 2;
                        GameTextForPlayer(i, "~r~ Assaltando...", 5000,0);
                    }
                }
            }
            SetTimerEx("AssaltoGang",5000,0,"dd",playerid, IniciandoAssalto[playerid]);
        }
    }
    else if(compare(tmp, "posto"))
    {
        if(PlayerArea[playerid] == AreaPosto)
        {
            IniciandoAssalto[playerid] = 3;
            GameTextForPlayer(playerid, "~r~ Assaltando...", 5000,0);
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento...");
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Assalto em andamento, fiquem prуximo para que o assalto nгo seja cancelado, mнnimo 2 gangsters.");
            for(new i = 0; i < MAX_SLOTS; i++)
            {
                if(GetDistanceBetweenPlayers(playerid,i) < 80)
                {
                    if(compare(pStats[playerid][GangueNome], pStats[i][GangueNome]))
                    {
                        IniciandoAssalto[i] = 3;
                        GameTextForPlayer(i, "~r~ Assaltando...", 5000,0);
                    }
                }
            }
            format(string, sizeof string, "Para ganhar mais dinheiro no %s, fique o maior tempo possнvel.", tmp);
            SendClientMessage(playerid, COLOR_ASSALTANTE, string);
            SetTimerEx("AssaltoGang",5000,0,"dd",playerid, IniciandoAssalto[playerid]);
        }
    }
    return 1;
}

public AssaltoGang(playerid, loja){
    new string[128];
    if(loja == 1){
        if(PlayerArea[playerid] == AreaBanco){
            ValuerMaximo[playerid] = 3000;
            new rand = random(5);
            if(rand == 1 || rand == 2){
                if(pickupbancoselecionada[playerid] == 1){
                    format(string, sizeof(string), "Assalto a Banco ( Banco de Little Mexico )");
                }
                else if(pickupbancoselecionada[playerid] == 2){
                    format(string, sizeof(string), "Assalto a Banco ( Banco de Temple )");
                }
                else if(pickupbancoselecionada[playerid] == 3){
                    format(string, sizeof(string), "Assalto a Banco ( Banco de Rodeo )");
                }
                else if(pickupbancoselecionada[playerid] == 4){
                    format(string, sizeof(string), "Assalto a Banco ( Banco de East Beach )");
                }
                if(IsPlayerTransparent(playerid)){
                    SendClientMessageToAll(COLOR_PINK,"New Paper's Life:");
                    SendClientMessageToAll(COLOR_WHITE, "[JORNAL] O Alarme de algum banco foi acionado, a polнcia foi avisada.");
                    format(string, sizeof(string), "Suspeitos: Gang desconhecida.");
                    SendClientMessageToAll(COLOR_JUIZ, string);
                    SendClientMessage(playerid, COLOR_ASSALTANTE, "Saia daн o mais rбpido possнvel, a polнcia pode estar chegando.");
                    AcusacaoCrime(playerid, "Alarme do Banco", "NONE" , string , 0, 0, 0, 0);
                } else {
                    SendClientMessageToAll(COLOR_PINK,"New Paper's Life:");
                    SendClientMessageToAll(COLOR_WHITE, "[JORNAL] O Alarme de algum banco foi acionado, a polнcia foi avisada.");
                    format(string, sizeof(string), "Suspeitos: Gangue %s.", pStats[playerid][GangueNome]);
                    SendClientMessageToAll(COLOR_JUIZ, string);
                    SendClientMessage(playerid, COLOR_ASSALTANTE, "Saia daн o mais rбpido possнvel, a polнcia pode estar chegando.");
                    AcusacaoCrime(playerid, "Alarme do Banco", "NONE" , string , 3, 0, 0, 0);
                }
            }
            SendClientMessage(playerid, COLOR_ASSALTANTE, "E O SHOW VAI COMEЗAR, TODOS NO CHГO.");
            if(QtLoopAssalto[playerid] > 0){
                format(string, sizeof(string), "Vocкs tem mais de $%d00 roubados do banco.", QtLoopAssalto);
                SendClientMessage(playerid, COLOR_WHITE, string);
            }
            new vlr = random(10)+1;
            QtLoopAssalto[playerid] = QtLoopAssalto[playerid] + vlr;
            SetTimerEx("AssaltoGang",10000,0,"dd",playerid, loja);
        }
    }
    else if(loja == 2){
        if(PlayerArea[playerid] == AreaPizzaria){
            ValuerMaximo[playerid] = 1500;
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Passem o dinheiro, nada de pizzas quero dinheiro!");
            if(QtLoopAssalto[playerid] > 0){
                format(string, sizeof(string), "Vocкs tem mais de $%d00 roubados da pizzaria.", QtLoopAssalto);
                SendClientMessage(playerid, COLOR_WHITE, string);
            }
            new vlr = random(4)+1;
            QtLoopAssalto[playerid] = QtLoopAssalto[playerid] + vlr;
            SetTimerEx("AssaltoGang",10000,0,"dd",playerid, loja);
        }
    }
    else if(loja == 3){
        if(PlayerArea[playerid] == AreaPosto){
            ValuerMaximo[playerid] = 2000;
            SendClientMessage(playerid, COLOR_ASSALTANTE, "Й UM ASSALTO, MГOS AO ALTO NEGADA!");
            if(QtLoopAssalto[playerid] > 0){
                format(string, sizeof(string), "Vocкs tem mais de $%d00 roubados do posto de gasolina.", QtLoopAssalto);
                SendClientMessage(playerid, COLOR_WHITE, string);
            }
            new vlr = random(6)+1;
            QtLoopAssalto[playerid] = QtLoopAssalto[playerid] + vlr;
            SetTimerEx("AssaltoGang",10000,0,"dd",playerid, loja);
        }
    }
    if(QtLoopAssalto[playerid] >= ValuerMaximo[playerid]){
        AddPlayerMoney(playerid,QtLoopAssalto[playerid],3);
        QtLoopAssalto[playerid] = 0;
        format(string, sizeof(string), "Assalto realizado! Vocкs conseguiram levar $%d00 dуlares do assalto, CORRAM!", QtLoopAssalto);
        SendClientMessage(playerid, COLOR_WHITE, string);
        CalmaAssalto[playerid] = 1;
        SetTimerEx("LimparTempoAssalto",600000,0,"d",playerid);
        if(loja == 1){
            if(pickupbancoselecionada[playerid] == 1){
                SetPlayerVirtualWorld(playerid, 0);
                SetPlayerInterior(playerid,0);
                SetPlayerFacingAngle(playerid,260.9407);
                SetPlayerPos(playerid,1771.7144,-1655.8201,14.4236);
            }
            else if(pickupbancoselecionada[playerid] == 2){
                SetPlayerVirtualWorld(playerid, 0);
                SetPlayerInterior(playerid,0);
                SetPlayerFacingAngle(playerid,260.9407);
                SetPlayerPos(playerid,1386.0540,-1015.7602,26.6676);
            }
            else if(pickupbancoselecionada[playerid] == 3){
                SetPlayerVirtualWorld(playerid, 0);
                SetPlayerInterior(playerid,0);
                SetPlayerFacingAngle(playerid,260.9407);
                SetPlayerPos(playerid,419.7245,-1428.6298,32.4797);
            }
            else if(pickupbancoselecionada[playerid] == 4){
                SetPlayerVirtualWorld(playerid, 0);
                SetPlayerInterior(playerid,0);
                SetPlayerFacingAngle(playerid,260.9407);
                SetPlayerPos(playerid,2862.3201,-1440.2727,10.9410);
            }
        }
    }
}

public LimparTempoAssalto(playerid){
    CalmaAssalto[playerid] = 0;
}

public Assalto(playerid){
    TempoAssalto[playerid]=0;
    SendClientMessage(playerid,COLOR_TRAFICANTE, "A poeira baixou, jб й possнvel que vocк realize outro Assalto.");
}
Reply


Messages In This Thread
Assalto em gangue - by [BR]Michael - 31.08.2012, 05:07
Re: Assalto em gangue - by victormelo - 31.08.2012, 06:16
Re: Assalto em gangue - by [BR]Michael - 31.08.2012, 21:51

Forum Jump:


Users browsing this thread: 1 Guest(s)