PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : logic_case Frage



Tulkor
22.06.2011, 11:32:55
Hallo!

Ich bin momentan dabei mit 2 Freunden eine Jail map zu mappen.
Da es in den normalen Jail maps imemr so ist, dass die Wärter nach einigen Runden wissen in welchen Zellen Waffen sind und in welchen nicht, habe ich ein wenig über ner Lösung mit random-Waffenspawn gegrübelt.
Nun hab ich eine Frage.

Mein momentaner Aufbau sieht wie folgt aus:
8 Zellen mit jeweils 4 verschiedenen point_templates+dazugehöriger Waffe.
Pro Zelle ein logic_case und für den ganzen Zellen Block ein logic_case (also für alle 8 Zellen).

Wenn ich nun mit einem logic_auto das logic_case für den ganzen Zellenblock 2 mal aufrufe, besteht ja die möglichkeit das 2 mal in der selben Zelle eine Waffe spawnt.
Kann man das irgendwie verhindern? Oder gibt es eine elegantere Lösung für die Idee? :P

Schonmal danke im Voraus.

novice
22.06.2011, 11:44:11
Porbier es mal mit [X]Fire once only.
Falls das aus irgendeinem Grund nicht das sein sollte was du wolltest, hab ich auch noch ne andere Idee...

Tulkor
22.06.2011, 12:59:45
Ich denke nicht das es mir hilft, da nur das logic_case disabled wird oder?
Ums genauer zu erklären:
Ich will das logic_case 2 mal aufrufen mit dem random Befehl, es soll allerdings nicht 2 mal in derselben Zelle eine Waffe spawnen...

novice
22.06.2011, 13:13:10
So würde ich es lösen:
1746

Das Haupt-logic_case schaltet die jeweiligen logic_case der Zellen nicht direkt, sondern indirekt über ein logic_relay. Dieses logic_relay hat das Flag [x]only trigger once aktiviert, sodass eine Zelle nur einmal angesteuert werden kann, egal wie oft es vom Haupt-logic_case ausgewählt wird.

EZ-one
22.06.2011, 13:22:56
Schöne Lösung novice, aber mit "PickRandomShuffle" sollte es keine Wiederholungen geben ohne so viele Entities zu verbraten!



PickRandomShuffle:
Fires a random OnCase output with at least one connection, with no repeats until all cases have been picked, at which point the shuffle starts over.

Tulkor
22.06.2011, 13:26:23
Ooooh xD
Man sollte sich die Befehle auch mal durchlesen.
Danke sehr! :D
Edit:
Nicht ganz.
Er spawned so IMMER 2 Waffen.
Sonst würde er das disablete ansprechen, aber keine Waffe spawnen...

novice
22.06.2011, 13:26:48
@EZ-one:
Das wäre aber in diesem Fall genau das selbe, wie wenn man only fire once beim Output aktivieren würde.
edit: nein wäre es nicht :D

@Tulkor: Stimmt...
Gib uns am besten mal die Outputs von deinem Haupt-logic_case.

EZ-one
22.06.2011, 13:39:54
Wiso das? Erschließt sich mir gerade nicht so wirklich.

novice
22.06.2011, 13:45:07
Ich versteh grade den Aufbau nicht mehr so ganz glaube ich...wenn er sagt dass bei PickRandomShuffle IMMER zwei Waffen gespawnt werden...

Tulkor
22.06.2011, 13:53:49
Naja ich hab das case momentan 2mal angesprochen.
Es geht mir halt darum wie ich es 2mal ansprechen kann o.ä. damit halt in den 8 Zellen 2 Waffen spawnen.
Und es sollen halt immer 2 Waffen spawnen. Wenn ich etwas disable oder FireOnce mache, kann es passieren das nur 1e spawned, weil er mit dem 2en random pick vllt. dasselbe nochmal trifft und es halt disabled ist..
Bei PickRandomShuffle ist das Problem das es wenn ich es ein 2es mal anspreche, halt das schon ausgewählte vom ersten Mal nicht mehr vorgemerkt hat offensichtlich.

