Portal SAMP
[Ajuda] Percurso por mapicon - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Percurso por mapicon (/showthread.php?tid=859)

Páginas: 1 2


RE: Percurso por mapicon - Levi.M - 05/03/2021

Isso é problema de posição que não está setando, cria um random com as posições


RE: Percurso por mapicon - LeleziiN - 05/03/2021

(05/03/2021 12:38)Levi.M Escreveu: Isso é problema de posição que não está setando, cria um random com as posições

Como poderia fazer isso? Poderia mim da um exemplo?


RE: Percurso por mapicon - LeleziiN - 05/03/2021

Como eu poderia fazer pro mapicon aparecer somente na lixeira que está precisando de coleta, tipo as lixeiras que estão vazias o mapicon não é setado para a lixeira que está precisando ser coletada


RE: Percurso por mapicon - Levi.M - 05/03/2021

Te respondi no discord mano.


RE: Percurso por mapicon - LeleziiN - 06/03/2021

Eu fiz dessa forma, quando eu aperta F na Pickup aparece o icone no map

Código PHP:
if(newkeys KEY_SECONDARY_ATTACK)
    {
        for(new 0sizeof(lixosLatasPos); a++)//0
        {
            if(Profissao[playerid] == Gari || VerificarADM(playerid) == 1)
            {
                if(IsPlayerInRangeOfPoint(playerid3.02194.2825,-1972.9777,13.5593))
                {
                    if(!profissaoUniforme[playerid])
                    {
                        SendClientMessage(playeridCOR_MARA1"| INFO | Trabalho iniciado com sucesso!Para começar a recolher os lixos, entre em um caminhão de lixo");
                        profissaoUniforme[playerid] = true;
                        //SetPlayerMapIcon(playerid, 49, lixosLatasPos[a][0],lixosLatasPos[a][1],lixosLatasPos[a][2], 11, 0, MAPICON_GLOBAL);
                        SetPlayerMapIcon(playerid49lixosLatasPos[a][0],lixosLatasPos[a][1],lixosLatasPos[a][2], 11TOTALLIXEIRASMAPICON_GLOBAL);
                        return 1;
                    }
                    else
                    {
                        SendClientMessage(playeridCOR_MARA1"| INFO | Você deixou o serviço de Gari!");
                        profissaoUniforme[playerid] = false;
                        return 1;
                     }
                }
            }
        }
        return 1;
    

ai essa é a parte do comando pra coleta o lixo

Código PHP:
if(strcmp(cmd"/coletar"true) == 0)
    {
        if(
Profissao[playerid] == Gari || VerificarADM(playerid) == 1)
        {
            if(
IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridCORX1"| ERRO | Você não pode coletar lixo dentro de um veiculo!");
            if(!
profissaoCar[playerid] == false)
            {
                new 
Float:vehxFloat:vehyFloat:vehz;
        
           GetVehiclePos(profissaoCar[playerid], vehxvehyvehz);
                if(
IsPlayerInRangeOfPoint(playerid40.0vehxvehyvehz))
                {
                    for (new 
0sizeof(lixosLatasPos); a++)//0
                    
{
                        if(
IsPlayerInRangeOfPoint(playerid2.0lixosLatasPos[a][0],lixosLatasPos[a][1],lixosLatasPos[a][2]))
                    
    {
                    
        if(lixosLatasPos[a][3] == 3.0)
                    
        {
                    
            if(profissaoCarregandoOJG[playerid])
                    
            {
                        
            SendClientMessage(playeridCORX1"| ERRO | Você já está com uma sacola de lixo na mão!");
                    
                return 1;
                                }
                                else
                                {
                        
            SendClientMessage(playeridCOR_MARA2"| INFO | Você coletou um saco de lixo com sucesso! Para colocá-lo no caminhão, vá no checkpoint atrás do mesmo.");
                    
                SendClientMessage(playeridCOR_MARA2"| INFO | Você pode largar o saco de lixo utilizando a tecla 'N'.");
                        
            Update3DTextLabelText(lixosLatasText[a], 0xFFFFFFFF"{f2da3c}Caçamba 2/3:\n{FFFFFF}Use /coletar para pegar um saco de lixo.");
                        
            lixosLatasPos[a][3] = 2.0;
                        
            //ApplyAnimation(playerid, "CARRY", "LIFTUP", 4.1, 0, 1, 1, 0, 0, 0);
                        
            //ApplyAnimation(playerid, "CARRY", "PUTDWN", 4.1, 0, 1, 1, 0, 0, 0);
                        
            ApplyAnimation(playerid"CARRY""LIFTUP105"4.1011000);
                        
            SetPlayerAttachedObject(playerid2126550.10.070.04180.00.00.00.50.50.5);
                    
                DisablePlayerCheckpoint(playerid);
                    
                SetPlayerCheckpoint(playerid, (vehx+4.0), vehyvehz3.0);
                    
                profissaoCarregandoOJG[playerid] = true;
                    
                return 1;
                                }
                
            }
                
            else if(lixosLatasPos[a][3] == 2.0)
                
            {
                
                if(profissaoCarregandoOJG[playerid])
                
                {
                    
                return SendClientMessage(playeridCORX1"| ERRO | Você já está com uma sacola de lixo na mão!");
                                }
                                else
                                {
                    
                SendClientMessage(playeridCOR_MARA2"| INFO | Você coletou um saco de lixo com sucesso! Para colocá-lo no caminhão, vá no checkpoint atrás do mesmo.");
                    
                SendClientMessage(playeridCOR_MARA2"| INFO | Você pode largar o saco de lixo utilizando a tecla 'N'.");
                    
                Update3DTextLabelText(lixosLatasText[a], 0xFFFFFFFF"{ff4500}Caçamba 1/3:\n{FFFFFF}Use /coletar para pegar um saco de lixo.");
                    
                lixosLatasPos[a][3] = 1.0;
                    
                //ApplyAnimation(playerid, "CARRY", "LIFTUP", 4.1, 0, 1, 1, 0, 0, 0);
                    
                //ApplyAnimation(playerid, "CARRY", "PUTDWN", 4.1, 0, 1, 1, 0, 0, 0);
                    
                ApplyAnimation(playerid"CARRY""LIFTUP105"4.1011000);
                    
                SetPlayerAttachedObject(playerid2126550.10.070.04180.00.00.00.50.50.5);
                    
                DisablePlayerCheckpoint(playerid);
                    
                SetPlayerCheckpoint(playerid, (vehx+4.0), vehyvehz3.0);
                    
                profissaoCarregandoOJG[playerid] = true;
                    
            }
                    
            return 1;
                
            }
                
            else if(lixosLatasPos[a][3] == 1.0)
                
            {
                
                if(profissaoCarregandoOJG[playerid])
                
                {
                    
                SendClientMessage(playeridCORX1"| ERRO | Você já está com uma sacola de lixo na mão!");
                
                    return 1;
                                }
                                else
                                {
                    
                SendClientMessage(playeridCOR_MARA2"| INFO | Você coletou um saco de lixo com sucesso! Para colocá-lo no caminhão, vá no checkpoint atrás do mesmo.");
                    
                SendClientMessage(playeridCOR_MARA2"| INFO | Você pode largar o saco de lixo utilizando a tecla 'N'.");
                    
                SendClientMessage(playeridCOR_ORKUT"| INFO | Você coletou um saco de lixo.");
                    
                Update3DTextLabelText(lixosLatasText[a], 0xFFFFFFFF"{f2543c}Caçamba vazia\n{FFFFFF}Siga para outra, pra recolher os sacos de lixo.");
                    
                lixosLatasPos[a][3] = 0.0;
                    
                //ApplyAnimation(playerid, "CARRY", "LIFTUP", 4.1, 0, 1, 1, 0, 0, 0);
                    
                //ApplyAnimation(playerid, "CARRY", "PUTDWN", 4.1, 0, 1, 1, 0, 0, 0);
                    
                ApplyAnimation(playerid"CARRY""LIFTUP105"4.1011000);
                    
                SetPlayerAttachedObject(playerid2126550.10.070.04180.00.00.00.50.50.5);
                    
                DisablePlayerCheckpoint(playerid);
                    
                SetPlayerCheckpoint(playerid, (vehx+4.0), vehyvehz3.0);
                    
                profissaoCarregandoOJG[playerid] = true;
                    
                RemovePlayerMapIcon(playerid49);
                    
                //SetPlayerMapIcon(playerid, 49, lixosLatasPos[a][0],lixosLatasPos[a][1],lixosLatasPos[a][2], 11, 0, MAPICON_GLOBAL);
                    
                SetPlayerMapIcon(playerid49lixosLatasPos[a][0],lixosLatasPos[a][1],lixosLatasPos[a][2], 11TOTALLIXEIRASMAPICON_GLOBAL);
                    
                PlayerPlaySound(playerid10570.00.010.0 );
                    
            }
                    
            return 1;
                
            }
                
            else
                
            {
                
                SendClientMessage(playeridCORX1"| ERRO | Essa lixeira está vazia procure outra!");
                
                return 1;
                
            }
                
        }
                    }
                    
SendClientMessage(playeridCORX1"| ERRO | Você não está próximo de uma lixeira!");
                    return 
1;
                }
                else
                {
                    
SendClientMessage(playeridCOR_ORKUT"| INFO | Você não está próximo do seu carro de lixo!");
                    
SendClientMessage(playeridCOR_ORKUT"| INFO | Foi marcado no seu radar o local do seu carro de lixo!");
    
                SetPlayerMapIcon(playerid492163.3389,-1979.0389,13.5534560MAPICON_GLOBAL_CHECKPOINT);
            
        PlayerPlaySound(playerid10570.00.010.0 );
                    return 
1;
                }
            }
            else
            {
                
SendClientMessage(playeridCORX1"| ERRO | Vá até a fabrica de reciclagem para buscar um caminhão!");
                return 
1;
            }
        }
           else
        {
              SendClientMessage(playerid,CORX1,"| ERRO | Você não tem permissão!");
        
    return 1;
    
    }
    } 

Eu estava querendo fazer dessa forma que quando o player a perta-se F na Pickup pra começa a trabalhar o MapIcon marcasse primeiro na lixeira que estiversse cheia para coletar, e quando eu desse o ultimo /coletar o MapIcon fosse para outra lixeira que estiversse cheia

Se poderem mim ajuda agradeço muito


RE: Percurso por mapicon - Levi.M - 07/03/2021

Mano, cadê as posições das latas de lixo?