![]() |
#1 (permalink) |
![]() Registriert seit: 07.06.2009
Beiträge: 40
|
![]()
Halloa
ich habe ein Problem beim Scripten von Artillerie. Ich wollte eigentlich hinbekommen, dass solange Gegner in einer Stadt sind an vordifinieren Positionen nach einer zufälligen Zeit (max 5min) artilleriegranaten einschalgen.Diese sollten aber nicht immer an den gleinen definieren Positionen einschlagen. Das erstellen von Artilleriegranaten in der Luft durch einen Auslöser habe ich hinbekommen. Mein Problem besteht jetzt darin dass ich nicht weis wie ich einen Auslöser mache der solange ein Script ausführt bis alle Gegner einen Bereich verlassen haben oder tod sind. Außerdem weis ich nicht wie man durch einen Auslöser per zufallszeit Granaten über einem Zufälligen Marker. Habe es auch schon probiert einer Ki Artillerie zu sagen sie solle ein Zeitlang auf ein Gebiet feuern, habe es aber auch nicht hinbekommen dass sie überhaupt auf große Entfernung feuert). |
![]() |
![]() |
#3 (permalink) |
![]() Registriert seit: 07.06.2009
Beiträge: 40
|
![]()
hab vereinzelt was gefunden was etwas in meien Richtung geht, aber es war nix dabei was jetzt etwas genauer in Richtung meines Problem gehen würde oder was ich gleich begreifen würde.
Suche schon den ganzen Tag im Internet und probiere rum. Was ich mach klappt aber ned ![]() |
![]() |
![]() |
#5 (permalink) |
![]() Registriert seit: 07.06.2009
Beiträge: 40
|
![]()
Danke für den Link
![]() Es ist aber leider nicht ganz das was ich brauche. Ich kann damit leider nicht sagen wo genau ein Schuss landet. Habe eigenltich vor auf der Karte Zargabad, bei Nacht, den Spieler einen Angriff starten zu lassen und wollte für eine bestimmte Zeit am Anfang den Eindruck eines Artillerieangriffs hinbekommen der aber keine Ki tötet. Hatte vor Marker an positionen zu setzen wo keine Gegner sind. Habe es jetzt mal mit einem externen Script probiert und bekomme nur Error7. (Habe noch nie Gescriptet). Hier mal dass was ich bis jetzt habe: #Start; _Bomb="Sh_105_HE" createVehicle [(getPos Ziel1 select 0),( getPos Ziel1 select 1), 100]; sleep 30; exit; ______________________________ Liegt es vielleicht daran dass ich es als .sqs gespeichert habe und mit nul = execVM "arti.sqs" aufrufe? |
![]() |
![]() |
#6 (permalink) |
![]() ![]() ![]() Registriert seit: 16.07.2010
Beiträge: 305
|
![]()
Versuch das mal:
Beispiel für 5min und random 50m um den Marker herum Code:
null= [ziel1,50,120] execVM "artillery.sqf"; Code:
private ["_ziel","_rand","_zeit"]; _ziel = _this select 0; _rand = _this select 1; _zeit = _this select 2; if (isServer) exitWith { sleep _zeit; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; }; Edit2: Je nachdem wieviele Geschütze verwendet werden, muss das Script verändert werden z.B. bei 3 Geschützen: Code:
private ["_ziel","_rand","_zeit"]; _ziel = _this select 0; _rand = _this select 1; _zeit = _this select 2; if (isServer) exitWith { sleep _zeit; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 30; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep 0.5; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; }; Geändert von Rockhount (22.08.2010 um 21:40 Uhr). |
![]() |
![]() |
#7 (permalink) |
![]() ![]() Registriert seit: 11.08.2010
Beiträge: 129
|
![]()
Bomb="Sh_105_HE" createVehicle [(getPos Ziel1 select 0),( getPos Ziel1 select 1), 100];
AH, der Befehl mit dem sich von Hühnern über Klohäuschen bis hin zu Abdul alles sprengen lässt. ![]() Ich würds einfach mit Zeitverzögerten Auslösern machen wenn das Feuer unregelmäßig sein soll, wenn alle Granaten gleichzeitig landen sollen reicht ein Auslöser in dem sich der Befehl mit verschiedenen Zielen wiederholt.
__________________
Life will kill you |
![]() |
![]() |
#8 (permalink) |
![]() Registriert seit: 07.06.2009
Beiträge: 40
|
![]()
Also das Script hab ich so halbwegs verstanden.
Bloß bin ich grad zu doof dess zum laufen zu bringen. habe jetzt eine artillery.sqf angelegt und den Inhalt vom untersten Script eingefügt. Habe dann einem feindlichen Schützen (einfach mal zum testen) des namen "ziel" gegeben und habe einen Auslöser eingebaut der das Script aufruft. Problem: Es passiert nix ![]() Frage: Was macht dass "private ["_ziel","_rand","_zeit"];"? @Disturbed Habe damit am Anfang auch rumprobiert, aber ich müsste dann ja 1000 Auslöser einbauen, wo jeder eine andere Zeit hat und ich müsset für jeden Auslöser ein Extra Marker anlegen wo dann das Geschoss auftaucht oder denk ich wieder total falsch? |
![]() |
![]() |
#9 (permalink) |
![]() ![]() ![]() Registriert seit: 16.07.2010
Beiträge: 305
|
![]()
1. Unsichtbares Heli H oder eine Einheit mit den Namen "ziel1" erstellen
2. null=[ziel1,50,0] execVM "artillery.sqf" im Auslöser einfügen zu der Frage: Link . Wäre aber eigendlich bei diesen Script auch nicht nötig, da nicht mehrere If then Befehle mit verschiedene Variablen gebraucht werden. Geändert von Rockhount (23.08.2010 um 17:17 Uhr). |
![]() |
![]() |
#11 (permalink) |
![]() ![]() ![]() Registriert seit: 16.07.2010
Beiträge: 305
|
![]()
Hier die verbesserte Variante:
Code:
_ziel = _this select 0; _rand = _this select 1; _zeit = _this select 2; _zeit1 = _this select 3; _zeit2 = _this select 4; _re = _this select 5; sleep _zeit; for [{_iX = 0}, {_iX < _re}, {_iX = _iX + 1}] do { Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) - random _rand, 0]; sleep _zeit2; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) - random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep _zeit2; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) + random _rand, 0]; sleep _zeit2; Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) - random _rand,( getPos _ziel select 1) - random _rand, 0]; sleep _zeit1; }; Code:
null = [ziel,50,10,30,0.5,40] execVM "arty.sqf"; 50 = Verstreung der Arty in Metern 10 = Wartezeit bis das Script/Artilleryeinschläge anfangen 30 = Nachladezeit der Arty in Sec. 0.5 = Zwischenzeit der Einschläge während einer Runde 40 = Anzahl der Runden Das Scipt ist allerdings für 4 Arty`s konstruiert, will man mehr oder weniger muss man diese Einträge hinzufügen oder entfernen: Code:
Bomb= "Sh_105_HE" createVehicle [(getPos _ziel select 0) + random _rand,( getPos _ziel select 1) - random _rand, 0]; sleep _zeit2; Geändert von Rockhount (25.08.2010 um 16:47 Uhr). |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|