Ist Spieler in der nähe vom Object

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
  • Servus liebe Community ,
    ist es möglich das ich abfragen kann ob der Spieler in der nähe von diesem Objekt ist ohne das ich eine Abfrage erstellt habe wo das Objekt ist?
    Bedeutet beispiel
    if(IsPlayerInRageOfObject(playerid, 3.0 , OBJEKT ID))return SendClientMessage(playerid,BLAU,"BLABLABLA");

  • Hier :)



    stock IsPlayerInRageOfObject(playerid, Float:Range, Objectid) {
    new Float:pos[3];
    GetObjectPos(Objectid,pos[0],pos[1],pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,Range,pos[0],pos[1],pos[2]))return 1;
    return 0;
    }


    Bei dynamischen Objecten:

    stock IsPlayerInRageOfDynamicObject(playerid, Float:Range, Objectid) {
    new Float:pos[3];
    GetDynamicObjectPos(Objectid,pos[0],pos[1],pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,Range,pos[0],pos[1],pos[2]))return 1;
    return 0;
    }


  • bringt nichts

  • Poste bitte den Code wie du das Objekt an dem der Spieler sein muss erstellst, und den Code mit dem du abfragst, ob der Spieler in der Nähe diese Objekts ist.


    new Float:px,Float:py,Float:pz,Float:pr;
    GetPlayerPos(playerid,Float:px,Float:py,Float:pz);
    GetPlayerFacingAngle(playerid,Float:pr);
    CreateDynamicObject(19491, px, py, pz+4, 0.00000, 0.00000, 0.00000); //Die Koordinaten unten abziehen:
    CreateDynamicObject(19492, px+129.56802-129.56030, py+1723.08643-1723.13037, pz+21.44730-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3260, px+136.00462-129.56030, py+1725.62195-1723.13037, pz+18.26360-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.01131-129.56030, py+1723.18750-1723.13037, pz+18.26360-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.00462-129.56030, py+1725.62195-1723.13037, pz+20.96095-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.00084-129.56030, py+1721.78296-1723.13037, pz+20.96095-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+123.53154-129.56030, py+1722.59692-1723.13037, pz+20.96100-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(3260, px+123.50445-129.56030, py+1726.76599-1723.13037, pz+20.96100-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(3260, px+123.53154-129.56030, py+1722.59692-1723.13037, pz+18.28495-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(1491, px+126.35200-129.56030, py+1726.66760-1723.13037, pz+16.63670-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(1491, px+135.97960-129.56030, py+1722.02246-1723.13037, pz+16.73670-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(1491, px+129.86740-129.56030, py+1719.71375-1723.13037, pz+19.31300-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(3383, px+131.66316-129.56030, py+1719.25476-1723.13037, pz+16.63670-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(2708, px+127.51160-129.56030, py+1720.57312-1723.13037, pz+16.60390-21.44730+4, 0.00000, 0.00000, 180.00000);
    CreateDynamicObject(2891, px+132.58389-129.56030, py+1719.28540-1723.13037, pz+17.65080-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(1279, px+130.66920-129.56030, py+1719.39136-1723.13037, pz+17.65100-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(1252, px+131.66341-129.56030, py+1719.73438-1723.13037, pz+17.77100-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.00320-129.56030, py+1721.12073-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.81224-129.56030, py+1721.10596-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.01508-129.56030, py+1722.17017-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.80905-129.56030, py+1722.16809-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    Bisjetzt hab ich keine abfrage ob der spieler in der nähe ist vom Objekt

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Willst du wissen ob er genau zu einem bestimmten Objekt nahe genug ist oder willst du das nächste ungewiss welches das jetzt ist?


    Also ich will wissen ob er zu einem gewissen Objekt in der nähe ist das es aber mehrfach auf dem Server gibt wo man es auch unten sieht.
    Ich will also abfragen ob er irgendwo in der range von 2.0 ein Objekt mit der bestimmten id ist.

  • Wie erstellst du diese Objekte, denen du nahe sein willst, denn? Poste den Teil mal.


    Also das wird alles per Command gebaut


    Beispiel


    ocmd:bauen(playerid,params[])
    {
    new Float:px,Float:py,Float:pz,Float:pr;
    GetPlayerPos(playerid,Float:px,Float:py,Float:pz);
    GetPlayerFacingAngle(playerid,Float:pr);
    CreateDynamicObject(19491, px, py, pz+4, 0.00000, 0.00000, 0.00000); //Die Koordinaten unten abziehen:
    CreateDynamicObject(19492, px+129.56802-129.56030, py+1723.08643-1723.13037, pz+21.44730-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3260, px+136.00462-129.56030, py+1725.62195-1723.13037, pz+18.26360-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.01131-129.56030, py+1723.18750-1723.13037, pz+18.26360-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.00462-129.56030, py+1725.62195-1723.13037, pz+20.96095-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+136.00084-129.56030, py+1721.78296-1723.13037, pz+20.96095-21.44730+4, 0.00000, 90.00000, 90.00000);
    CreateDynamicObject(3260, px+123.53154-129.56030, py+1722.59692-1723.13037, pz+20.96100-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(3260, px+123.50445-129.56030, py+1726.76599-1723.13037, pz+20.96100-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(3260, px+123.53154-129.56030, py+1722.59692-1723.13037, pz+18.28495-21.44730+4, 0.00000, 90.00000, 270.00000);
    CreateDynamicObject(1491, px+126.35200-129.56030, py+1726.66760-1723.13037, pz+16.63670-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(1491, px+135.97960-129.56030, py+1722.02246-1723.13037, pz+16.73670-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(1491, px+129.86740-129.56030, py+1719.71375-1723.13037, pz+19.31300-21.44730+4, 0.00000, 0.00000, 270.00000);
    CreateDynamicObject(3383, px+131.66316-129.56030, py+1719.25476-1723.13037, pz+16.63670-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(2708, px+127.51160-129.56030, py+1720.57312-1723.13037, pz+16.60390-21.44730+4, 0.00000, 0.00000, 180.00000);
    CreateDynamicObject(2891, px+132.58389-129.56030, py+1719.28540-1723.13037, pz+17.65080-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(1279, px+130.66920-129.56030, py+1719.39136-1723.13037, pz+17.65100-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(1252, px+131.66341-129.56030, py+1719.73438-1723.13037, pz+17.77100-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.00320-129.56030, py+1721.12073-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.81224-129.56030, py+1721.10596-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.01508-129.56030, py+1722.17017-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    CreateDynamicObject(3057, px+124.80905-129.56030, py+1722.16809-1723.13037, pz+16.95760-21.44730+4, 0.00000, 0.00000, 0.00000);
    }

  • Ich glaube wir drehen uns gerade im Kreis^^


    Du erstellst zwar die Objekte müsstest sie aber eingrenzen da du ja sicher noch andere Objekte hast also würde ich sie in ein Array packen, dort musst du dir natürlich im Klaren sein wieviele es maximal gleichzeitig geben wird.
    dann erstellst du dein Objekt und returnst es in eine Variable damit du die Objekt ID in der Variable hast.


    Dann beim nachsehen ob der spieler in der nähe ist gehst du das Array in einer schleife durch und schaust mittels GetObjectPos und der ID die gerade in der Schleife durchläuft ob der Spieler die ähnlichen Koordinaten hat.


    Ich nehme mal an du löscht die Objekte auch irgendwann mal wieder also brauchst du sowieso die Variable in der das Objekt gespeichert ist.

  • Nico ganz ehrlich deine unnötigen Kommentare die keinen helfen kannst du bei dir lassen.


    Was ist daran unnötig,? Ich versuche hier zu helfen, anstatt hier ein doof anzumaulen denkst du ersteinmal nach was ich hier meine


    new objid = CreateDynamicObject(19491, px, py, pz+4, 0.00000, 0.00000, 0.00000); //Die Koordinaten unten abziehen:


    So und nun kannst du auch abfragen ob du in der Nähe des Objektes bist



    new Float:Pos[3];
    GetObjectPos(objid,Pos[0],Pos[1],Pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,2.0,Pos[0],Pos[1],Pos[2])) {
    //ja
    }


    So, und wenn du mal etwas nachdeenken würdest weisst du siche, wie man das alles in ein Enum speichert :)
    Und nun denk mal nach bevor du hier Leuten die helfen wollen anmaulst, ich glaub es hackt!

  • Falls du es nicht getan hast, solltest du zum einen die Position des Spielers (GetPlayerPos) abfragen und die des Objekts (GetObjektPos). Und dann eben die Position von Spieler und Objekt ermitteln bzw. schauen, ob der Spieler sich in der Nähe der besagten Objekte befindet. So hab ich es gemacht und so hat's geklappt. Bin hier leider noch ziemlich Neu im Forum.


  • Jaa komm wenn die Leute was Posten und du dannach das Kopierst oder dss gleiche in anderen Themen so unnötig






    Spoiler anzeigen
    Hat sich erledigt