Gut wäre erstmal was Tanke[bizid][tMaxLiter] und Tanke[bizid][tLiter] genau speichern und was für Werte momentan gespeichert sind, bzw. ein Beispiel wo diese verändert werden. ![]()
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fehler Behoben im Enum tBrauch zu Float:tBrauch geändert (). -
new Float:pBenzin = (VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank] - Vehicle[vehicleid][vehFuel]);
format(string, sizeof(string), "Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Benzin mehr. (-$%d)", pBenzin, zPreis);
Wie mache ich am besten es konnten nur 1 Liter aufgetankt werden?
-
//Edit: hab gerade gesehen, das bezieht sich auf was anderes.. Uhm ich versteh nicht ganz was du meinst, du gibst ja schon aus es konnten nur X.XX Liter aufgetankt werden.
-
Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Benzin mehr. (-$%d)
Es konten nur X Liter aufgetankt werden statt es konnten X.XX Liter aufgetankt werden.
-
-
Code
Alles anzeigenstock SaveTanke(i) { new mainQuery[2537], secondQuery[356]; if(Tanke[i][tCreated] != 0 && i != 0) { format(secondQuery, sizeof(secondQuery), "UPDATE `script_tanken` SET `PickupX`='%f', `PickupY`='%f', `PickupZ`='%f', `Besitzer`='%s', ", Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ], Tanke[i][tBesitzer]); strcat(mainQuery, secondQuery); format(secondQuery, sizeof(secondQuery), "`Owned`='%d', `Name`='%s', `Preis`='%d', `Teilhaber`='%s', `Lock`='%d', `BenzinAnkauf`='%d', ", Tanke[i][tOwned], Tanke[i][tName], Tanke[i][tPreis], Tanke[i][tTeilhaber], Tanke[i][tLock], Tanke[i][tBenzinAnkauf]); strcat(mainQuery, secondQuery); format(secondQuery, sizeof(secondQuery), "`PreisProLiter`='%d', `Liter`='%f', `MaxLiter`='%f', `Kasse`='%d', `BLiter`='%f', WHERE `id`='%d'", Tanke[i][tPreisProLiter], Tanke[i][tLiter], Tanke[i][tMaxLiter], Tanke[i][tKasse], Tanke[i][tBrauch], Tanke[i][tdbID]); strcat(mainQuery, secondQuery); mysql_function_query(myCon, mainQuery, false, "", ""); strdel(mainQuery, 0, sizeof(mainQuery)); printf("[SAVE] Tankstelle %d gespeichert.", i); } return 1; }Code
Alles anzeigenpublic SaveTanken() { new count = 0, mainQuery[2537], secondQuery[356]; for(new i=1;i<MAX_TANKEN;i++) { if(Tanke[i][tCreated] == 1) { format(secondQuery, sizeof(secondQuery), "UPDATE `script_tanken` SET `PickupX`='%f', `PickupY`='%f', `PickupZ`='%f', `Besitzer`='%s', ", Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ], Tanke[i][tBesitzer]); strcat(mainQuery, secondQuery); format(secondQuery, sizeof(secondQuery), "`Owned`='%d', `Name`='%s', `Preis`='%d', `Teilhaber`='%s', `Lock`='%d', `BenzinAnkauf`='%d', ", Tanke[i][tOwned], Tanke[i][tName], Tanke[i][tPreis], Tanke[i][tTeilhaber], Tanke[i][tLock], Tanke[i][tBenzinAnkauf]); strcat(mainQuery, secondQuery); format(secondQuery, sizeof(secondQuery), "`PreisProLiter`='%d', `Liter`='%f', `MaxLiter`='%f', `Kasse`='%d', `BLiter`='%f', WHERE `id`='%d'", Tanke[i][tPreisProLiter], Tanke[i][tLiter], Tanke[i][tMaxLiter], Tanke[i][tKasse], Tanke[i][tBrauch], Tanke[i][tdbID]); strcat(mainQuery, secondQuery); mysql_function_query(myCon, mainQuery, false, "", ""); strdel(mainQuery, 0, sizeof(mainQuery)); count++; } } printf("[SAVE] Tankstellen wurden gespeichert. (%d/%d)", count, MAX_TANKEN); return 1; }Kurze Frage warum speichert BLiter nicht ? obwohl es eigentlich speichern sollte?
-
Ich hoffe du hast BLiter auch in deiner Datenbank als Feld eingefügt? x)
-
Ich hoffe du hast BLiter auch in deiner Datenbank als Feld eingefügt? x)
Natürlich sonst würde ich nicht fragen

