[Ajuda] Sistema de Dinamites (roubo)
#1

Bom vi em alguns servidores e achei interessante pra crl, estou tentando fazer o meu prуprio, atй mesmo pra melhorar meu conhecimento na linguagem. vamos la

pawn Код:
new roubando[MAX_PLAYERS];
new dinamitado[MAX_PLAYERS];
pawn Код:
if(strcmp(cmd,"/plantardinamite",true)==0)
    {
        if(GetPlayerWeapon(playerid) == 40)
        {
            SendClientMessage(playerid,COLOR_GREY,"Vocк nгo possui dinamites !");
            return true;
        }
        if(roubando[playerid] == 1)
        {
            SendClientMessage(playerid, COLOR_GRAD5, "Vocк ja estб roubando algum lugar.");
            return true;
        }
        else if(PlayerToPoint(2.0,playerid,2144.3777,1641.9858,993.5761))
        {
            if(dinamitado == 1)
            {
                SendClientMessage(playerid, COLOR_GRAD5, "Jб plantaram uma dinamite.");
                return true;
            }
            if(temporoubobanco == 1)
            {
                SendClientMessage(playerid,COLOR_GREY,"Jб roubaram o banco espere 3 minutos para roubar novamente !");
                return true;
            }
        }
        if(GetPlayerWeapon(playerid) == 40) return SendClientMessage(playerid,COLOR_GREY,"Vocк nгo tem Dinamites para plantar");
        SendClientMessage(playerid, COLOR_GRAD5, "Vocк plantou a dinamite agora vб atй o ponto de explosгo");
        dinamitado[playerid] = 1;
        return 1;
        }
    }
    if(strcmp(cmd,"/explodirdinamite",true)==0)
    {
        if(PlayerToPoint(2.0,playerid,1914,1633.8960,993.5761))
        {
            if(roubobanco == 1)
            {
                SendClientMessage(playerid, COLOR_GRAD5, "Jб estб tendo uma tentativa de roubo nesse cofre.");
                return true;
            }
            if(temporoubobanco == 1)
            {
                SendClientMessage(playerid,COLOR_GREY,"Jб roubaram o cofre do Banco espere 3 minutos para roubar novamente");
                return true;
            }
            if(dinamitado == 1) return SendClientMessage(playerid,COLOR_GREY,"Vocк nгo plantou dinamite alguma");
            GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
            SendClientMessageToAll(COLOR_WHITE, "(=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=({FFD700}Assalto ao Banco{BFC0C2})=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)");
            format(string, sizeof(string), "%s e os %s estгo tentando roubar o cofre banco! ID:[%d]", playername, NomeORG(playerid) , playerid);
            SendClientMessageToAll(GetPlayerColor(playerid), string);
            SendClientMessage(playerid, COLOR_GRAD5, "Espere 40 segundos para terminar de roubar o banco.");
            SetPlayerCriminal(playerid,255, "Tentativa de Roubo ao Banco");
            SetPlayerAttachedObject(playerid, 3, 1550, 1, 0.1, -0.3, 0, 0, 40, 0, 1, 1, 1);
            CreateExplosion(2144.4177,1641.5360,993.5761 , 12, 10.0);
            dinamitado[playerid] = 0;
            roubando[playerid] = 1;
            ProvocoBanco[playerid] = 1;
            roubobanco = 1;
            temporoubobanco = 1;
            SetTimer("Aroubo", 220000, 0);
            tempobanco = SetTimerEx("RouboBanco", 40000, 0, "i", playerid);
            SetTimerEx("AcabarMochila", 120000, 0, "i", playerid);
            return true;
        }
    }
