[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
  • wie kann ich ein frak carrespawn machen?
    bei mir compilet der einfach nicht wenn ich das so habe, kann mir jemand helfen?




    if(dialogid == DIALOG_Frakcars)
    {
    if(response)
    {
    if(listitem == 0)
    {
    for(new v=0; v<LSPDCar; v++)
    {
    if(GetVehicleDriver(v) == -1)
    {
    SetVehicleToRespawn(v);
    SetVehicleHealth(v,1000);
    format(string, sizeof(string), "%s hat die Fraktionsfahrzeuge der Fraktion LSPD [ID: 1]respawnt.", sendername);
    ABroadCast(COLOR_YELLOW,string,1);
    return 1;
    }
    }

    }
    }
    if(listitem == 1)
    {
    for(new v=0; v<fbicar; v++)
    {
    if(GetVehicleDriver(v) == -1)
    {
    SetVehicleToRespawn(v);
    SetVehicleHealth(v,1000);
    format(string, sizeof(string), "%s hat die Fraktionsfahrzeuge der Fraktion FBI [ID: 2]respawnt.", sendername);
    ABroadCast(COLOR_YELLOW,string,1);
    return 1;
    }
    }
    }
    }
    }
    }

  • bei mir compilet der einfach nicht wenn ich das so habe, kann mir jemand helfen?

    Da ist vermutlich ein Klammerfehler und deine Schleifen sind falsch...


    Aber ich würd dir eh empfehlen, es so zu schreiben:


    ast2ufdyxkb1.png


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

  • Kann ich irgendwie alle Objektpositionen vom Objekt z.b 295 herausfinden? (Normale Objekte keine erstellten)
    Ich habe nichts gefunden.


    //Seite hat nicht geladen

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ja, ich habe gelesen das die normalen Ampeln dann nicht mehr funktionieren, wenn man ein eigenes Ampelsystem macht, und das wollte ich jetzt testen

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • und das wollte ich jetzt testen

    Nur zur Info, du musst das nicht alles selbst schreiben, da gab es schon einige vor dir:


    https://forum.sa-mp.com/showthread.php?t=646429
    https://forum.sa-mp.com/showthread.php?t=509952
    https://forum.sa-mp.com/showthread.php?t=301328


    Vielleicht hilft dir das ja ein wenig weiter :)

    ast2ufdyxkb1.png


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

  • Danke nochmal fuer die Makro Variante fuer das Sprachensystem.
    Leider ist in diesem Fall doch eher eine andere Variante via Funktion gewuenscht.
    Ich habe das mal so gemacht, interessanterweise reconnected der Spieler wenn das hier ausgefuehrt wird :D Sowas habe ich vorher noch nicht geschafft.


  • Ich habe ein Array voller Koordinaten, zu diesen will ich per Zufall eine aussuchen (x,y,z) und abfragen, ob diese eine Koordinate schon benutzt wurde, damit er beim zweiten mal dort kein Checkpoint kriegt, sondern
    dann eine noch nicht benutzte Koordinate rausgesucht wird.
    Ist etwas für ein Job


    was wäre das schlauste?
    Wenn ich ein Enum dazu erstelle und dort z.b 0 eintrage, kann ich dann beim setzten da die 1 setzten und später abfragen ob es auf 1 ist?
    Das geht ja alles nicht über Playerid oder?

    Code
    stock const Float:trash1[][] =
    {
    	{770.2623,-1260.5071,12.4866}, // 1
    	{-69.7510,-1624.0002,12.4859,0}, // enum Beispiel
    //...
    };

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wieso? :o

    Leider gibt es da doch Errors :/
    Wuerde dann auch gerne die funktionierend SendMessageEx Funktion nutzen um das ganze bspw. fuer Dialoge und GameTexts als auch TextDraw Strings abzuwandeln.
    Leider werde ich aus dem #emit Kram nicht schlau, kann man die Funktion denn auch mit format etc. ausdruecken? Das Problem ist ja irgendwie die Argumente hinten zu erfassen.



    Gibt es uebrigends auch die Moeglichkeit bei zcmd, bzw. izcmd sowas wie alias einzurichten?
    So dass ich bspw. die Hilfe nicht einfach mit /ayuda aufmachen kann, sondern mit /ayuda /ajuda und /help, alles fuer den gleichen Befehl.

    Einmal editiert, zuletzt von Sub Royal ()

  • Ich habe einen Befehl, den man nur in einen der beiden Fahrzeug-Typen nutzen kann.
    Beide Fahrzeugtypen haben die selbe Model-ID sind aber anders.
    2 Schleifen hintereinander sind ja nicht so das gelbe vom Ei, was kann ich machen?
    Ich kann ja nicht abfragen, ob der Spieler in dem Vehicle-Model ist, da man dafür die Vehicle-ID brauch... :(

    C
    new FahrzeugTypA[10];
    new FahrzeugTypB[10];


    Code
    for(new idx;idx<sizeof FahrzeugTypA;idx++ )
    {
    	for(new i;i<sizeof FahrzeugTypB;i++ )
    	{

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Mal eine Frage wie mach ich das das keiner zwischen 05:45 Uhr und 06:00 Uhr joinen kann.


    ist das so richtig ?



    if(Stunde == 5 && Minute == 45 && Sekunde == 0)
    {
    for(new i=0;i<GetMaxPlayers();i++) {
    ShowPlayerDialog(i,Dialog_Aufraeumen,DIALOG_STYLE_MSGBOX,""SERVER_NAME"","Der Server ist aufgrund Aufräumarbeiten unerreichbar.\nBitte versuche es in Kürze erneut.","Schließen","");
    SavePlayer(i);
    Kick(i);
    }
    return 1;
    }

  • Code
    if(Stunde == 5 && Minute > 44)

    Änder das mal so um, so müsste es perfekt sein, 5:45 hat er zu. Sobald es 6:00 Uhr ist ist der Server wieder erreichbar.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Leider gibt es da doch Errors

    Sei doch mal spezifisch, was denn für Fehler? :D


    Warum geht es nicht?


    Beide Fahrzeugtypen haben die selbe Model-ID sind aber anders.

    Wat?


    Was genau möchtest du denn nun wissen? Ich werde aus deiner Fragestellung nicht schlau?


    Willst du wissen, ob das Fahrzeug diese modelid hat...oder möchtest du wissen in welchem Fahrzeug er ist und zu welcher der Variablen gehört?


    Bzw möchtest du wissen, ob es ein Fahrzeug von Typ A ist oder von Typ B?


    //Edit:


    Das mit dem Trash machst du einfach so:


    C
    new idx = random(sizeof(trash1));
    SetPlayerCheckpoint(playerid, trash1[idx][0],trash1[idx][1],trash1[idx][2]);

    ast2ufdyxkb1.png


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

  • @Madness Hoffe mal ich habe richtig verstanden was du meinst. Dein Code widerspricht etwas dem, was du erreichen möchtest. ?(

    public OnPlayerConnect(playerid) {
    new time[3];
    gettime(time[0], time[1], time[2]); // Stunde, Minute, Sekunde
    if(time[0] == 5 && time[1] >= 45) {
    ShowPlayerDialog(i,Dialog_Aufraeumen,DIALOG_STYLE_MSGBOX,""SERVER_NAME"","Der Server ist aufgrund Aufräumarbeiten unerreichbar.\nBitte versuche es in Kürze erneut.","Schließen","");
    Kick(playerid);
    }
    }

    Den Rest müsstest du einfach kicken.


    E-2: Formatierung..

  • @Kaliber
    Ja ich habe 2 Möglichkeiten.
    Einmal könnte ich die Vehicle-ID abfragen, aber dafür habe ich 2 Arrays.
    Oder ich frage die Model-ID ab.


    Die Vehicle-ID abfrage gefällt mir da lieber, da ich nicht weiß ob ich das Model noch wo anders nutzen möchte


    Code
    if(vehicleid == FahrzeugTypA[idx] || vehicleid == FahrzeugTypB[i])

    Das ist ja so blöd, da ich 2 Schleifen davor laufen lassen muss.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.