IsPlayerInArea Funktioniert nicht

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 schon alles nach gesehen aber weiss net wo der Fehler ist.
    Es wird immer nur Test2 ausgespuckt. warum??

    ocmd:me(playerid,params[])
    {
    if(IsPlayerInArea(playerid,1750.2250,-1941.8027,1816.9410,-1880.7743))
    {
    SendMSG();
    }
    else
    {
    SendClientMessage(playerid,orange,"Test2");
    }
    return 1;
    }



    stock 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;
    }

  • Probier mal diesen Stock:

    stock 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;
    }


    Und wird bei SendMSG etwas ausgegeben?

  • Schreibe die Funktion so:
    stock IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    printf("X: %f | Y: %f | Z: %f", X, Y, Z);
    printf("MinX: %f | MinY: %f | MaxX: %f | MaxY: %f", MinX, MinY, MaxX, MaxY);
    if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
    {
    printf("return 1");
    return 1;
    }
    printf("return 0");
    return 0;
    }


    Dann gebe den Befehl einmal in der Area ein und einmal außerhalb. Dann poste was im Server Log steht.