SA-MP Forums Archive
[Ajuda] Como randomizar checkpoint? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Como randomizar checkpoint? (/showthread.php?tid=428427)



Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

No emprego "Caminhoneiro" do meu GM, o caminhoneiro pode digitar o comando /buscarls - /buscarsf - /buscarlv, onde ele busca uma carga por cidade. OBS: sempre й o mesmo lugar nas tres cidades.
Queria saber se tem alguma forma de retirar os 3 comandos, deixando sу um comando "/buscarcarga" onde o caminhoneiro ganha cargas para buscar por todo mapa (onde eu escolher)?

cуdigo:

PHP код:
        if(!strcmp(cmdtext, "/buscarls", true))
    {
        if(
PlayerInfo[playerid][pEmprego] != 11)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
            return 
1;
        }
        if(
var1[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar 5 minutos pra entregar mais mercadorias");
            return 
1;
        }
        if(
TruckMission[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
            return 
1;
        }
        if(!
PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
            return 
1;
        }
        
SetPlayerCheckpoint(playerid, 1756.1359,-2064.8230,13.2708, 8.0);
        
TruckMission[playerid] = 1;
        
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
        return 
1;
    }
    if(!
strcmp(cmdtext, "/buscarlv", true))
    {
        if(
PlayerInfo[playerid][pEmprego] != 11)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
            return 
1;
        }
        if(
var1[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
            return 
1;
        }
        if(
TruckMission[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
            return 
1;
        }
        if(!
PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
            return 
1;
        }
        
SetPlayerCheckpoint(playerid, 2054.3250,1919.5562,11.8507, 8.0);
        
TruckMission[playerid] = 3;
        
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
        return 
1;
    }
    if(!
strcmp(cmdtext, "/buscarsf", true))
    {
        if(
PlayerInfo[playerid][pEmprego] != 11)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
            return 
1;
        }
        if(
var1[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
            return 
1;
        }
        if(
TruckMission[playerid] != 0)
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
            return 
1;
        }
        if(!
PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
        {
            
SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
            return 
1;
        }
        
SetPlayerCheckpoint(playerid, -1729.3041,-123.8946,3.2335, 8.0);
        
TruckMission[playerid] = 2;
        
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
        return 
1;
    } 



Re: Como randomizar checkpoint? - Maklister - 05.04.2013

pawn Код:
if(!strcmp(cmdtext, "/buscarcarga", true))
    {
        new local = random(2); // 0 || 1 || 2
       
        if(local == 0) // LS
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar 5 minutos pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, 1756.1359,-2064.8230,13.2708, 8.0);
            TruckMission[playerid] = 1;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
        else if(local == 1) // LV
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, 2054.3250,1919.5562,11.8507, 8.0);
            TruckMission[playerid] = 3;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
        else if(local == 2) // SF
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, -1729.3041,-123.8946,3.2335, 8.0);
            TruckMission[playerid] = 2;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
    }
    return 1;
Tae

e ve se estuda sobre random, vocк tem uns trкs post sу sobre isso.

https://sampwiki.blast.hk/wiki/Random


Re: Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
pawn Код:
if(!strcmp(cmdtext, "/buscarcarga", true))
    {
        new local = random(2); // 0 || 1 || 2
       
        if(local == 0) // LS
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar 5 minutos pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, 1756.1359,-2064.8230,13.2708, 8.0);
            TruckMission[playerid] = 1;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
        else if(local == 1) // LV
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, 2054.3250,1919.5562,11.8507, 8.0);
            TruckMission[playerid] = 3;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
        else if(local == 2) // SF
        {
            if(PlayerInfo[playerid][pEmprego] != 11)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
                return 1;
            }
            if(var1[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar o tempo de recarga pra entregar mais mercadorias");
                return 1;
            }
            if(TruckMission[playerid] != 0)
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
                return 1;
            }
            if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
            {
                SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
                return 1;
            }
            SetPlayerCheckpoint(playerid, -1729.3041,-123.8946,3.2335, 8.0);
            TruckMission[playerid] = 2;
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
            return 1;
        }
    }
    return 1;