-
Das Komma hinter `BLiter`='%f' emtfernen
-
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor gelöscht (). -
-
Code
Alles anzeigenelse if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 584) { new string[128], int; if(sscanf(params, "i", int))return SendClientMessage(playerid, COLOR_GREY, "{247BA6}* Benutze {33AA33}/unload [Menge]"); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Tanker."); if(!(Spieler[playerid][pFraktion] == 14))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Member der Transport GmbH."); if(int < 1 || int > 2500)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst nur maximal 2500 Liter abladen."); if(int > Vehicle[GetVehicleTrailer(vehicleid)][vehProds])return SendClientMessage(playerid, COLOR_GREY, "** Soviel Liter hast du nicht dabei."); for(new it=1;it<MAX_TANKEN;it++) { if(Tanke[it][tCreated] == 1) { if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[it][tPickupX], Tanke[it][tPickupY], Tanke[it][tPickupZ])) { if(Tanke[it][tLiter] == Tanke[it][tMaxLiter])return SendClientMessage(playerid, COLOR_GREY, "** Diese Tankstelle hat bereits die maximale Anzahl an Benzin."); new cash = Tanke[it][tKasse]; new kosten = (Tanke[it][tBenzinAnkauf]*int); if(cash < kosten)return SendClientMessage(playerid, COLOR_GREY, "** Die Kasse hat nicht genügend Geld für das Benzin."); if(int > (Tanke[it][tMaxLiter]-Tanke[it][tLiter]))return SendClientMessage(playerid, COLOR_GREY, "** Soviel Liter kann diese Tankstelle nicht haben."); Vehicle[GetVehicleTrailer(vehicleid)][vehProds] -= int; new Float:intfloat = float(int); new Float:add = floatadd(intfloat, Tanke[it][tLiter]); Tanke[it][tLiter] = add; format(string, sizeof(string), "* Du hast der Tankstelle %d Liter für $%d verkauft.", int, kosten); Tanke[it][tKasse] -= kosten; Tanke[it][tBrauch] -= int; GiveMoney(playerid, kosten); SendClientMessage(playerid, COLOR_GREEN, string); UpdateTankLabel(it, Tanke[it][tOwned]); } } } } } return 1; }Kurze frage es sollte ja abgezogen werden wen ich bei der Tankstelle ablade ist schon richtig.
so aber wen ich ablade z.b 2500 von 5000 sind für mich immer noch 2500.
Das Problem ist dann komm aufeinmal komische random zahlen? -
Wie kann ich abfragen, ob jemand im Dialog "einverstanden" eingegeben hat?
-
Wie kann ich abfragen, ob jemand im Dialog "einverstanden" eingegeben hat?
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[] <----)
Inputtext abfragen bei OnDialogResponse. -
Ist mir bereits bewusst, aber wie? (strcmp?)
-
if(strcmp(inputtext, "Einverstanden") == 0) return 0;
-
if(strcmp(inputtext, "Einverstanden") == 0) return 0;
Mach es nicht wie Leon. In den meisten fällen ist die groß/kleinschrift egal und laut Wiki
http://wiki.sa-mp.com/wiki/Strcmp
ist ignorecase = false es sei denn man gibt true ein.
Richtig in den meisten fällen wäre es so
if(strcmp(inputtext,"einverstanden",true)==0)
-
Guten Abend,
wie kann ich aus meiner Datenbank auslesen ob der Spieler existiert wenn dieser nicht online ist.
Ich verwende MySQL include R39-3new query[128];
mysql_format(handle, query, sizeof(query), "SELECT id FROM users WHERE name = '%e'", name);
mysql_pquery(handle, query, "RegCheck", "d", playerid);Und:
forward RegCheck(playerid);
public RegCheck(playerid)
{
new rows = cache_get_row_count();
if(rows) SendClientMessage(playerid, 0xFFFFFFFF, "User ist in der Datenbank.");
else SendClientMessage(playerid, 0xFF0000FF, "User ist nicht in der Datenbank.");
return 1;
} -
Compiler hängt sich immer bei folgenden Code auf.
if(strcmp(inputtext,"einverstanden",true)==0)
{
strdel(DialogString, 0, sizeof(DialogString));
ShowPlayerDialog(playerid, DIALOG_GESCHLECHT, DIALOG_STYLE_LIST, ""HTML_WHITE"Account erstellen - 3/3", ""HTML_WHITE"Männlich\nWeiblich", "Bestätigen", "Abbrechen");
}
else
{
strdel(DialogString, 0, sizeof(DialogString));
format(DialogString, sizeof(DialogString),""HTML_YELLOW"Du hast 'einverstanden' nicht in das vorgegebene Feld geschrieben\n\n"HTML_WHITE"Um auf unserem Server spielen zu können, musst Du mit unseren Nutzungsbestimmungen einverstanden sein.\nDie Nutzungsbestimmungen kannst Du auf unserer Homepage unter "#SERVER_WEBURL" einsehen.\nWenn Du diese durchgelesen hast und einverstanden bist, schreibe bitter "HTML_YELLOW"einverstanden"HTML_WHITE"in das vorgegebene Feld.\n\nWenn Du mit diesen nicht einverstanden bist, dann musst Du leider unseren Server verlassen.");
ShowPlayerDialog(playerid, DIALOG_NUTZUNGSBESTIMMUNGEN, DIALOG_STYLE_INPUT, ""HTML_WHITE"Account erstellen - 2/3", DialogString, "Bestätigen", "Abbrechen");
return 1;
} -