[Ajuda] Checar uso de slot
#1

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}

Reply
#2

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:

Reply
#3

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...
    }

Reply
#4

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
    
}

Reply
#5

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.

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)