novice
22.06.2011, 14:08:06
Okay, verstanden, es geht also mit Pickrandomshuffle auch nicht... Dann würde mir noch ein Aufbau einfallen, der ist aber noch verschwenderischer was entities angeht... Da bräuchtest du dann noch 8 logic_relay mehr als in meinem ersten Aufbau... du baust dir sozusagen deine If-Anweisungen mit logic_relays...

Ist es dir nicht zufällig genug, wenn du bei einem logic_case bleibst, das 16 verschiedene Fälle
hat?

Edit:
Also, man kommt doch mit weniger entities weg als ich dachte. Es würde so aussehen:
1748
Das logic_branch steht zu Beginn auf true. Wenn es durch das Haupt-logic_case getestet wird triggert es das logic_case seiner zugehörigen Zelle(dieses spawnt eine Waffe), danach wird es auf false gesetzt.

Nun wird das Haupt-logic_case erneut getriggert. Falls es das selbe logic_branch wie beim ersten mal erneut testet, wird es erneut getriggert. Das geht so lange, bis ein anderes logic_branch ausgewählt wurde.

EZ-one
22.06.2011, 15:05:12
Bei PickRandomShuffle ist das Problem das es wenn ich es ein 2es mal anspreche, halt das schon ausgewählte vom ersten Mal nicht mehr vorgemerkt hat offensichtlich.

Das ist falsch! Hab jetzt mal eine Testreihe gebaut! Es wird vorgemerkt was schon mal ausgewählt wurde!

http://www.file-upload.net/download-3527892/test_pickrandom.rar.html

Hab das ganze 6 mal durchlaufen lassen und mit PickRandomShuffle sind nie zwei Waffen in einem Feld gespawnt, mit PickRandom schon!

One_Try
22.06.2011, 15:11:33
Ich hatte es damals wie folgt gelöst:
In Jede Zelle
-eine weapon_usp
-ein point_template

und dann nur für einen ganzen Zellblock oder beispielsweise für 5 Zellen ein logic_case, was zu Rundenbeginn von einem logic_auto ausgelöst wird.

EZ-one
22.06.2011, 15:19:52
Naja er kann seinen Aufbau ja behalten wie bisher, er muss nur das Haupt logic_case mit PickRandomShuffle ansprechen und dann gibts keine doppel Auswahl, habs ja getestet und es funktioniert wunderbar!
Vielleicht liegt der Fehler darin, dass ich ein Delay eingabaut hab, also ich feuer das PickRandomShuffle Input nicht zweimal zeitgleich sondern mit ner Sekunde Verzögerung!

Tulkor
22.06.2011, 17:35:16
Ah danke EZ-one so gehts mit dem delay^^ ohne hat er manchmal doppelt gespawnt...
Und vielen Dank novice für die Mühe :P
Auch wenn ichs jetzt nicht brauche, weiss ich schon wofür ichs verwenden kann :P

Sooo.
Da mein erstes Problem gelöst wurde, hätte ich ne andere Frage :P
Gibt es einen simplen Weg, spawnbare func_breakables zu parenten?
Wenn ich sie einfach an einen tracktrain parente, dann spawnen sie immernoch am ursprünglichen Platz und bewegen sich nur mit wenn sie schon gespawnt sind...
Die einzige Möglichkeit die mir halt einfällt ist es am Zielort halt auch wieder neue Spawns zu machen und die dann halt wenn es dort ist zu disablen...
Ist halt mehr Arbeit als sie einfach zu parenten.

EZ-one
26.06.2011, 16:10:54
Schau dir mal das env_entity_maker an!


www.developer.valvesoftware.com/wiki/Env_entity_maker (http://developer.valvesoftware.com/wiki/Env_entity_maker)
www.thewall.de/content/source:entities:env_entity_maker (http://www.thewall.de/content/source:entities:env_entity_maker)