ALARMSYSTEM FÜR HOUSING
Tutorial von CamaroZ
Hallo, dieses Script fügt einen Alarm System zu eurem Housing System hinzu.
Dann fangen wir mal an.
Öffnet eure "Functions.hpp" und fügt es unter der class "Housing" ein:
Geht in euren "Housing" Ordner, der befindet sich im "core" Ordner und erstellt eine neue Datei namens "fn_alarme.sqf":
/*
Author: CamaroZ
File: fn_alarme.sqf
*/
private ["_alarme","_house"];
_house = param [0,objNull,[objNull]];
if (isNull _house) exitWith {};
if (!(_house isKindOf "House_F")) exitWith {};
if (_house getVariable "alarme") then {
playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", player, false, getPosASL player, 1, 1, 150]; //Alarme da Casa
// No lugar de player pode ser reposto por _house, que o som ficaria no objeto. Porém não foi testado...
} else {
hint "Essa casa não possui, nenhum alarme.";
};
Alles anzeigen
Jetzt müsst ihr die folgenden Variablen in den folgenden Dateien einfügen:
_house setVariable ["uid",floor(random 99999),true];
_house setVariable ["alarme",true,true]; // Código adicionado
_house setVariable ["locked",false,true];
_house setVariable ["alarme",false,true]; // Código adicionado
_house setVariable ["locked",true,true];
_house setVariable ["alarme",true,true]; // Código adicionado
Dann öffne die Datei "fn_houseMenu.sqf" und füge den gesamten Block ganz unten ein
} else {
_Btn1 ctrlSetText localize "STR_pInAct_SellHouse";
_Btn1 buttonSetAction "[life_pInact_curTarget] spawn life_fnc_sellHouse; closeDialog 0;";
_Btn1 ctrlShow true;
if (((_curTarget getVariable "house_owner") select 0) != (getPlayerUID player)) then {
_Btn1 ctrlEnable false;
};
if (_curTarget getVariable ["locked",false]) then {
_Btn2 ctrlSetText localize "STR_pInAct_UnlockStorage";
} else {
_Btn2 ctrlSetText localize "STR_pInAct_LockStorage";
};
_Btn2 buttonSetAction "[life_pInact_curTarget] call life_fnc_lockHouse; closeDialog 0;";
_Btn2 ctrlShow true;
if (isNull (_curTarget getVariable ["lightSource",objNull])) then {
_Btn3 ctrlSetText localize "STR_pInAct_LightsOn";
} else {
_Btn3 ctrlSetText localize "STR_pInAct_LightsOff";
};
_Btn3 buttonSetAction "[life_pInact_curTarget] call life_fnc_lightHouseAction; closeDialog 0;";
_Btn3 ctrlShow true;
if (_curTarget getVariable ["alarme",true]) then { // Código adicionado
_Btn4 ctrlSetText "Desligar Alarme";
_Btn4 buttonSetAction "life_pInact_curTarget setVariable ['alarme',false,true]; closeDialog 0;";
_Btn4 ctrlshow true;
} else {
_Btn4 ctrlSetText "Ligar Alarme";
_Btn4 buttonSetAction "life_pInact_curTarget setVariable ['alarme',true,true]; closeDialog 0;";
_Btn4 ctrlshow true;
};
Alles anzeigen
Öffnet die Datei "fn_copBreakDoor.sqf" und fügt das folgende ein:
_door = [_house] call life_fnc_nearestDoor;
if (_door isEqualTo 0) exitWith {hint localize "STR_Cop_NotaDoor"};
if ((_house getVariable [format["bis_disabled_Door_%1",_door],0]) isEqualTo 0) exitWith {hint localize "STR_House_Raid_DoorUnlocked"};
life_action_inUse = true;
if(_house getVariable "alarme") then { // Código adicionado
[_house]call life_fnc_alarme;
[2,"STR_House_Raid_NOTF",true,[(_house getVariable "house_owner") select 1]] remoteExecCall ["life_fnc_broadcast",RCLIENT]; // Essa mensagem aparecerá para todos os players online no servidor, caso deseje desativar é opcional.
};
Alles anzeigen
Geht jetzt in eure "life_server.pbo" und sucht im Ordner "house" nach "initHouses.sqf" und fügt diese Variablen ein:
_house setVariable ["locked",true,true]; //Lock up all the stuff.
_house setVariable ["alarme",true,true]; // Código adicionado
WICHTIG: Der Alarm ist anpassbar, wenn ihr den Alarm bei der lockpick haben wollt nachdem ihr in das Haus eingebrochen habt, fügt diesen Snippet ein:
Öffnet euren "fn_boltcutter.sqf" und fügt noch diesen Codeschnipsel ein:
if (_door isEqualTo 0) exitWith {hint localize "STR_Cop_NotaDoor"}; //Not near a door to be broken into.
if ((_building getVariable [format["bis_disabled_Door_%1",_door],0]) isEqualTo 0) exitWith {hint localize "STR_House_Raid_DoorUnlocked"};
if ((nearestObject [[16019.5,16952.9,0],"Land_Dome_Big_F"]) == _building || (nearestObject [[16019.5,16952.9,0],"Land_Research_house_V1_F"]) == _building) then {
[[1,2],"STR_ISTR_Bolt_AlertFed",true,[]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
} else {
[0,"STR_ISTR_Bolt_AlertHouse",true,[profileName]] remoteExecCall ["life_fnc_broadcast",RCLIENT];
};
life_action_inUse = true;
//Setup the progress bar
if(_building getVariable "alarme") then { // Código adicionado
[_building] call life_fnc_alarme;
};
Alles anzeigen
So, das müsste es gewesen sein, falls was nicht passen sollte oder ich habe es falsch übersetzt, BITTE teilt es mir mit und ich ändere es selbstverständlich.
Nicht vergessen ich gehe NUR auf kommentare ein, die dementsprechend sittengerecht verfasst worden sind, auf Flamerei gehe ich nicht ein!
VIEL SPASS!
PS.:
Alles anzeigenHallo zusammen,
ich habe mir das Script mal angeschaut und habe die Lösung für euer Problem mit der fn_houseMenu.sqf.
Ihr dürft nicht den ganzen Code einfügen nur diesen hier:
Codeif (_curTarget getVariable ["alarme",true]) then { // Código adicionado _Btn4 ctrlSetText "Haus-Alarm deaktivieren"; _Btn4 buttonSetAction "life_pInact_curTarget setVariable ['alarme',false,true]; closeDialog 0;"; _Btn4 ctrlshow true; } else { _Btn4 ctrlSetText "Haus-Alarm aktivieren"; _Btn4 buttonSetAction "life_pInact_curTarget setVariable ['alarme',true,true]; closeDialog 0;"; _Btn4 ctrlshow true; };
Ich werde meine fn_houseMenu.sqf unten anhängen. Dann könnt ihr euch das anschauen. Exodoos vielleicht änderst du das oben im TuT noch.
Hoffe es hilft dem einem oder anderem weiter.
Mit freundlichen Grüßen,
Dukes