• 10 Juillet 2025, 21:43:35


Auteur Sujet: Spawn Aléatoire  (Lu 1025 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Spawn Aléatoire
« le: 11 Février 2013, 09:42:33 »
Bonjour,

j'essaye de faire spawner une voiture aléatoirement parmis 16 positions avec la méthode random() mais j'aimerai qu'une fois la position utilisé qu'elle n'apparaissent plus dans le tableau...

Code: (pawn) [Sélectionner]
new Float:carPos[][4] =
{
{2735.1999512,-1698.3000488,37.9000015,182.0000000},
{2673.6000977,-1764.9000244,37.2999992,271.0031738},
{2737.8000488,-1821.9000244,37.7999992,0.7495117},
{2802.0000000,-1755.9000244,37.2999992,103.5964966},
{2780.6999512,-1805.9000244,37.7999992,44.7470703},
{2761.1000977,-1817.1999512,37.7999992,22.7470703},
{2796.1000977,-1784.3000488,37.7999992,64.7418213},
{2778.6000977,-1711.8000488,37.2999992,137.5955811},
{2794.8000488,-1731.6999512,37.2999992,115.5955811},
{2757.1999512,-1701.5000000,37.2999992,161.5927734},
{2688.3999023,-1721.4000244,37.9000015,235.9995117},
{2709.8000488,-1704.5000000,37.9000015,203.9973145},
{2677.0000000,-1742.8000488,37.9000015,249.9973145},
{2697.0000000,-1810.4000244,37.2999992,318.9997559},
{2715.6000977,-1819.5000000,37.7999992,346.7470703},
{2680.3000488,-1789.8000488,37.2999992,292.9997559}
};

Code: (pawn) [Sélectionner]
public SpawnCar(playerid)
{
new randCar = random(sizeof(carPos));
new vehicleid = CreateVehicle(504, carPos[randCar][0], carPos[randCar][1], carPos[randCar][2], carPos[randCar][3], 100, 100, -1);
PutPlayerInVehicle(playerid, vehicleid, 0);
return 1;
}

J'ai essayé ça mais je connait pas la syntaxe

Code: (pawn) [Sélectionner]
enum carInfo
{
float:pos[4],
bool:spawned
}


new carPos[][carInfo] =
{
{3636.0000000,-2244.1992188,7.4000001,0.0000000},
{3654.8000488,-2244.3999023,7.4000001,0.0000000},
{3672.8999023,-2244.6000977,7.4000001,0.0000000},
{3692.6000977,-2244.5000000,7.4000001,0.0000000},
{3711.6000977,-2244.1999512,7.4000001,0.0000000},
{3711.1999512,-2155.5000000,7.4000001,180.0000000},
{3692.8999023,-2155.6000977,7.4000001,180.0000000},
{3673.3999023,-2155.3999023,7.4000001,180.0000000},
{3654.6000977,-2155.1999512,7.4000001,180.0000000},
{3636.3000488,-2155.3000488,7.4000001,180.0000000},
{3710.3999023,-2221.6000977,7.4000001,90.0000000},
{3710.6999512,-2199.6000977,7.4000001,90.0000000},
{3710.1999512,-2178.1000977,7.4000001,90.0000000},
{3637.1999512,-2221.5000000,7.4000001,268.0000000},
{3637.1000977,-2200.0000000,7.4000001,267.9949951},
{3637.3000488,-2177.8999023,7.4000001,267.9949951}
};


Merci d'avance.

Hors ligne Gzsume

  • *
  • Compétent dans l'inutile
  • Messages: 2236
    • Voir le profil
Re : Spawn Aléatoire
« Réponse #1 le: 11 Février 2013, 09:56:47 »
Je te code ça sur le forum, j'ai pas de compilateur sous la main donc c'est à tester.

Code: (pawn) [Sélectionner]
new Float:carPos[][4] =
  {
    {2735.1999512,-1698.3000488,37.9000015,182.0000000},
    {2673.6000977,-1764.9000244,37.2999992,271.0031738},
    {2737.8000488,-1821.9000244,37.7999992,0.7495117},
    {2802.0000000,-1755.9000244,37.2999992,103.5964966},
    {2780.6999512,-1805.9000244,37.7999992,44.7470703},
    {2761.1000977,-1817.1999512,37.7999992,22.7470703},
    {2796.1000977,-1784.3000488,37.7999992,64.7418213},
    {2778.6000977,-1711.8000488,37.2999992,137.5955811},
    {2794.8000488,-1731.6999512,37.2999992,115.5955811},
    {2757.1999512,-1701.5000000,37.2999992,161.5927734},
    {2688.3999023,-1721.4000244,37.9000015,235.9995117},
    {2709.8000488,-1704.5000000,37.9000015,203.9973145},
    {2677.0000000,-1742.8000488,37.9000015,249.9973145},
    {2697.0000000,-1810.4000244,37.2999992,318.9997559},
    {2715.6000977,-1819.5000000,37.7999992,346.7470703},
    {2680.3000488,-1789.8000488,37.2999992,292.9997559}
  };

new bool:IsCarSpawned[sizeof(carPos)] = {false};

public SpawnCar(playerid)
  {
    new randCar = 0,
        vehicleid = -1;   
    do
      {
        randCar = random(sizeof(carPos))
      } while (IsCarSpawned[randCar] == 1);

    CreateVehicle(504, carPos[randCar][0], carPos[randCar][1], carPos[randCar][2], carPos[randCar][3], 100, 100, -1);
    vehicleid = PutPlayerInVehicle(playerid, vehicleid, 0);
    IsCarSpawned[randCar] = true;

    return 1;
  }

En gros, c'est ni plus ni moins qu'un tableau de Booléens qui détermine si telle ou telle case du tableau est utilisée. ;)

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Spawn Aléatoire
« Réponse #2 le: 11 Février 2013, 11:06:40 »
Merci !

« Modifié: 11 Février 2013, 11:52:01 par Ashley11 »