PDA

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

Lester
18.07.2013, 17:25
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 ;-)

Vienna
18.07.2013, 21:08
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.

Lester
19.07.2013, 09:06
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)

Vienna
21.07.2013, 01:38
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