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)