Er kann in befehle keine Sonderzeichen rein machen. das war bei mir das prob
Beiträge von Markuslobicher
-
-
Für meine Seite benutzen
-
-
@Jeffry Ich habe deswegen 1-20 genommen weil es ja von den Innenräume von den Hausern/Bizen/Tanken/Waffenladen ids gibt die ich damit gesetzt habe.
Nun will ich es so machen können wenn ich ein Haus erstelle das er mich dann fragt Welches Interior ich gerne setzen möchte. -
Das Sind die Interior IDs
-
Das crashdetect-Plugin gibt dir in die Server.log datei den Fehler aus damit du weißt wo es harpert.
Für sowas ist das Plugin geschrieben worden.Das es angeblich nichts Bringt kann ich mir nicht vorstellen.
Einfach mal in de Server.log Datei rein schauen und hier Posten.
-
Ich will ja abfragen ob es so eine Interior id gibt oder nicht
@Jeffry -
ich weiß nicht wie ich die Abfrage machen soll für die Interiors.
@Jeffry -
-
Da das Script ein GF-Edit ist und mein Freund so wie ich nicht wissen wo der fehler liegt können wir nichts dran machen. Es ging ja kurz aber dann nach restart ging es nicht mehr.
-
Das Ganze mal bitte auf Deutsch
-
Guten Morgen
Meine frage ist bei ein freund sein Script kommt immer folgende Fehler in die Server.log datei.
sscanf warning: String buffer overflow.
was hat der fehler für eine bedeutung?
-
Mein Problem ist aber nun das ich nicht weiß wie ich abfragen soll wegen dem Interior da es sowas leider nicht gibt. Und ich auch nicht weiß wie ich sowas mache
-
Das ist alles was ich bis jetzt für das Haussystem habe:
Haussystem:
Code
Alles anzeigenenum Hauserenum { ID, IntID, Besitzer, Float:H_X, Float:H_Y, Float:H_Z, Float:H_R, Mieter, Mietpreis, Hauskasse, H_Level } new Hauser[MAX_PLAYER_HAUS][Hauserenum]; OnGameModeInit: CreateHVTable(); HausLaden(); SetTimer("AlleHauserSpeichern",60000,true); //-----------------------------------HAUSSYSTEM------------------- CreateHVTable() { new query[512]; format(query,sizeof(query),"CREATE TABLE IF NOT EXISTS `HAUSER` ("); format(query,sizeof(query)," %s `ID` int(12) NOT NULL PRIMARY KEY, ",query); format(query,sizeof(query), " %s `IntID` int(11) NOT NULL DEFAULT '0',",query); format(query,sizeof(query), "%s `Besitzer` int(11) NOT NULL DEFAULT '0',",query); format(query,sizeof(query), " %s `H_X` float NOT NULL DEFAULT '0'," ,query); format(query,sizeof(query), " %s `H_Y` float NOT NULL DEFAULT '0'," ,query); format(query,sizeof(query), " %s `H_Z` float NOT NULL DEFAULT '0'," ,query); format(query,sizeof(query), " %s `H_R` float NOT NULL DEFAULT '0'," ,query); format(query,sizeof(query), "%s `Mieter` int(11) NOT NULL DEFAULT '0',",query); format(query,sizeof(query), "%s `Mietpreis` int(11) NOT NULL DEFAULT '0',",query); format(query,sizeof(query)," %s `Hauskasse` int(11) NOT NULL DEFAULT '0')",query); mysql_tquery(handle,query); return 1; } HausLaden() { CreateHVTable(); mysql_tquery(handle, "SELECT * FROM Hauser ODER BY ID ASC", "Hausladen_Data"); return 1; } public Hausladen_Data() { //temporäre variablen: new rows,id,createdHaus; rows = cache_num_rows(); //schleife: for(new i=0; i<rows; i++) { id = cache_get_field_content_int(i,"ID"); if(id < 0 || id >= MAX_PLAYER_HAUS)continue; Hauser[id][IntID] = cache_get_field_content_int(i, "IntID"); Hauser[id][Besitzer] = cache_get_field_content_int(i, "Besitzer"); Hauser[id][H_X] = cache_get_field_content_float(i, "H_X"); Hauser[id][H_Y] = cache_get_field_content_float(i, "H_Y"); Hauser[id][H_Z] = cache_get_field_content_float(i, "H_Z"); Hauser[id][H_R] = cache_get_field_content_float(i,"H_R"); Hauser[id][Mieter] = cache_get_field_content_int(i,"Mieter"); Hauser[id][Mietpreis] = cache_get_field_content_int(i,"Mietpreis"); Hauser[id][Hauskasse] = cache_get_field_content_int(i,"Hauskasse"); Hauser[id][H_Level] = cache_get_field_content_int(i,"H_Level"); if(Hauser[id][IntID] >= 1 && Hauser[id][IntID] <= 19) { Hauser[id][ID] = CreatePickup(Hauser[id][IntID],1273,Hauser[id][H_X],Hauser[id][H_Y],Hauser[id][H_Z],0); } else { printf("[ERROR] Interior '%d' existiert nicht (id: %d).",Hauser[id][IntID], id); } createdHaus++; if(createdHaus == MAX_PLAYER_HAUS) return print("Es können keine weiteren Häuser geladen werden, Limit (MAX_PLAYER_HAUS) erreicht."); } return 1; } public AlleHauserSpeichern() { new query[256]; for(new i=0; i<MAX_PLAYER_HAUS; i++) { if(Hauser[i][IntID] >= 1 && Hauser[i][IntID] <= 19) { //Und wir erstellen das Query: format(query, sizeof(query), "UPDATE Hauser SET IntID = '%d', H_X = '%f', H_Y = '%f', H_Z = '%f', H_R = '%f', Besitzer = '%d' , Mieter = '%d' , Mietpreis = '%d', Hauskasse = '%d' , H_Level ='%d' WHERE ID = '%d'", Hauser[i][IntID], Hauser[i][H_X], Hauser[i][H_Y], Hauser[i][H_Z], Hauser[i][H_R], Hauser[i][Besitzer],Hauser[i][Mieter],Hauser[i][Mietpreis],Hauser[i][Hauskasse],Hauser[i][H_Level]); //handle = die Connection Handle ID die vor mysql_connect steht. mysql_tquery(handle, query); } } return 1; } stock GetNearestHaus(playerid) { new id = -1, Float:dist, Float:tmp = 5.0; for(new i = 0; i < sizeof(Hauser); i++) { dist = GetPlayerDistanceFromPoint(playerid, Hauser[i][H_X], Hauser[i][H_Y], Hauser[i][H_Z]); if(dist < tmp) { tmp = dist; id = i; } } return id; } // ---------------------------------------------------OCMD Befehle------------------------------------------------------------------------------------// ocmd:hausbearbeiten(playerid, params[]) { new item[16], value; if(sscanf(params, "s[16]d", item, value)) return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /hausbearbeiten [Preis/Miete] [Wert]"); new id = GetNearestHaus(playerid); if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in der Nähe eines Hauses."); if(!strcmp(item, "Preis", true)) { Hauser[id][Mietpreis] = value; //Nachricht etc... return 1; } else if(!strcmp(item, "Mieter", true)) { Hauser[id][Mieter] = value; //Nachricht etc... return 1; } //... return SendClientMessage(playerid, 0xFF0000FF, "Nutze: /hausbearbeiten [Preis/Miete] [Wert]"); } ocmd:hauserstellen(playerid,params[]) { return 1; }
-
Mehr habe ich nicht @Jeffry
-
Neuste Version ist MYSQL R39-4 und du kannst das Tutorial von @Jeffry dafür auch benutzen.
-
ich weiß leider nicht so ganz wie ich mein befehl:
hauserstellen machen soll.
Da ich es ja mit sscanf machen will und ocmd
-
was wäre denn besser sscanf und ocmd ode die alte variante für befehle?
-
bei dem erstellen der Häuser wäre es da besser mit sscanf zu arbeiten oder eher schlecher?
Da es ja mit MYSQL-Verbunden ist. -
Guten Abend
Ich habe jetzt dank @Jeffry mein Mysql-Haussystem fertig.
Nun weiß ich nicht wie ich das mit ein OCMD befehl verbinden kann das es sich auch in die Datenbank rein schreiben lässt und beliebig ändern lässt vom Ingame aus.
Das heißt wenn ich im Spiel bin gehe ich zu ein Haus und erstelle eins da mit den daten und dann wenn ich es mit /hausbearbeiten die Häuser ändern kann so das ich Besitzer,Hauskasse, Interior und das Level für das man braucht um ein Haus zu kaufen.