Hallo, ich möchte ein Automaten System machen und wollte fragen, wie ich abfragen
kann ob sich der Spieler auf einer Position befindet. Also ich meine damit das man
die Position oben im Script definieren kann...
Position Abfragen
- [DT]Midoman
- Geschlossen
- Erledigt
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
-
-
Ich versteh nicht so recht was du meinst!
Aber Vieleicht meinst du ja das:
if(IsPlayerInRangeOfPoint(playerid,Radius,x,y,z))Mfg
-
http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint
if(!strcmp("/befehl",cmdtext))
{
if(IsPlayerInRangeOfPoint(playerid, 7.0, 2695.6880, -1704.6300, 11.8438))
{
SendClientMessage(playerid,0xFFFFFFFF,"Du Benutzt den Automaten");
else
SendClientMessage(playerid,0xFFFFFFFF,"Du bist an keinen Automaten");}
return 1;
} -
den Beitrag kannst du dir sparen@Freestyyler
Ich will oben in einem Array die Kordinaten definieren
aber weis nicht genau wie ich das machen soll und wie
ich das abfragen soll bei IsPlayerInRangeOfPoint@xTechnostar
Ich will Zeilen sparen, so könnte ich das auch-.- -
Sei nicht so undankbar!
Zuerst fragst du ab ob der Spieler in der Nähe des Automaten ist. (IsPlayerInRangeOfPoint)
Dann gibst du den player die HP zahl.
Im SA:MP Debug oder auf einen Server vor einen automaten "/save" machen. -
Ich will Zeilen sparen, so könnte ich das auch-.-
Das geht nunmal nicht -.-
Sei nicht so undankbar.Entweder du machst IsPlayerInRangeOfPoint oder
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
if(X == .. && Y == .. && Z == ..)
{
//...
}Aber das ist lang und unnötig.
Da gibt es keinen "Code zu sparen" -
Es ist bestimmt möglich mit einem Array
Dann gibst du den player die HP zahl.
Was laberst du?Und ich habe doch gefragt wie man es oben im Script definiert...
-
pff wenn du so Antwortest helfe ich dir net.
-
So?
#define Punkt 123.456,234.567,345.678
if(IsPlayerInRangeOfPoint(playerid,Radius,Punkt))MfG
-
Nein?, lassen wird, ich werde schon ein weg finden...
-
Drück dich doch mal bitte besser aus, du sagtest du willst es oben definieren, aber mein Post war ja nach deiner Meinung falsch.
MfG
-
meinst du bsp.:
enum automatinfo
{
Float:iX,
Float:iY,
Float:iZ
};
new automat[][automatinfo] =
{
//X,Y,Z
{2495.8079, -1694.1421, 1014.7422},
{267.3732, 304.9254, 999.1484},
{1.5435, -3.2401, 999.4284},
{1262.4308, -785.4622, 1091.9063}
};if(IsPlayerInRangeOfPoint(playerid,automat[i][iX],automat[i][iY],automat[i][iZ]))
{
SCM(playerid,-1,"Du bist am Automat");
}
else
{
SCM(playerid,-1,"Du bist nicht am Automat");
}
so etwa ? -
danke mastho, jedoch habe ich bereits eine lösung gefunden.
-
danke mastho, jedoch habe ich bereits eine lösung gefunden.
Und dir wäre?
Würde mich auch interessieren -
@Sh12 Ich habe es so gemacht:
Oben im Script:
new Float:ATMs[][3] = {
{810.565063, -1623.768799, 13.189775},
{1000.825195, -922.610168, 41.971024},
{1504.693359, -1706.567749, 13.689775},
{1928.620850, -1771.269043, 13.189775}
};Ein Stock erstellen:
stock AmATM(playerid)
{
for(new atm=0; atm<sizeof(ATMs); atm++)
{
if(IsPlayerInRangeOfPoint(playerid,2.5,ATMs[atm][0],ATMs[atm][1],ATMs[atm][2]))
{
return 1;
}
}
return 0;
}Und dann halt abfragen:
ocmd:atm(playerid,params[])
{
if(!AmATM(playerid))
{
return SendClientMessage(playerid,Rot,"Du befindest dich an keinem Automat");
}
else
{
//dein Zeug
}
return 1;
} -
breadfish.de
Hat das Thema geschlossen.