PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trigger Delay



Bake
25.02.2008, 20:49
Hallo!
Mein Problem ist etwas schwer zu erklären. Daher ein einfaches Beispiel:
Nachdem man einen Dynamit auslöst (z.B. durch Enter) muss man 2 Sekunden warten bis dieser wieder auslösbar ist.

Wie bekomme ich so etwas hin?
Das Einzige was ich in der Richtung gefunden habe ist der Entity Hook "AcceptInput" (http://www.garrysmod.com/wiki/?title=ENT.AcceptInput). Leider weiß ich nicht genau wie man diesen Hook verwendet und ob er in diesem Fall wirklich von Nutzen ist.

Ich hoffe es ist überhaupt möglich :gmod:

Danke im Voraus!

Pac_187
25.02.2008, 21:12
Ich verstehen nicht richtig was du machen willst.

Hast du dir selber ein SENT gebastelt oder wie?

Desweitern ist dies kein Hook sondern eine Funktion ;)


Wenn du sowas wie das GMod interne Dynamit machen willst,
dann sollte dir das weiterhelfen:

Klick! (http://code.garrysmod.com/?show=/garrysmod/gamemodes/sandbox/entities/entities/gmod_dynamite/init.lua#40)

Bake
26.02.2008, 11:54
Hast du dir selber ein SENT gebastelt oder wie?
Nein. Ich möchte lediglich ein Delay nach der Benutzung von bestimmten bereits vorhandenen SENTS (auch wiremod).


Desweitern ist dies kein Hook sondern eine Funktion
Habe daran auch schon gezweifelt aber diese Funktion (was auch immer) ist unter Entity Hooks eingetragen. (http://www.garrysmod.com/wiki/?title=Entity_Hooks)


Wenn du sowas wie das GMod interne Dynamit machen willst
Wozu? Es gibt doch schon Dynamit in allen Variationen.


Was ich möchte ist ein einfaches Delay nach dem Auslösen von bestimmten SENTS bis dies wieder möglich ist.

Pac_187
26.02.2008, 14:38
Was die Entity Hooks betrifft:

Ja man kann nicht direkt sagen das es Hooks sind, schon alleine deswegen
dass man sie nicht via hook.Add( "myhook", "Text", Funktion )
als Hook Deklariert.

Was den Dynamit Code angeht, solltest du dir den mal angucken.
Mit "ähnlich" meinte ich die Delayfunktion ;)

Bake
26.02.2008, 15:19
schon alleine deswegen dass man sie nicht via hook.Add( "myhook", "Text", Funktion ) als Hook Deklariert.
Habe ich auch schon gemerkt ;)


Was den Dynamit Code angeht, solltest du dir den mal angucken.
Wofür? Ich wusste auch vorher wo ich diesen Code finden kann aber was soll ich damit anfangen?

Ein Delay zu erzeugen ist doch kein Problem. Es geht mir nur um eine Möglichkeit diesen Trigger "abzufangen" und eventuell zu ignorieren.

WeltEnSTurm
26.02.2008, 15:26
Willst du es mit wire machen?

Nimm ein delay, Is in range (exclusive) und Constant value.
Wenn er alle 2 sec zu drücken sein soll mach "delay" vom delay-chip 2.
Max vom Is in Range sollte 0.5 sein.
wenn der output vom delay innerhalb von null und 0.5 ist gibt er 1 aus,
Man kann es aber nur alle 2 sek. aktivieren.
(need screenshot?)

BennyG
26.02.2008, 15:37
Wie man sieht,spricht er von Lua,nciht umsonst ist es in der Lua Sektion.
Ich würds einfach mit variablen versuchen.

If self.Entity.Blocked == false then do shit bei der Use Function oder wo auch immer du es aktivierst.

Am Ende der If es dann auf true setzen.

Und durch ein Simplen Timer es nach ner Zeit wieder auf false?

don-banane
26.02.2008, 15:38
Willst du es mit wire machen?

Lol, nicht wirklich...

WeltEnSTurm
26.02.2008, 15:56
Sorry :oops:

Bake
26.02.2008, 17:31
Wie man sieht,spricht er von Lua,nciht umsonst ist es in der Lua Sektion.
:up:


Ich würds einfach mit variablen versuchen.
Das habe ich vor.


wo auch immer du es aktivierst
Genau das ist mein Problem ;)
Irgendetwas muss doch zwischen dem Trigger (z.B. das Numpad) und dem Ausführen der entsprechenden Aktion stehen. Ich weiß das dies in einigen Fällen über den Hook "PlayerUse" möglich ist (Vehicles, Buttons) aber wie sieht es z.B. bei dem Dynamit aus?




Hat wirklich niemand eine Idee? Freue mich auch über umständliche und unvollständige Ansätze :gmod:
Ich komme sonst nicht so schnell weiter mit meinem Script :(