[FEHLER] Fehler bei einem Grundstück System

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 Scripter,


    ich bin gerade am verzweifeln, ich möchte sehr gerne ein Map Editor basteln welcher nur auf einem Grundstück benutzt werden kann.
    Wenn man das Objekt Speichern möchte, sollte geprüft werden ob sich das Objekt in der Zugelassenen Zone befindet.


    Leider klappt das mal überhaupt nicht, es sagt das ich nicht im Grundstück bin wenn ich in der Zone bin und auch wenn ich nicht in der Zone bin.


    Source Code:
    public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
    {
    if(objectid == oInfo[playerid][pInfo[playerid][editobject]][objectID])
    {
    if(response == EDIT_RESPONSE_FINAL)
    {
    new object = pInfo[playerid][editobject];
    if(IsObjectInArea(oInfo[playerid][object][objectID], -2095.3132, -2012.2899, -103.7980, -266.0243))
    {
    oInfo[playerid][object][XLoc] = fX;
    oInfo[playerid][object][YLoc] = fY;
    oInfo[playerid][object][ZLoc] = fZ;
    oInfo[playerid][object][XRot] = fRotX;
    oInfo[playerid][object][YRot] = fRotY;
    oInfo[playerid][object][ZRot] = fRotZ;
    SetObjectPos(oInfo[playerid][object][objectID], fX, fY, fZ);
    SetObjectRot(oInfo[playerid][object][objectID], fRotX, fRotY, fRotZ);
    new string[128];
    format(string, sizeof(string),"You have finished editing object number {F58282}%i{F5F582} (Model {F58282}%i{F5F582}).", object, oInfo[playerid][object][modelID]);
    SendClientInfoMessage(playerid, string);
    }
    else
    {
    EditObject(playerid, oInfo[playerid][object][objectID]);
    SendClientInfoMessage(playerid, "** FEHLER: Du darfst nur auf deinem Grundstück das Objekt platzieren!");
    }
    }
    }
    return 1;
    }


    AddPlayerClass(0,-2095.3132,-103.7980,35.3203,92.6339,0,0,0,0,0,0); // min
    AddPlayerClass(0,-2012.2899,-266.0243,35.3274,350.4660,0,0,0,0,0,0); // max


    Nennt mich verrückt aber ich sehe nicht das ich einen Fehler gemacht habe. :thumbup:


    /edit
    Ach genau der Stock für "IsObjectInArea"
    stock IsObjectInArea(objectid, Float:minX, Float:maxX, Float:minY, Float:maxY)
    {
    new Float:x,Float:y,Float:z;
    GetObjectPos(objectid, x,y,z);
    if (x > minX && x < maxX && y > minY && y < maxY) return true;
    return false;
    }

  • if(IsObjectInArea(oInfo[playerid][object][objectID], -2095.3132, -2012.2899, -103.7980, -266.0243))
    zu:
    if(IsObjectInArea(oInfo[playerid][object][objectID], -2095.3132, -2012.2899, -266.0243, -103.7980))


    -266 ist kleiner als -103.


    Danke, so hat es funktioniert.
    Was ist in dem Code eigentlich noch Falsch? Wenn ich jetzt ein Objekt Speichere und die Fehlermeldung kommt das ich nicht im Grundstück bin passiert das danach auf im Grundstück?


    /edit
    Also wenn ich in der Area das Objekt Speichere, funktioniert das ganze ohne Probleme.
    Sobald ich es außerhalb der Area Speichere steht dort das ich es dort nicht platzieren kann sobald ich es allerdings wieder in die Area ziehe steht da ebenfalls das ich nicht in der Area wäre.


    Einmal editiert, zuletzt von EinfachMax ()