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
  • Julian zwingt mich was dazu zu schreiben, also:


    MIt der Trigger Include kann man kleine "Events" erstellen, die ausgelöst werden wenn ein Spieler in einem bestimmten Radius um das Erstellte event herum ist.
    Also praktisch so ähnlich wie Pickup + OnplayerPickupPickup, nur mit dem unterschied das man kein Pickup setzen muss, und man nicht genau an dem Punkt sein muss sondern nur in einem Bestimmten Radius den man beim erstellen angibt.


    Funktionen:
    CreateTrigger(Float:PositionX, Float:PositionY, Float:PositionZ, Float:Range, playerid = INVALID_PLAYER_ID, vehicleid = INVALID_VEHICLE_ID, VirtualWorld = -1, Interior = -1)
    Erstelt ein Event.
    Parameter:
    PositionX, PositionY, PositionZ = Die Position an der Das Event platziert wird.
    Range = Der Radius um den angegebenen Punkt herum, in dem sich der Spieler befinden muss um das Event auszulösen.
    Optional:
    playerid = die ID des Spielers der das Event auslösen kann. INVALID_PLAYER_ID Bedeutet das Event wird von jedem Spieler ausgelöst.
    vehicleid = die Fahrzeug ID des Spielers von der das Event ausgelöst wird, INVALID_VEHICLE_ID beduetet das Event wird ausgelöst egal in welchem Fahrzeug der Spieler sitzt.
    VirtualWorld = Die Virtuelle Welt in der der Spieler sein muss um das event auszulösen. Wenn man -1 angibt, wird das event in jeder Virtuellen Welt ausgelöst.
    Interior = Das Interior in dem der Spieler sein muss um das Event auszulösen. Wenn man -1 angibt wird das Event in jedem Interior ausgelöst.
    Rückgabe:
    CreateTrigger gibt die triggerID des Events zurück.


    ToggleTrigger(triggerID, bool:toggle)
    De-/Aktiviert ein Event.
    Parameter
    triggerID = die ID des Events das De-/activiert werden soll.
    toggle = Ob das Event aktiviert (true) oder Deaktiviert(false) werden soll.


    DestroyTrigger(triggerID)
    Zerstört ein Event.
    Parameter
    triggerID = die ID des Events das zerstört werden soll.


    Callback:
    OnPlayerHandleTrigger(playerid, triggerID)
    Wird aufgerufen wenn ein Event ausgelöst wird.
    Parameter:
    player = die ID des Spielers der das Event ausgelöst hat.
    triggerID = die ID des Events das ausgelöst wurde.




    Wenn ihr foreach verwendet, inkludiert foreach vor der Trigger Include damit Trigger Include darauf zugreifen kann.
    MAX_TRIGGER gibt die Maximale anzahl an Events an die erstellt werden können. Wenn ihr mehr als 20 Braucht, schreibt
    #define MAX_TRIGGER XXXX // XXX = die Anzahl eurer Events
    in euer script bevor ihr Trigger inkludiert.
    Wem der Timer zu schnell läuft (500 MS), kann einfach
    #define TRIGGER_CHECK XXX // XXX = Der Timer Intervall in MS
    ins script schreiben bevor Trigger inkludiert wird.



    Pastebin: http://pastebin.com/JkvtmZeL


    Haf Phun!


    PS: Ein event wird unendlich oft aufgerufen solange ein Spieler nah genug dran ist, also solltet ihr das Event unter OnPlayerHandleTrigger lieber deaktivieren wenn ein Spieler es auslöst :D

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Wie wäre es mal mit CreateTriggerEx(event[], ?


    Dann halt damit die selbstständige Funktion aufrufen:


    CreateTriggerEx("onEnterBSN", ...);


    stock onEnterBSN(playerid)
    {
    return 1;
    }

  • Naja, ist dann halt immer son problem die parameter weiter zu geben.
    new BSN_Trigger;
    BSN_Trigger = CreateTriggerEx(...);
    public OnPlayerHandleTrigger(playerid, triggerID)
    {
    if(triggerID == BSN_Trigger)
    {
    //bla
    }

    }
    Das tuts doch auch^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Es geht mir nur um das Lua-Feeling in der Sa-mp Szene. Kommt darauf an, ob du es noch zusätzlich machst.


    -> z. B.


    triggerEventToEvent(to_event[], event[]);


    Du könntet aber auch speziell ein Event durch ein Command freigeben lassen wie:


    addCommandEvent(playerid, event[], times); // times = Maximale Benutzungszahl

  • Die Idee finde ich ja mal geil:


    #define ET:: ET_


    Das werde ich jetzt auch mal machen :D


    Die Include ist gut gemacht, werden aber wahrscheinlich nicht so viele nutzen ^^


    Dennoch sehr sauber und 1000x besser als die Include von anderen Leuten hier :S


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Tut mir Leid, aber ich verstehe wirklichnicht, was das bezwecken soll, bzw was man mit der Funktion machen kann. :S


    Die Idee kam mir, als ich eingänge ohne pickups machen wollte. Ich brauchte eine art "OnPlayerPickupPickup", aber eben ohne dabei ein pickup nutzen zu müssen. Genau für sowas ist das gedacht^^

    The fact is, I am right. And if you think I'm wrong, you are wrong.