Zitat von Maddog_aut
Sowas wie den Baseschutz habe ich bereits gesucht. Funktioniert wunderbar.
Ist es möglich den Baseschutz so zu ändern, das der Feind nicht in die Basis feuern kann?
Also eine ultimative Schutzzone.
Ein Verhindern des Schießens ist nicht einfach. Aber es wird ja der Schütze getötet, der in der Basis wem verletzt.
Das Skript aus dem Beispiel dürfte mit den heutigen Versionen nicht mehr korrekt laufen. Verwende folgendes (die fette Zeile wurde geändert)
Code:
// Basisschutz für Spieler durch EventHandler [Vienna 03.10.2010]
//
// Erfordert Auslöser mit Aktivierung BLUFOR und OPFOR mit Namen z.B. Basis_West und Basis_East.
//
// Aus der eigenen Basis kann nicht herausgeschossen werden.
// Wer in der gegnerischen Basis einen Gegner verletzt oder tötet, wird selbst getötet!
//
// Parameter: [Name des Seiten-Auslösers für den Basisbereich]
//
// z.B. Aufruf West-Seite: if (playerSide == WEST) then {[Basis_West] execVM "BasisSchutz.sqf"};
// z.B. Aufruf East-Seite: if (playerSide == EAST) then {[Basis_East] execVM "BasisSchutz.sqf"};
Private ["_Basis","_EH_Fired","_EH_Hit","_EH_Killed"];
_Basis = _this select 0; //Basisname
while {true} do
{
//warten bis Spieler in der Basis, dann EventHandler starten
[b]waitUntil {(vehicle player in list _Basis)};[/b]
player groupchat "Ich bin im Basisschutz!";
_EH_Fired = vehicle player addEventHandler ["Fired", { NearestObject [_this select 0,_this select 4] setPos[0,0,0]}];
_EH_Hit = vehicle player addEventHandler ["Hit", {_this select 1 setdammage 1; player setDammage 0; vehicle player setDammage 0}];
_EH_Killed = vehicle player addEventHandler ["Killed",{_this select 1 setdammage 1}];
//warten bis Spieler die Basis verlassen hat, dann Eventhandler löschen
waitUntil {! (vehicle player in list _Basis)};
player groupchat "Ich habe Basisschutz verlassen!";
player removeEventHandler ["Fired", _EH_Fired];
player removeEventHandler ["Hit", _EH_Hit];
player removeEventHandler ["Killed",_EH_Killed];
}