isplayerinarea?

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
  • Ich habe vor mir mein eigenes zoll system zu basteln


    habe zum testen das hier



    forward zoll(playerid);


    >OnGamemodInit


    SetTimer("Zoll", 1000, 1);




    public zoll(playerid)
    {
    if(IsPlayerInArea(playerid, 84.5436, -1533.3575, 53.2794, -1520.6293))
    {
    SendClientMessage(playerid, COLOR_GREY, "Das ist ein test,");
    }
    else
    {
    //Text
    }
    }




    als Cords
    AddPlayerClass(279,84.5436,-1523.5867,4.8676,110.4852,0,0,0,0,0,0); // 1punkt
    AddPlayerClass(279,83.0244,-1533.3575,5.4078,170.5831,0,0,0,0,0,0); // 1punkt2
    AddPlayerClass(279,53.2794,-1529.5128,5.2638,82.8489,0,0,0,0,0,0); // 1punkt3
    AddPlayerClass(279,55.8127,-1520.6293,5.1245,345.4640,0,0,0,0,0,0); // 1punkt4


    Allerdings wenn ich mich dann bei der Position befinde dann kommt nix


    wodrann kann das liegen?



    habd auch schon so probiert

    forward zoll();


    >OnGamemodInit


    SetTimer("Zoll", 1000, 1);



    public zoll()
    {
    for(new i =0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInArea(i, 84.5436, -1533.3575, 53.2794, -1520.6293))
    {
    SendClientMessage(i, COLOR_GREY, "Das ist ein test,");
    }
    else
    {
    //Text
    }
    }
    }




    aber keine sichtliche reaktion

  • Also als erstes wüde ich dir gerne zu diesem Tool raten, es gibt dir soweit ich mich erinnere automatisch die exakten min X/Y und max X/Y Werte aus.


    So musst du die Funktion benutzen:


    Returns 1 if the player is in the area and 0 if they aren't


    Parameters:
    (playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)



    playerid Der Spieler der betroffen ist
    Float:minx Der minimale X Wert für das Gebiet
    Float:miny Der minimale Y Wert für das Gebiet
    Float:maxx Der maximale X Wert für das Gebiet
    Float:maxy Der maximale Y Wert für das Gebiet


    Returns1 wenn der Spieler im Gebiet ist, 0 wenn er nicht im Gebiet ist


    Beispiel: IsPlayerInArea(2, 2.0, 2.0, 4.0, 4.0);



    Probier es einfach nochmal mit dem Programm und meiner Beschreibung. Es müssen 2 gegenüberliegende und spiegelverkehrte Punkte sein, Beispiel:



    ------------------------------X
    |platzplatzplatzplatzplatz |
    |platzplatzplatzplatzplatz |
    X-----------------------------|


    oder


    X -----------------------------
    |platzplatzplatzplatzplatz |
    |platzplatzplatzplatzplatz|
    -----------------------------X


    Du musst nur an den Punkten "X" die Koordinaten speichern!

  • Das Tool habe ich bereits probiert, allerdings bekommt man die ansicht nicht so groß das man jetzt ganz präzise eine straßenseite makieren kann




    //edit


    habe es jetzt so, dank einem Link den mir DogZone geschickt hat



    public Zoll()
    {
    new Float:X, Float:Y, Float:Z;
    for(new i=0; i < MAX_PLAYERS; i++)
    {
    GetPlayerPos(i, X, Y, Z);
    if (X <= 84.5436 && X >= 53.2794 && Y <= -1523.5867 && Y >= -1529.5128)
    {
    SendClientMessage(i, COLOR_GREY, "Das ist ein test,");
    }
    else
    {
    //Text
    }
    }
    }


    Soweit klappt es jetz auch, doch die Positionen passen nicht ganz ingame, und was jetz noch stört, ist der Timer, die Nachricht kommt nacheinander, und nich nur einmal, mhh

  • So ich habe die Coordinaten neu gespeichert und richtig eingetragen
    es klappt


    Nur was mir absolut nicht gefällt ist das mit dem Timer, dadurch wird der Test Text im chat gespammt
    bekommt man das nich auch anders hin?


    denn ich denke mir wenn ich da jetz nen MoveObject mache, wird das auch laufend runter oder hoch gefahren

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen