PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ACM in Arma 3


Prof.Bienlein
09.10.2015, 13:28
Liebe Gemeinde,

Ich stehe vor folgendem Problem: Ich suche etwas wie das ACM Modul (Ambient Combat Manager) aus Arma 2. Einheiten sollen zufällig, immer wieder mit einer bestimmten Wahrscheinlichkeit um die (sich bewegenden) Spieler spawnen und diese angreifen. Dazu gibt es zwei Scripte, jedoch treffen beide nicht genau das, was ich brauche.
Das erste:
AI Spawn Script Pack - Scripts - Armaholic (http://www.armaholic.com/page.php?id=19832)
Das Script tut genau das richtige, jedoch weiß ich nicht wie man z.B. nur FIA (oder eine Fraktion aus einer Mod) spawnen lassen kann und ebenso wenig wie man die Intensität des Gegneraufkommens einstellt, damit keine große Schlacht entsteht, sondern eben nur kleine Angriffe.
Das zweite Script:
Dynamic AI Spawn System - Scripts - Armaholic (http://www.armaholic.com/page.php?id=28107)
Hier kann man die beiden oben genannten Parameter genau einstellen. Das Problem ist nur, dass der Angriff der KI lediglich auf einen festgelegten Punkt stattfindet. D.h. wenn sich der Spieler weiterbewegt, dann werden ihn keine Truppen mehr angreifen.
Meine Frage an euch ist also: Kann man eines dieser beiden Scripte so umschreiben, dass die gewünschten Funktionen dabei sind und wenn ja, wie? Oder gibt es andere Möglichkeiten/Skripte dieses Problem zu lösen?

Vielen Dank schon mal fürs Lesen, Nachdenken und Schreiben!

MfG

Prof.Bienlein

TeilX
09.10.2015, 17:01
TPW Mods hat sowas dabei was du suchst. Einmal im Script u. Addon Form gibt es den MOD.

Klick hier für TPW Mod (http://www.armaholic.com/page.php?id=22592&highlight=TPW)

einfach mal TPW SKIRMISH probieren..... auch schön konfigurierbar der ganze Mod.;)

Prof.Bienlein
10.10.2015, 08:10
Wow,

Vielen Dank für die schnelle Antwort! Hätte ich nicht mit gerechnet.

Die Mod sieht echt Klasse aus, vor allem weil sie noch andere ziemlich coole und immersive Features hat! Leider ist das Skirmish Modul nicht MP kompatibel. Ich hatte vergessen das zu erwähnen. Es sollte eine COOP Mission werden.

Trotzdem vielen Dank für deine schnelle Antwort, TeilX! Und an anderer Stelle gedenke ich trotzdem auf die TPW Mod zurückzukommen. Echt ne Entdeckung!

Drunken Officer
10.10.2015, 19:11
Es geht auch ohne Mod. Zufällig um eine spielbare Einheit spawnen lassen, erreichst du mit der BIS_fnc_relPos.
Da kannst du in einer definierten (oder zufallsspanne) Entfernung im 360° Winkel einheiten spawnen lassen.

Dann weißt du der Gruppe einen SAD Wegpunkt auf die Position des Mittelpunktes der bis_fnc_relPos zu. Aller 30 Sekunden korregierst du die Position.

So habe ich mir mein Verfolgungsscript gebaut. Funktioniert gut. Die Spieler müssen also ständig mit Angriffen rechnen.

Prof.Bienlein
11.10.2015, 00:31
Hi Drunken Officer,

das klingt tatsächlich nach genau dem, was ich suche. Ich wollte das Ganze in eine EOD Mission einbauen. Damit die, die nicht mit dem entschärfen beschäftigt sind, auch etwas zu tun haben. ;) Leider bin ich ein echter Noob was Scripten angeht :stupid: Nun frage ich dich unverhohlen, ob du mir das vllt erklären oder schicken kannst. Wenn nicht ist das auch nicht schlimm, aber dann hab ich zumindest ein Hinweis wo ich mit meiner Suche beginnen kann. :)