Coloquei para mafioso vender a dinamite, que na verdade й o controle weapon id 40.
pawn Код:
if(strcmp(cmd, "/mafiavkit", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pJailed] != 0)
            {
                SendClientMessage(playerid,COLOR_YELLOW," Vocк nгo pode vender armas na cadeia!");
                return true;
            }
            new carid = GetPlayerVehicleID(playerid);
            if(!IsACaminhaozinhoCar(carid))
            {
                SendClientMessage(playerid,COLOR_GRAD1,"Vocк precisa estar dentro do BoxVille");
                return true;
            }
            if (PlayerInfo[playerid][pMembro] == 13 || PlayerInfo[playerid][pLider] == 13 || PlayerInfo[playerid][pMembro] == 12 || PlayerInfo[playerid][pLider] == 12)
            {
                new x_nr[32];
                x_nr = strtok(cmdtext, idx);
                if(!strlen(x_nr))
                {
                    SendClientMessage(playerid,COLOR_WHITE,"|__________________[ Vender Armas - Mafiosos ]__________________|");
                    SendClientMessage(playerid,COLOR_GREY,"USE: /mafiavkit [1 a 4] [ID do Player] ");
                    SendClientMessage(playerid,COLOR_GREY,"Kit 1: Shotgun,m4,mp5(399 Materiais)");
                    SendClientMessage(playerid,COLOR_GREY,"Kit 2: Eagle,Shotgun,m4,mp5(499 Materiais)");
                    SendClientMessage(playerid,COLOR_GREY,"Kit 3: Eagle,Shotgun,m4,mp5,sniper,faca(599 Materiais)");
                    SendClientMessage(playerid,COLOR_GREY,"Dinamite: Usada para explodir o cofre do banco");
                    return true;
                }
E o no kit 4 vem a dinamite
pawn Код:
else if(strcmp(x_nr,"4",true) == 0)
                {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp))
                    {
                        SendClientMessage(playerid,COLOR_WHITE,"|__________________[ Vender Armas - Mafiosos ]__________________|");
                        SendClientMessage(playerid,COLOR_GREY,"USE: /mafiavkit [1 a 4] [ID do Player] ");
                        SendClientMessage(playerid,COLOR_GREY,"Kit 1: Shotgun,m4,mp5(399)");
                        SendClientMessage(playerid,COLOR_GREY,"Kit 2: Eagle,Shotgun,m4,mp5(499)");
                        SendClientMessage(playerid,COLOR_GREY,"Kit 3: Eagle,Shotgun,m4,mp5,sniper,faca(599)");
                        SendClientMessage(playerid,COLOR_GREY,"kit 4: Dinamite: Usada para explodir o cofre do banco");
                        return true;
                    }
                    giveplayerid = ReturnUser(tmp);
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se vender Dinamites!"); return true; }
                    if(IsACop(giveplayerid))
                    {
                        SendClientMessage(playerid,COLOR_GRAD1,"Vocк nгo pode vender kit para policiais");
                        return true;
                    }
                    if(IsPlayerConnected(giveplayerid))
                    {
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        if(PlayerInfo[playerid][pMats] > 50)
                        {
                            GivePlayerMoney(giveplayerid, -1000);
                            GivePlayerMoney(playerid, 1000);
                            PlayerInfo[playerid][pMats] -= 200;
                            GivePlayerWeapon(giveplayerid, 40, 1);
                            format(string,sizeof(string),"Voce vendeu dinamites para %s.",giveplayer);
                            SendClientMessage(playerid,COLOR_GRAD1,string);
                            format(string,sizeof(string),"* %s vendeu dinamites para %s.",sendername ,giveplayer);
                            ProxDetector(20.0,playerid,string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                            return true;
                        }
                        else
                        {
                            SendClientMessage(playerid,COLOR_GREY,"Materiais insuficientes para vender dinamites!");
                            return true;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GREY, "   O Jogador Estб Offline !");
                        return true;
                    }
                }
            }
            else
            {
                SendClientMessage(playerid,COLOR_GREY,"Vocк nгo й de nenhuma Organizaзгo Mafiosa!");
                return true;
            }
        }
        return true;
    }
