Problem mit 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
  • Hallo, ich habe ein problem mit dem stock, ich habs im internet gefunden aber ka es geht irgendwie ned



    new gangzonepos[][gangzoneposdata] =
    {
    {-2016.7609, 310.2623 , -2142.7012, 120.3885},
    {-2399.0430, 798.6481, -2516.6814, 718.4612},
    {-2596.0364, 337.6360, -2550.4565, 302.9267},
    {-2696.5034, 147.2669, -2614.1726, 50.5615},
    {-2430.8835, 29.8093, -2538.8086, -59.6302},
    {-1935.5980, -1124.2816, -2153.2012, -722.1906},
    {-1700.2842, -1608.2446, -1948.1310, -1795.6940},
    {-1412.8273, -1444.7299, -1467.5254, -1598.5176},
    {-75.2319, -208.9630, 17.4444, -395.5207}
    };


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


    stock GetPlayerGangzone(playerid)
    {
    for(new gangid; gangid < sizeof(gangzonepos); gangid++)
    {
    if(IsPlayerInArea(playerid, gangzonepos[gangid][MinX], gangzonepos[gangid][MinY], gangzonepos[gangid][MaxX], gangzonepos[gangid][MaxY]))
    {
    return gangid;
    }
    }
    return -1;
    }


    dazu hab ich diesen befehl gemacht



    COMMAND:gangwar(playerid, params[])
    {
    #pragma unused params
    new gangzoneid = GetPlayerGangzone(playerid);
    if(gangzoneid >= 0)
    {
    if(Playerinfo[playerid][Fraktion] != Gangzoneinfo[gangzoneid][gangzBesitzer])
    {
    if(Playerinfo[playerid][Fraktion] == 11 || Playerinfo[playerid][Fraktion] == 6)
    {
    IsGangZoneInFight[gangzoneid] = true;
    new gangzonecolor = GetFrakGangColor(Playerinfo[playerid][Fraktion]);
    for(new i; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Playerinfo[playerid][Fraktion] == 11 || Playerinfo[playerid][Fraktion] == 6)
    {
    GangZoneFlashForPlayer(i, Gangzone[gangzoneid], gangzonecolor);
    }
    }
    }
    }
    else{SendClientMessage(playerid, COLOR_RED, "Du kannst das nicht.");}
    }
    else{SendClientMessage(playerid, COLOR_RED, "Euch gehört diese Gangzone bereits.");}
    }
    else{SendClientMessage(playerid, COLOR_RED, "Das geht hier nicht.");}
    return 1;
    }

    Aber es kommt immer "Das geht hier nicht." also, muss er dementsprechent -1 wiedergeben


    Bitte um hilfe

  • Pass diesen Befehl an deine Variablen an und gut ist... Funktioniert super,
    es gibt nämlich 2 Möglichkeiten in einem bestimmten Gebiet zu sein, da es -/+ Koordinaten gibt ;)

    public IsPlayerInGebiet(playerid) {
    new var = -5;
    for(new i=0;i< sizeof Gebiete;i++) {
    new Float:GetX,Float:GetY,Float:GetZ;
    GetPlayerPos(playerid,GetX,GetY,GetZ);


    if( GetX <= Gebiete[i][gMinX] && GetX >= Gebiete[i][gMaxX] ) {
    if ( GetY <= Gebiete[i][gMinY] && GetY >= Gebiete[i][gMaxY] ) { var = i; }
    }


    if( GetX >= Gebiete[i][gMinX] && GetX <= Gebiete[i][gMaxX] ) {
    if ( GetY >= Gebiete[i][gMinY] && GetY <= Gebiete[i][gMaxY] ) { var = i; }
    }
    }
    return var;
    }