Pas de soucis, c'est vrai que mon explication n'était pas très compréhensible si tu ne développes pas au quotidien. Je vais essayer de faire plus simple (je ne promets rien) :
CreateHousePickup() est la fonction que tu utilises pour afficher un pickup (objet à ramasser en jeu) à chaque maison disponible (à vendre ou achetée). Si tu souhaites afficher une icône sur la carte (une mapicon), tu dois comme tu l'as dit utiliser la fonction SetPlayerMapIcon(). Elle demande pour fonctionner une variable playerid qui correspond à l'identifiant d'un joueur. Dans ton cas, tu souhaites afficher cette icône pour tous les joueurs. Tu vas donc devoir faire une boucle pour parcourir tous les identifiants et appeler la fonction pour chacun des joueurs, un à un.
Ce qui donne donc (code corrigé mais pas compilé, il se peut qu'il affiche des erreurs) :
// CreateHouse serait plus adapté puisqu'on ne se charge plus uniquement du pickup
public CreateHousePickup()
{
print("Lancement Boucle 331");
for(new h = 0; h < totalbizz; h++)
{
if(BizzInfo[h][bOwned] == 0)
{
BizPickup[h] = CreateDynamicPickup(1272,
1,
BizzInfo[h][bEntranceX],
BizzInfo[h][bEntranceY],
BizzInfo[h][bEntranceZ],
0,
0,
-1,
PICKUP_STREAM_DISTANCE);
}
if(BizzInfo[h][bOwned] == 1)
{
// Ici, je fais une boucle sur le nombre maximum de joueurs
for(new p=0; p<GetMaxPlayers(); p++)
{
// Sur la ligne suivante, j'utilise la variable utilisée dans la boucle pour afficher l'icône à chaque joueur
BizPickup[h] = SetPlayerMapIcon(p,
313,
BizzInfo[h][bEntranceX],
BizzInfo[h][bEntranceY],
BizzInfo[h][bEntranceZ],
31,
0,
MAPICON_LOCAL );
}
BizPickup[h] = CreateDynamicPickup(1239,
1,
BizzInfo[h][bEntranceX],
BizzInfo[h][bEntranceY],
BizzInfo[h][bEntranceZ],
0,
0,
-1,
PICKUP_STREAM_DISTANCE);}
}
}
print("Fin Boucle 331");
}
Note : désolé, comme j'ai rédigé ça directement sur le forum, mes tabulations sont un peu larges...
Tu dois appliquer la même technique pour la première condition (si la maison est disponible à la vente).
En espérant avoir été plus clair,
Bonne journée. ;-)