Moin ich habe mir ein Savezone script mal zusammen gesucht und komme nun nicht mehr weiter könnte mir jemand helfen ?
habe das Script im Editor getestet und weiss nicht wie ich weiter kommen soll
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Moin ich habe mir ein Savezone script mal zusammen gesucht und komme nun nicht mehr weiter könnte mir jemand helfen ?
habe das Script im Editor getestet und weiss nicht wie ich weiter kommen soll
ich habe deinen Code jetzt mal nicht auf Funktion getestet, aber der Fehler liegt im ganz unten in "sleep 3". Du hast das ganze in den switch case Block gepackt und das kann natürlich nicht funktionieren, weil ein case erwartet wird. Sollte das in eines der while schleifen?
Generell würde ich dich bitten mehr auf deine Formatierung zu achten, dann fallen solche Fehler bei Verschachtelungen schneller auf.
Formatiert... :
private ["_eh1","_inArea","_zone1","_zone2","_zone3","_zone4","_zone5","_dis","_dis2","_dis3","_dis4","_dis5"];
_zone1 = getMarkerPos "safezone_1"; // MARKERS FOR SAFEZONE
_zone2 = getMarkerPos "safezone_2";
_zone3 = getMarkerPos "safezone_3";
_zone4 = getMarkerPos "safezone_4";
_zone5 = getMarkerPos "safezone_5";
_dis = 420; // Distanz Kavala Safezone
_dis2 = 300; //Distanz Athira Safezone
_dis3 = 200; //Distanz Sofia Safezone
_dis4 = 175; //Rebellejn Nord
_dis5 = 200; //Rebellen Süd
_inArea = false;
switch (playerSide) do {
case west: {
while {true} do {
if (alive player) then {
if (((_zone1 distance player < _dis) ||
(_zone2 distance player < _dis2) ||
(_zone3 distance player < _dis3)||
(_zone4 distance player < _dis4)||
(_zone5 distance player < _dis5)) &&
(!_inArea)) then {
_inArea = true;
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'>
<t size='1'><t color='#ffffff'>Du betrittst eine Safezone. Holster dein Waffe. Du kannst niemanden ausrauben oder töten!";
player allowDamage false;
};
if (((_zone1 distance player > _dis) &&
(_zone2 distance player > _dis2) &&
(_zone3 distance player > _dis3) &&
(_zone4 distance player > _dis4) &&
(_zone5 distance player > _dis5)) &&
(_inArea)) then {
_inArea = false;
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'><t size='1'><t color='#ffffff'>Du verlässt die Safezone.";
player allowDamage true;
};
};
};
};
case civilian: {
while {true} do {
if (alive player) then {
if (((_zone1 distance player < _dis) ||
(_zone2 distance player < _dis2) ||
(_zone3 distance player < _dis3)||
(_zone4 distance player < _dis4)||
(_zone5 distance player < _dis5)) &&
(!_inArea)) then {
_inArea = true;
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'><t size='1'><t color='#ffffff'>Du betrittst eine Safezone. Holster deine Waffe. Du kannst niemanden ausrauben oder töten!";
player allowDamage false;
};
if (((_zone1 distance player > _dis) &&
(_zone2 distance player > _dis2) &&
(_zone3 distance player > _dis3) &&
(_zone4 distance player > _dis4) &&
(_zone5 distance player > _dis5)) &&
(_inArea)) then {
_inArea = false;
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'><t size='1'><t color='#ffffff'>Du verlässt die Safezone.";
player allowDamage true;
};
};
};
};
sleep 3; // <-------- mööööööööb
};
Alles anzeigen
Ich habe dir mal versucht ein wenig anders an die Sache heran zu gehen. Vielleicht kannst du ja was damit anfangen. Wenn du fragen hast, kannst du sie gerne stellen.
/*
* Author: Dragon
* Safezone protection script.
*
* Arguments:
* 0: List of mapmarkers used as the savezone <ARRAY>
* 1: timeout in seconds between each check <INT>
*
* Return Value:
* none
*
* Example:
* ["safezone_1","safezone_2", 1] call fn_savezone;
*
* Public: NO
*/
params [
"_saveZones", [], [],
"_timeout", 1, [0]
]; //Array of savezone markers and a timeout after each check
if(!hasInterface) exitWith {}; //make sure only runs on player local pc
private _ehId = 0;
while { true } do {
_inSaveZone = _saveZones select { getPos player inArea _x }; //check if the player is in any of the savezones markers
if (! _inSaveZone isEqualTo []) then { //if there is a saveZone that the player is inside
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'><t size='1'><t color='#ffffff'>Du betrittst eine Safezone. Holster dein Waffe. Du kannst niemanden ausrauben oder töten!";
player allowDamage false;
_ehId = player addEventHandler ["fired", {
params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"]; //disable shooting by instantly removing the fired bullet
if (!isNull "_projectile") then {
deleteVehicle _projectile;
};
}];
waitUntil { uiSleep _timeout; (_inSaveZone select { getPos player inArea _x}) isEqualTo [] }; //wait until the player left the current safe zone
hint parseText "<t color='#FF0000'><t size='2'><t align='center'>Warnung<br/><br/><t align='center'><t size='1'><t color='#ffffff'>Du verlässt die Safezone.";
player allowDamage true;
player removeEventHandler ["fired", _ehId]; //remove the anti bullet system
};
uiSleep _timeout;
};
Alles anzeigen