Kannst du davon ein Video machen?
Beim Pawn compilen öffnet sich GTA? ![]()
Kannst du davon ein Video machen?
Beim Pawn compilen öffnet sich GTA? ![]()
Wie ist query definiert?
g_waffenLager oder factionNames ist wohl nur auf 20 definiert ![]()
Dann müsste doch am Fahrzeug jetzt "blabla-01" und "blabla-02" stehen...?!
Es sei denn, du hast das im falschen Callback...
Dann printe dir mal die Fraktionsid...
Ist die denn richtig gesetzt bzw gespeichert?
Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
Lade die mysql_static.so ![]()
++veh_car_counter[fraktion_ID]
So ist das schon richtig...was passiert denn da?
Vorausgesetzt du hast die richtige Fraktionsid da angegeben.
FraktionsID = veh_car_counter[fraktion_ID]
...Nein, das macht doch gar keinen sinn. veh_car_counter speichert doch die Anzahl an Fahrzeugen in einer Fraktion.
Ergo muss der Index die Fraktionsid sein. Wieso sollte der Wert auch die Fraktionsid sein...
Ich sprach vom Index.
Wie sieht denn dein Code jetzt aus?
und wo wird das nicht hochgezählt....
Erstell doch einfach noch eine:
frakfahrzeug_CarCounter
und dann zählst du die so hoch:
"%s-%02d",bla,++FrakFahrzeugInfo[id][frakfahrzeug_CarCounter])
Wenn dir egal ist, in welcher Reihenfolge die Zahlen sind, musst das nicht einmal speichern. Kannst also theoretisch auch eine separate Variable dafür erstellen.
FrakFahrzeugInfo[id][frakfahrzeug_FrakCarID] sollte in dem Fall die ID zum Hochzählen sein.
Wieso hast du dann noch so Felder wie KennungZahl?
Und frakfahrzeug_FrakCarID ist bei dir die vehicle-modelid....
und unten verwendest du frakfahrzeug_VehicleID...eieieieiei
Das ist ein Durcheinander bei dir...
Übrigens in der Informatik gilt es Wiederholungen zu vermeiden. Du verwendest hier doppelten Code, einmal beim Laden und dann beim Hinzufügen, da liegt es nahe, da bestimmte Funktionen auszulagern, damit man es nicht doppelt abändern muss.
...also dein Problem besteht nur darin, dass du keine eindeutige Variable hast, die du einfach nur hochzählen musst...
PS: Verlinke nächstes mal das Problem direkt auf der Pinnwand xD
Ich möchte nur mal kurz darauf hinweisen dass es dir überhaupt nichts bringt MD5 oder sonst irgendetwas zu benutzen. wenn deine Logdatei im Nachhinein so aussieht.
Nur ums kurz anzumerken, MD5 bringt generell nichts mehr.
Grey Wenn dich das Thema näher interessiert, was das eigentlich alles ist: Hash Verfahren genauer erklärt
habs gerade mal aus langweile zusammen geschnitten,
Was das Ziel der Missionen, Kamikaze?
Aber der Wert wird nicht abgespeichert und somit auch nicht beim wieder einloggen abgerufen
Dann erzähl uns doch, was und wie es passiert, indem du uns den Log zeigst oder präzise angaben machst, was überall passiert alias print setzt ![]()
Danke, du ahst es vereinfacht und es kommt trotzdem bei jedem Erz nen anderer Preis raus?
Jaaa...
irgendwie ist die Berechnung falsch
Nun, falsch ist ein harter Begriff, der hier nicht ganz zutrifft. Da es sich hier um Gleitkommafehler handelt.
Aber hier eine Variante, die glaube ich präziser wäre:
case DIALOG_VERKAUFEN:
{
if(!response)return 1;
new m = InventarInfo[playerid][inventar_Metall][listitem];
if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei");
new string[128],euro,cent;
FloatToMoney(m*3.56+2.2*listitem,euro,cent);
GivePlayerEuro(playerid,euro,cent);
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %d,%d Euro an Robert verkauft",m,GetResourceName(listitem),euro,cent);
SendInfoMessage(playerid,string);
InventarInfo[playerid][inventar_Metall][listitem] = 0;
}
stock FloatToMoney(Float:x,&euro,¢) {
new string[16];
euro = floatround(x,floatround_floor);
valstr(string,floatround(x*100));
strmid(string,string,strlen(string)-2,strlen(string),sizeof(string));
cent = strval(string);
return 1;
}
Alles anzeigen
1. Weil Rundungsfehler auftreten.
2. Hast du dich da verrechnet oder ist das Absicht? So wie ich deine Formel sehe, sollte das doch eigentlich 3.56+2.2*x sein?
Also ich würde es so machen:
case DIALOG_VERKAUFEN:
{
if(!response)return 1;
new m = InventarInfo[playerid][inventar_Metall][listitem];
if(m == 0)return SendErrorMessage(playerid,"Dieses Metall hast du nicht dabei");
new string[128],Euro[16],Cent[8],betrag1[24];
format(betrag1, sizeof(betrag1), "%.02f", m*3.56+2.2*listitem);
sscanf(betrag1, "p<.>s[16]s[8]", Euro, Cent);
GivePlayerEuro(playerid,strval(Euro),strval(Cent));
format(string,sizeof(string),"{FFFFFF}Du hast erfolgreich %d %s für %s,%d Euro an Robert verkauft",m,GetResourceName(listitem),Euro,Cent);
SendInfoMessage(playerid,string);
InventarInfo[playerid][inventar_Metall][listitem] = 0;
}
Alles anzeigen
das frage ich mich
The answer my friend is hiding in the logs, the answer is hiding in the logs.
So einfach mysql_log(ALL); aktivieren und hier einfach den Log zeigen ![]()
Zeig uns den neuen Log ![]()