2 gleiche Befehle in unterschiedlichen Filterscripts möglich?

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
  • Moin,


    Ist es möglich in meinem Haus Filterscript nen /enter befehl zu erstellen und später dann in meinen bizfilterscript auch ein /enter weil ich ja sowohl in die häuser als auch das biz mit /enter möchte? Crasht der Server dann? Wenn ja, wie kann ich das umgehen?

  • Crashen tut da nichts xD


    Allerdings funktioniert es auch nicht :)


    Der Befehl, der zuerst Skript-Technisch verarbeitet wird, wird immer aufgerufen werden.


    Du könntest den Befehl einfach umbenennen oder musst diese verknüpfen.


    z.B. mit PVars/CallRemoteFunction/Propertys :)

    ast2ufdyxkb1.png


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

  • Das kannst du problemlos machen, allerdings möglicherweise nicht mit allen Command-Prozessoren, daher das Beispiel mit strcmp (dcmd würde auch gehen).
    FS1:
    if(!strcmp(cmdtext, "/enter", true))
    {
    for(new i = 0; i < MAX_HOUSES; i++)
    {
    if(IsPlayerInRangeOfPoint(...))
    {
    //SetPlayerPos...

    return 1;
    }
    }
    }
    FS2:
    if(!strcmp(cmdtext, "/enter", true))
    {
    for(new i = 0; i < MAX_BIZ; i++)
    {
    if(IsPlayerInRangeOfPoint(...))
    {
    //SetPlayerPos...

    return 1;
    }
    }
    }


    Wichtig ist eben, dass das return in dem Befehl nur aufgerufen wird, wenn der Spieler in der Nähe ist und die Position gesetzt wird.


    Zusätzlich muss dann im Gamemode noch vor dem return 0 (bzw. dem return zur Info, dass der Befehl nicht existiert, wenn 0 zu SendClientMessage geändert wurde):
    if(!strcmp(cmdtext, "/enter", true)) return SendClientMessage(playerid, 0xFF0000FF, "Du bist bei keinem Haus/Biz.");



    Allerdings muss ich dazu sagen, dass es wesentlich sinnvoller wäre, beide Systeme in einen Code zu packen, oder sie direkt in den Gamemode zu integrieren, letzteres ist oft am geschicktesten, da man alles in einem Code hat und nichts an Daten zwischen zwei Codes hin und her schicken muss.

  • Wenn du die Handle ID an den Filterscript übergibst per CallRemoteFunction, dann dürfte das auch ohne zweite Verbindung klappen. Wie das performancetechnisch aussieht weiß ich nicht, habe das noch nie ausprobiert.
    Am besten du probierst es mal aus.


    Prinzipiell gehen aber auch zwei Verbindungen ohne Probleme.


    Allerdings gilt auch hier:
    Besser wäre es, alles in einem Code zu haben, dann hast du dieses Problem erst gar nicht.