Beiträge von ray187

    Nein, schau mal: Wenn irgend ein Player den Spieler der seinen Namen verdecken möchte schon reingestreamt hat (bspw. neben ihm steht) dann werden all diese Funktionen gar nicht aufgerufen.


    Deswegen, im Block deines Commands


    if (strcmp("/hidename", cmdtext, true) == 0)
    {
    //...
    }


    schleifst du einmal durch die Player durch, checkst ob sie den Spieler "playerid" gerade schon im Stream haben und wenn ja verdeckst du den Namen für eben diese Player. Umgekehrt natürlich genauso - wenn sein Name wieder angezeigt werden soll.

    Du musst natürlich auch auf die Player achten die den jeweiligen User schon reingestreamt haben.


    Deswegen einmal durchloopen, checken ob der Player schon gestreamed wurde und falls ja direkt den Namen für selbige verdecken.

    Jetzt schau dir mal ganz genau an was ich dir in meiner zweiten Antwort geschrieben hatte. Wenn ich dir versuche zu helfen fänd ichs nett wenn du im Gegenzug auch meine Antworten lesen und selbst nachschauen würdest denn exakt was ich vermutet habe ist das Problem.


    Schau es dir bitte nochmal genau an.

    Genau die meinte ich. Beim Überfliegen sieht der Code nicht Fehlerhaft aus. Könnte es sein, dass du bevor du die "dialogid" mit deinen if Bedingungen vergleichst schon if(response==0) ausschließt?


    Bsp.



    if(response==1) // Hier wuerde von vornherein der Klick auf den zweiten Button ausgeschlossen werden
    {
    // ...
    if(dialogid == Laiser)
    {
    if(response == 1)
    {
    laser1 = CreateObject(18102, 315.0163269043, -1798.9040527344, 9.3438835144043, 0, 0, 89.25);
    laser2 = CreateObject(18102, 321.86932373047, -1792.5891113281, 9.3006258010864, 0, 0, 359.74743652344);
    laser3 = CreateObject(18102, 326.41741943359, -1805.8864746094, 9.7828311920166, 0, 0, 359.74731445313);
    laser4 = CreateObject(18102, 334.57409667969, -1796.5161132813, 10.212516784668, 0, 0, 13.747314453125);
    laser5 = CreateObject(18102, 344.31259155273, -1805.1655273438, 9.4226922988892, 0, 0, 13.743896484375);
    laser6 = CreateObject(18102, 354.1728515625, -1797.6268310547, 9.7767124176025, 0, 0, 89.743896484375);
    laser7 = CreateObject(18102, 341.22039794922, -1788.908203125, 9.6941986083984, 0, 0, 89.741821289063);
    laser8 = CreateObject(18102, 346.10888671875, -1788.91796875, 8.8073768615723, 0, 0, 179.74182128906);
    SendClientMessage(playerid,Hellblau,"Die Laiser-Sow ist nun eingeschaltet!");
    ShowPlayerDialog(playerid,MARKT,DIALOG_STYLE_LIST,"Markt","Laderampe\nScooter Öffnen/schließen\nCarresapwn\nLaiser Show\nNebel","Ausführen","Abbrechen");
    }
    // ....
    }


    Ab mehr als 10 min Arbeit nicht mehr, sorry. Hab zu wenig Freizeit dafür und andere Möglichkeiten diese sinnvoller zu Nutzen. Allerdings garantiere ich im Gegenzug auch professionellen Code und ein einwandfreies Ergebnis.

    Wenn Du vor spezifischen Problemen stehst dann lege das Problem mitsamt dem jeweiligen Code doch einfach möglichst exakt dar. Das hört sich allerdings nach ner eher aufwändigeren Geschichte an - die ein wenig Zeit abverlangt. Was hast Du Dir bezgl. dessen überlegt? Sucht Du nen Scripter der sich ein paar Stunden nimmt um dein Script sauber zu recoden und falls ja, was bietest Du dafür?

    select abfrage oder count abfrage und dann deinen index auf num_rows/result setzen und auf 0 zählen beziehungsweise index solange hochzählen lassen bis num_rows erreicht ist.

    Ich arbeite nicht mit Filesystemen von daher vll. nur eine kleine Hilfe:


    Rechte des Linux Server richtig eingestellt? Dürfen neue Dateien vom Server erstellt werden? Ist das Filesystem das ihr benutzt ggf ein Plugin und ihr habt die Windows Version genommen -> das allerdings würde angezeigt werden.

    Wenn es größer als 3 ist wird der nachfolgende Code höchstwarsch. nicht mehr ausgeführt (wie gerade erwähnt). Einfach einen Check in die Funktion einbauen und schon ist das Problem gegessen.


    Es wäre äußerst hilfreich wenn du die Zeilennummern dazuschreiben würdest - oder einfach mal nur Zeile 8945-.49, denn:


    enum haus_typ
    {
    interior,
    Float:haus_x,
    Float:haus_y,
    Float:haus_z
    }
    new Typen[4][haus_typ] =
    {
    {1,223.043991,1289.259888,1082.199951}, //Schlecht
    {2,225.756989,1240.000000,1082.149902}, //Schlecht
    {3,235.508994,1189.169897,1080.339966}, //Gut
    {7,225.630997,1022.479980,1084.069946} //Sehr Gut
    };


    .. erzeugt keinen Compile-Fehler.


    Sind das dann wohl diese Zeilen?


    HausDaten[fullid][interior] = Typen[haus][interior];
    HausDaten[fullid][ix] = Typen[haus][haus_x];
    HausDaten[fullid][iy] = Typen[haus][haus_y];
    HausDaten[fullid][iz] = Typen[haus][haus_z];


    Der Fehler liegt daran dass du irgendwo "haus" deklarierst und es höher als 3 setzt. Warum wird das nicht in der Funktion deklariert?


    ray187: Das macht keinen Unterschied ob man die Größe selbst festlegt [4] oder ihn zählen lässt []


    Ist aber äußerst unnötig und in dem Moment indem du neue Blöcke hinzufügen willst reißt Dir da die Haare aus. Von daher, gar nicht erst anfangen. Vorallem bei großen Arrays und als Empfehlung für alle die nicht sehr firm mit scripten sind. Einfach ein schlechter Stil.



    Dudalus. Poste doch mal kurz die vier Zeilen. Ob haus>4 ist hat mit den Fehlermeldungen übrigens nichts zu tun - schon bei >3 wird es zu Fehlern kommen - aber nicht zu Compilerfehlern. Das merkste dann ingame wenn der restl. Code nicht mehr ausgeführt wird.

    Zur ersten:


    Falls die Autos gespeichert und erhalten bleiben sollen musst dir Gedanken über die Verwendung von Datenbanken machen. Das kann zum einen über Filesysteme zum anderen über Datenbanksystem wie mysql geschehen.


    Falls das nicht der Fall ist, schreib bitte nochmal was genau du scripten willst.



    Zum zweiten:


    Sind das nicht einfach unterschiedliche ModelIDs, die Autos auf denen LSPD draufsteht und die auf denen SAPD drauf steht?

    Sollte auch keinen Unterschied machen, denn zw. dem Ausführen des Codes schafft es der Server und Client sicherlich nicht dich vollständig geportet zu haben, dass du da durchfallen würdest.


    Bist dir sicher dass das Interior an der Position mit dieser Nummer existiert?