Dahin wo du es haben willst und in der functions.hpp entsprechend halt angeben. Ich hab alles in core/custom (eigener Ordner).
Beiträge von cmdflow
-
-
Moin zusammen,
mit diesem Script könnt ihr die australische Bank (Land_CommenwealthBank) ausraubbar machen. Wenn die Bank gehackt ist, öffnet sich die Tresortüre und es spawnt Geld auf dem Tisch im Tresorraum. Zusätzlich wird eine Tränengasgranate gespawnt (normale Smoke, wenn ihr kein Teargasscript verwendet)
Ihr müsst ihr die Config des Bankgebäudes bearbeiten um die "Open Vault Door" Action wegzubekommen. Alternativ könnt ihr das auch weglassen, da das Geld eh erst spawnt wenn die Türe offen ist. Ist nur schöner und realistischer wenn die Tresortüre zu ist.
Damit die Safetüre auch wirklich immer zu ist beim Neustart, schreibt ihr folgendes in die Init der Bank
Ich habe in der Bank am Tresen unten einen Laptop platziert um die Bank zu hacken. Wie ihr das macht ist natürlich euch überlassen. Ihr könntet auch noch ein bestimmtes Item einbauen was man haben muss um die Bank hacken zu können. Bei mir wird das später eine Zugangskarte der Cops sein. Fügt in euren Laptop als Init ein:
Hier das eigentliche Script:
Spoiler anzeigen
Code
Alles anzeigen/* File: fn_robBank.sqf Author: cmdFlow Description: Script to call on a laptop when nearby bank, to rob it */ private["_robber","_bank","_cops","_canRob","_startRob","_chance","_ui","_progress","_pgText","_cP","_Pos","_marker","_laptop"]; _robber = player; _bank = nearestObject [player, "Land_CommonwealthBank"]; _canRob = _bank getVariable ["canRob",true]; _cops = (west countSide playableUnits); _chance = random(100); _startRob = false; if(_cops < 4) exitWith { hint "Es müssen mindestens 4 Polizisten im Dienst sein um die Bank ausrauben zu koennen"}; if (!_canRob) exitWith { hint "Die Banke wurde bereits ausgeraubt und hat kein Geld mehr im Tresor"}; if (playerSide != civilian) exitWith { hint "Als Staatsbediensteter ne Bank ausrauben? Ne Ne Ne"}; if (player distance _bank > 8) exitWith { hint "Von dort hinten willst du den Tresor knacken?"}; if (vehicle player != player) exitWith { hint "Aus dem Fahrzeug? Ernsthaft? Steig aus Junge"}; if (_chance < 50) exitWith { hint "Der Versuch ist fehlgeschlagen"}; if !(alive player) exitWith {}; if (_startRob) exitWith {}; _startRob = true; _bank setVariable ["canRob",false,false]; [2,format["ALARM! - Bank wird ausgeraubt: %1", _bank]] remoteExec ["life_fnc_broadcast",west]; [1,format["ALARM! - Bank wird ausgeraubt: %1", _bank]] remoteExec ["life_fnc_broadcast",west]; disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["Tresorraum wird gehackt. Bleib in der Nähe (10m) (1%1)...","%"]; _progress progressSetPosition 0.01; _cP = 0.0001; if(_startRob) then { while{true} do { sleep 5; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["Tresorraum wird gehackt. Bleib in der Nähe (10m) (%1%2)...",round(_cP * 100),"%"]; _Pos = position player; _marker = createMarker ["Marker200", _Pos]; "Marker200" setMarkerColor "ColorRed"; "Marker200" setMarkerText "ACHTUNG: Bank wird ausgeraubt"; "Marker200" setMarkerType "mil_warning"; if(_cP >= 1) exitWith {}; if(player distance _bank > 11) exitWith { }; if!(alive player) exitWith {}; }; if!(alive player) exitWith { _startRob = _false; }; if(_robber distance _bank > 11) exitWith { deleteMarker "Marker200"; hint "Du musst in der Nähe bleiben (Radius 10m)"; _startRob = false; }; _bank animate ["Vault_Combination",1]; _bank animate ["Vault_RotateUp",1]; _bank animate ["Vault_RotateDown",1]; _bank animate ["Vault_RotateDown",1]; _bank animate ["Vault_TransitionUp",-0.1]; _bank animate ["Vault_TransitionDown",0.1]; _bank animate ["Vault_TransitionLeft",-0.1]; _bank animate ["Vault_TransitionRight",0.1]; _bank animate ["Vault_Door",1]; _moneyAmount = 150000; _pos = _bank modelToWorld[1,-3,3]; _pos = [(_pos select 0),(_pos select 1),4]; _obj = "Land_Money_F" createVehicle _pos; _obj setVariable ["item",["money",_moneyAmount],true]; _obj setPos _pos; _pos = [(_pos select 0)+0.2,(_pos select 1),4]; _obj = "Land_Money_F" createVehicle _pos; _obj setVariable ["item",["money",_moneyAmount],true]; _obj setPos _pos; _pos = [(_pos select 0)+0.4,(_pos select 1),4]; _obj = "Land_Money_F" createVehicle _pos; _obj setVariable ["item",["money",_moneyAmount],true]; _obj setPos _pos; _smoke = "SmokeShellYellow" createVehicle [0,0,9999]; _smoke setPos _pos; _smoke setVelocity [100,0,0]; _startRob = false; life_use_atm = false; sleep (30 + random(180)); deleteMarker "Marker200"; life_use_atm = true; }; sleep 300; _bank setVariable ["canRob",true,true]; _startRob = true;
Das sollte es gewesen sein. Den Wert des Geldes könnt ihr euch ja selber anpassen
Gruß Flow
-
Klar dass manche Sachen doppelt besetzt werden. Du nutzt die selben Koordinaten bei allen Minen. Du musst für jedes Mine ein paar Coordinaten finden welche nur diese eine Mine hat. Oder das Script umschreiben, dass du ein großes Array von Koordinaten hast, er eine vergibt und diese dann aus dem Array entfernt damit sie nicht doppelt belegt werden können. Für jede Mine 3 eigene Positionen zu finden ist wohl einfacher
-
Meine HUD Version flackert übrigens nicht. Ihr müsst die Zeilen rausnehmen, die das Hud ausblenden und wieder einblenden. Einmal einblenden und dann nur noch aktualisieren
-
Wenn du ein Gps assigned hast, hast du es auch
-
Ist neu seit dem letzten Arma Update. Vermutlich kriegst du das gar nicht weg. Wenn ja dann kann gern jemand bescheid geben
-
Als ZIP hochgeladen
-
Hatte nicht gesehen, dass du schon ein Tutorial gemacht hast
-
Weil die Custom PBO (für mich) übersichtlicher ist und dort alle Änderungen an der Map drin sind.
Alles was weg oder dazu kommt ist dort drin. Die Mod brauchen die Spieler ja nicht, wird ja nur in den Server kopiert.
Finde ich übersichtlicher, geht natürlich aber auch anders.
Gruß Flow
-
Moin Moin,
hier mal eine weitere Möglichkeit Gebäude, Bäume, etc. von der Map zu entfernen.
Geht im Editor an die entsprechende Stelle, Rechtsklick -> aufzeichnen -> Position in Zwischenablage kopieren.
Fügt folgenden Code mit der geänderten Position aus der Zwischenablage in die Debugkonsole ein:Code_location = [7183.9,4240.04,0]; _radius = 20; _terrainobjects = nearestTerrainObjects[_location,[],_radius]; {hideObjectGlobal _x} foreach _terrainobjects;
Ihr könnt mit einem niedrigen Radius starten und vergrößert ihn so lange bis ihr mit dem Ergebnis zufrieden seit. Denkt dran nicht zu viele Objekte zu entfernen und haltet den Radius möglichst klein um die Performance nicht zu stark zu beeinträchtigen.
Um das ganze dann auf dem Server im Livebetrieb nutzen zu können, könnt ihr z.B. die PBO im Anhang verwenden und den Code dort reinkopieren. Die PBO kommt dann in euren @life_server\addons Ordner.
Gruß Flow
-
Hab mal eben ein kleines Tutorial geschrieben und die PBO auch drangehängt. Viel Spass damit:
-
Moin zusammen,
hier mal ein kleines Tutorial von mir wie ihr die Mienen und Felder bei jedem Serverrestart random platzieren könnt.
Fügt die PBO im Anhang in euren @life_server\addons Ordner ein.
Um die Positionen zu bestimmen, könnt ihr mit folgendem Befehl (da gibts viele Möglichkeiten) die Koordinaten herausfinden:
Trag die Koordinaten in das jeweilige Array ein. Den Namen des Markers kommt dann darunter hin wo "setMarkerPos" steht.
Bei jedem Restart ist das Feld dann an einer anderen Position (kann natürlich auch mal die gleiche sein, da Random Auswahl).
Das ganze funktioniert natürlich auch mit Dealern und Händlern. Dort muss man jedoch noch den Variablennamen des Dealers rausfinden und könnte diesen dann so verschieben (inkl Marker).
Code// Dealer 1 _dealer1 = [[9043.18,13344.9,0.00161743],[5926.31,8047.31,0.38509],[13464.5,8460.83,0.559208]]; _pos1 = selectRandom _dealer1; _dealer1 = missionNamespace getVariable ["Dealer_1", objNull]; _dealer1 setposATL _pos1; "Dealer_M1" setMarkerPos _pos1;
Gruß Flow
-
Is doch easy. Custom Server PBO erstellen, dort drin setzt du dir ne Datei. In der Datei für jede Farmposition sagen wir mal 3 Locations in ein Array.
Dann setzt du den Marker random auf eine der Positionen mit setMarkerPos. Hier als Beispiel:Code
Alles anzeigen// Iron Mine _iron = [[7109.35,11106.4,0],[8187.59,13056.8,0],[11951.4,10323.6,0],[11320.5,6639.77,0]]; "iron_mine" setMarkerPos (selectRandom _iron); // Copper Mine _copper = [[12105,10600.8,0],[7217.25,8711.3,0],[5336.43,11695.2,0],[12681.1,6751.27,0]]; "copper_mine" setMarkerPos (selectRandom _copper); // Diamond Mine _diamond = [[11667.2,4404.43,0],[6794.1,12433.2,0],[12062.9,10486.3,0]]; "diamond_mine" setMarkerPos (selectRandom _diamond);
-
Ich weiß die einzelnen Schritte nicht mehr. Saß da paar Stunden. Wie gesagt müsste Risk nur mal das okay geben, dann lad ich das hoch. In der init des Huds war unten auf jedenfall der Befehl falsch wie das Hud befüllt wird. Tauscht mal unten in der risk_initHud.sqf alles nach
mit dem hier aus:
Code
Alles anzeigen//prepare the text last time. _StatusTextDialog = parseText format ["<t font='%16' size='1' align='%15'><t color='%1'>%2</t> %3<t color='%4'>%5</t> %6<t color='%7'>%8</t> %9<t color='%10'>%11</t> %12<t color='%13'>%14</t>", _HealthColor, _HealthText, if(risk_varHealth)then{_Pipe}else{""}, _StaminaColor, _StaminaText, if(risk_varStamina)then{_Pipe}else{""}, _HungerColor, _HungerText, if(risk_varHunger)then{_Pipe}else{""}, _ThirstColor, _ThirstText, if(risk_varThirst)then{""}else{""}, _WeightColor, _WeightText, _StatusPos, _StatusFont ]; if(risk_varName) then { _NameDialog = parseText format["<t color='#FFFFFF' font='%3' size='1.5' align='%2'>%1</t>",_Name, _NamePos, _NameFont]; }; disableSerialization; _ui = uiNameSpace getVariable ["risk_hudDialog",displayNull]; _SetName = _ui displayCtrl 2001; _SetName ctrlSetText format["%1", _NameDialog]; ((uiNamespace getVariable "risk_hudDialog") displayCtrl 2002) ctrlSetStructuredText _StatusTextDialog; if(risk_varName) then { ((uiNamespace getVariable "risk_hudDialog") displayCtrl 2001) ctrlSetStructuredText _NameDialog; }; sleep 3; };
-
BTW. ich habe das Hud gefixt. Wenn Risk nichts dagegen hat, lade ich das mal hier hoch
-
Selber Fehler bei mir
-
Im Anhang findest du alle Files. Kann mir das nicht erklären, wieso die Anzeige immer ausgeblendet wird und nur bei essen und trinken wieder erscheint
-
Ich hab das genau so gemacht. Bekomme auch die Meldung, dass die Dealer sich verschieben, aber sie verschieben sich nicht
-
ist bei mir bei dem hud auch so. blendet aus und kommt erst bei nem update wieder .also wenn man sich verletzt, trinkt oder isst. keine ahnung
-
Hast du das Projekt aufgegeben?