Einen Timer, der Feuer an bestimmten Stellen erstellt.
Löschbares Feuer v0.4
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
-
-
den timer bekomm ich hin, die abfrage ob nen feuerwehrmann da ist die bekomm ich auch hin, aber wo ich bissel hänge ist die umsetzung das ich jetz zb. 20 posizionen habe und eine zufällig da raus genommen wird um das Feuer dann da zu erstellen, und damit nicht 20 feuer da sind irgentwie abgefragt werden kann ob ein feuer bereits brennt
kann mir da einer bei helfen?
-
new positionen[20][3] =
{
{ X, Y, Z }, // Die ganzen Koordinaten
{ X, Y, Z },
{ X, Y, Z },
...
{ X, Y, Z }
};new rad = random(20);
und dann zum verwenden positionen[rad][0], positionen[rad][1] und positionen[rad][2] nehmen. -
Danke für deine Antwort
Ich habe bissel gesucht und bin da dann auch drauf gekommen, hab was ähnliches gefunden und ausprobiert ob es anwendbar ist, das ist so auch ein erfolg gewesen, was mich nun bissel stört
ist, da ich ja mit einem feuer nicht nur ein object haben möchte sondern gleich mehrere, für eine HäuserFasade zb.habe ich es jetz so probiert
nicht wundern sind nur Test cords
new Float:Feuerstellen[4][4] = {
{1272.5374,-1814.9049,13.3825,273.4026},
{1272.7911,-1832.2595,13.3869,275.5959},
{1257.5216,-1830.1764,13.3936,92.3803},
{1258.9590,-1802.1687,13.4199,14.2968}
};forward AddFire(Float:x, Float:y, Float:z, Float:a);
new rand = random(sizeof(Feuerstellen));
AddFire(Feuerstellen[rand][0],Feuerstellen[rand][1],Feuerstellen[rand][2],Feuerstellen[rand][3]);
AddFire(Feuerstellen[rand][0]+1,Feuerstellen[rand][1],Feuerstellen[rand][2],Feuerstellen[rand][3]);
AddFire(Feuerstellen[rand][0]+2,Feuerstellen[rand][1],Feuerstellen[rand][2],Feuerstellen[rand][3]);
AddFire(Feuerstellen[rand][0]+3,Feuerstellen[rand][1],Feuerstellen[rand][2],Feuerstellen[rand][3]);Ich habe mir gedacht da er bei x eh dann ein dazu rechnet passt das dann, soweit klappt das auch, nur ich möchte ja die ausrichtung auch übernehmen das sich das Feuer den Cords in der 4. Posi auch anpasst
doch das will nich so recht, es bleibt immer gleich ausgerichtetweiß einer wie ich die ausrichtung in der 4.Posi auch hinbekomme?
-
Wozu willst du das Feuer drehen?
-
nicht das Feuer sondern die Positionen wenn ich den punkt abspeicher wo das feuer erscheinen soll dann habe ich ja dann 4 feuer bei mir aber die Rotation von dieser feuerleiste soll dur4ch die 4posi der cords dann ausgerichtet werden, sonnst müst ich ja jedes einzelne positionieren, da die 3 restlichen dann warscheinlich im Haus auftauchen und nicht sichtbar am haus
//edit
wie zb.
bei der funktion setplayerfaceangle oder wie es jetz genau heist//edit
währe es möglich das ich durch die "AddFire" funktion nicht ein objekt sondern 4 objecte zu einem mache, die dann die rotation übernehmen?
//edit
habs grad probiert, aber klappt irgentwie nicht, es muß doch möglich sein das diese 4 objecte so behandelt werden als währe es 1Object, denn dann müste es ja möglich sein die rotation zu übernehmen, oder geht sowas garnicht? -
Zitat
habs grad probiert, aber klappt irgentwie nicht, es muß doch möglich sein das diese 4 objecte so behandelt werden als währe es 1Object, denn dann müste es ja möglich sein die rotation zu übernehmen, oder geht sowas garnicht?
Dazu gibts die tolle "AttachObjectToObject" Funktion
Aber nur ab 0.3d. -
lass mich raten die 3d iss noch nich soweit das sie richtig eingesetzt werden kann, oder?
und anders ist das warscheinlich dann wohl nicht möglich, oder siest du einen weg das umzusetzen?
//edit
bei dem Originalen wird aber auch die rotation vom player hier genommen oder sehe ich das grad falsch?
new Float:x, Float:y, Float:z, Float:a;
GetXYInFrontOfPlayer(playerid, x, y, z, a, 2.5); -
Nein, die wird zur Berechnung der Position gebraucht, an der das Feuer gespawnt wird.
Wär ja etwas kacke, wenn das Feuer in dir spawnen würde ... -
hast du denn eine idee wie man es umsetzen könnte ohne für jedes feuerchen eine extra position zu speichern?
-
Nimm zufällige in einem bestimmten Bereich
-
das währe was, doch wüst ich nich wie ich das umsetzen kann^^, könntest du mir da eine hilfe stellung geben?
-
bsp:new Float:pos[3] = { 1234.0, -1234.0, 10.0 };
AddFire(pos[0]+float(random(40)-20), pos[1]+float(random(40)-20), pos[2]+float(random(40)-20))
Das erstellt an den Oben eingegebenen Koordiaten im Radius von 20 Metern irgendwo Flammen. -
Danke für die Antwort
Ich habe es Probiert und bissel getestet, und etwas geändert, da ich ja mehrere Punkte haben möchte und den float der z axe habe ich raus genommen, da das feuer dann auch unter der map spawnt und in der luft
Soweit klappt das auchwie gesagt auch wieder nur test cords
new Float:pos[4][3] = {
{1272.5374,-1814.9049,13.3825},
{1272.7911,-1832.2595,13.3869},
{1257.5216,-1830.1764,13.3936},
{1258.9590,-1802.1687,13.4199}
};new rand = random(sizeof(pos));
AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);
AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);
AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);Nach einem Neustart klappt das auch wunderbar, ah und ich hab zum testen die reichweite auf 5 meter beschrängt, was nur jetzt mein problem ist,
Wenn ich öfter ein feuer habe, wie gesagt klappt ja soweit auch, nur dann passiert es, das wenn da 3 feuer sind und ich das erste gelöscht habe das die anderen beiden objecte auch weg gehen, nun habe ich mir gedacht das man ja jedes object, wie auch bei fahrzeuge oder tore halt definiert
das passiert ja eh schon durch die id,
zb.
new flamme[3];
und
flamme[1]=AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);
flamme[2]=AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);
flamme[3]=AddFire(pos[rand][0]+float(random(10)-5), pos[rand][1]+float(random(10)-5), pos[rand][2]);
so das jede flamme aus der id auch noch mal definiert ist, nun habe ich aber das problem mit dem
public KillFire(id)
da bei dem das ja nicht berücksichtigt wird welche flamme da nun gelöscht wird, wie könnte man das hinbekommen? das die nicht alle 3 auf einmal verschwinden?//edit
Und wichtig währe es auch wo im skript ich das noch berücksichtigen muß.
Ich weiß ne menge , aber währe toll wenn wir da eine lösung finden würden -
AddFire sollte die einzigartige ID der Flamme zurückgeben. Beim löschen wird auch jeweils nur eine Flamme "für dich reserviert" und dann gelöscht, also sollte etwas an deinem Code nicht ganz stimmen.
-
Ich bin alles des öffteren durchgegangen, und es klappt nicht so wie gewünscht
nach einen server neustart klappt es, da geht beim löschen nur eine flamme aus
es wird nur ein flammen object gelöschtwenn alle drei gelöscht wurden und ein neues Feuer ausbricht
und man das erste von drei löscht verschwinden alle drei flammen objecte, da wo die anderen 2 dann noch sein sollten kann man trotzdem löschen, obwohl das object selber nicht mehr da ist.Damit passt das schon das jedes feuer eine eigene id bekommt und auch einzeln löschbar ist, doch die objecte selber haben keine eigene id, daher verschwinden die zwei übrigen auch
hast du da vill ne idee, wie man es verhindern kann das die übrigen beiden objecte auch verschwinden?
-
Hat nochmal jemand den Link für mich, der Link hier + Pastebin ist leider Defekt =(
-
Ja sorry, ich bau grade an der Seite rum xD
http://meta.spitnex.de/_download#extf -
Ich danke dir Meta
P.S schicke Seite gefällt mir =)
-
Ich konnte alles einfügen etc keine errors nix. Aber irgendwie kommt kein feuer? Was is da falsch?