Armed-Assault.de Twitter


 
 
Themen-Optionen Ansicht
Alt 17.10.2012, 15:32   #1 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Icon5 zufälliges Spawnen von Einheiten

Hallo, zuallererst möchte ich darauf aufmerksam machen, dass ich schon seid einigen Tagen versuche, das alleine hinzukriegen. Hab aber kein einsteigerfreundliches Tutorial gefunden.

Nun zu meinem Script:

Spieler betritt ein Gebiet(zb. Cherno)

(Auslöser wird betätigt und löst Script aus)
->daraufhin spawnen in der näheren Umgebung Civilisten
(max 50 Einheiten/ zufälliger Spawnpunkt Entfernung max. 150 meter)

Spieler bewegt sich, also sollen alle Einheiten, die sich dann außerhalb der 100 m befinden gelöscht werden (Wie das löschen geht, weiß ich mittlerweile dank Moerderhoschi::)

-----------------------------------------------------------------------


man bäuchte also drei Zonen: eine Globale (Städte, Dörfer, Flugfelder)
und zwei lokale(halt innerhalb dieser globalen Zonen[damit nicht zuviele Einheiten gespawnt werden])

1. lokale Zone: Kreis mit 150m Radius
2. lokale Zone: Kreis mit 100m Radius

Dann bräuchte man ja verschiedene Gruppen der Einheitentypen
grp1 = Zivilisten
grp2 = Soldaten
grp3
...

diese sollten dann entlang des Kreisrandes der 2. lokalen Zone spawnen
(Platzierungsradius = 10, möglichst nacheinander, damit ArmA nicht abstürzt )

alle Einheiten die sich außerhalb der 1. lokalen Zone befinden, werden dann gelöscht.


Ich hab das ganze mal skizziert:

http://www.bulletrun-hq.com/imagehos...annt7O7TMD.jpg

Ich hoffe mal das ihr mir hier helfen könnt

PS: das ähnelt halt ziemlich DayZ was das mit den Spawns angeht

Geändert von sandmanGER (17.10.2012 um 15:34 Uhr).
sandmanGER ist offline  
Alt 17.10.2012, 16:59   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Folgend ein Skript mit dem du ringförmig Objekte um eine Position aufstellen kannst.

Zum Testen in einem Mehrfach-Funkauslöser rufe das Skript in "Bei Akt." folgend auf:

temp = [player, position Fahne1,10,5] execVM "RingPlazierung.sqf"

Für die Referenzposition erstelle eine Fahne mit Namen Fahne1


Zur genauen Funktionsweise lies die Kommentare im Skript.


Skript: RingPlazierung.sqf
Code:
//Stellt ein Objekt in zufälliger Himmelsrichtung um eine Referenzposition auf
//
// [Aufstellobjekt, Referenzposition, Distanz zur Position, Abweichung] execVM "RingPlazierung.sqf"

_objekt  = _this select 0; //aufzustellendes Objekt
_refPos  = _this select 1; //Referenzposition für die Distanz
_distanz = _this select 2; //Distanz zur Referenzposition
_abweich = _this select 3; //Abweichung

//Abweichung zur Distanz berechnen
_distanz = _distanz - _abweich/2 + (Random _abweich);

//Position der Aufstellung um den Referenzpunkt von 0-360 Grad
_dir = (Random 360)+1;
_objekt setPos [(_refPos select 0)+_distanz*sin(_dir),(_refPos select 1)+_distanz*cos(_dir)];

//Objekt in Richtung Referenzposition ausrichten
_objekt SetDir (_dir+180);
Vienna ist offline  
Alt 17.10.2012, 18:01   #3 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

erstmal danke für deine Unterstützung,

Ich habe "player" mit "Fahne1" vertauscht, damit die Flagge bei mir spawnt
Wie muss ich das ändern damit die Fahne gespawnt wird und ich die nicht erst erstellen muss?
Also mind. 1 Fahne bis 20 Fahnen.

Wie kann ich daraus ne Schleife machen, dass es alle 5 sek eine Fahne gespawnt wird?

Geändert von sandmanGER (17.10.2012 um 18:23 Uhr).
sandmanGER ist offline  
Alt 17.10.2012, 18:28   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Das Skript versetzt nur bestehende Objekte. Im Spiel sind diese zuvor zu erstellen mit diesen Befehlen:

http://community.bistudio.com/wiki/createVehicle (für Objekte wie Fahrzeuge Fahnen usw.)

http://community.bistudio.com/wiki/createUnit (für Soldaten)

Hast du die Objekte schon im Editor erstellt, dann musst du ihnen einen Namen geben und den Namen dem Skript zum Verstellen übergeben.
Vienna ist offline  
Alt 17.10.2012, 18:53   #5 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

alles klar, danach soll die Einheit entfernt werden,
wenn sie mehr als 150m von dem Spieler entfern ist (da der spieler sich ja auch bewegt).

_entfern = player Distance Fahne1;
IF _entfern >= 150;
THEN deleteVehicle Fahne1;

Mir ist klar das das so nicht funktionieren wird, aber dadurch weißt du wie ich mir das vorstelle.
sandmanGER ist offline  
Alt 17.10.2012, 19:10   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Zum Entfernen kann man http://community.bistudio.com/wiki/nearestObjects verwenden. Da ist der ClassName der Fahne und der Radius für den Entfernungsbereich als Parameter anzuführen. Die dabei gefundenen Fahnen werden in einem Array ausgegeben und können so einfach entfernt werden.
Vienna ist offline  
Alt 17.10.2012, 21:05   #7 (permalink)
50 Beiträge
 
Registriert seit: 16.10.2012
Beiträge: 63
Standard

tut mir leid bin aber n Neuling,

was ich bisher hab:

temp = [Fahne1, position player,10,5] execVM "RingPlazierung.sqf" // spawnt

jetzt sollen ja alle einheiten, die sich in einem Radius zwischen 70 - 150(!) befinden, gelöscht werden. ich versteh nicht wie ich das "nearestObjects [player, ["Fahne"], 200]"
einbauen soll, und ob du das überhaupt gemeint hast.
sandmanGER ist offline  
Alt 17.10.2012, 21:56   #8 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Hier ist eine Auflistung von Befehlen mit denen man Programmroutinen für Arma schreiben kann: http://community.bistudio.com/wiki/C...Commands_ArmA2

Das von mir erstellte Skript kann nur ein Objekt an eine Position auf der Karte versetzen. Für das Löschen von Objekten ist eine andere Programmroutine erforderlich.

Bevor du dich mit Befehlen befasst, solltest du dich mit den Grundlagen der Programmierung vertraut machen. Das kannst du hier nachlesen: http://community.bistudio.com/wiki/Syntax
Vienna ist offline  
 

Stichworte
trigger script


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Einheiten in Gruppe löschen Brubaker Editing 6 26.05.2011 17:44
Einheiten springen gleichzeitig aus Helikopter bei Bodenberührung ca$hflow Editing & Scripting 24 25.09.2010 18:41
Heal/Repair Script / Einheiten in einem Radius zufällig generieren lassen Noobfire Editing & Scripting 8 06.08.2010 15:22
Script-Problem: Einheiten löschen Kampfmöhre Editing & Scripting 5 31.05.2010 12:37
Falsche KI-Gruppen spawnen! GER_CJ-187 Editing & Scripting 2 28.05.2010 18:58


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119