Suche Möglichkeit einen func_mover zu spawnen!

Kiran Müller

Commander Keen
Hey Leute,
nach langer Zeit melde ich mich hier mal wieder ;-)

Ich habe gerade etwas vor weiß aber nicht ob es geht und wenn wie es geht ;-)

Ich möchte nämlich einen func_mover spawnen um diesen dann zu benutzen.
Am Ende würd ich den dann mit remove() killen wollen. Es sollen halt eventuell bis zu 30 Teile gespawnt werden nacheinander die dann unterwegs sind.

Würd mich freuen wenn da einer was weiß ;-)
 

MacX

Light Guard
Wenn du es über ein Skript lösen willst, sähe es wohl so aus:
Code:
entity dein_func_mover = sys.spawn( "func_mover" );
dein_func_mover.machWas(...);
...
dein_func_mover.remove();

Hmm, natürlich brauchst du vorher noch die Spawn-Koordinaten.

In einem Tutorial verwendete ich die Funktion "spawn" um Monster zu spawnen. Das funktioniert so auch für alle anderen Entitäten.
[Tutorial/Doom3] zufällige Spawnpoints + zufällige Gegner
 

Kiran Müller

Commander Keen
Erst einmal vielen Dank, habe schon seit Tagen das Internet durchforstet aber komischer Weise nichts gefunden.
Jetzt habe ich aber bemerkt dass ich damit nur "neue" Sachen spawnen kann.

Ist es irgendwie möglich vorher im Editor aus Brushes erstellt Sachen zu spawnen? Wie z.B. eine Kiste? Weil da gibt es so schön passende Texturen in textures/object/

Wäre geil wenn das gehen würde.
Aber ich fange schon mal an zu arbeiten, benutze grad ein Model auf dem func_mover was fast die gleichen Dimensionen hat wie meine Box, mir gefällt nur das TOP SECRET darauf nicht ;-)

EDIT:
Ich möchte den gespawnten Kisten zufällige Zahlen geben. Jetzt habe ich mit sys.random und int() entsprechend zahlen erstellen lassen. Ich möchte aber Zahlen von 1-3 erstellen.
wenn ich also jetzt sys.random(3 - 1); eingebe, dann kommt zu 90% die 1 zu 10% die 2 und nunja für die 3 bleiben da null Prozent, was mache ich da falsch?
 
Last edited:
Das geht doch eigentlich ganz einfach oder nicht? func_mover basteln, diesem Key/Val geben: hide / 1
Und im Script dann via

Code:
...
$func_mover_X.show();
...
"spawnen" lassen :) Also, das wäre jetzt die Art und Weise wie ich das lösen würde ^^

Bei den zufällig generierten Zahlen weis ich leider auch nicht weiter :D Aber da kann dir MacX bestimmt ganz gut weiterhelfen :)
 
Last edited:

MacX

Light Guard
Die Beschreibung zu sys.random:
Code:
// Returns a random value X where 0 <= X < range.
scriptEvent    float    random( float range );
In deinem Fall würdest du also nur Zufallszahlen von 0 bis 2 bekommen.
Im Modwiki steht allerdings noch ein Beispiel, dass für dich hilfreich sein sollte: http://www.modwiki.net/wiki/Random_(script_event)
Im Prinzip willst du das machen:
Code:
float min = 1;
float max = 3;
float rand = min + sys.random( max - min );
Ich hoffe, dass du verstehst, was da passiert.

Die Folge von Zufallszahlen ist nach jedem Programmstart gleich, da der Seed-Wert nicht geändert wird. In idGameLocal wird einmal "random.SetSeed( 0 );" aufgerufen, was wohl der Grund ist, warum man immer dieselben Zahlenfolgen erhält. Wenn man Lust hat, kann man das im Code ändern.
 

Kiran Müller

Commander Keen
Ach ich sehe gerade dass ich da also im Grunde +1 dann zu dem random() hinzufügen muss. Das die Reihenfolge im Grunde dauerhaft gleich bleibt ist ja garnicht mal so schlimm, die zahlen brauche ich ja eh nur um ein wenig Abwechslung in den Weg zu bringen den "der/die" func_mover macht.

Was mich jetzt gerade noch stört ist das ich noch immer keinen func_mover Brush spawnen kann. Weil ich möchte halt keins von den Modellen nehmen und die Variante mit dem verstecken möchte ich ungern nutzen. Mein Script funkioniert ja soweit mit dem spawnen auch Super.
 

MacX

Light Guard
Jep, nur 1 zum Ergebnis der random()-Funktion addieren. Was du mit "func_mover Brush" meinst, ist mir nicht ganz klar, aber ich nehme mal an, dass der func_mover den du per sys.spawn erzeugst, nicht texturiert ist, bzw. nicht die Texturen hat, die du dir wünschst. Da denke ich nicht, dass man das über ein Skript lösen kann.
Du musst wahrscheinlich wirklich erst eine Kiste als func_mover in deine Map integrieren und kannst diese Entität dann verstecken, per Skript neu positionieren, erscheinen lassen und bewegen. Ob man diese Entität dann beliebig oft per Skript kopieren kann, weiß ich gerade nicht. Vielleicht funktioniert das mit sys.copySpawnArgs und folgendem sys.spawn.
 

Kiran Müller

Commander Keen
Ja also das ist ja dann wieder blöd ;-) Naja mal schauen, entweder nutz ich halt dann das Modell weiterhin oder mich muss das wirklich 30-40 func_mover erstellen die dann genutzt werden ;-)

Naja, auf jeden Fall erst einmal vielen Dank für die Informationen. Die Info zu random() war schon mal sehr hilfreich ;-)
 
Top