Dann musst du bitte das "Überschreiben" genauer erklären, gegebenenfalls poste den Code noch dazu, der das überschreibt, und erkläre, wie du erkennst, dass es überschrieben wurde.
Beiträge von Jeffry
-
-
-
Ist das normal?
Ja, weil im ersten Code hast du im Pfad keinen Platzhalter (%d, %s, ...). Daher spart man sich das format.
Im zweiten Code ist ein Platzhalter vorhanden, der muss im format gefüllt werden. -
-
Die Datei brauchst du ja nur einmal erstellen (das hast du gemacht) von daher passt das, da brauchst du sonst nichts.
Hast du dort, wo du den GMX gemacht hast, auch GebieteSpeichern(); aufgerufen? Wenn nicht, das musst du machen.
Alternativ dort, wo du das Gebiet eroberst. -
-
Yup, dann
AktuellWantedLevel[ClickedSuspectID[playerid]] = strval(str);
zu:
AktuellWantedLevel[playerid] = strval(str);Sonst bekommt es ein anderer Spieler.
Kannst es aber auch beim Login laden, das macht eigentlich mehr Sinn. -
Ok. Wo lädst du das denn? Beim Login, oder wenn der Spieler auf einen anderen Spieler klickt?
Falls beim Login:
AktuellWantedLevel[ClickedSuspectID[playerid]]
zu:
AktuellWantedLevel[playerid] -
http://files.sa-mp.com/sa-mp-0.3z-R2-install.exe
http://files.sa-mp.com/samp03z_svr_R2-2_win32.zipZwecks der anderen Frage:
Mache bitte einen Thread auf und poste den entsprechenden Code dort, samt Erklärung was du vor hast. -
Hast du dir den Wert da mal printen lassen, ob das auch geladen wird?
printf("Wanted: %d", AktuellWantedLevel[ClickedSuspectID[playerid]]);PS: Was 'ne Schnapszahl haha, schöner Schnappschuss.

-
Genau. Das kannst du auch direkt in mysql_tquery rein schreiben, sofern du keinen Platzhalter (%d, %s, ...) benötigst.
-
Ahh, perfekt!

Das kannst du dann zum Beispiel so machen:
stock GebieteLaden()
{
new str[32];
for(new i=0; i<sizeof(Gebiete); i++)
{
format(str, sizeof(str), "BesitzerGF%d", i);
Gebiete[i][GFBesitzer] = dini_Int("/GebietDatei/GebietDatei.ini",str);
}
return 1;
}stock GebieteSpeichern()
{
new str[32];
for(new i=0; i<sizeof(Gebiete); i++)
{
format(str, sizeof(str), "BesitzerGF%d", i);
dini_IntSet("/GebietDatei/GebietDatei.ini",str,Gebiete[i][GFBesitzer]);
}
return 1;
} -
format(query, sizeof(query), "DELETE FROM gangfight WHERE zoneid=%d", zone);
-
Habe die Koordinaten nun geändert, jetzt habe ich aber noch ein Problem.
Kopiere die Koordinaten bitte nochmal, da war ein Komma zu viel drin.
Und zwar haben die Gebiete nun keine Besitzer und ich kann sie auch nicht ändern weil ich nicht weiß wie ich die Besitzer speichern lassen kann..
In welcher Form sollen die gespeichert werden? Als ID (Zahl) oder als Klartext (zum Beispiel der Name des Besitzers)? -
1.) Nein.
http://wiki.sa-mp.com/wiki/MyS…che_get_field_content_int
http://wiki.sa-mp.com/wiki/MySQL/R33#cache_insert_id2.)
Nein, die Größe des Queries (new query[XXX];) hat nichts mit dem Cache zu tun.3.)
Nein, außer gegebenenfalls cache_insert_id(). -
Zitat
[22:47:56] [DEBUG] mysql_pquery - connection: 1, query: "DELETE FROM gangfight WHERE id=0", callback: "(null)", format: "(null)"
An sich ist das korrekt. Jetzt kommt es drauf an wie es in deiner Tabelle aussieht.
Poste davon mal einen Screenshot, von den Daten (nicht die Struktur). -
Überschrieben = Er fängt von 0 an?
Dann musst du die Wanteds aus der Datenbank laden lassen, das fehlt dann noch. -
Schade, dass die Kollegen anfangen zu helfen und dann einfach nicht mehr posten...naja.
Das Problem liegt nicht am Code sondern daran, dass deine Koordinaten falsch waren.
new Gebiete[5][gebiet] = {
{GFBesitzer,-897.4752,2731.4478,-729.0828,2784.1543},
{GFBesitzer,-1337.7583,2440.3684,-1266.7142,2561.9902},
{GFBesitzer,-885.5745,1422.2673,-617.7786,1621.0100},
{GFBesitzer,109.6944,1335.6724,289.1925,1485.1274},
{GFBesitzer,63.0710,2386.9675,487.0500,2651.3181}
};Erst das kleine X dann das kleine Y, dann das große X und dann das große Y.
Beachte, dass -10 kleiner als -5 ist, zum Beispiel.Der Code, etwas schöner:
stock IsPlayerInGebiet(playerid)
{
new Float:GetX,Float:GetY,Float:GetZ;
GetPlayerPos(playerid,GetX,GetY,GetZ);
for(new i;i<sizeof(Gebiete);i++)
{
if(GetX >= Gebiete[i][MinX] && GetX <= Gebiete[i][MaxX] && GetY >= Gebiete[i][MinY] && GetY <= Gebiete[i][MaxY])
{
return i;
}
}
return -1;
}Und lösche bitte den anderen Thread den du auf gemacht hast, es braucht keine zwei.

-
format(query,128,"UPDATE `USERS` SET `WANTED` = '%d' WHERE `Name` = '%s'",query, WantedLevel[ClickedSuspectID[playerid]]);
zu:
format(query,128,"UPDATE `USERS` SET `WANTED` = '%d' WHERE `Name` = '%s'",WantedLevel[ClickedSuspectID[playerid]], query);Ich habe es sogar extra noch dazugeschrieben.

-
Wie sieht den Code jetzt aus?
Was sagt eigentlich die SendClientMessage?
