Hallo Jeffry:,
Den gleichen Print hatte ich ja oben schon ausgeführt, leider jedoch vergessen den Print hier mit einzufügen.
Er gibt mir bei meinen Print (was das gleiche ist wie bei dir) folgendes aus:
Print:
printf("return PlayerPOS X:%f - Y:%f", pPos[0], pPos[1]);
printf("return ZoneAreaMin X:%f - X:%f", HausBau[hb][hbPosX],HausBau[hb][hbPosY]);
printf("return ZoneAreaMax X:%f - X:%f", HausBau[hb][hbPos2X],HausBau[hb][hbPos2Y]);
Log:
[19:11:55] return PlayerPOS X:913.007568 - Y:-1659.893310
[19:11:55] return ZoneAreaMin X:921.935729 - X:-1646.126220
[19:11:55] return ZoneAreaMax X:898.636779 - X:-1668.512207
[19:11:55] if(Pos[0] >= MinX && Pos[0] <= MaxX && Pos[1] >= MinY && Pos[1] <= MaxY)
Der Wert von GetPlayerPos X & Y stimmt so, wie es auch in der If Abfrage im Stock abgefragt wird.
Jedoch muss ich dazu sagen, dass wir "IsPlayerInZone" ebenfalls schon des öfteren verwendet haben, wo es auch funktioniert hatte bzw. noch immer funktioniert.
Wieso es jetzt hierbei plötzlich nicht funktioniert ist komisch.
ocmd:bauen(playerid)
{
for(new hb= 0;hb<10;hb++)
{
print("1");
if(HausBau[hb][BesitzerGR] == SpielerInfo[playerid][SPName])
{
print("2");
new Float:pPos[3];
GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
printf("return PlayerPOS X:%f - Y:%f", pPos[0], pPos[1]);
printf("return ZoneAreaMin X:%f - X:%f", HausBau[hb][hbPosX],HausBau[hb][hbPosY]);
printf("return ZoneAreaMax X:%f - X:%f", HausBau[hb][hbPos2X],HausBau[hb][hbPos2Y]);
print("if(Pos[0] >= MinX && Pos[0] <= MaxX && Pos[1] >= MinY && Pos[1] <= MaxY)");
if(IsPlayerInZone(playerid,HausBau[hb][hbPosX],HausBau[hb][hbPosY],HausBau[hb][hbPos2X],HausBau[hb][hbPos2Y]))
{
print("3");
ShowPlayerDialog(playerid,DIALOG_HAUS_BAUEN,DIALOG_STYLE_LIST,"Objekt Verwaltung","Bau Objekte","Weiter","Abbruch");
return true;
}
}
}
return true;
}
Die prints werden alle anzeigt, welche vor der Abfrage "IsPlayerInZone" sind, mehr jedoch nicht.
MfG