IsPlayerInRange probleme

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
  • Hi all,
    ich hab ein problem, ich hab ein cmd bei den es immer den else ausgibt.



    Ich hab 3 Häuser, und es funktioniert nur bei einem, bei den anderen beiden kommt immer wie gesagt die else ausgabe.


    Wär schon cool wenn jmd helfen kann xD.
    mfg

  • if(strcmp(cmd,"/kaufen",true)==0)
    {
    if(SpielerInfo[playerid][pHaus] == 0)
    {
    new blubb = 0;
    for(new i=0;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, HausInfo[i][eX], HausInfo[i][eY], HausInfo[i][eZ]))
    {
    if(GetPlayerMoney(playerid) < HausInfo[i][Preis])return 1;
    new Name[MAX_PLAYER_NAME];
    blubb = 1;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    GivePlayerMoney(playerid, - HausInfo[i][Preis]);
    SendClientMessage(playerid,FARBE_WEIß,"Du hast dir ein Haus gekauft, die befehle kannst du unter /hh sehen!");
    HausInfo[i][Vergeben] = 1;
    SpielerInfo[playerid][pHaus] = 1;
    SpielerInfo[playerid][pId] = i+1;
    strmid(HausInfo[i][Besitzer], Name, 0, strlen(Name), 24);
    WennSpielerUpdatet(playerid);
    Kauf(playerid);
    return 1;
    }
    }
    if(blubb == 0)
    {
    SendClientMessage(playerid,FARBE_WEIß,"Du stehst an keinem Haus!");
    }
    }
    else
    {
    SendClientMessage(playerid,FARBE_WEIß,"Du hast bereits ein Haus, dieses musst du verkaufen!");
    return 1;
    }
    return 1;
    }

  • Lass dir mal per print die Koordinaten des Spielers und die der Häuser ausgeben, oder besser schreibe einen kurzen Code, der die Entfernung zu jedem Haus berechnet. So kannst du sehen, ob es an der Abfrage liegt oder die Hauskoordinaten möglicherweise falsch sind.