Abfragen ob Spieler in Ganzone ist?

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
  • Zone oben deklaieren:


    new fischerzone;


    Bei OnGameModeInit erstellen:


    fischzone = GangZoneCreate(398.9820, -2177.3076,836.7108,-2424.8113);


    Bei OnPlayerConnect der Zone eine Farbe geben:


    GangZoneShowForPlayer(playerid, fischzone, COLOR_FISCHZONE);


    Ich möchte nun eine Abfrage machen, ob der Spieler in der Gangzone ist :o


  • IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    new Float:X, Float:Y, Float:Z;


    GetPlayerPos(playerid, X, Y, Z);
    if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY) {
    return 1;
    }
    return 0;
    }

    IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113)


  • IsPlayerInZone(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    new Float:pos[3];
    GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    if(pos[0] >= MinX && pos[0] <= MaxX &&pos[1] >= MinY && pos[1] <= MaxY) return true;
    return false;
    }

    now @ glowfire CMS.


  • Vielen Dank für eure Hilfe! :love:




    Aber bei der if Abfrage (IsPlayerInArea...)


    Wie genau sind Koordinaten geordnet?


    min x, max y, max x, min y ?


    Oder nach welchem Schema?



  • http://wiki.sa-mp.com/wiki/GangZoneCreate


    Schau dir die Parameter an und die unserer Funktionen ;)

    2 Probleme haben sich entwickelt :/


    1) Die Gangzone wirkt auf der Minimap total durcheinander wenn ich den Blickwinkel etwas anders Bewege :o


    Normaler Zustand:





    Fail Zustand:


    *siehe Minimap!



    2) Der Befehl funktioniert nicht, bzw. zeigt immer an (auch wenn ich anscheinend in einer Zone bin), dass ich nicht in einer Zone bin :(

    if(strcmp(cmdtext,"/zone", true)==0)
    {
    if(IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113))
    {
    SendClientMessage(playerid,COLOR_GREEN,"Du befindest dich in der Fischerzone!");
    return 1;
    }
    SendClientMessage(playerid,COLOR_RED,"Du bist derzeit in keiner Zone!");
    return 1;
    }

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