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 ausgerichtet


    weiß einer wie ich die ausrichtung in der 4.Posi auch hinbekomme?

  • 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?

    Einmal editiert, zuletzt von Patricbiker ()

  • 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);

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • 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 auch


    wie 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

  • 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öscht


    wenn 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?