Ist nicht mein Skript. Ist das Skript von nem guten Kollegen, keine Ahnung was der da gemacht hatte.
[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
-
-
Eventuell guckst du mal ob wo anders im Skript i2 definiert ist.
Falls ja, kannst du dies ja dem entsprechend neu definieren, ist dann keine globale Variable gewesen, falls es denn so ist. -
Hi.
Ich bin gerade ein wenig aufgeschmissen. Ich habe ein Haussystem gescriptet und dann ist mir aufgefallen, dass wenn ich ein Haus gelöscht hab und ich dann ein neues erstelle, der PRIMARY KEY Wert mit Auto_Increment einfach dort das neue Haus speichert, wo er vorher stehen geblieben ist.Heißt ich lösche ein Haus, welches in der MySQL Tabelle beim Primary_key den Wert 9 hatte und erstelle dann ein neues und der Wert 9 wird nicht wieder genutzt, obwohl er eigtl. frei ist.
Ich würde jedoch gerne prüfen ob ein Wert ungenutzt ist und dann wieder in diesen einsetzen.
Ich hoffe das ist so einigermaßen verständlich.
Danke im Voraus.
-
Das ist auch richtig so, da das der Sinn ist von einem PRIMARY Key mit AUTO_INCREMENT.
-
Das ist auch richtig so, da das der Sinn ist von einem PRIMARY Key mit AUTO_INCREMENT.
Heißt, man kann das nicht ändern und müsste somit einfach einen weiteren ID Wert zuweisen, der dann die HausID wieder annimmt, die gerade frei ist?
-
Du solltest dir hier mal die Antworten durchlesen: https://stackoverflow.com/ques…in-auto-incremenet-fields
-
C:\Users\User\Desktop\Script\gamemodes\Script-reallife.pwn(6737) : warning 202: number of arguments does not match definition
Code
Alles anzeigenpublic LoadBizes() { new rows, fields, count; cache_get_row_count(rows); cache_get_field_count(fields); for(new i=0;i<rows;i++) { new bizID = cache_get_value_name_int(i, "id"); //6737 if(bizID < MAX_BIZ) { Biz[bizID][bCreated] = 1; cache_get_value_name_int(i, "id", Biz[bizID][bdbID]); cache_get_value_name_int(i, "Type", Biz[bizID][bType]); cache_get_value_name_float(i, "EnterX", Biz[bizID][bEnterX]); cache_get_value_name_float(i, "EnterY", Biz[bizID][bEnterY]); cache_get_value_name_float(i, "EnterZ", Biz[bizID][bEnterZ]); cache_get_value_name_float(i, "ExitX", Biz[bizID][bExitX]); cache_get_value_name_float(i, "ExitY", Biz[bizID][bExitY]); cache_get_value_name_float(i, "ExitZ", Biz[bizID][bExitZ]); cache_get_value_name_int(i, "Interior", Biz[bizID][bInterior]); cache_get_value_name_int(i, "Level", Biz[bizID][bLevel]); cache_get_value_name_int(i, "Preis", Biz[bizID][bPreis]); cache_get_value_name_int(i, "Owned", Biz[bizID][bOwned]); cache_get_value_name_int(i, "Kasse", Biz[bizID][bKasse]); cache_get_value_name_int(i, "Lock", Biz[bizID][bLock]); cache_get_value_name_int(i, "Eintritt", Biz[bizID][bEintritt]); cache_get_value_name_int(i, "Produkte", Biz[bizID][bProdukte]); cache_get_value_name_int(i, "MaxProdukte", Biz[bizID][bMaxProdukte]); cache_get_value_name_int(i, "ProdPreis", Biz[bizID][bProdPreis]); cache_get_value_name(i, "Besitzer", Biz[bizID][bBesitzer], 64); cache_get_value_name(i, "Teilhaber", Biz[bizID][bTeilhaber], 64); cache_get_value_name(i, "Beschreibung", Biz[bizID][bBeschreibung], 64); Biz[bizID][bText] = CreateDynamic3DTextLabel("Laedt ...", COLOR_WHITE, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 20.0); if(Biz[bizID][bOwned] == 1) { Biz[bizID][bPickup] = CreatePickup(BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } else if(Biz[bizID][bOwned] == 0) { Biz[bizID][bPickup] = CreatePickup(NO_BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } UpdateBizLabel(bizID, Biz[bizID][bOwned]); count++; } } printf("[LOAD] BIZes geladen: %d/%d", count, MAX_BIZ); return 1; }
Kann mir einer sagen wo da der fehler liegt?
-
C:\Users\User\Desktop\Script\gamemodes\Script-reallife.pwn(6737) : warning 202: number of arguments does not match definition
Code
Alles anzeigenpublic LoadBizes() { new rows, fields, count; cache_get_row_count(rows); cache_get_field_count(fields); for(new i=0;i<rows;i++) { new bizID = cache_get_value_name_int(i, "id"); //6737 if(bizID < MAX_BIZ) { Biz[bizID][bCreated] = 1; cache_get_value_name_int(i, "id", Biz[bizID][bdbID]); cache_get_value_name_int(i, "Type", Biz[bizID][bType]); cache_get_value_name_float(i, "EnterX", Biz[bizID][bEnterX]); cache_get_value_name_float(i, "EnterY", Biz[bizID][bEnterY]); cache_get_value_name_float(i, "EnterZ", Biz[bizID][bEnterZ]); cache_get_value_name_float(i, "ExitX", Biz[bizID][bExitX]); cache_get_value_name_float(i, "ExitY", Biz[bizID][bExitY]); cache_get_value_name_float(i, "ExitZ", Biz[bizID][bExitZ]); cache_get_value_name_int(i, "Interior", Biz[bizID][bInterior]); cache_get_value_name_int(i, "Level", Biz[bizID][bLevel]); cache_get_value_name_int(i, "Preis", Biz[bizID][bPreis]); cache_get_value_name_int(i, "Owned", Biz[bizID][bOwned]); cache_get_value_name_int(i, "Kasse", Biz[bizID][bKasse]); cache_get_value_name_int(i, "Lock", Biz[bizID][bLock]); cache_get_value_name_int(i, "Eintritt", Biz[bizID][bEintritt]); cache_get_value_name_int(i, "Produkte", Biz[bizID][bProdukte]); cache_get_value_name_int(i, "MaxProdukte", Biz[bizID][bMaxProdukte]); cache_get_value_name_int(i, "ProdPreis", Biz[bizID][bProdPreis]); cache_get_value_name(i, "Besitzer", Biz[bizID][bBesitzer], 64); cache_get_value_name(i, "Teilhaber", Biz[bizID][bTeilhaber], 64); cache_get_value_name(i, "Beschreibung", Biz[bizID][bBeschreibung], 64); Biz[bizID][bText] = CreateDynamic3DTextLabel("Laedt ...", COLOR_WHITE, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 20.0); if(Biz[bizID][bOwned] == 1) { Biz[bizID][bPickup] = CreatePickup(BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } else if(Biz[bizID][bOwned] == 0) { Biz[bizID][bPickup] = CreatePickup(NO_BIZ_OWNER_PICKUP, 1, Biz[bizID][bEnterX], Biz[bizID][bEnterY], Biz[bizID][bEnterZ], 0); } UpdateBizLabel(bizID, Biz[bizID][bOwned]); count++; } } printf("[LOAD] BIZes geladen: %d/%d", count, MAX_BIZ); return 1; }
Kann mir einer sagen wo da der fehler liegt?
new bizID = cache_get_value_name_int(i, "id");zu
new bizID;
cache_get_value_name_int(i, "id", bizID);[wiki]MySQL/R40#cache_get_value_name_int[/wiki]
-
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Gefunden (). -
format(query, sizeof(query), "DELETE FROM `server_houses` WHERE id = '%d'", pCreateHouse[playerid]);
mysql_function_query(MySqlConnection, query, false, "", "");mysql_free_result();
zu was wurde das bei MysQL R40?
-
-
-
Du kannst es auch weglassen.
Ein PRIMARY Key ist automatisch AUTO_INCREMENT.
Aber AUTO_INCREMENT ist nicht automatisch ein PRIMARY Key. -
Kann mich jemand aufklären, ob so etwas sein muss?
Muss nicht, empfiehlt sich aber um einen eindeutigen und einzigartigen Datensatz identifizieren zu können.
-
Danke Jungs!
http://prntscr.com/o5d87m
Das steht in meiner Konsole, irgendwie wird das geladen, irgendwie aber auch nicht.
Im Log steht ja das er den Wert bzw. den Namen herausgefunden hat.Hole ich mir den Wert falsch?
Sonst funktioniert das, wenn ich mir das nicht herausladen lasse. -
Du musst bei cache_get_value_name die Länge der Variable angeben, in die der String gespeichert wird, wenn du es in einem Array speicherst.
-
Danke Jungs!
http://prntscr.com/o5d87m
Das steht in meiner Konsole, irgendwie wird das geladen, irgendwie aber auch nicht.
Im Log steht ja das er den Wert bzw. den Namen herausgefunden hat.Hole ich mir den Wert falsch?
Sonst funktioniert das, wenn ich mir das nicht herausladen lasse.Probier mal bitte
cache_get_value_name(garageid, "Besitzer_Name", gInfo[garageid][gBesitzer], MAX_PLAYER_NAME); -
-
Dort wird ja auch eine normale Variable verwendet, und nicht in einem Array gespeichert.
Bei einer normalen Variable kannst du es auch weglassen. -
Oh, ich bin dumm dachte Array wäre, wenn man die Stirng-Länge angibt :X
http://prntscr.com/o5dr8w
Warum wird der Wet 2x gespeichert??
Der Stock wird ganz normal beim Disconnect aufgerufen.Und irgendwie auch falsch? -1 ist der Wert der in der Datenbank steht und 0 der, der gespeichert werden soll
Code
Alles anzeigenstock SpielerSpeichern(playerid) { new query[700]; mysql_format(handle,query,sizeof(query),"UPDATE `user` SET `Skin`='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ `Garage`='%d', \ ``='%d',", GetPlayerSkin(playerid), pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][pGarage], pInfo[playerid][]); printf("GaragePID = %d",pInfo[playerid][pGarage]); printf("RandomWert = %d",pInfo[playerid][pGeld]); mysql_format(handle,query,sizeof(query),"%s \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d', \ ``='%d'", query, pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][], pInfo[playerid][]); mysql_format(handle,query,sizeof(query),"%s \ WHERE `ID`=%d", query, pInfo[playerid][db_id]); return 1; }