Habe 2500 Liter abgeladen
Ja und jetzt?
Wenn, dann printe dir ALLE Variablen vorher und nacher..und sag genau, was nicht stimmt...
Habe 2500 Liter abgeladen
Ja und jetzt?
Wenn, dann printe dir ALLE Variablen vorher und nacher..und sag genau, was nicht stimmt...
Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tLiterBenzin] += floatadd(gebraucht, Tanke[i][tLiterBenzin]);
zu:
Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tLiterBenzin] = Tanke[i][tMaxLiterBenzin];
else Tanke[i][tMaxLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][0] = 0, Vehicle[trailer][vehProds] = 0;
zu:
else Tanke[i][tLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][0] = 0, Vehicle[trailer][vehProds] = 0;
printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatadd(gebraucht, Tanke[i][tLiterBenzin]));
zu:
printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatround(floatsub(gebraucht, Tanke[i][tLiterBenzin])));
Tankstelle: Diese Tankstelle hat 2000 Liter Benzin gebraucht.
Tankstelle: Diese Tankstelle hat 5000 Liter Benzin erhalten.
Das Meine ich gebraucht hat die Tankstelle nur 2000 Liter Benzin aber es wurden 5000 anscheind abgeladen aber es wurden ja nur 2000 abgegeben.
Habe 2500 geladen. habe abgeladen also wurden 2000 abgezogen somit waren am schluss 500 Liter noch vorhanden.
Wie kann das dann zu stande komm das 5000 Liter Benzin abgeladen wurden obwohl es nur 2000 waren.
if(Vehicle[vehicleid][vehGeladen][2] == 3)
{
new gebraucht = floatround(Tanke[i][tMaxLiterBenzin] - Tanke[i][tLiterBenzin]);
new kosten = Tanke[i][tBenzinAnkauf]*gebraucht;
if(Tanke[i][tKasse] < kosten) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Die Tankstelle hat nicht genügend Geld für den Benzin.");
if(!gebraucht) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Tankstelle benötigt keinen Benzin mehr.");
if(Vehicle[vehicleid][vehGeladen][2] == 0) return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dein Tank Anhänger hat kein Benzin mehr geladen.");
if(Vehicle[trailer][vehProds] > gebraucht)
{
printf("Tankstelle: Diese Tankstelle hat %d Benzin gebraucht.", gebraucht);
Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tMaxLiterBenzin] += floatadd(gebraucht, Tanke[i][tLiterBenzin]);
format(string, sizeof(string), "{21DD00}Es konnten nur %d Liter Benzin abgeliefert werden, die Tankstelle ist voll.", gebraucht);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else Tanke[i][tMaxLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][0] = 0, Vehicle[trailer][vehProds] = 0;
format(string, sizeof(string), "{21DD00}Gehalt: %d$", kosten);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "{21DD00}Benzin: %d/2500", Vehicle[trailer][vehProds]);
SendClientMessage(playerid, COLOR_WHITE, string);
Tanke[i][tKasse] -= kosten, GiveMoney(playerid, kosten);
UpdateTankLabel(i, Tanke[i][tOwned]);
printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatround(floatadd(gebraucht, Tanke[i][tLiterBenzin])));
}
Alles anzeigen
Mache die Anpassungen, die ich oben gepostet habe.
So , ich begebe mich jetzt ran an mein Projekt.
Ich habe ein Team-Deathmatch worin es ebenfalls darum geht das Bett eines Gegnerteams zu vernichten.
Das Hauptziel besteht darin das Bett als erstes zu vernichten, und dannach die Spieler des Gegnerteams zu vernichten.
3 Bots sollen als Team fungieren, und jedes Team soll eine gewisse Rollenverteilung haben.
Diese 3 Bots sollen zwischen verschiedenen Optionen abwägen, bspw. ob es wichtiger ist das Bett zu vernichten, oder die Spieler, oder ob das Team offensiv, oder defensiv sein soll.
Gibt es da Tipps wie ich das scripttechnisch am besten angehe? Ich rechne da schon mit einem 10000 Zeilen Trümmer mit Schach-Engine ähnlichem Aufbau ( Werde ich mir mal von Stockfisch abkucken)
Das hier habe ich mal gefunden was ich als Fundament nehme https://forum.sa-mp.com/showthread.php?t=504181
Kaliber hat mir noch den Thread hier verlinkt, auch nochmal danke dafuer.
Kannst du uns mal Beispiel Koordinaten geben, bzw die die du verwendest.
Sonst ist das schwer zu reproduzieren, was du da machst
Hey,
Ich stehe gerade voll auf den schlauch frage mich gerade warum
Also man sollte einmalig den Waffenpreis Bezahlen was wäre z.b bei der Desert Eagle 1500
bei dieser Waffe sind pro Schuss 20$.
So wen ich jetzt eine kaufe z.b eine Desert Eagle mit 20 Schuss wären das 1900$
Aber ich komme immer auf 30.000 kann mir einer sagen warum das so ist.
case DIALOG_BUYGUN_DEAGLE_AMMO:
{
if(response)
{
new string[128];
new ammo = strval(inputtext);
new preis = GunPrice[3][0]*ammo;
if(GetMoney(playerid) < preis)return SendClientMessage(playerid, COLOR_WHITE, ERROR_MONEY);
if(Biz[1][bProdukte] < 1)return GameTextForPlayer(playerid, "~r~Ausverkauft", 5000, 1);
if(strfind(inputtext, "-", true) != -1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}ERROR");
if(ammo <= 0){
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst einen Wert zwischen 1 und 500 auswählen!");
}
if(ammo > 500){
SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du musst einen Wert zwischen 1 und 500 auswählen!");
}
GiveMoney(playerid, -preis);
GiveWeapon(playerid, 24, ammo);
Biz[1][bKasse] += preis;
Biz[1][bProdukte] --;
UpdateBizLabel(1, Biz[1][bOwned]);
format(string, sizeof(string), "{33AA33}Du hast eine Desert Eagle mit %d Munition für %d$ gekauft", ammo, preis);
SendClientMessage(playerid, COLOR_WHITE, string);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
}
}
Alles anzeigen
Munitions Preise:
//E:
Fehler gefunden habe es so gemacht:
new preis = GunPrice[3][0] + MunitionPrice[3][0]*ammo;
Hallo komme nicht weiter bin neu in MySQL
enum eGeschenke
{
ID,
Float:GeschenkX,
Float:GeschenkY,
Float:GeschenkZ,
Erstellt,
Ersteller[MAX_PLAYER_NAME],
Object,
Label
};
new Geschenke[MaxGeschenke][eGeschenke];
ID, Float:GeschenkX, Float:GeschenkZ, Float:GeschenkZ, Erstellt, Ersteller möchte ich in der Datenbank speichern die Tabelle habe ich schon erstellt.
stock SaveGeschenke()
{
print("SaveGeschenke wurde aufgerufen.");
for(new i = 0; i < MaxGeschenke; i++)
{
print("SaveGeschenke | Schleife wurde aufgerufen");
new query[256];
mysql_format(handle, query, sizeof(query), "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('%d', '%f', '%f', '%f', '%d', '%e'", Geschenke[i][ID], Geschenke[i][GeschenkX], Geschenke[i][GeschenkY], Geschenke[i][GeschenkZ], Geschenke[i][Erstellt], Geschenke[i][Ersteller]);
mysql_pquery(handle, query, "OnGeschenkErstellt","d","");
}
}
ocmd:save(playerid,params[])
{
SaveGeschenke();
return 1;
}
Doch es passiert nix
Wird denn etwas in den MySQL Log geschrieben?
Werden die beiden Prints in der Funktion auch aufgerufen?
Das ding ist
in "OnGeschenkErstellt"
habe ich nix stehen weiß nicht was dort rein muss ist mir gerade aufgefallen das es leer ist
//Edit
[16:22:35] SaveGeschenke wurde aufgerufen.
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
[16:22:35] SaveGeschenke | Schleife wurde aufgerufen
Den "OnGeschenkErstellt" Callback kannst du dir sparen, da du den (denke ich mal) nicht brauchst.
Ändere dafür einfach Zeile 9 zu dem:
mysql_pquery(handle, query);
Dazu immernoch dei Frage; Wird etwas in den MySQL Log geschrieben?
beim einmal aufrufen von SaveGeschenke() kommt
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '1959.378296', '1344.157227', '15.374607', '1', 'Abbas'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
[13:58:27] [plugins/mysql] error #1064 while executing query "INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('0', '0.000000', '0.000000', '0.000000', '0', ''": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
Du hast ganz am Ende des Querys ein ) vergessen.
Du hast ganz am Ende des Querys ein ) vergessen.
Hä wo ?
Hä wo ?
"INSERT INTO geschenke (id, x, y, z, erstellt, ersteller) VALUES ('%d', '%f', '%f', '%f', '%d', '%e')"
Wann sollte man CreateVehicle benutzen und wann AddStaticVehicle?
Wann sollte man CreateVehicle benutzen und wann AddStaticVehicle?
Was ich noch von damals weiß das AddStaticVehicle nur bei OnGameModeInit bzw. FilterScriptInit funktioniert hat. Wie eben auch schon der Name sagt "Static"
d.h dass du während der Laufzeit kein Statische Vehicle erstellen kannst was hingegen mit CreateVehicle funktioniert.
CreateVehicle kann jederzeit verwendet werden und wird auch meist bei "Vehicle-Spawn"-Cmds verwendet um es einer Variable o.ä zuweisen zu können (Während der Laufzeit halt ^^)
AddStaticVehicle?
damit kannst du auch Züge erstellen