Beiträge von Jameso

    Keine Ahnung ob dies weiterhilft,
    manchmal crasht der Server, das Problem besteht immer noch, dass nichts in der Datenbank passiert.


    Der Server crasht aber nur manchmal, heißt mit irgendeiner Wahrscheinlichkeit crasht es.
    Hier nochmal der Code:

    C
    new query[246];
    			mysql_format(handle, query, sizeof(query), "INSERT INTO garage (X, Y, Z, ID, Kaufpreis, InteriorType, existiert, Lock) VALUES");
    			mysql_format(handle, query, sizeof(query), "%s (%f,%f,%f,%d,%d,%d,%d,%d)",query, gInfo[i][gX],gInfo[i][gY],gInfo[i][gZ],gInfo[i][db_gid],gInfo[i][gKaufpreis],gInfo[i][ginttype],gInfo[i][gexistiert],gInfo[i][gLock]);
    			mysql_pquery(handle,query);


    Bin am verzweifeln, was ist denn hier falsch? er zeigt mir sogar den Wert an, heißt das es doch richtig sein muss.

    C
    mysql_format(handle, query, sizeof(query), "INSERT INTO garage (X, Y, Z, ID, Kaufpreis, InteriorType, existiert, Lock) VALUES");
    			mysql_format(handle, query, sizeof(query), "%s ('%f','%f','%f','%d','%d','%d','%d','%d')"//query,........

    http://prntscr.com/o5lawi



    Code
    [16:06:41] [DEBUG] processing internal specifier 'c'
    [16:06:41] [DEBUG] pushed value '1' onto AMX stack
    [16:06:41] [DEBUG] processing internal specifier 's'
    [16:06:41] [DEBUG] pushed value 'INSERT INTO garage (X, Y, Z, ID, Kaufpreis, InteriorType, existiert, Lock) VALUES ('775.807861','-1379.737549','13.651802','3','25825','1','1','1')' onto AMX stack
    [16:06:41] [DEBUG] processing internal specifier 's'
    [16:06:41] [DEBUG] pushed value '' onto AMX stack
    [16:06:41] [DEBUG] processing internal specifier 's'
    [16:06:41] [DEBUG] pushed value '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 'Lock) VALUES ('775.807861','-1379.737549','13.651802','3','25825','1','1','1')' at line 1' onto AMX stack
    [16:06:41] [DEBUG] processing internal specifier 'c'

    Ja aber, wo das InteriorType = 2 ist soll ja auch neu gezählt werden. So das jeder Typ die maximale Anzahl an VirtuellenIDS erstellen kann, dann habe ich am Ende mehr davon.
    AUTO_INCREMENT hilft ja dann, hätte ich dieses Types nicht würde ich sagen.



    Wie erstelle ich ein DynamicPickup in allen Virtuellen Welten? Das selbe auch für 3DTextLabels,
    soll ich wirklich eine Schleife durchlaufen lassen? Oder gibts da was anderes?

    Ja das letzte ist mir bewusst, habe es eben geändert, um zu zeigen was mein Ziel ist :D


    Aber es ist doch so, dass er ja bei der Schleife mit der 0 beginnt, wenn ich dann returne gibts keinen Callback mehr zumindest geht der nicht weiter.
    Heißt die Schleife macht theoretisch dann nicht mehr weiter oder?


    Ist der Spieler nicht in der Nähe von i returnt er ja, was ist mit dem Rest?

    STRG + F gedrückt und geschaut, wird sonst nicht ausgeführt, nur beim Disconnect erscheint beides sofort.
    Ist auch egal, Fehler wurde aufgeschrieben, bis ich vorerst keine negativen Auswirkungen festelle, verschiebe ich das mal...


    Bin gerade überfordert, wie frage ich in einer Schleife ab, ob ein Spieler in der Nähe ist mit einer Nachricht wenn nicht.
    So hört er ja komplett auf, wenn ich das return und wenn ich in der schleife den else part mache ist ja komplett doof :D


    Was wäre effektiv? (Zeile 4.)


    Also so gehts nicht

    In Zeile 55. ist kein Komma. Das Komma kommt nach  "


    Wie gesagt, beim Disconnect:
    SpielerSpeichern(playerid);


    Oh, ja die Query wird jetzt auch ausgeführt.
    Jetzt updatet der Wert auch.


    Warum es da doppelt kommt weiß ich allerdings nicht :(

    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

    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.

    C
    gBesitzer[30],
    Code
    [22:12:00] [DEBUG] cache_get_value_name(1, "Besitzer_Name", 0x0476F654, 1)
    [22:12:00] [DEBUG] cache_get_value_name: assigned value: 'TEST'
    Code
    cache_get_value_name(garageid,"Besitzer_Name",gInfo[garageid][gBesitzer]);
    		printf("%s",gInfo[garageid][gBesitzer]);
    Zitat von SkeeZy

    PRIMARY KEY Wert mit Auto_Increment

    Kann mich jemand aufklären, ob so etwas sein muss?
    Bei mir habe ich das ohne Auto_Increment gemacht, die ID wird dann immer selber gesetzt.
    Hat das was mit Sicherheit zutun oder so, ich hab echt kein Plan warum man das so macht :D


    Danke im voraus ^^

    Oh danke, das wäre eine Lösung.
    Wie würde dann hierbei eine Abfrage aussehen, ob der Slot frei ist bzw. die Garagenid?


    C
    for(new i;i<sizeof(gInfo);i++)
    	{
    		//eine if abfrage

    Soll ich in der ersten Abfrage folgendes abfragen:
    Wenn die Garage dbID größer als 0 ist ...


    oder wie?

    Ja was kann ich denn alternativ machen, dass ist ja die Frage.
    Wenn ich ja eine Garage hinzufüge ist ja die maximale Anzahl von den Garagen höher, wie funktionieren denn die ganzen dynamischen Häuser Systeme z.B
    Ich kenne mich ja damit nicht aus

    Verstehe nicht, wie ich Forech dann hier anwenden soll?
    Vielleicht war mein Beispiel nicht das Beste :D, mir geht es hauptsächlich nicht um die Schleifen, sondern wie ich dynamisch MAX_GARAGE in meinem Beispiel hinkriege.
    Ansonsten korrigier mich, falls ich komplett falsch liege

    Hello,
    Ich habe ein Problem bei einem dynamischen Garagen-System, was ich erstellen möchte.


    C
    #define MAX_GARAGE 10
    new gInfo[MAX_GARAGE][garinfo];

    Um z.B beim erstellen Schleifen zu nutzen, muss ich ja die Maximale Garagen-Anzahl angeben.


    Aber, wenn ich mit einem Befehl eine neue Garage erstelle, ändert sich diese doch immer.
    Was kann ich da machen?
    Ich habe daran gedacht eine Variable wie MAX_GARAGE zu erstellen und beim erstellen immer +1 zu rechnen, aber wo soll ich dies speichern, kann das doch nicht in der selben Tabelle speichern.

    Hab ein Problem einen String zu speichern bzw. einzeigen zu lassen:
    AHVbaujahr[20] und P_Baujahr[20]





    C
    PCar[playerid][d][P_Baujahr] = AHVehTypes1[i][AHVbaujahr];
    								printf("%s",PCar[playerid][d][P_Baujahr]);
    								printf("%s",AHVehTypes1[i][AHVbaujahr]);

    der zweite Print funktioniert super, der erste aber nicht, warum ? :D
    Also beim ersten kommt nur das erste Zeichen "(" danach nichts mehr.


    Die Variable setzte ich so:


    C
    format(string_tmp1, sizeof(string_tmp1), "(%s) %d", getMonat(Month), Year);
        	AHVehTypes1[FahrzeugID][AHVbaujahr] = string_tmp1;

    Hey,
    Ich habe Textdraws, mit diesen will ich ein Zahlenschloss machen.
    Ich hatte immer das Problem, wenn der Spieler die Anfangszahlen 0 lässt, sind die Zahlen nicht vorhanden bzw. werden nicht angezeigt.


    benutze ich anstatt dem stock val ( Kaliber) nur strval, taucht das oben geschrieben Problem auf, mit der 0.
    Benutzte ich allerdings den Stock Val, gibt er mir bei den Zahlen 48, 50, 52 oder so raus.


    C
    stock val(const string[])
    {
    	new tmp[MAX_CODE_LEN+1];
    	format(tmp,sizeof(tmp),"%04d",strval(string));
    	return tmp;
    }

    Jo, danke Kaliber!
    Ja das hatte ich gesucht, hab es in meinem Script gefunden nach langem suchen ty


    C
    new tmp[MAX_PCARS][PCarEnum];
    			PCar[playerid] = tmp;

    Wie ändere ich das jetzt um, dass er mir nur von einen bestimmten Slot also [MAX_PCARS] alles entfernt, also das MAX_PCARS einen integer kriegt von nem PVar