Tae

e ve se estuda sobre random, vocк tem uns trкs post sу sobre isso.

https://sampwiki.blast.hk/wiki/Random
E como eu coloco mais missхes? Por que aн tem 3, certo?


Re: Como randomizar checkpoint? - Maklister - 05.04.2013

mano vocк leu: https://sampwiki.blast.hk/wiki/Random

й sу aumentar o random para o mбximo, lembrando que o numero 0 conta, e ir seguindo as if's de acordo como eu fiz


Re: Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

Tipo, eu botei o cуdigo que tu fez no Gm, dei /gmx e nгo entrou no servidor..
Fechei e abri o samp_server e mesmo assim, eu digito a senha mas nгo da spawn... :S


AW: Como randomizar checkpoint? - Supera - 05.04.2013

Tente assim
pawn Код:
// Topo do gamemode
new Float:Local[][3] =
{
    {1756.1359,-2064.8230,13.2708},
    {2054.3250,1919.5562,11.8507},
    {-1729.3041,-123.8946,3.2335}
};
   
    // Dentro do comando
    new randomico = random(sizeof(Local));
    if(!strcmp(cmdtext, "/buscarcarga", true))
    {
        if(PlayerInfo[playerid][pEmprego] != 11)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
            return 1;
        }
        if(var1[playerid] != 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar 5 minutos pra entregar mais mercadorias");
            return 1;
        }
        if(TruckMission[playerid] != 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
            return 1;
        }
        if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
            return 1;
        }
        SetPlayerCheckpoint(playerid,Local[randomico][0], Local[randomico][1], Local[randomico][2], 8.0);
        TruckMission[playerid] = 1;
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
        return 1;
    }



Re: Como randomizar checkpoint? - Maklister - 05.04.2013

Esse cуdigo nгo faz isso, deve ser alguma falha em seu sistema, colocou certo o comando na public ?


Re: Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

Vou testar aqui, com vбrias coordenadas.


Re: Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

Quote:
Originally Posted by Murilo_sousa
Посмотреть сообщение
Esse cуdigo nгo faz isso, deve ser alguma falha em seu sistema, colocou certo o comando na public ?
Murilo, quando coloquei o cуdigo que vocк me forneceu, eu digitava a senha mas nгo dava spawn...
Ficava sу carregando.. e nгo abria o server..


Re: AW: Como randomizar checkpoint? - Dick_Vigarista - 05.04.2013

Quote:
Originally Posted by Supera
Посмотреть сообщение
Tente assim
pawn Код:
// Topo do gamemode
new Float:Local[][3] =
{
    {1756.1359,-2064.8230,13.2708},
    {2054.3250,1919.5562,11.8507},
    {-1729.3041,-123.8946,3.2335}
};
   
    // Dentro do comando
    new randomico = random(sizeof(Local));
    if(!strcmp(cmdtext, "/buscarcarga", true))
    {
        if(PlayerInfo[playerid][pEmprego] != 11)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um caminhoneiro");
            return 1;
        }
        if(var1[playerid] != 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк deve esperar 5 minutos pra entregar mais mercadorias");
            return 1;
        }
        if(TruckMission[playerid] != 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк deve entregar a mercadoria primeiro");
            return 1;
        }
        if(!PlayerToPoint(60.0 ,playerid, -71.5407,-1123.4725,1.6677))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк precisa estar na HQ pra pegar mercadoria");
            return 1;
        }
        SetPlayerCheckpoint(playerid,Local[randomico][0], Local[randomico][1], Local[randomico][2], 8.0);
        TruckMission[playerid] = 1;
        SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Entregue a mercadoria no checkpoint marcado no mapa.");
        return 1;
    }
Mano, fiz uns ajustes e agora ta funcionando perfeitamente!!
Valeu

++rep