Beiträge von maddin

    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^^

    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

    Hört doch ma auf hier rum zu heulen xD


    Fakt ist, es gab einen festen abgabe Termin.
    Fakt ist, Dieser wurde schon mehrmals verlängert, weil manch einer nicht hinterher kam.
    Fakt ist, Nate und Q6600 sind die einzigen die werke abgeliefert haben, der rest nicht.


    Wenn man schon regeln aufstellt (ja, der abgabe Termin ist auch eine Regel), und auch no so drauf beharrt das die regeln eingehalten werden (siehe Copyright), dann sollte man auch so Fair gegenüber den leuten sein die etwas zum Abgemachten Zeitpunkt abliefern und endlich einen "gewinner" raus suchen. Ich kann gut verstehen das Nate es scheisse findet das immer und immer wieder aufgeschoben wird, in der Hoffnung es kommt noch was nach.


    Wenn jemand unbedingt noch was machen will (was ich nicht glaube), kann er es immernoch nach dem Contest abliefern. Und wenns schön ist kann mans halt auswählen.

    Du machst dir das ganze viel zu umständlich. Wenn du per SELECT * FROM Autohaus alles aus der Tabelle holst, und dann einfach per fetch_row die einzelnen reihen abarbeitest, sparst du dir die zweite query. Zumal du dann auch nicht das Problem mit den ID's hast.
    new
    str[150],
    idx = 1,
    string[150]
    ;
    mysql_query("SELECT * FROM `Autohaus`");
    mysql_store_result();
    while(mysql_fetch_row(str, "|"))
    {
    sscanf(str,"e<p<|>dddddffff>",AhCars[idx]);
    DestroyVehicle(AhCars[idx][vID]);
    AhCars[idx][vID] = AddStaticVehicleEx(AhCars[idx][Modell],AhCars[idx][PosX],AhCars[idx][PosY],AhCars[idx][PosZ],AhCars[idx][Rotation],1,0,3600000);
    format(string,sizeof string,"Autohaus %d",AhCars[idx][vID]);
    SetVehicleNumberPlate(AhCars[idx][vID],string);
    format(string,sizeof string,"Modell: {FF0000}%s\n{00A0FF}Kaufpreis: %i€\nVerkaufspreis: %i€\nRepairpreis: %i€",Carname[AhCars[idx][Modell]-400],AhCars[idx][Kaufpreis],AhCars[idx][Verkaufspreis],AhCars[idx][Repairpreis]);
    AhCars[idx][DreiDText] = Create3DTextLabel(string,hellblau,AhCars[idx][PosX],AhCars[idx][PosY],AhCars[idx][PosZ]+0.75,15,0);
    Attach3DTextLabelToVehicle(AhCars[idx][DreiDText],AhCars[idx][vID],0,0,0.75);
    idx++;
    }

    if(pID == INVALID_PLAYER_ID)
    Dein Befehl geht nur wenn die angegebene Playerid Invalid ist^^


    ocmd:permaban(playerid,params[])
    {
    new pID,grund[30];
    if(sscanf(params,"uz",pID,grund)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /permaban [playerid/PartOfName] [grund]");
    if (PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(IsPlayerConnected(pID) && pID != INVALID_PLAYER_ID)
    {
    new year, month, day, string[128], sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));

    getdate(year, month, day);
    format(string, sizeof(string), "[ADMIN]: %s was Permabanned by %s, reason: %s (%d-%d-%d)", pID, sendername, grund,month,day,year);
    BanLog(string);
    format(string, sizeof(string), "[ADMIN]: %s was Permabanned by %s, reason: %s", pID, sendername, grund);
    SendClientMessageToAll(COLOR_LIGHTRED, string);
    PlayerInfo[pID][pLevel] = -999;


    new ipaddress[16];
    GetPlayerIp(pID,ipaddress,sizeof(ipaddress));
    new BannedReason[126];
    format(BannedReason, sizeof(BannedReason), "PermaBanned. Reason: %s", grund); //<- Wofür soll das sein? 1. Brauchst du keinen weiteren string erstellen, 2. formatierst du ihn aber benutzt ihn nie.
    //Ban(pID);
    Kick(pID);
    return 1;
    }
    else
    {
    format(string, sizeof(string), " %d is not an active player.", pID);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }