NODM Zonen problem | 1. über ganze Map keine wird als nodm angezeigt

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 Community
    Ich habe momentan ein Problem mit meinen NoDm Zonen


    sie werden so in einem Enum erstellt
    #define NoDMCount 2
    new NoDMZone[NoDMCount];
    enum NoDMEnum
    {
    Float:nOLX, //OBEN LINKS
    Float:nOLY, // OBEN LINKS
    Float:nURX, //UNTEN RECHTS
    Float:nURY, //UNTEN RECHTS
    ndmName[128]
    };
    new NoDMZones[NoDMCount][NoDMEnum] = {
    {1163.8538,-875.4206,1235.9896,-925.1810, "Burger Shot North"}, // BSN
    {1131.4553,-1286.2200,1216.1123,-1390.4766,"Krankenhaus Los Santos"} // KHLS
    };
    OLX ist x Koordinate von oben links
    OLY ist y von oben rechts
    URX ist x von unten rechts
    URY ist die y Koordinate von unten rechts


    So nun werden sie bei ongamemodeinit erstellt
    new nNoDmZone = 0;
    for(; nNoDmZone < sizeof NoDMZones; nNoDmZone++) {
    NoDMZone[nNoDmZone] = GangZoneCreate(NoDMZones[nNoDmZone][nOLX],NoDMZones[nNoDmZone][nOLY],NoDMZones[nNoDmZone][nURX],NoDMZones[nNoDmZone][nURY]);
    }



    und bei connect angezeigt
    for(; nNoDmZone < sizeof NoDMZones; nNoDmZone++) {
    GangZoneShowForPlayer(playerid, NoDMZone[nNoDmZone], 0xFEFEFEAA);
    }


    abfrage im Sekunden takt:
    if(IstInNoDMZone(p) == 1) {
    TextDrawShowForPlayer(p, NoDMText);
    }
    else {
    TextDrawHideForPlayer(p, NoDMText);
    }


    und hier die Abfrage
    stock IsPlayerInArea(playerid,Float:minX,Float:minY,Float:maxX,Float:maxY)
    {
    new Float:pX,Float:pY,Float:pZ;
    if(!IsPlayerInAnyVehicle(playerid)) GetPlayerPos(playerid,pX,pY,pZ);
    else GetVehiclePos(GetPlayerVehicleID(playerid),pX,pY,pZ);
    if(pX >= minX && pX <= maxX && pY >= minY && pY <= maxY) return true;
    else return false;
    }


    stock IstInNoDMZone(playerid)
    {
    new nNoDmZone = 0;
    for(; nNoDmZone < sizeof NoDMZones; nNoDmZone++) {
    if(IsPlayerInArea(playerid,NoDMZones[nNoDmZone][nOLX],NoDMZones[nNoDmZone][nOLY],NoDMZones[nNoDmZone][nURX],NoDMZones[nNoDmZone][nURY])) {
    printf("Area %s", NoDMZones[nNoDmZone][ndmName]);
    return 1;
    }
    }
    return -1;
    }


    Wo liegt da bitte der Fehler? Aus meiner Perspektive hab ich alles richtig gemacht..

    ik bin der vito c: