Beiträge von Knolle

    Dann musst du deine Definierung deiner Mülltonnen ebenso gestalten.
    Sprich von nur Koordinaten erweitern um die 3 weiteren Felder.
    Es gibt andere Möglichkeiten, um die 6 Felder beizubehalten, aber ergibt wenig sinn, dies auch wirklich zu tun. :)

    ich habe eine kurze Frage bezüglich eines Pawncompiler Fehlers'.


    Folgenden Errorhinweis erhalte ich:
    error 052: multi-dimensional arrays must be fully initialized.


    Code
    new Strassen_Muell_Info[MAX_STRASSEN_MULL][Strassen_Muell] =
    {
    	/*
    	Hier habe ich all meine Müllkoordinaten eingefügt
    	hier nochmal die letzte Zeile:
    	*/
    	{1681.2594, -2255.9763, -3.6071, 0.00, 0.00, 0.00},
    	{1682.0052, -2322.0591, -3.5742, 0.00, 0.00, 0.00}
    };

    Was meint er denn mit Multi-Dimensional?

    Ist die Anzahl der Einträge von zu erstellenden Mülltonnen die selbe wie die von MAX_STRASSEN_MULL?
    Falls ja: Wie ist Strassen_Muell aufgebaut? Hast du vielleicht in dem Enum mehr als 6 Felder?
    Falls nicht: Versuch mal spaßeshalbar MAX_STRASSEN_MULL auf 2 zu setzen und dann die von dir genannten Werte zu nutzen.
    Was erhälst du nun?

    Du hattest einen kleinen Fehler. :)
    Du hattest eine Geschweifte Klammer vergessen. Aber nun habe ich deine Stadthalle in die dafür vorgesehene Funktion eingepflegt. :)



    Btw: Bei deiner Navigation kannst du ganz gut auch Arrays verwenden.

    Und dann kannst du direkt die erhaltene Row nutzen als Index Zeiger. :)
    Geht natürlich ganz gut, solange du nichts sonderbar großes haben möchtest. Wie in deinem Fall, ist es ja nur in den eckigen Klammern den Namen einfügen (format()) und dann die Nachricht Senden. :)

    Also hast du die nun ein zweites mal im Script?
    Oder verstehe ich dich da falsch?
    Falls zutreffend:
    - kopiere den Inhalt was in der public Funktion passieren soll in die jeweils andere hinein.
    - Alternativ: hook dein zweites Callback (nur geeignet, wenn man gute Kenntnisse besitzt im Scripten bzw. man verwendety_hook)
    Falls nicht zutreffend:
    lies zweite Zeile: verstehe dich falsch.

    Ich verstehe den Sinn nicht ganz.
    Wenn du ne Whitelist hast, was quasi "registerd users only" gleich kommt, heißt es ja nichts anderes als, das man beim Connecten überprüft, ob Daten für den Spieler vorhanden sind, wenn ja -> login.
    Andernfalls Registrierungs Prozess anstoßen und den User seine Daten eingeben lassen.


    Wenn du gewillt bist, kannst du sogar die Registrierung inklusive Registrierung abschließen über PHP (Link in E-Mail) kreieren, ohne das der Spieler jemals das Spiel in der Zeit beenden muss, sei es gezwungen oder selber.

    Du führst ein einfaches Select aus, mit der Bedingung, das die FraktionsID die gleiche ist


    SELECT * FROM frakrkasse WHERE fID = %d


    Darauffolgend schaust du, ob du eine Zeile hast, ergo
    cache_get_row_count()
    Wenn diese Funktion den Wert 1 zurückliefert, so hast du einen passenden Datensatz, der dir dann erlaubt, ein Update auszuführen.
    Andernfalls machst du direkt ein Insert
    INSERT INTO frakrkasse(Rang0,Rang1...) VALUES("praktikant","Anhänger"...)
    Hier kannst du ebenfalls mit mysql_format arbeiten, falls du fragen solltest. :)

    Was hast du denn gemacht?
    Hast du denn bereits den Datensatz? Wie erwähnt, wenn nicht: erst inserten/einfügen.


    Du kannst unter diesem Umstand auch kein Fehler erhalten, da die Abfrage ja nun von der Syntax her korrekt ist.
    Nun ist es nur noch ein logischer Fehler, den du selbst beheben musst mittels schauen, ob der Datensatz überhaupt vorhanden ist.

    Hah, Fehler gefunden.


    Dein Feld fID ist ein Feld, welches eine Zahl enthält.
    '4' -> Text/Varchar/o.ä
    Dies kann auch nicht Funktionieren.
    Das bedeutet folglich:
    Where fID = %d

    Ich erkenne nun auch den Fehler:
    Wie PHPMyAdmin schon sagt, hast du keine Datensätze.
    Du kannst Updates nur auf bereits vorhandene Datensätze ausüben.
    Dies bedeutet für dich, das du vorher überprüfen musst, ob Datensätze vorhanden sind.
    Wenn nicht: insert
    Wenn wohl: update


    Andere Variante: object relation mapping
    Ist ebenfalls bei dem Plugin mit an board.
    Wenn du dort ein "Update" machen möchtest, so verwendet man mit der Methode orm_save
    Nur das schöne hier ran ist, das hier schon alles intern abgewickelt wird, sprich "falls nicht vorhanden, insert, andernfalls update". :)
    Ist aber nur zu gebrauchen, wenn man sich damit auseinander setzt und auch versteht, wie das ganze funktioniert.

    Ich gebe dir eins auf den Weg:
    Es gibt eine Funktion, mit der du erfahren kannst, was für ein Fehler aufgetreten ist:
    mysql_errno();
    mysql_pquery mit einem Callback versehen und dann in diesem printen lassen, was der Fehler ist.
    Andere Möglichkeit: schreibe das mysql_pquery zu mysql_query um und mach hier genau das gleiche:
    nach dem query erhälst du vom mysql server ein paar Werte, die mittels Funktionsaufrufe ausgelesen werden können, unter anderem dem Error Code.
    mysql_errno()


    Dann kurz googlen und du hast den Fehler.
    Erspart dir viel Arbeit bzw. Wartezeit. :)

    Der Callback "OnPlayerSelectedMenuRow" ist nicht ganz zufällig auch das letzte im Script? Wenn doch, dann schau mal, ob der Funktion/Callback zuvor etwas fehlt bzw. platziere diese mal um, schauen ob der Fehler nach wie vor der gleiche ist.
    So können wir ohne große weiteres die Fehlerhafte Funktion ausfindig machen.
    Ich schlage dies vor, da der Callback selbst richtig definiert ist und auch keine geschweifte Klammer hier fehlt.

    So als einen kleinen Tipp am Rande:
    Ich habe ganz schnell gelernt, das 26 Fehler meist bedeutet, das ich irgendwo eine geschweifte klammer vergessen habe. Hier war es der gleiche Fall.
    Du hattest alle wieder geschlossen, bis auf die strcmp if abfrage ganz zu Anfang. Sollte nun nicht mehr der Fall sein. :)
    Tipp #2 (Basiert auf Tipp #1): nimm dir bei sowas auch ruhig einen Texteditor zur Hilfe, highlighten lassen, wo eine geschweifte Klammer geöffnet und geschlossen wird. ;)
    Und wenn du sie nicht findest, dann ruhig Stück für Stück Teile rausnehmen bzw auskommentieren und iwann siehst du, dass das komplieren klappt und du hast deinen Übeltäter.
    Klappt übrigends auch im großen Stil, dauert nur bisschen mehr.

    C
    public OnPlayerSelectedMenuRow(playerid, row) {
    	if(GetPlayerMenu(playerid) == Stadthalle) {
    		switch(row) {
    			case 0: { ShowPlayerDialog(playerid, DIALOG_JOBS, DIALOG_STYLE_LIST, "Los Santos Arbeitsamt", "Detektiv\nMüllmann\nPilot\nAngler\nBodyguard\nZeitungsjunge\nBoxer\nBusfahrer\nPizzalieferant\nProdlieferant (FreizeitJob)\nMechaniker\nAnwalt", "Auswählen", "Abbrechen"); }
    			case 1: { if(PlayerInfo[playerid][pOwnPerso] == 1){} }
    		}
    	}
    	return 1;
    }

    Dein Problem lag darin, das der Compiler sehr primtiv ist und du eine offene If abfrage hattest ohne eine Anweisung dahinter.
    Aber wie gesagt, primitiv, daher wurde quasi eine geschweite Klammer mit dem if in verbindung gebracht.
    Nun habe ich einfach geschweifte Klammern hinzugefügt und dies sollte nicht mehr der Fall sein. :)

    Überprüf mal, ob deine Hardware noch am Rechten Fleck ist und nicht nur halb.
    Desweiteren: versuch auch mal die Festplatte an eine anderen System noch zum laufen zu bringen. Mit etwas pech könnte dir deine komplette Hardware abgeraucht sein (schnell analyse mit der wenigen Information)


    Asou, ja genau.
    Es kommt nach dem Logo?
    Dann versuch doch mal mit einem anderen System ein USB Stick fertig zu machen, worauf du Linux hast (Linux Live, bootable) und natürlich im Motherboard kurz den Bootmanager umstellen auf: als erstes USB (sofern es nach der Festplatte kommt). So könntest du ebenfalls erfahren, ob die Festplatte bzw. Windows defekt ist.

    Ich brauche Hilfe bei meiner Fraktionen Ränge System.
    Er speichert einfach nicht ab. In der Datenbank steht auch nix.


    stock SaveFNamen(frak){new query[256];mysql_format(dbhandle, query, sizeof(query),"UPDATE frakrkasse SET Rang0 = '%s', Rang1 = '%s', Rang2 = '%s', Rang3 = '%s', Rang4 = '%s', Rang5 = '%s', Rang6 = '%s', Fraktionskasse = '%d' WHERE fID = '%d'",fInfo[frak][frank0],fInfo[frak][frank1],fInfo[frak][frank2],fInfo[frak][frank3],fInfo[frak][frank4],fInfo[frak][frank5],fInfo[frak][frank6],fInfo[frak][FraktionsKasse],frak);mysql_pquery(dbhandle, query);return 1;}


    Es gibt eine Funktion, mit der du den Fehler untersuchen kannst:
    mysql_errno()
    Du kannst ja einmal kurz mysql_pquery zu mysql_query umschreiben und direkt im anlauf mysql_errno verwenden.
    Andernfalls gibst du mysql_pquery ein Callback und untersuchst dort den Fehler, da dieser Callback dann zugriff auf den Cache hat, mit dem es quasi aufgerufen worden ist.


    Problem found: liegt am YSF Plugin (kurtas version, R16)