Problem mit "IsPlayerInZone"

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
  • Hallo..
    Ich habe bis jetzt noch nicht viel mit GangZones gearbeitet.
    Nun möchte ich aber ein No-DM-Zonen System für meinen Server basteln.


    Allerdings möchte das ganze nicht so wie ich will.
    Ich habe die Gangzone erstellt und sie wird auch richtig angezeigt.
    Zum abfragen ob man in der Zone ist habe ich einen Stock gefunden (Google FTW!)
    Hier mal etwas Code von dem Ganzen:



    //--- If-Abfrage
    if(IsPlayerInArea(playerid,-2017.4026,-80.5940,-2095.2046,-279.9439))


    //--- GangZoneCreate
    nodm[0] = GangZoneCreate(-2017.4026,-80.5940,-2095.2046,-279.9439);


    //--- Stock
    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX, Float:pY, Float:pZ;
    GetPlayerPos(playerid,pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY)
    {
    return 1;
    }
    return 0;
    }

    Eigentlich müsste alles richtig eingetragen sein..
    Habe auch nach dem suchen hier im Forum nichts für mich brauchbares gefunden.
    Hoffe mir kann da jemand helfen...



    MfG Firer

  • stock IsPlayerInGebiet(playerid)//Funktion bennen mit den jeweiligen Variablen oder auch Parameter genannt.
    {
    for(new i = 0; i < sizeof(Gebiete); i++)//Damit wieder nach allen Zonen geschaut wird.
    {
    new Float:GetX,Float:GetY,Float:GetZ;//Neue Float Variablen erstellen, damit wir dort die Positionen des Spielers speichern können
    GetPlayerPos(playerid,GetX,GetY,GetZ);//Die Position des Spielers in den oben genannten Variablen speichern.
    if(Gebiete[i][gMinX] < GetX && Gebiete[i][gMaxX] > GetX && Gebiete[i][gMinY] < GetY && Gebiete[i][gMaxY] > GetY)//Hier wird abgefragt ob die Spielerkooridnanten in dem Bereich der Gangzone sind.
    {
    return i;//Hier wird die Gebietsid returned
    }
    //return i;//Wenn der nirgendwo drin ist wird halt -1 returned damit wir einen unterschied haben
    }
    return 0;//Siehe oben
    }


    Versuch dir mal daraus was zu basteln sollte dir helfen


    MFG SpeedFight2

  • stock IsPlayerInGebiet(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);
    if(minX < GetX && maxX > GetX && minY < GetY && maxY > GetY)
    { return 1; }
    else
    { return 0; }
    }


    Selbes problem...
    Kennt niemand ne Lösung? O.o

  • Villeicht mal zoneid in der stock packen


    versuch das mal


    dann liest er das ja direkt aus der Variable

  • stock IstSpielerInPausenzone(playerid)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X >= 636.196228 && X <= 788.196228 && Y >= -1591.369384 && Y <= -1423.369384 || X >= 1126.539550 && X <= 1302.539550 && Y >= -991.638916 && Y <= -863.638916 || X >= 1048.609863 && X <= 1280.609863 && Y >= -1417.280151 && Y <= -1281.280151)
    {
    return 1;
    }
    return 0;
    }


    Bedienung


    if(IstSpielerInPausenzone(playerid) || IstSpielerInPausenzone(killerid))
    {
    format(string,sizeof string,"%s hat %s in einer Pausenzone getötet!",sendername,playername);
    SendAdminMessage(COLOR_YELLOW,string,1);
    }


    Hoffe es hilft, habs jetzt spontan aus meinem Gamemode raus ;)


    //edit
    PS: Du weist ja wie man Koodinaten raus findet :D also brauch ichs nicht extra zu erklären :D



    #JoKér