Thema: Reload bei Lebewesen Di Feb 17, 2009 9:11 pm
Wie kann ich es einstellen dass ein Lebewesen ein bestimmte Action nur einmal in 10 sek ausführen kann? Wie bei waffen mit der Reload-Action die nach dem Schuss gesetzt wird und davor abgefragt wird ob sie noch läuft scheint nicht zu funktionieren vermutlich da eine andere Action (wie Walk) dazwischen kommt. Wie kann man das Problem noch lösen?
Gamer Staatsrat
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 9:54 pm
Mit Timern geht das ganz sicher... Delay auf die richtige Frames setzen. Normal sind es ca 35 FramesProSekunde (FPS) Also werden hier 35 Frames in einer Sekunde abgespielt..'
Aber wir hatten das doch schonmal, oder?
Ich glaub ich sollte mal nen Tutorial über Timer schreiben...
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 9:56 pm
Link zum Thread/Doku vllt? Bin n bissl nooby in manchen Punkten.
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 9:59 pm
In der entsprechenden Funktion eine Varible, zB Reload. Dann zur Ausführung
Alter : 28 Ort : In einem kleinen Dorf in Unterfranken (Bayern) Anmeldedatum : 10.02.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:02 pm
Klar natürlich doch. Das muss man in Die ActMap eintragen.. mit "PhaseCall" "EndCall" und den ganzen Teilen... HIER ist der Link zur Doku. Für dich dürften hier nur "StartCall" und "EndCall" sowie "Delay" interresant sein.
Also, um das Ganze mal zu erklären... (kurz) Wenn es nachladen Soll, einfach die Action ändern... Du musst dazu deine eigene Aktion ind die ActMap eintragen. Du wechselst die Aktion mit "SetAction("Actionsname",this());". Bei "Delay" (sry wenn ichs falsch schreibe) kommt die Verzögerung in Frames rein.
Oh, du über mir hast es ja noch einfacher gemacht... Aber naja du warst schneller beim tippen
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:04 pm
Aber da kommen ja andere Aktionen in die Quere, man kann ja maximal eine ausführen.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:12 pm
Ja da hat Umezawa recht dass Problem dass die anderen Actionen stören wie du dass sagst Gamer geht es nur bei Gegenständen.
Also in blub.... muss halt rein was dass ding machen soll also CastObjects oder so nehme ich an. Jetzt noch eine dumme Frage wie mache ich so eine Variable? Ich kenn mich teilweise einfach so nicht aus.... müssen die {} sein oder dienen die nur der Übersicht?
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:23 pm
für die variable stetzt du einfach ein
Code:
var Reload;
vor das if. Und die Klammern müssen sein, damit alles in den Klammern nur dann passiert, wenn er nicht am Laden ist. Sonst würde if nur für das erste Kommando dahinter gelten.
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:33 pm
Also aktuell sieht es so aus:
Code:
ControlThrow: var Reload; if(!Reload) { if (!GetDir())SetAction("Attack3"); if (!GetDir())CastObjects(DFLM, 1, 0, -30, 0); if (!GetDir())CastObjects(DFLM, 1, 0, -31, 0); Reload=true; Schedule("Reload=360"); } if (!GetDir()) return(1);
Dass ding macht aber immer noch feuer am laufenden Band. Wieso?
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 10:39 pm
Code:
ControlThrow: var Reload; if(!Reload) { if (!GetDir())SetAction("Attack3"); if (!GetDir())CastObjects(DFLM, 1, 0, -30, 0); if (!GetDir())CastObjects(DFLM, 1, 0, -31, 0); Reload=true; Schedule("Reload=0",360); } if (!GetDir()) return(1);
Reload soll ja auf 0 gesetzt werden, aber warum es weiter macht versteh ich nicht. Eigentlich müsste bei dir nur einmal gefeuert weden und dann ist Schluss auf ewig...
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 11:11 pm
Ich habs so gemacht aber es funzt einfach nicht. Ich weiß nicht wieso. Muss noch was in die ActMap, DefCore oder so?
Umezawa Feldmarschall
Alter : 29 Anmeldedatum : 30.12.08
Thema: Re: Reload bei Lebewesen Di Feb 17, 2009 11:55 pm
Ich glaub ich weiß woran es liegt. Die Variable muss als local definiert werden, sonst wird sie bei Funktionsende ja wieder 0.
Also:
Code:
ControlThrow: local Reload; if(!Reload) { if (!GetDir())SetAction("Attack3"); if (!GetDir())CastObjects(DFLM, 1, 0, -30, 0); if (!GetDir())CastObjects(DFLM, 1, 0, -31, 0); Reload=true; Schedule("Reload=0",360); } if (!GetDir()) return(1);
Extremclonk Staatsrat
Ort : Am Anti-Spam-Limes Anmeldedatum : 19.01.09
Thema: Re: Reload bei Lebewesen Mi Feb 18, 2009 6:23 pm
Juhuu ja es geht!! Danke, danke! Das war prima! *mit massen von Cyberkeksen überhäuf*
Da es wohl nichts mehr zu sagen gibt bitte ich darum zu closen um dumme Spammer daran zu hindern noch irgendeinem Müll zu Posten
Höfi SFT
Alter : 29 Anmeldedatum : 20.10.08
Thema: Re: Reload bei Lebewesen Mi Feb 18, 2009 6:27 pm