Guten Tag
In meinem Taxisystem kann der Taxifahrer den Preis bestimmen(pro 10 sekunden). Also alle 10 Sekunden erhöht sich der gesammt betrag um dem festgelegten preis vom Taxifahrer, der immoment zwischen $1 und $5 liegt.
Aber da man in meinem Gm auch mit Centbeträgen rechnet, würde ich das gerne so machen das der Fahrer es auch mit Centbeträgen festlegen kann,
z.B.: 1,50 oder 1,75
dabei ist aber wichtig das es maximal 2 Nachkommastellen giebt. Ich habe das bereits mit Float versucht, die ich dann im string auf 2 komma stellen runde.
Also anstatt 2,500000000000000000 dann 2,50.
doch egal was man eingiebt, es kommt immer wieder die meldung vom sscanf.
Vielleicht könnte mir da einer Helfen, wäre sehr dankbar.
dcmd_taxifahrt(playerid,params[])
{
new pID, preis;
if(gTeam[playerid] == Team_Taxi)
{
if(sscanf(params, "ud", pID, preis)) // hatte es vorher mit float, hat nicht geklappt, deswegen vorerst ganze zahlen
{
return SendClientMessage(playerid,0xFF0000FF,"Benutzung: /taxifahrt [id] [preis pro 10 Sekunden]");
}
if(!IsPlayerConnected(pID) || GetPlayerVehicleID(playerid) != GetPlayerVehicleID(pID))
{
return SendClientMessage(playerid,0xFF0000FF,"Ungültige Id!");
}
if(ptaxi[playerid] == 0) //wenn der taxifahrer nicht im dienst ist
{
return SendClientMessage(playerid,0xFF0000FF,"Du bist nicht im Dienst!");
}
if(preis < 1 || preis > 5) //hier wird festgelegt in welchem bereich der preis/10s liegen soll
{
return SendClientMessage(playerid,0xFF0000FF,"Der Preis muss zwischen $1 und $5 liegen!");
}
else
{
new aname[MAX_PLAYER_NAME], bname[MAX_PLAYER_NAME], str1[256], str2[256];
GetPlayerName(playerid,aname,sizeof(aname));
GetPlayerName(pID,bname,sizeof(bname));
format(str1,sizeof(str1),"Du hast %s eine Taxifahrt für $%d pro 10 Sekunden angeboten!", bname, preis);
format(str2,sizeof(str2),"%s hat dir eine Taxifahrt für $%d pro 10 Sekunden angeboten, du kannst sie mit */accept taxi* annehmen", aname, preis);
tID[playerid] = pID; //zur abfrage benötigt, falls der kunde /accept taxi eingibt
tpreis[pID] = preis; //hier wird der taxipreis vom spieler für den kunden festgelegt, damit er sich erhöht..
tfahrt[pID] = 1; //der spieler ist in einer taxifahrt, wird benötigt beim bezahlen.
SendClientMessage(playerid,türkis,str1);
SendClientMessage(pID,türkis,str2);
}
}
return 1;
}
MfG
Simon
//edit:
Ich glaube ich habe es hinbekommen, jedoch bekomme ich 2 warnings bei GivePlayerMoney, da nur ganze beträge abgezogen werde können und keine "komma-zahlen". Vielleicht könnte mir da ja einer helfen, wenn der endbetrag nun 1,50 ist, dann müssen 150 abgezogen werden. deswegen habe ich *100 dahinter geschrieben, jedoch sind immernoch komma stellen dahinter( 150,0000000000). weiß jemand wie man sowas runden kann? oder ähnliches?
wäre sehr hilfreich.
GivePlayerMoney(playerid,-tsumme[playerid]*100);
GivePlayerMoney(i,tsumme[playerid]*100);