MfG

Drunken Officer
11.10.2015, 08:16
kann ich machen, ist garnicht nicht so schwer

Drunken Officer
11.10.2015, 13:32
Probiere das einmal
Du läßt in der InitServer.sqf folgendes laden


DOF_SpawnHunters=
{

private ["_var_spawncenter", "_relPos", "_grp", "_einheiten", "_set_mindis", "_set_maxdis", "_set_minstrength", "_set_maxstrength", "_set_rounds", "_set_roundsdelay", "_groupside"];
if (isMultiplayer) then {_einheiten = playableUnits} else {_einheiten = switchableUnits };
_set_mindis = (_this select 0) select 0;
_set_maxdis = (_this select 0) select 1;
_set_minstrength = (_this select 1) select 0;
_set_maxstrength = (_this select 1) select 1;
_set_rounds = (_this select 2) select 0;
_set_roundsdelay = (_this select 2) select 1;
_groupside = _this select 3;
if (_set_maxdis < _set_mindis) then { _set_maxdis = _set_mindis};


for "_i" from 1 to _set_rounds do
{

_var_spawncenter = switchableUnits call bis_fnc_selectrandom;
_safepos = [position _var_spawncenter,_set_mindis,_set_maxdis,20,0,2000 ,0] call BIS_fnc_findSafePos;
_dif = (_set_maxstrength - _set_minstrength) ;
_groupmember = _set_minstrength + round (random _dif);
_grp=[_safepos, _groupside, _groupmember] call BIS_fnc_spawnGroup;
hint str (count units _grp);
[_grp] spawn DOF_Hunting;
sleep _set_roundsdelay;
};


};

DOF_Hunting =

{
private ["_wph", "_grp", "_pos", "_mindis", "_getdis", "_einheiten"];
if (isMultiplayer) then {_einheiten = playableUnits} else {_einheiten = switchableUnits };
_grp = (_this select 0);

_wph = _grp addwaypoint [[0,0,0], 0];
_wph setWaypointtype "SAD";
_wph setWaypointSpeed "FULL";
_wph setWaypointBehaviour "AWARE";


while {({alive _x} count units _grp != 0) } do
{

{
_getdis = (leader _grp) distance _x;
if (isNil "_mindis") then {_pos = getPos _x; _mindis = _getdis};
if (_getDis < _mindis ) then {_pos = getPos _x; _mindis = _getDis };
} forEach _einheiten ;

player groupChat format ["Kürzeste Distance %1", _mindis];


if ( waypointPosition _wph distance _pos > 30) then
{
_wph setWaypointPosition [_pos, 0];
};
_mindis = nil;
sleep 30;
};
};


Der Aufruf im Spiel durch den Server erfolgt dann so:
hunters=[[20,90], [4,6],[5,7], Resistance ] spawn DOF_SpawnHunters

Block 1
20 = minimale Distanz
90 = maximale Distanz

Block 2
4 minimale Gruppenstärke
6 maximale Gruppenstärke

Block 3
5 anzahl der Gruppen
7 Verzögerung beim Spawn

Block 4
Restistance = seite der Gruppe
[WEST, EAST, RESISTANCE, CIVILAN


Hoffe du kommst klar damit

Prof.Bienlein
12.10.2015, 02:05
Das ist echt hilfreich! Vielen Dank! Eine Frage noch: Was müsste ich im Script ändern, wenn ich nur eine Fraktion spawnen lassen will (z.B. FIA) und nicht die ganze Seite (Blufor = FIA+NATO). Oder z.B keine Flugeinheiten, aber den Rset schon, d.h. Einheitengruppen ausschließen oder exklusiv spawnen. Hast du da ne Idee?

MfG und danke nochmal :daumen:

Drunken Officer
12.10.2015, 03:35
Dann mußt du die BIS_fnc_spawngroup entsprechend ändern. Näheres dazu findest du auf der BIS_Wiki-Seite