Hey Leute,
ich wollte euch fragen ob ihr mir sagen könnt, wie ich abfragen kann, ob der Spieler (playerid) in einer Gangzone (fischzone) ist.
Vielen Dank schonmal!
Hey Leute,
ich wollte euch fragen ob ihr mir sagen könnt, wie ich abfragen kann, ob der Spieler (playerid) in einer Gangzone (fischzone) ist.
Vielen Dank schonmal!
wie erstellst du deine Gangzone Fischzone?
Zone oben deklaieren:
new fischerzone;
Bei OnGameModeInit erstellen:
fischzone = GangZoneCreate(398.9820, -2177.3076,836.7108,-2424.8113);
Bei OnPlayerConnect der Zone eine Farbe geben:
GangZoneShowForPlayer(playerid, fischzone, COLOR_FISCHZONE);
Ich möchte nun eine Abfrage machen, ob der Spieler in der Gangzone ist :o
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;
}
IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113)
IsPlayerInZone(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(pos[0] >= MinX && pos[0] <= MaxX &&pos[1] >= MinY && pos[1] <= MaxY) return true;
return false;
}
Alles anzeigenPAWN Quelltext
1
2
3
4
5
6
7
IsPlayerInZone(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(pos[0] >= MinX && pos[0] <= MaxX &&pos[1] >= MinY && pos[1] <= MaxY) return true;
return false;
}
Alles anzeigenPAWN Quelltext
1
2
3
4
5
6
7
8
9
10
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;
}
PAWN Quelltext
1
IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113)
Vielen Dank für eure Hilfe!
Aber bei der if Abfrage (IsPlayerInArea...)
Wie genau sind Koordinaten geordnet?
min x, max y, max x, min y ?
Oder nach welchem Schema?
Alles anzeigen
IsPlayerInZone(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(pos[0] >= MinX && pos[0] <= MaxX &&pos[1] >= MinY && pos[1] <= MaxY) return true;
return false;
}
Alles anzeigen
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;
}
IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113)
2 Probleme haben sich entwickelt
1) Die Gangzone wirkt auf der Minimap total durcheinander wenn ich den Blickwinkel etwas anders Bewege :o
*siehe Minimap!
2) Der Befehl funktioniert nicht, bzw. zeigt immer an (auch wenn ich anscheinend in einer Zone bin), dass ich nicht in einer Zone bin
if(strcmp(cmdtext,"/zone", true)==0)
{
if(IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113))
{
SendClientMessage(playerid,COLOR_GREEN,"Du befindest dich in der Fischerzone!");
return 1;
}
SendClientMessage(playerid,COLOR_RED,"Du bist derzeit in keiner Zone!");
return 1;
}
IsPlayerInArea(playerid, 398.9820, -2177.3076,836.7108,-2424.8113)
-2177.3076 ist MaxY
-2424.8113 ist MinY.
Die Werte sind vertauscht.
IsPlayerInArea(playerid, 398.9820, -2424.8113,836.7108,-2177.3076)