O gm nem compila, to tentando descobr que porra que eu fiz de errado , mas ta tenso, cerca de 2 horas ja nisso ;
Reply
#2

Ninguem afim de dar um help ae :3 ?
Reply
#3

posta a msg do compilador
Reply
#4

Nгo compila, fecha o pawno :3
Reply
#5

kkkk, vou dar uma olhada se achar o problema eu aviso

#edit

achei uns erros ja de cara, suas variaveis usam MAX_PLAYERS mas voce nao usa os ids no seu codigo..pode ser isso e algo mas, deve ter erro pra crl ai
Reply
#6

Sugestгo :/ ? suicidio ? ankgngaks
Reply
#7

O SEU COMANDO DE PLANTAR DINAMITE, CONTЙM UMA CHAVE A MAIS, USE ESTES COMANDOS ABAIXO QUE EDITEI, E ME DIGA A RESPOSTA.

PLANTAR DINAMITE.

PHP код:
if(strcmp(cmd,"/plantardinamite",true)==0){
    if(
GetPlayerWeapon(playerid) == 40) return SendClientMessage(playerid,COLOR_GREY,"Vocк nгo possui dinamites !");
    if(
roubando[playerid] == 1) return SendClientMessage(playeridCOLOR_GRAD5"Vocк ja estб roubando algum lugar.");
    if(
PlayerToPoint(2.0,playerid,2144.3777,1641.9858,993.5761)){
        if(
dinamitado == 1) return SendClientMessage(playeridCOLOR_GRAD5"Jб plantaram uma dinamite.");
        if(
temporoubobanco == 1) return SendClientMessage(playerid,COLOR_GREY,"Jб roubaram o banco espere 3 minutos para roubar novamente !");
    }
    if(
GetPlayerWeapon(playerid) == 40) return SendClientMessage(playerid,COLOR_GREY,"Vocк nгo tem Dinamites para plantar");
    
SendClientMessage(playeridCOLOR_GRAD5"Vocк plantou a dinamite agora vб atй o ponto de explosгo");
    
dinamitado[playerid] = 1;
    return 
true;

EXPLODIR DINAMITE.
PHP код:
if(strcmp(cmd,"/explodirdinamite",true)==0){
    if(
PlayerToPoint(2.0,playerid,1914,1633.8960,993.5761)){
        if(
roubobanco == 1) return SendClientMessage(playeridCOLOR_GRAD5"Jб estб tendo uma tentativa de roubo nesse cofre.");
        if(
temporoubobanco == 1) return SendClientMessage(playerid,COLOR_GREY,"Jб roubaram o cofre do Banco espere 3 minutos para roubar novamente");
        if(
dinamitado == 1) return SendClientMessage(playerid,COLOR_GREY,"Vocк nгo plantou dinamite alguma");
        
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
        
SendClientMessageToAll(COLOR_WHITE"(=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=({FFD700}Assalto ao Banco{BFC0C2})=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)");
        
format(stringsizeof(string), "%s e os %s estгo tentando roubar o cofre banco! ID:[%d]"playernameNomeORG(playerid) , playerid);
        
SendClientMessageToAll(GetPlayerColor(playerid), string);
        
SendClientMessage(playeridCOLOR_GRAD5"Espere 40 segundos para terminar de roubar o banco.");
        
SetPlayerCriminal(playerid,255"Tentativa de Roubo ao Banco");
        
SetPlayerAttachedObject(playerid3155010.1, -0.300400111);
        
CreateExplosion(2144.4177,1641.5360,993.5761 1210.0);
        
dinamitado[playerid] = 0;
        
roubando[playerid] = 1;
        
ProvocoBanco[playerid] = 1;
        
roubobanco 1;
        
temporoubobanco 1;
        
SetTimer("Aroubo"2200000);
        
tempobanco SetTimerEx("RouboBanco"400000"i"playerid);
        
SetTimerEx("AcabarMochila"1200000"i"playerid);
        return 
true;
    }

Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)