Ein Forum, in dem sich neue Clonk Entwickler untereinander austauschen können.
 
StartseiteStartseite  PortalPortal  FAQFAQ  SuchenSuchen  AnmeldenAnmelden  MitgliederMitglieder  LoginLogin  

Austausch | 
 

 Reload bei Lebewesen

Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach unten 
AutorNachricht
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: 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?
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

Männlich Alter : 22
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

BeitragThema: 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...

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: Re: Reload bei Lebewesen   Di Feb 17, 2009 9:56 pm

Link zum Thread/Doku vllt? Bin n bissl nooby in manchen Punkten.
Nach oben Nach unten
Benutzerprofil anzeigen
Umezawa
Feldmarschall
Feldmarschall


Männlich Alter : 23
Anmeldedatum : 30.12.08

BeitragThema: Re: Reload bei Lebewesen   Di Feb 17, 2009 9:59 pm

In der entsprechenden Funktion eine Varible, zB Reload.
Dann zur Ausführung
Code:
if(!Reload)
{
blub...;
Reload=true;
Schedule("Reload=0",/*Deine Nachladezeit*/);
}
Nach oben Nach unten
Benutzerprofil anzeigen
Gamer
Staatsrat
Staatsrat
avatar

Männlich Alter : 22
Ort : In einem kleinen Dorf in Unterfranken (Bayern)
Anmeldedatum : 10.02.09

BeitragThema: 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 Wink

_________________
Star Wars Projekt Homepage: http://sites.google.com/site/clonkprojekte/star-wars

Das Burg Projekt.................................................................... Schaut doch mal im Super-Mario Clonk Editon Forum vorbei!
Nach oben Nach unten
Benutzerprofil anzeigen http://www.gamer95.npage.de/
Umezawa
Feldmarschall
Feldmarschall


Männlich Alter : 23
Anmeldedatum : 30.12.08

BeitragThema: 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.
Nach oben Nach unten
Benutzerprofil anzeigen
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: 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.

Code:

if(!Reload)
{
blub...;
Reload=true;
Schedule("Reload=0",/*Deine Nachladezeit*/);
}

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?
Nach oben Nach unten
Benutzerprofil anzeigen
Umezawa
Feldmarschall
Feldmarschall


Männlich Alter : 23
Anmeldedatum : 30.12.08

BeitragThema: 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.
Nach oben Nach unten
Benutzerprofil anzeigen
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: 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?
Nach oben Nach unten
Benutzerprofil anzeigen
Umezawa
Feldmarschall
Feldmarschall


Männlich Alter : 23
Anmeldedatum : 30.12.08

BeitragThema: 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...
Nach oben Nach unten
Benutzerprofil anzeigen
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: 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?
Nach oben Nach unten
Benutzerprofil anzeigen
Umezawa
Feldmarschall
Feldmarschall


Männlich Alter : 23
Anmeldedatum : 30.12.08

BeitragThema: 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);
Nach oben Nach unten
Benutzerprofil anzeigen
Extremclonk
Staatsrat
Staatsrat
avatar

Männlich Ort : Am Anti-Spam-Limes
Anmeldedatum : 19.01.09

BeitragThema: 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
Nach oben Nach unten
Benutzerprofil anzeigen
Höfi
SFT
SFT
avatar

Männlich Alter : 22
Anmeldedatum : 20.10.08

BeitragThema: Re: Reload bei Lebewesen   Mi Feb 18, 2009 6:27 pm

Ich tu dir mal den gefallen.^^
Nach oben Nach unten
Benutzerprofil anzeigen
Gesponserte Inhalte




BeitragThema: Re: Reload bei Lebewesen   

Nach oben Nach unten
 
Reload bei Lebewesen
Vorheriges Thema anzeigen Nächstes Thema anzeigen Nach oben 
Seite 1 von 1

Befugnisse in diesem ForumSie können in diesem Forum nicht antworten
CNDG :: Sonstiges :: Anfragen-
Gehe zu: