Warum machst du es nicht mit einem Optionalen String, den du dann in einen Integer umwandelst?
Das ist viel einfacher und funktioniert bei mir auch
ocmd:medis(playerid, params[])
{
if(IstInFraktion(playerid) != FRAK_Medic) { return SendInfoMsg(playerid, "Du bist kein Medic!"); }
if(Duty[playerid] != 2) return SendInfoMsg(playerid, "Du bist nicht im Dienst! (/duty)");
new Auswahl[20],Anzahl2[5],tmpstr[128];
if(sscanf(params,"sz",Auswahl,Anzahl2)) { SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show] <Anzahl>"); return 1; }
printf("Auswahl: %s", Auswahl);
new Anzahl = strval(Anzahl2);
if(!strcmp(Auswahl, "medikamente", true)) {
if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");
printf("Auswahl: %s | Anzahl", Auswahl, Anzahl);
new MediAnzahl = SpielerVariablen[playerid][Medikamente]+Anzahl;
if(MediAnzahl > 1200) {
format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Medikamente mitnehmen! (Höchstens 1200)",1200-SpielerVariablen[playerid][Medikamente]);
}
new MediPreis = Anzahl*3;
if(Spieler[playerid][Geld] < MediPreis) {
format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Medikament 3$)", MediPreis);
SendInfoMsg(playerid, tmpstr);
return 1;
}
SpielerVariablen[playerid][Medikamente] += Anzahl;
format(tmpstr, sizeof tmpstr, "Du hast dir %d Medikamente für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,MediPreis,SpielerVariablen[playerid][Medikamente]);
SendBlueMsg(playerid, tmpstr);
return 1;
}
else if(!strcmp(Auswahl, "spritzen", true)) {
if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Spritzen [Anzahl]");
new SpritzenAnzahl = SpielerVariablen[playerid][Spritzen]+Anzahl;
if(SpritzenAnzahl >= 1000) {
format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Spritzen mitnehmen! (Höchstens 1000)",1000-SpielerVariablen[playerid][Medikamente]);
}
new SpritzenPreis = Anzahl*4;
if(Spieler[playerid][Geld] < SpritzenPreis) {
format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Spritzen 4$)", SpritzenPreis);
SendInfoMsg(playerid, tmpstr);
return 1;
}
SpielerVariablen[playerid][Spritzen] += Anzahl;
format(tmpstr, sizeof tmpstr, "Du hast dir %d Spritzen für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,SpritzenPreis,SpielerVariablen[playerid][Spritzen]);
SendBlueMsg(playerid, tmpstr);
return 1;
}
else if(!strcmp(Auswahl, "show", true)) {
format(tmpstr, sizeof tmpstr, "Medikamente: %d/1200 \nSpritzen: %d/1000", SpielerVariablen[playerid][Medikamente],SpielerVariablen[playerid][Spritzen]);
ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Medikamente u. Spritzen:", tmpstr, "Ok", "");
return 1;
}
else {
SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show]");
return 1;
}
}