Archiv verlassen und diese Seite im Standarddesign anzeigen : Auslöser erst ab 10 Spieler auslösen lassen
Bier AIG Tartar
18.07.2013, 16:26
Bin eine MP Mission am bauen und bin auf folgendes Problem gestoßen,
ein Auslöser soll erst ausgelöst werden, wenn mindestens 10 Spieler in dem Bereich des Auslösers sind.
Gruß
Bier AIG Tartar
So rein aus dem Bauch raus:
Auslöser statt this oder true (was da jetzt auch immer steht) hereinschreiben:
count thislist > 9
Bier AIG Tartar
18.07.2013, 18:06
Ne das geht nicht ;-)
Der Auslöser muss auf eine Seite oder auf Jeder eingestellt sein.
AHTNTEPPOP
18.07.2013, 21:21
Ich habe mal den Thread Titel geändert da der alte nicht wirklich aussage kräftig war.
Natürlich würde thislist auch KI's der entsprechenden Seite mitberücksichtigen.
Das nur auf Spieler zu begrenzen dürfte fürn Auslöser recht umständlich werden, da wäre ein Script ratsamer.
Moerderhoschi
19.07.2013, 09:38
Ich hatte sowas vor ein paar monaten mal fuer eine mission die ich gebastelt habe gescriptet.
.
.
.
http://abload.de/img/2013-07-19_00001tus1w.jpg
init.sqf
mdh_checkplayableunits = compile preprocessFile "mdh_checkplayableunits.sqf";
mdh_checkplayableunits.sqf
//////////////////////////////////////////////////////////////
// CHECK PLAYABLEUNITS IN TRIGGER
// MADE BY MOERDERHOSCHI
// ARMED-ASSAULT.DE
// 08.04.2013
//////////////////////////////////////////////////////////////
if (!isServer) exitwith {};
private["_side","_vplu","_plu","_numunits","_unitsinlist"];
_side = _this select 0;
_vplu = [];
if (isMultiplayer) then [{_plu = playableunits},{_plu = units group player}];
_numunits = 0;
{
if
(
!((vehicle _x) in _vplu) &&
{side (group _x) == _side} &&
{alive _x}
)
then
{
_numunits = _numunits + 1;
_vplu = _vplu + [(vehicle _x)]
};
} forEach _plu;
_unitsinlist = 0;
{
if
(
_x in _vplu &&
{alive _x}
)
then
{
_unitsinlist = _unitsinlist + 1
};
} forEach thislist;
_unitsinlist == _numunits
gruß
hoschi
Rockhount
19.07.2013, 11:42
Hier die verkürzte Variante des Scripts:
sleep 5;
if (isServer) then
{
private ["_Side", "_PlayerCount", "_Counter"];
_Side = _this select 0;
_PlayerCount = _this select 1;
_Counter = 0;
{
if ((alive _x) && {side _x == _Side} && {_x in playableunits}) then
{
_Counter = _Counter + 1;
}
} forEach thislist;
_Counter >= _PlayerCount
}Aufruf ist wie folgt:
[west, 10] call mdh_checkplayableunits
Bier AIG Tartar
19.07.2013, 17:41
Ein Arma Kollege ( Rockhount)hat mir die Lösung gegeben und an alle anderen auch ein Danke !
isServer && ("player" countType thislist > 9)
Gruß
Rockhount
20.07.2013, 01:37
Er meinte das:
isServer && (west countSide thislist > 9)
isServer && "SoldierWB" countType thislist > 9 geht auch.
Er will aber anscheinend die Spieler zählen. Das geht dann so:
isServer && {isPlayer _x} count thislist > 9
vBulletin® v3.7.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.