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.9224, 13.1775},
{1098.5096, -1757.9258, 13.1775},
{1098.5859, -1760.8698, 13.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.9224, 13.1775},
{1098.5096, -1757.9258, 13.1775},
{1098.5859, -1760.8698, 13.1764}
};
new bool:gCarOn[MAX_SHOWSLOTS];
main()
{
gCarOn[1] = true; // No caso o gCarShowSlots[1] estaria bloqueado.
for(new i; i < MAX_SHOWSLOTS; i++)
{
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.9224, 13.1775},
{1098.5096, -1757.9258, 13.1775},
{1098.5859, -1760.8698, 13.1764}
};
for(new i = 0; i < sizeof(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.9224, 13.1775},
{1098.5096, -1757.9258, 13.1775},
{1098.5859, -1760.8698, 13.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.8286, 23.6696},
{2147.8477, -1157.3835, 23.5722},
{2148.5742, -1161.5323, 23.5504},
{2148.0005, -1166.3317, 23.5474},
{2148.0708, -1170.8019, 23.5474}
};
//na funзгo
main(){
/*Loop para fazer chamada da funзгo para setar os veiculos*/
for(new v=0; v < 8; v++){ // 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", concePos, posVehicles[concePos][0], posVehicles[concePos][1], posVehicles[concePos][2]);
concePos++; //Incrementar o valor da variavel que armazena o indice da array.
}