[SAMMELTHREAD] Kleine Scripting Fragen

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
  • Na, dann kannst du einfach so was machen:


    Sollen ja schließlich nur leere Fahrzeuge gerespawnt werden.


    PS: Die Implementation von IsVehicleOccupied ist nicht sehr effizient. Es gibt hier bessere Methoden, wie z.B. einfach ein bool flag o.ä. in der Variable und anschließend Callbacks zum Aktualisieren nutzen.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Na, dann kannst du einfach so was machen:


    Sollen ja schließlich nur leere Fahrzeuge gerespawnt werden.


    PS: Die Implementation von IsVehicleOccupied ist nicht sehr effizient. Es gibt hier bessere Methoden, wie z.B. einfach ein bool flag o.ä. in der Variable und anschließend Callbacks zum Aktualisieren nutzen.

    ob einer im fahrzeug ist hätte ich so gedacht


    Ich werds mal testen danke dir


    //es geht lol es lag echt nur an meiner if abfrage

    Code
     if(SpielerInfo[playerid][pFraktion] != fracVehicle[i][e_fracID])

    und ich war fast dran............. danke dir :D

    3 Mal editiert, zuletzt von undbyebye ()

  • C++
    //Also strcat ist was du nutzen willst, anstatt format ;)

    Danke erstmal.

    Wenn strcat am sinnvollsten ist, dann ja :D


    Hatte das ganze Thema glaubig sogar mit dir vor zwei Jahren oderso schonmal. Ist nur alles zu lange her mit SAMP scripting.

    Und da ich ja jetzt alles von Grund auf neuscripten muss, mache ich es lieber direkt richtig und frage ein zwei Male mehr.

    MfG. Adrian

  • oder kann die liste unendlich lang sein?

    Wir sind hier bei SA:MP, alles hat Limits ^^


    Limits - SA-MP Wiki


    Die maximale Länge ist auf die String-Größe von 4096 begrenzt.


    Da du minimal 2 Zeichen pro Zeile benötigst, also einen char + \n und einen EOS abziehen musst, landen wir bei max 2047 Rows :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Naja, wieso nutzt du VehicleComponentName[], also das [] bezieht sich ja auf die zweite Dimension eines Arrays.


    Denke du willst es ohne das [].

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Naja, wieso nutzt du VehicleComponentName[], also das [] bezieht sich ja auf die zweite Dimension eines Arrays.


    Denke du willst es ohne das [].

    Stimmt upsi :D danke dir


    Hallo,

    ich brauche mal eure hilfe stehe auf dem schlauch

    er soll wenn die strings gleich sind 0 returnen und wenn nicht 1 jetzt returnt er jedoch immer 1 warum :D

    2 Mal editiert, zuletzt von _Flex_ () aus folgendem Grund: Ein Beitrag von _Flex_ mit diesem Beitrag zusammengefügt.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • was ist der beste weg um ein Vehicle zu rotieren.


    Ich versuche ein Vehicle zu parken, dabei respawne ich es mit SetVehicleToRespawn() dann setze ich es auf eine Position die vorab gespeichert wurde uns versuche die Rotation auch auf die gespeicherte zu setzen, da aber kein Spieler im Fahrzeug ist funktioniert das ja nicht. Könnte jetzt das SetVehicleToRespawn wegmachen aber ich möchte auch ein command um das Vehicle zu respawnen und das zu dem geparkten ort mit der geparkten rotation.

  • was ist der beste weg um ein Vehicle zu rotieren.


    Ich versuche ein Vehicle zu parken, dabei respawne ich es mit SetVehicleToRespawn() dann setze ich es auf eine Position die vorab gespeichert wurde uns versuche die Rotation auch auf die gespeicherte zu setzen, da aber kein Spieler im Fahrzeug ist funktioniert das ja nicht. Könnte jetzt das SetVehicleToRespawn wegmachen aber ich möchte auch ein command um das Vehicle zu respawnen und das zu dem geparkten ort mit der geparkten rotation.

    Dann setze es mit GetVehicleZAngle die rotation

  • dann setze ich es auf eine Position die vorab gespeichert wurde

    Du setzt mit SetVehicleToRespawn es auf die Position, auf der du es mit CreateVehicle erstellt hattest.

    Wie @Grosim vermutlich meinte, kannst du einfach SetVehicleZAngle für die Rotation verwenden.

    Alternativ kannst du auch einfach beim CreateVehicle, den a Parameter richtig setzen, dann genügt SetVehicleToRespawn vollkommen :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Geht nur wenn jemand im Fahrzeug ist, was ja mein problem ist.

    Wie gesagt, dann musst du in CreateVehicle die Angle setzen :) Bzw Fahrzeug zerstören und wieder erstellen.


    Hallo,

    ich brauche mal eure hilfe stehe auf dem schlauch

    er soll wenn die strings gleich sind 0 returnen und wenn nicht 1 jetzt returnt er jedoch immer 1 warum

    Drehe die Logik:

    Aber prüfe vorher irgendwo, dass die Strings nicht leer sind, sonst kommt auch immer 0 heraus!!!

    Bzw ergänze diese Prüfung!

    C
    IsPlateFree(platestring[35])
    {
        for(new i; i<sizeof(cInfo); i++)
        {
            if(strcmp(platestring,cInfo[i][plate],true) == 0) return 0;
        }
        return 1;
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hab ich mir schon gedacht, habe jedoch gehofft es gibt einen anderen weg haha, danke

    Nein vorm erstellen oder zerstören nur so geht der weg leider :) hatte ich aber vorhin auch nicht bedacht ^^

  • Ahoi, ich wollte fragen ob es eine Möglichkeit gibt, wie man dynamische Dialoge erstellt.

    Meine Idee ist es ein Inventar zu erstellen und im Dialog die Items und die Anzahl anzuzeigen.

    Allerdings soll man nur die Items sehen die man besitzt.

    Z.B. Sollen die Donuts nur angezeigt werden, wenn ich welche besitze.


    Ich bedanke mich schonmal im Voraus.

    Homepage: nes-newlife.de | Nova e-Sports German Reallife


    SA:MP IP: server.nes-newlife.de:7777

  • Grundsätzlich kannst du ein Dialog deiner Wahl nehmen und nur das hinzufügen, was du möchtest.

    Wichtig ist, dass du den String immer weiter ergänzt, bis du alles abgefragt hast.

    Als Konzept Beispiel:


    Code
    new dialogInventarString[128], donuts = pInfo[playerid][pDonuts], milkshake = pInfo[playerid][pMilkshake];
    if(donuts > 0) format(dialogInventarString, sizeof(dialogInventarString), "Donuts - %d\n", donuts);
    if(milkshake > 0) format(dialogInventarString, sizeof(dialogInventarString), "%sMilkshake - %d\n", dialogInventarString, milkshake);
    if(...
    ShowPlayerDialog(playerid, dialogid, style, caption, dialogInventarString, button1, button2);


    //EDIT


    Und wenn dein "dynamisch" darauf bezogen war, dass sich die Werte in der Zeit, wo du die Dialoge offen hast, ändern können, kann ich dir folgendes empfehlen:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen