Beiträge von moeck
-
-
-
genau uiSleep nimmt die reale Zeit als Basis und sleep ist durch deinen Rechner (FPS) beeinflussbar.
-
vielleicht solltest du auch call statt spawn nehmen und ich würder auch uisleep statt sleep verwenden
-
na du musst schon den Besitzer des Hauses mit übergeben damit er informiert werden kann. Ich schaue mir mal das Script an
So versuchs mal damit
. Habe Zeile 19 und 20 hinzugefügt
Code
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_boltcutter.sqf Author: Bryan "Tonic" Boardwine Description: Breaks the lock on a single door (Closet door to the player). */ private ["_building","_door","_doors","_cpRate","_title","_progressBar","_titleText","_cp","_ui"]; _building = param [0,objNull,[objNull]]; private _vaultHouse = [[["Altis", "Land_Research_house_V1_F"], ["Tanoa", "Land_Medevac_house_V1_F"]]] call TON_fnc_terrainSort; private _altisArray = [16019.5,16952.9,0]; private _tanoaArray = [11074.2,11501.5,0.00137329]; private _pos = [[["Altis", _altisArray], ["Tanoa", _tanoaArray]]] call TON_fnc_terrainSort; if (isNull _building) exitWith {}; if (!(_building isKindOf "House_F")) exitWith {hint localize "STR_ISTR_Bolt_NotNear";}; if(isNil {(_building getVariable "house_owner")}) exitWith {hint "Der Besitzer ist gerade nicht auf der Insel"}; //Eigentümer nicht Online private _uid = _building getVariable "house_owner"; // Setzen der Variable _uid if (((nearestObject [_pos,"Land_Dome_Big_F"]) == _building || (nearestObject [_pos,_vaultHouse]) == _building) && (west countSide playableUnits < (LIFE_SETTINGS(getNumber,"minimum_cops")))) exitWith { hint format [localize "STR_Civ_NotEnoughCops",(LIFE_SETTINGS(getNumber,"minimum_cops"))]; }; if ((typeOf _building) == _vaultHouse && (nearestObject [_pos,"Land_Dome_Big_F"]) getVariable ["locked",true]) exitWith {hint localize "STR_ISTR_Bolt_Exploit"}; if (isNil "life_boltcutter_uses") then {life_boltcutter_uses = 0;}; _doors = FETCH_CONFIG2(getNumber,"CfgVehicles",(typeOf _building),"numberOfDoors"); _door = 0; //Find the nearest door for "_i" from 1 to _doors do { _selPos = _building selectionPosition format ["Door_%1_trigger",_i]; _worldSpace = _building modelToWorld _selPos; if (player distance _worldSpace < 2) exitWith {_door = _i;}; }; 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"}; //Alarm System if(_building getVariable["Secured",false]) then { if(!(_building getVariable["HouseRob",false])) then { _house = getPos _building; [_house,name player,7] remoteExec ["TON_fnc_clientMessage",_uid]; _building setVariable["HouseRob",true,true]; }; }; if ((nearestObject [_pos,"Land_Dome_Big_F"]) == _building || (nearestObject [_pos,_vaultHouse]) == _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 disableSerialization; _title = localize "STR_ISTR_Bolt_Process"; "progressBar" cutRsc ["life_progress","PLAIN"]; _ui = uiNamespace getVariable "life_progress"; _progressBar = _ui displayCtrl 38201; _titleText = _ui displayCtrl 38202; _titleText ctrlSetText format ["%2 (1%1)...","%",_title]; _progressBar progressSetPosition 0.01; _cP = 0.01; switch (typeOf _building) do { case "Land_Dome_Big_F": {_cpRate = 0.003;}; case "Land_Medevac_house_V1_F"; case "Land_Research_house_V1_F": {_cpRate = 0.0015;}; default {_cpRate = 0.08;} }; for "_i" from 0 to 1 step 0 do { if (animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then { [player,"AinvPknlMstpSnonWnonDnon_medic_1",true] remoteExecCall ["life_fnc_animSync",RCLIENT]; player switchMove "AinvPknlMstpSnonWnonDnon_medic_1"; player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1"; }; sleep 0.26; if (isNull _ui) then { "progressBar" cutRsc ["life_progress","PLAIN"]; _ui = uiNamespace getVariable "life_progress"; _progressBar = _ui displayCtrl 38201; _titleText = _ui displayCtrl 38202; }; _cP = _cP + _cpRate; _progressBar progressSetPosition _cP; _titleText ctrlSetText format ["%3 (%1%2)...",round(_cP * 100),"%",_title]; if (_cP >= 1 || !alive player) exitWith {}; if (life_istazed) exitWith {}; //Tazed if (life_isknocked) exitWith {}; //Knocked if (life_interrupted) exitWith {}; }; //Kill the UI display and check for various states "progressBar" cutText ["","PLAIN"]; player playActionNow "stop"; if (!alive player || life_istazed || life_isknocked) exitWith {life_action_inUse = false;}; if (player getVariable ["restrained",false]) exitWith {life_action_inUse = false;}; if (life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;}; life_boltcutter_uses = life_boltcutter_uses + 1; life_action_inUse = false; if (life_boltcutter_uses >= 5) then { [false,"boltcutter",1] call life_fnc_handleInv; life_boltcutter_uses = 0; }; _building setVariable [format ["bis_disabled_Door_%1",_door],0,true]; //Unlock the door. _building setVariable ["locked",false,true]; if (life_HC_isActive) then { [getPlayerUID player,profileName,"459"] remoteExecCall ["HC_fnc_wantedAdd",HC_Life]; } else { [getPlayerUID player,profileName,"459"] remoteExecCall ["life_fnc_wantedAdd",RSERV]; };
-
seit wann funktioniert extDB2 mit 64bit? Also entweder musst du von extDB2 auf extDB3 umstellen oder den Server mit 32bit starten. Das erklärt übrigens auch die Fehlermeldung der Server erwartet eine 64bit Version und findet nur 32bit.
Auch wenn ich keine Ahnung von Exil habe
-
HelperLee und einfach mal selber ausprobieren ist nicht drin? Sorry wenn ich hier gerade Kritik übe aber warum kann man sich nicht mal selber mit den Thema beschäftigen und einfach mal was ausprobieren?
-
oder in den keyhandler
-
Moin,
welche MySQL Version verwendest Du? Du solltest mal auf die Version 5.7 gehen. Alternativ muss Du die SQL Statements entsprechend umschreiben da in früheren Versionen man nur einmal pro Tabellenfeld als Default CURRENT_TIMESTAMP verwenden konnte.
Gruß,
Alex
-
Du könntest das auch machen wie in der 3.1.4.8 dort hast Du die Preise manuell in der configuration konfiguriert
Codelife_garage_prices = [ ["O_Truck_03_device_F",200000], ["B_Truck_01_box_F",0] ]; __CONST__(life_garage_prices,life_garage_prices);
und dann musst. Du die Variable in der unimpound abfragen.
so das mal als Anregung. Bitte mal selber damit rumspielen
Gruß,
moeck
-
Moin,
da fehlt ein Feld in der deiner Vehicle Tabelle
. br1zey : ja das sicht verdächtig nach Verwahrstelle aus
-
Moin,
grundsätzlich gebe ich dir ja recht, allerdings haben wir zumindestens bei den Medics eine kleine Änderung am Licht gemacht. Unser Medics / ADAC Gruppe wollte auch den Offroader Reparatur mit gelben Licht haben, daher habe ich das so gelöst. [TUTORIAL] Blaulicht für Fahrzeuge einfügen und Konfiguration vereinfachen
Es gibt aber sicher auch noch andere Möglichkeiten
.
Gruß,
moeck
-
Moin,
da dein Client abstürzt wäre es gut , wenn du auch mal die Client Logs mit anhängst. Findest Du unter %localappdata%\Arma 3\ in der Regel. Ansonsten schon mal als Tipp repariere mal dein Arma 3. Das Ganze über deine Steam Bibliothek dann rechtsklick auf Arma 3 und dort reparieren. Ich kann es gerade nicht testen daher könnte ein Zwischenschritt fehlen.
Gruß,
moeck
-
man kann vieles machen. dann musst Du das eigenständig erweitern oder dir was fertiges besorgen. Es gibt den einen oder anderen Tunigshop zu erwerben eventuell ist da was bei für dich. Natürlich steht es dir frei auch ein eigenes System zu entwickeln
-
und Z-Inventar ist da nicht konfiguriert oder irre ich mich
-
der Farbcode wird in der DB gespeichert. Heisst wenn du den Skin austauschst dann ändert sich auch der Skin
Code
Alles anzeigenclass C_Offroad_02_unarmed_F { vItemSpace = 65; conditions = "license_civ_driver || {!(playerSide isEqualTo civilian)}"; price = 12500; textures[] = { { "Black", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_black_co.paa" //Farbcode 0 }, "" }, { "Blue", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_blue_co.paa" //Farbcode 1 }, "" }, { "Green", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_green_co.paa" //Farbcode 2 }, "" }, { "Orange", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_orange_co.paa" //Farbcode 3 }, "" }, { "Red", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_red_co.paa" }, "" }, { "White", "civ", { "\A3\Soft_F_Exp\Offroad_02\Data\offroad_02_ext_white_co.paa" }, "" } }; };
Frage beantwortet?
-
Perfomance mässig macht das eigentlich keinen Unterschied. Es ghet halt nur um das herunterladen der Mission datei. Je kleiner desto schneller
. Ist dann ansichtssache. Bei mods müssen die Spieler halt immer was zusätzlich runterladen, wenn du eh einen modserver hast, dann alle bilder/skins in die Mods schmeissen und die Mission Datei so klein wie möglich halten
-
also ich würde mal alles in Kleinbuchstaben umwandeln (Modnamen) und die Klammern () aus den Mods entfernen.
SAMSON : es handelt sich um die 32bit Version
-
So hier mal meine Erfahrung in der 3.1.4.8 musst du ein paar Sachen ändern, wenn du den extDB3 Treiber verwenden möchtest. Der Treiber unterstützt weitere Datenbank Feldtypen z.B. int, Datum, ... das macht die grundlegende Programierung deutlich einfacher allerdings muss man die Datentypen, dann auch in der 3.1.4.8 implementieren.
Ein weiterer Unterschied ist auch die Macro-Datei ab 4.4 werden alle Macros in einer Datei verwaltet und in 3.1.4.8 hat man normalerweise in jedem Ordner eine eigene Macro Datei. Dies kann man aber relativ leicht umstellen. Und zu guter Letzt nutzt die 4.4r? remoteexec während die 3.1.4.8 noch life_fnc_MP nutzt. Hier hat man keine Möglichkeit die Ausführung abzusichern und Angreifer können das "relativ" einfach ausnutzen. Die Umstellung in der 3.1.4.8 ist möglich allerdings sehr zeitaufwändig.
Daher ist es zu empfehlen, bei neuen Servern direkt bei 4.4r4 anzufangen und nicht auf die 3.x zusetzen. Bei existierenden Servern sieht die Welt schon wieder anders aus. Je nachdem wie stark der Server im Laufe der Zeit verändert wurde gegenüber dem Orginal macht es unter Umständen sinn den Server umzubauen, da man für beide Sachen ähnlich viel Zeit benötigt oder so gar schneller ist. Ich bin mir selbst noch nicht sicher ob ich den bestehenden Server umbau oder direkt neuaufsetze.
Wir haben halt ziemlich viele Sachen eingebaut, die es in der Form nicht gibt. Klar habe ich auch schon diverse Tutorials gefunden, die ähnliche Funktionen abbilden, aber sich trotzdem von der Implementierung unterrscheiden.
Das mit der PlayerID (pid) lässt sich entweder über die DB oder das Script regeln. Man kann DB-Felder auch nachträglich noch ändern, wenn dies erforderlich ist.
Die Version 5.0 existiert offiziel noch nicht sondern hier handelt es sich um den aktuellen Entwicklungszweig. Das was ich bisher gesehen habe ist relativ stabil allerdings gibt es an der einen oder anderen Stelle Bugs, die man selbst fixen muss.
-
Meier : auch in der Functions.hpp definieren