Problem mit der Funktion CreateMapIcon

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    Ich habe ein Problem mit meiner selbst geschriebener Funktion, mir wird leider immer nur 1 Mapicon angezeigt, jedoch sollte mehrere sichtbar sein.
    Woran könnte der Fehler liegen?


    Code:



    C
    Function UpdateMapIcon(id){
    	LOOP(MAX_PLAYERS,i){
    	    if(IsPlayerConnected(i)){
    	        SetPlayerMapIcon(i, id,MapIconData[id][mapicon_x], MapIconData[id][mapicon_y], MapIconData[id][mapicon_z], MapIconData[i][mapicon_markerid], 0, MapIconData[i][mapicon_type]);
    	    }
    	}
    	return 1;
    }


    Mit freundlichen Grüßen
    German_ScripterHD

  • Versuche es so:
    stock CreateMapIcon(markerid,Float:x,Float:y,Float:z,mapicon = MAPICON_GLOBAL){
    new valuemapicon;
    LOOP(MAX_MAPICONS,i){
    if(MapIconData[i][mapicon_id] != 0) continue; //Damit nur ein freier Index gefunden wird
    MapIconData[i][mapicon_id] = i + 1;
    MapIconData[i][mapicon_x] = x;
    MapIconData[i][mapicon_y] = y;
    MapIconData[i][mapicon_z] = z;
    MapIconData[i][mapicon_markerid] = markerid;
    MapIconData[i][mapicon_type] = mapicon;
    MapIconData[i][mapicon_timer] = SetTimerEx("UpdateMapIcon",20000,1,"i",i);
    valuemapicon = MapIconData[i][mapicon_id];
    break; //Beenden der Schleife, wenn ein freier Index gefunden wurde
    }
    return valuemapicon;
    }


    Function UpdateMapIcon(id){
    LOOP(MAX_PLAYERS,i){
    if(IsPlayerConnected(i)){
    SetPlayerMapIcon(i, id,MapIconData[id][mapicon_x], MapIconData[id][mapicon_y], MapIconData[id][mapicon_z], MapIconData[id][mapicon_markerid], 0, MapIconData[id][mapicon_type]); //Hier hattest du im Index 2x "i" anstatt "id"
    }
    }
    return 1;
    }