[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
  • kleinkiko: Du machst unter "OnPlayerKeyStateChange" eine Abfrage, welchen Knopf er drückt, und ob er in der Nähe des / eines Tores ist..
    Wenn ja, dann öffnest du die Schranke und schließt sie nach einem Timer, oder eben wieder per Knopfdrück..


    Hier mal eine Include, womit du sehr einfach eine Schranke erstellen kannst:
    B_Schranke


    Tor-Tutorial
    Tut1
    Tut2
    Tut3


    Vlt ist ja eines davon hilfreich..

  • Slash:


    Die Frage ist auch an alle gerichtet, nur Jeffry ist hier der aktivste und ich markiere ihn weil ich von ihm die schnellste Antwort erhofft hab.


    Ich habe kein Link, ich möchte einfach nur ein y_Dialog erstellen doch hab keine Ahnung wie.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Gibt es einen Geschwindigkeits- bzw. Performanceunterschied zwischen einem Script das auf hooked Includes aufgebaut ist und einem Script das alles in der selben Datei enhält ?


    Das kommt auf die Hooking Methode an ;)


    Ein Freund meinte y_Dialoge von y_less oder so


    Achso, sag das doch ^^


    Dann das hier: http://forum.sa-mp.com/showthread.php?t=295049


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Hi,

    Ich möchte es so machen, dass wenn ich z.B.: anstatt von /enter , /ente oder irgendetwas falsches eingebe, oder irgendeinen Command, den der Server gar nicht kennt,
    nicht "SERVER: Unknown Command" als Nachricht ausgibt, sondern diese Nachricht sendet "Dieser Befehl wurde nicht gefunden. Tippe /Help für Befehle."


    Wie mache ich das?

  • public OnPlayerCommandText(playerid,cmdtext[])
    {
    return SendClientMessage(playerid,-1,"Der Befehl wurde nicht gefunden!");
    }

  • Hey


    Bin gerade dabei alte Codeschnipsel in ein neues Script zu kopieren.
    In den alten Codeschnipsel sind bereits Variablen definiert, die ich später erst brauche.


    Dadruch taucht eine nervige Liste von "is never used" beim compilen auf.


    Gibt es eine Möglichkeit die Warnings auszublenden?
    Damit meine ich nicht
    #pragma unused "variable"
    sondern eine Anweisung die direkt alle Warnings dieser Art ignoriert.

  • sondern eine Anweisung die direkt alle Warnings dieser Art ignoriert.


    Ja gibt es und das ist der berühmte "stock" ;)


    Wenn du globale Variablen hast:


    new stock x,y,z; //Auch wenn die sie nicht nutzt, kein Warning


    Leider ist dieser nur global anwendbar, ansonsten auf lokaler ebene, musst du mit Pragma arbeiten:


    if(...)
    {
    new x,y,z;
    #pragma unused x,y,z
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • verstehe ich nur halb :D


    also angenommen folgende variabeln sind da:


    new var1;
    new var2;
    new var3;
    new var4;
    new var5;


    nun kommen ja foldende meldung
    is never used: var1
    is never used: var2
    ...
    is never used: var5


    Und mit #pragma unused var1; würde ich die meldung für var1 ignorieren lassen, möchte sie jedoch für alle ignorieren und dabei nicht für jede einzelnde diese anweisung schreiben.

  • Und mit #pragma unsed var1; würde ich die meldung für var1 ignorieren lassen, möchte sie jedoch für alle ignorieren und dabei nicht für jede einzelnde diese anweisung schreiben.


    Wenn es auf globaler Ebene ist, dann deklarier die Variablen so:


    new stock var1, var2, var3, var4, var5;


    //Kannst zur übersicht natürlich auch:
    new stock
    var1,
    var2,
    var3,
    var4,
    var5;


    //Ansonsten musst du es so machen:
    new stock var1;
    new stock var2;
    new stock var3;
    new stock var4;
    new stock var5;


    Und mit pragma sollte man nur auf lokaler Ebene arbeiten, sprich dann so:


    new var1;
    new var2;
    new var3;
    new var4;
    new var5;
    #pragma unused var1,var2,var3,var4,var5


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Hallo


    Habe ein blödes Problem.
    Mein Crashdetect Plugin hat mir soeben verraten das ich an irgenteiner Stelle oder nach bestimmten Ereignissen eine maximale Array Größe von 2000 überschreite.
    Unzwar ist der Größte Index 1999, der wird an irgenteiner Stelle überschritten.


    Mir wird auch gesagt wann das passiert, das Public wird genannt, doch in diesem public habe ich kein Array von 2000.


    Also habe ich die Samp Limits angeschaut, und gesehen das es maximal 2000 Fahrzeuge geben kann und dachte, dass ich den Fehler gefunden habe, da wird zu dem Zeitpunkt vom Crash auch mit Autos "gespielt" haben.


    Habe soeben ein kleinen testbefehl eingebaut, der mir die Anzahl der Autos wiedergibt (ca 750-800 also weit unter 2000):
    new count = 0;
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    if(IsValidVehicle(i)) count++;
    }
    new str[50];
    format(str,50,"Fahrzeuge: %d", count);
    SendClientMessage(playerid, COLOR_RED, str);
    return 1;


    Wie gesagt: Habe alle Arrays überprüft, keiner hat eine größe von 2000. Gibt es sonst noch Möglichkeiten? Der Punkt ist das der Wert von genau 1999 überschritten wurde und somit außerhalb der größe des Arrays ist.