SA-MP Forums Archive
[Ajuda] Checar uso de slot - 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] Checar uso de slot (/showthread.php?tid=648438)



Checar uso de slot - Eddye - 22.01.2018

Tentei procurar mais sobre, mas nгo obtive sucesso.

Bom gostaria de entender como que faзo para chegar se cada coordenada abaixo estб sendo utilizada.
Ex: Quero que um carro de spawn na primeira coordenada abaixo. Ok vou setar tudo bonitinho. Mas agora outro carro vai precisar spawnar tambйm, porйm, ele tem que spawnar na outra coordenada sendo que a primeira esta sendo utilizada. Como faзo para checar se a coordenada 1 estб em uso?

PHP код:
static const Float:gCarShowSlots[][] =
{
  {
1098.5062, -1754.922413.1775},
  {
1098.5096, -1757.925813.1775},
  {
1098.5859, -1760.869813.1764}




Re: Checar uso de slot - IlanZ - 22.01.2018

Fiz esse exemplo, testei e foi com sucesso, se nгo for isso que quer fazer desculpe.

PHP код:
#include <a_samp>
#define MAX_SHOWSLOTS (3)
static const Float:gCarShowSlots[][] =
{
      {
1098.5062, -1754.922413.1775},
      {
1098.5096, -1757.925813.1775},
      {
1098.5859, -1760.869813.1764}
};
new 
bool:gCarOn[MAX_SHOWSLOTS];
main()
{
    
gCarOn[1] = true// No caso o gCarShowSlots[1] estaria bloqueado.
    
for(new iMAX_SHOWSLOTSi++)
    {
        if(
gCarOn[i] != true)
        {
            
printf("index: %d x: %f y:%f z:%f"i,gCarShowSlots[i][0],gCarShowSlots[i][1],gCarShowSlots[i][2]);
        }
    }

Resultado:




Re: Checar uso de slot - RodrigoMSR - 22.01.2018

Esse cуdigo vai checar se o ъltimo veнculo colocado na posiзгo estб prуximo da mesma.
PHP код:
enum gcsInfo {
    
Float:gcsX,
    
Float:gcsY,
    
Float:gcsZ,
    
gcsVID
};

static const 
gCarShowSlots[][gcsInfo] =
{
  {
1098.5062, -1754.922413.1775},
  {
1098.5096, -1757.925813.1775},
  {
1098.5859, -1760.869813.1764}
};

for(new 
0sizeof(gCarShowSlots); i++)
{
    if(!
GetVehicleModel(gCarShowSlots[i][gcsVID]) || GetVehicleDistanceFromPoint(gCarShowSlots[i][gcsVID], gCarShowSlots[i][gcsX], gCarShowSlots[i][gcsY], gCarShowSlots[i][gcsZ]) > 1.0)
    {
        
gCarShowSlots[i][gcsVID] = CreateVehicle...
    }




Re: Checar uso de slot - Dayvison_ - 22.01.2018

PHP код:
#include <YSI\y_iterate>
static const Float:gCarShowSlots[][] = 

  {
1098.5062, -1754.922413.1775}, 
  {
1098.5096, -1757.925813.1775}, 
  {
1098.5859, -1760.869813.1764
};
static 
Iterator:gCarSlots<sizeof(gCarShowSlots)>;
main()
{
    new 
id Iter_RandomAdd(gCarSlots);
    if(
id == INVALID_ITERATOR_SLOT)
    {
        
// Todos slots ja foram usados
    
}
    else
    {
        
//Spawn on id
    
}




Re: Checar uso de slot - Sky™ - 22.01.2018

Saudaзхes!

Eu jб usei da seguinte forma, pois nгo faзo uso da biblioteca YSI, o que nгo deixa de ser lуgico uma boa opзгo.

PHP код:
#include <a_samp>
static concePos//Variavel responsбvel por armazenar o indice da array
static Float:posVehicles[5][] = { //Array exemplo
    
{2147.7437, -1152.828623.6696},
    {
2147.8477, -1157.383523.5722},
    {
2148.5742, -1161.532323.5504},
    {
2148.0005, -1166.331723.5474},
    {
2148.0708, -1170.801923.5474}
};
//na funзгo
main(){
    
/*Loop para fazer chamada da funзгo para setar os veiculos*/
    
for(new v=08v++){ // 8 nъmero aleatуrio acima do valor permitido da array, apenas para teste.
        
teste();
    }
}
teste(){
    if(
concePos > (sizeof(posVehicles)-1)) concePos 0//Checar se a ultima posiзгo corresponde ao valor mбximo suportado pela array, entгo retornar ao indice, 0
    
printf("Veiculo Setado: Array ID: %i |> PosX=%f PosY=%f PosZ=%f"concePosposVehicles[concePos][0], posVehicles[concePos][1], posVehicles[concePos][2]);
    
concePos++; //Incrementar o valor da variavel que armazena o indice da array.