GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Ashley11 le 21 Décembre 2012, 13:04:17

Titre: [File] Supprimé des coordonnées
Posté par: Ashley11 le 21 Décembre 2012, 13:04:17
Bonjour,

J'essaye de crée une commande du type "'/removehouse" pour pouvoir supprimé des maisons IG, seulement je peine à faire l'algo.

Pour l'instant je procède comme cela :

- Grâce à une boucle, j’incrémente une variable(i) et je cherche dans mon fichier, si je me trouve à la une position d'une maison.
- Si c'est le cas, je cherche à supprimé mes 30 valeurs correspondant à ma maison, mais je trouve pas de fonction.


Code: (pawn) [Sélectionner]
if(strcmp(cmd, "/removehouse", false, 10))
{
if(PlayerInfo[playerid][pAdmin] >= 1399)
{
for(int i = 0; i < sizeof(HouseInfo); i++)
{
    if(PlayerToPoint(2.0, playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
{
new arrCoords[30][64];
new strFromFile2[30][256];
new File: file = fopen("property.cfg", io_readwrite);
if (file)
{
fread(file, strFromFile2);
              split(strFromFile2, arrCoords, ',');
...arrCoords[0]);
...arrCoords[1]);
...arrCoords[2]);
        ...arrCoords[3]);
...arrCoords[4]);
...arrCoords[5]);
...arrCoords[6]);
...arrCoords[7]);
...arrCoords[8]);
        ...arrCoords[9]);
...arrCoords[10]);
...arrCoords[11]);
...arrCoords[12]);
...arrCoords[13]);
...arrCoords[14]);
...arrCoords[15]);
...arrCoords[16]);
...arrCoords[17]);
...arrCoords[18]);
...arrCoords[19]);
                ...arrCoords[20]);
...arrCoords[21]);
...arrCoords[22]);
...arrCoords[23]);
                ...arrCoords[24]);
...arrCoords[25]);
...arrCoords[26]);
        ...arrCoords[27]);
        ...arrCoords[28]);
        ...arrCoords[29]);
idx++;
fclose(file);
}
}
}
}
return 1;
}



Merci d'avance.
Titre: Re : [File] Supprimé des coordonnées
Posté par: Malak le 21 Décembre 2012, 19:30:09
Je te conseil de faire plutot comme ceci.

Code: (pawn) [Sélectionner]
                new result;
                for(int i = 0; i < sizeof(HouseInfo); i++)
                {
                    if(PlayerToPoint(2.0, playerid, HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey],HouseInfo[i]  [hEntrancez]))
                   {
                        result = i;
                        break;
                    }
                {
Ensuite tu initialise toutes les variables de la maison.
Et dans la création d'une maison tu dit que si tel id de maison n'est pas utiliser alors la nouvelle maison prend cette ID.
Voila.
Sachant qu'il est beaucoup plus simple de réaliser un tel système en SQL.

Malak ++

EDIT (Xartrick): J'ai ajouté un break quand la maison est trouvé, cela évite de faire des tours en trop.