Guten Morgen, wie kann man es machen, das wenn ein Spieler z.b. einen Umkreis von 25 Metern verlässt, wieder zurück in das "Feld" geportet wird?
MFG
Guten Morgen, wie kann man es machen, das wenn ein Spieler z.b. einen Umkreis von 25 Metern verlässt, wieder zurück in das "Feld" geportet wird?
MFG
if(!IsPlayerInRangeOfPoint(....)) sollte eigentlich ausreichen
if(!IsPlayerInRangeOfPoint(playerid, 25.0, x, y, z))
{
SendClientMessage(playerid, COLOR_RED, "Du hast das Gebiet verlassen. Du wirst automatisch geportet.")
SetPlayerPos(playerid, x, y, z);
}
Sollte so klappen, musst du nur noch in einem Timer versehen.
Ok, habe schon ne Idee für die Umsetzung, danke /Closed
MFG
Ich versteh nie Funktion nich richtig, ich hatte das so gemacht das ich in eine Ecke gegangen bin (am BSP ist die Ecke mit "H" bescriftet) jedoch hing ich egal wo ich war fest also wurde durch die Gegend geschleudert
|-----------------|
|H |
| H|
|-----------------|
Ich versteh nie Funktion nich richtig, ich hatte das so gemacht das ich in eine Ecke gegangen bin (am BSP ist die Ecke mit "H" bescriftet) jedoch hing ich egal wo ich war fest also wurde durch die Gegend geschleudert
Du darfst das ja auch nicht in den Ecken machen
So muss du bsp weise das machen:
Ich weiß schön gemacht, also auf dieser gut aussehenden Skizze bist du immer dieser Strich der absteht und da musst du die Koords quasi nehmen
mfg.
Und welche Coordinate soll man davon nehmen o: ? ( X oder Y)
Also da wo "xmin | xmax" steht nur die X Pos und wo "ymin | ymax" steht nur die Y Pos?
public OnPlayerSpawn(playerid)
{
new Float:X, Float:Y, Float:Z;
new Float:X2, Float:Y2, Float:Z2;
if(Gang[playerid] == 1)
{
GetPlayerPos(playerid, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid,25, X, Y, Z))
{
SetPlayerPos(playerid, X,Y,Z);
SendClientMessage(playerid, ROT, "Du darfst das Gangfight Gebiet nicht verlassen! Du wurdest neu gespawnt!");
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1546.0334,-1675.7340,13.5615);
ServerWaffen(playerid,24,150);
ServerWaffen(playerid,31,130);
ServerWaffen(playerid,16,2);
}
Sollte doch richtig sein so, oder? kann immer noch überall hingehen.
//Edit 1x Zuviel Code kopiert..
MFG :o
Würde es nicht so machen BOMBER
Arbeite eher mit
http://wiki.sa-mp.com/wiki/SetPlayerWorldBounds
oder
IsPlayerInArea
mfg traxx
BOMBER das wird so nicht gehen, weil nur beim Spawn deine Koordinaten einmal abgefragt werden das wars. Du musst einen Timer setzen der die Koordinaten ständig überprüft und abfragt bzw. abgleicht. Oder du verwendest ebend WorldBounds
BOMBER das wird so nicht gehen, weil nur beim Spawn deine Koordinaten einmal abgefragt werden das wars. Du musst einen Timer setzen der die Koordinaten ständig überprüft und abfragt bzw. abgleicht. Oder du verwendest ebend WorldBounds
Hmm, Timer kenn ich mich leider nicht mit aus, und das mit den World Bounds, sieht mir noch komplizierter aus.
MFG
Das ist eig. alles recht einfach BOMBER musst nur richtig lesen, ist auf jedenfall nicht schwer kann ich dir sagen.
mfg traxx
SetTimerEx("Kasten", 3000, 1, "i", playerid);
forward Kasten(playerid);
public Kasten(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 25.0, wunschkordx, wunschkordy, wunschkordz))
{
SetPlayerPos(playerid, .....);
}
return 1;
}
e1: PWN Code vergessen
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
Ehm...das kannst du löschen
mfg.
Stimmt, wird garnicht benötigt ;D Danke für den Hinweis
Alles anzeigen
SetTimerEx("Kasten", 3000, 1, "i", playerid);
forward Kasten(playerid);
public Kasten(playerid)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 25.0, wunschkordx, wunschkordy, wunschkordz))
{
SetPlayerPos(playerid, .....);
}
return 1;
}
e1: PWN Code vergessen
Danke probiere es nachher gleich mal aus. MFG