Hey, ich habe mich mal an einem Script versucht. Es wird durch eine Addaction an einem Schild ausgelößt und generiert ein Feuer.
Code: fn_fireKavala
#include "..\..\..\script_macros.hpp"
/*
File: fn_fireKavala.sqf
Author: perx
Description:
Makes Fire & Alarm
*/
if(player isEqualTo civilian) exitWith { hintSilent "Du sollst nicht mit dem Feuer spielen!" };
if(life_fireactive) exitWith { hintSilent "Es brennt bereits!" };
if(side player != independent) exitWith { hintSilent "Du bist nicht von der Feuerwehr!" };
if(!(call life_mediclevel >= 7)) exitWith {};
/*
**************************************
****** Allgemeine Einstellungen ******
**************************************
*/
private ["_brandherd", "_box", "_pos", "_msg", "_msg2", "_dauer", "_umkreis", "_schaden"];
_brandherd = "Land_HelipadEmpty_F" createVehicle getMarkerPos "brand_1";
_box = "Land_LuggageHeap_01_F" createVehicle getMarkerPos "brand_1";
_pos = getMarkerPos "brand_1"; //wo ist der Brandherd?
_msg = "ACHTUNG! - In Kavala ist ein Feuer ausgebrochen! Auf deiner Karte siehst du den genauen Ort!"; //Nachricht an alle Spieler
_msg2 = "Gute Arbeit, die Feuerwehr hat das Feuer erfolgreich gelöscht!"; //Nachricht an alle Spieler
_dauer = 500; //wie lange brennt es (in SEKUNDEN)
_umkreis = 10; //wie groß ist das Feuer
if (life_firefighter) then {
_schaden = 0.01;
} else {
_schaden = 0.1;
};
/*
*************************
****** Scriptstart ******
*************************
*/
[1,_msg,false,true] remoteExec ["life_fnc_broadcast",-2];
[] remoteExec ["life_fnc_firetask",independent];
life_fireactive = true;
publicVariable "life_fireactive";
[_brandherd,_dauer,_umkreis,_schaden,false,false,"big"] remoteExec ["life_fnc_fire",RCLIENT];
_brandherd say3D ["fire",250,1];
_marker = createMarker ["Feuer", _pos];
"Feuer" setMarkerColor "ColorRed";
"Feuer" setMarkerText "!ACHTUNG! FEUER !ACHTUNG!";
"Feuer" setMarkerType "mil_warning";
uiSleep _dauer;
life_fireactive = false;
publicVariable "life_fireactive";
[1,_msg2,false,true] remoteExec ["life_fnc_broadcast",-2];
deleteMarker "Feuer";
deleteVehicle _brandherd;
Alles anzeigen
Zur Zeit ist es so, dass das Feuer (also "_brandherd") nach 500 Sekunden (_dauer) automatisch gelöscht wird.
Ich würde das aber gerne so haben, dass man ein Objekt (_box) anscrollen kann wobei eine Progressbar aufgerufen wird die das Feuer (_brandherd) löscht.
Wie kann ich das am besten realisieren?
Außerdem wäre es toll, dass der player keinen Schaden bekommt, wenn life_firefighter = true; ist. Ich denke, das funktioniert zur Zeit nicht, da das Script ausgeführt wird und die Variable aber erst später gesetzt wird, wie kann ich das ändern?
LG