if(sInfo[pID][fraktion] == 1
2
3)
Der Fehler hier ist die Abfrage, so geht das nicht.
So kannst du das z.B. machen:
new frak = sInfo[pID][fraktion];
if(frak == 1 || frak == 2 || frak == 3)
//Oder alternativ auch einfach:
if(frak <= 3)
jedoch wird mir in jeder Fraktion das gleiche angezeigt jemand eine Idee ?
Das ist etwas zu unspezifisch, wie du es beschreibst.
UpdateHealundArmourLabel(i);
Das ist Zeile 7 in deinem Code. Da übergibst du ja keine playerid, sondern eine FraktionsBaseID.
So verwirrst du dich glaube selbst beim Skripten.
Wieso du in der Funktion selbst auch nochmal durch alle FraktionsBases loopst ist mir ein Rätsel.
Theoretisch brauchst du ja nur die übergebene FraktionsBase aktualisieren.
Quasi so schreiben:
stock UpdateHealundArmourLabel(fvr)
{
new string[128];
format(string,sizeof(string),""#GELB_HEX"Equipment Lager"WEISS_HEX"\n %i von %i \n zum benutzen Taste 'Z'", fInfo[fvr][fArmour],MAX_ARMOURPAKETE);
UpdateDynamic3DTextLabelText(FraktionsArmour3DText[fvr][0],WEISS,string);
return 1;
}
Wenn du das speziell für einen Spieler aufrufen magst, dementsprechend dann einfach nur:
UpdateHealundArmourLabel(Spieler[playerid][Fraktion]);
nutzen.