Mit ner Variable
[TUTORIAL] MrKraken's Tankstellenraub Script
-
- Altis Life
-
Exodoos -
17. September 2016 um 21:46
-
-
in dem du es nur bei einem Tankstellen-Mann einfügst.
Ich glaube er meint das wenn eine Tankstelle überfallen wird das die andere nicht überfallen werden kann
-
Code
Alles anzeigenServerseitig: life_Tanke_wird_ausgeraubt = false; publicVariable "life_Tanke_wird_ausgeraubt"; Clientseitig: if(life_Tanke_wird_ausgeraubt) exitWith {hint "Es wird bereits eine Tankstelle ausgeraubt"}; life_Tanke_wird_ausgeraubt = true; publicVariable "life_Tanke_wird_ausgeraubt"; am ende: life_Tanke_wird_ausgeraubt = false; publicVariable "life_Tanke_wird_ausgeraubt";
-
Und das wie?
-
Bugs bei dem System :
Abfrage für Waffe muss rein mit Binocular etc kann man ausrauben
Man kann mehrmals ausrauben
mehrere Personen können ausrauben
wenn man öfters ausraubt buggt des hart und man bekommt 2min lang geld zumindest bei ausführlichen testen bei mir so
ansonsten fällt mir gerade nichts ein habe eine Variable etc gesetzt und generell ein anderes genommen
-
Bugs bei dem System :
Abfrage für Waffe muss rein mit Binocular etc kann man ausrauben
Man kann mehrmals ausrauben
mehrere Personen können ausrauben
wenn man öfters ausraubt buggt des hart und man bekommt 2min lang geld zumindest bei ausführlichen testen bei mir so
ansonsten fällt mir gerade nichts ein habe eine Variable etc gesetzt und generell ein anderes genommen
Und welches? Denn wenn du sagst das es hier viele Bugs gibt würde ich auch gerne wechseln also nichts gegen dich tut Ersteller aber wenn dies nicht richtig geht ist es auch schade...
-
Ich schaue mal kurz ob ich das alte umschreibe will meins nicht so gerne Preis geben :p
-
Probier mal das und geb bescheid hab das nur kurz gemacht kein Plan ob alles am richtigen Ort ist habs nicht getestet bei nder Copnachricht musst du des selber machen hatte dafür extra ein Script geschrieben weil broadcast nie so geklappt hat
Code
Alles anzeigen_shop = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; _robber = [_this,1,ObjNull,[ObjNull]] call BIS_fnc_param; _action = [_this,2] call BIS_fnc_param; if(side _robber != civilian) exitWith { hintSilent "Du bist ein Beamter!" }; if (player getVariable "restrained") exitWith {hint localize "STR_NOTF_isrestrained";}; if (player getVariable "playerSurrender") exitWith {hint localize "STR_NOTF_surrender";}; if(_robber distance _shop > 15) exitWith { hintSilent "Du kannst dich maximal 15 Meter entfernen!" }; if !(_kassa) then { _kassa = 1000; }; if (_rip) exitWith { hintSilent "Diese Tankstelle wird schon ausgeraubt!" }; if (vehicle player != _robber) exitWith { hintSilent "Du sitzt im Fahrzeug!" }; if !(alive _robber) exitWith {}; if (currentWeapon player in ["","Rangefinder","Binocular","Laserdesignator"]) exitWith { hint "Du hast keine Waffe!"; }; if(_shop getVariable"brizijaegerrobshop") exitwith { hint "Der Shop wird oder wurde bereits ausgeraubt"; }; if (_kassa == 0) exitWith { hintSilent "Heute gab es keine Einnahmen!" }; _rip = true; _kassa = 10000 + round(random 30000); /*_chance = random(100); if(_chance >= 50) then {[format["ALARM! - Tankstelle: %1 wird ausgeraubt!", _shop],"Tankstellen Notruf",7] remoteExec ["life_fnc_requestmessage",0];};*/ disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["Du raubst die Tankstelle aus! (1%1)...","%"]; _progress progressSetPosition 0.01; _cP = 0.01; if(_rip) then { while{true} do { uiSleep 1.2; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["Du raubst die Tankstelle aus! (%1%2)...",round(_cP * 100),"%"]; _shop setVariable["brizijaegerrobshop",true,true]; _Pos = position player; if(_cP >= 1) exitWith {}; if(_robber distance _shop > 15.5) exitWith { }; if!(alive _robber) exitWith {}; }; if!(alive _robber) exitWith { _rip = false; }; if(_robber distance _shop > 15.5) exitWith { hintSilent "Du warst zu weit weg vom Depot."; 5 cutText ["","PLAIN"]; _rip = false; }; 5 cutText ["","PLAIN"]; titleText[format["Du hast $%1 gestohlen, jetzt hau ab die Polizei ist unterwegs!!",[_kassa] call life_fnc_numberText],"PLAIN"]; [format["%2 erbeutete %3 Dollar an einer Tankstelle in der nähe von %1!",_shop,profilename,[_kassa] call life_fnc_numberText],"AAN",3] remoteExec ["life_fnc_requestmessage",0]; life_cash = life_cash + _kassa; [getPlayerUID _robber,name _robber,"11"] remoteExecCall ["life_fnc_wantedAdd",2]; _rip = false; life_use_atm = false; uiSleep (30 + random(180)); life_use_atm = true; if!(alive _robber) exitWith {}; _shop setVariable["brizijaegerrobshop",false,true]; }; uiSleep 60; _shop setVariable["brizijaegerrobshop",false,true]; _action = _shop addAction["Ausrauben",life_fnc_robshops];
-
Wie muss ich die Datei ändern, dass der Raubüberfall 2 Min dauert?
-
uiSleep umändern
-
Wie kann ich den Cooldown für weiteres ausrauben einstellen?
-
Moinsen ich hätte da ne Frage dazu. Wenn ich an der Tankstelle erschossen werde dann läuft ist Sie quasi verbuggt. Heißt Progressbar, Marker und Tankstelle bleiben im Raub. Hat das jemand gefixt?
-
Moinsen ich hätte da ne Frage dazu. Wenn ich an der Tankstelle erschossen werde dann läuft ist Sie quasi verbuggt. Heißt Progressbar, Marker und Tankstelle bleiben im Raub. Hat das jemand gefixt?
Ehm, da wirst du lange brauchen wenn du jedes Script nach diesen Kriterien durchgehen möchtest. Der Ansatz ist schonmal richtig, alle Probleme so gut es geht zu beheben.
Kannst du den die Logs Client und RPT anhängen bei dem erschossen werden, während des ausraubens der Tanke.
Ich teste es nachher auch mal mal gucken ob es bei mir auch buggt.
-
Ich hab ein Skriptschnipsel geschrieben das nach Zufallsprinzip den Räuber tötet er einen Shotgunsound hört die Nachricht "Der Tankstellenwärter war schneller am Abzug als Du" bekommt und Feierabend. Danach ist die Tankstelle aber wieder auszurauben. Deswegen versteh ich nicht wieso das andersrum nicht so ist.
-
ja haben wir glaube ich gefixt. aber sicher bin ich mir gerade nicht. Du wirst aber mit sicherheit nicht alle Fehler finden, da es auch im Framework welche gibt
-
Ist halt blöd wenn einer die Tanke ausraubt von den Cops umgeknallt wird, respawnt und damit die Tankstelle für die gesamte Serverperiode nicht mehr geht.
-
Ist halt blöd wenn einer die Tanke ausraubt von den Cops umgeknallt wird, respawnt und damit die Tankstelle für die gesamte Serverperiode nicht mehr geht.
Ich finde das wiederum sinnvoll, aber da sieht man wieder die unterschiedlichen Ansichten
-
wir haben das komplette Script umgebaut, da man immer nur eine Tanke überfallen kann und dann einen timer gesetzt wird bis man die nächsten überfallen kann
-
so hier mal unser Script
C
Alles anzeigen#include "..\..\script_macros.hpp" private["_robber","_shop","_kassa","_ui","_progress","_pgText","_cP","_rip","_pos", "_robdelay", "_delay","_onWanted"]; _shop = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; //The object that has the action attached to it is _this. ,0, is the index of object, ObjNull is the default should there be nothing in the parameter or it's broken _robber = [_this,1,ObjNull,[ObjNull]] call BIS_fnc_param; //Can you guess? Alright, it's the player, or the "caller". The object is 0, the person activating the object is 1 _kassa = 1000; //The amount the shop has to rob, you could make this a parameter of the call (https://community.bistudio.com/wiki/addAction). Give it a try and post below ;) _action = [_this,2] call BIS_fnc_param;//Action name if (side _robber in [west, independent]) exitwith { //h/intSilent "Bei Dir hackts wohl, Du kannst doch nix überfallen! Oder seit wann arbeitest Du nicht beim Staat!" ["Bei Dir hackts wohl, Du kannst doch nix überfallen! Oder seit wann arbeitest Du nicht beim Staat!","RED",10] spawn life_fnc_notification_system; }; if (life_firstrob) exitWith { //h/int "Jo man es war gerade Weltuntergang und es ist noch kein Geld in der Kasse!" ["Jo man es war gerade Weltuntergang und es ist noch kein Geld in der Kasse!","RED",10] spawn life_fnc_notification_system; }; if (servertime < life_nextrob) exitWith { //h/intSilent format ["Es wurde gerade schon eine Tankstelle überfallen, komm in %1 Minuten wieder vorbei!", [(life_nextrob - servertime),"MM:SS"] call BIS_fnc_secondsToString] [format ["Es wurde gerade schon eine Tankstelle überfallen, komm in %1 Minuten wieder vorbei!", [(life_nextrob - servertime),"MM:SS"] call BIS_fnc_secondsToString],"RED",10] spawn life_fnc_notification_system; }; _robdelay = 900; // 900 Zeit die zwischen zwei Überfällen vergehen muss. if(side _robber != civilian) exitWith { //h/int "Du kannst hier niemanden Überfallen!" ["Du kannst hier niemanden Überfallen!","RED",10] spawn life_fnc_notification_system; }; if(_robber distance _shop > 5) exitWith { //h/int "Du musst 5m von dem Kassierer entfernt sein, um ihn auszurauben!" ["Du musst 5m von dem Kassierer entfernt sein, um ihn auszurauben!","RED",10] spawn life_fnc_notification_system; }; _ret=[[serverTime,0],"TON_fnc_robshops"] spawn life_fnc_MP; //if !(_kassa) then { _kassa = 1000; }; if (vehicle player != _robber) exitWith { //h/int "Steig aus deinem Fahrzeug!" ["Steig aus deinem Fahrzeug!","RED",10] spawn life_fnc_notification_system; }; if !(alive _robber) exitWith {}; if (currentWeapon _robber isEqualTo "") exitWith { //h/int "HaHa, willst du mich verarschen? Verzieh dich du Idiot!" ["HaHa, willst du mich verarschen? Verzieh dich du Idiot!","RED",10] spawn life_fnc_notification_system; }; _cops = (west countSide playableUnits); if(_cops < 4) exitWith{ //h/int "Es sind nicht genügend Polizeikräfte im Dienst!"; ["Es sind nicht genügend Polizeikräfte im Dienst!","RED",10] spawn life_fnc_notification_system; }; if (_kassa isEqualTo 0) exitWith { //h/int "Es ist kein Geld in der Kasse!" ["Es ist kein Geld in der Kasse!","RED",10] spawn life_fnc_notification_system; }; _rip = true; _onWanted = false; _kassa = 150000 + round(random 150000); _shop removeAction _action; _chance = random(100); if (_chance >= 33 && _chance < 66) then { [[1,format["ALARM! - Tankstelle: %1 wird ausgeraubt!", _shop]],"life_fnc_broadcast",west,false] spawn life_fnc_MP; }; if(_chance >= 66) then { //h/int "Der Kassierer hat den stillen Alarm ausgelöst!"; ["Der Kassierer hat den stillen Alarm ausgelöst!","PINK",5] spawn life_fnc_notification_system; [[1,format["ALARM! - Tankstelle: %1 wird ausgeraubt!", _shop]],"life_fnc_broadcast",west,false] spawn life_fnc_MP; }; disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["Überfall im Gange, halte dich in der Nähe auf (10m) (1%1)...","%"]; _progress progressSetPosition 0.01; _cP = 0.01; if(_rip) then { life_nextrob = servertime + _robdelay; publicVariable "life_nextrob"; while{true} do { sleep 1.5; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["Überfall im Gange, halte dich in der Nähe auf (10m) (%1%2)...",round(_cP * 100),"%"]; _Pos = position player; // by ehno: get player pos if (_chance >= 66) then { _marker = createMarker ["Marker200", _Pos]; //by ehno: Place a Maker on the map "Marker200" setMarkerColor "ColorRed"; "Marker200" setMarkerText "!Achtung! Überfall !Achtung!"; "Marker200" setMarkerType "mil_warning"; }; if(_cP >= 1) exitWith {}; if(_robber distance _shop > 10.5) exitWith { deleteMarker "Marker200"; //h/int "Du musst in 10m Nähe bleiben um zu Überfallen! - Die Kasse ist nun verschlossen."; ["Du musst in 10m Nähe bleiben um zu Überfallen! - Die Kasse ist nun verschlossen.","RED",10] spawn life_fnc_notification_system; 5 cutText ["","PLAIN"]; _rip = false; }; if!(alive _robber) exitWith {deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"];}; if(life_istazed) exitWith {deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"];}; if(player getVariable ["Re-strained",FALSE]) exitWith { deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"];}; if (currentWeapon _robber isEqualTo "") exitWith { //h/int "Hier nen Snickers, du wirst immer zur Diva, wenn du hungrig bist!"; ["Hier nen Snickers, du wirst immer zur Diva, wenn du hungrig bist!","RED",10] spawn life_fnc_notification_system; deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"]; }; }; if!(alive _robber) exitWith { _rip = false; deleteMarker "Marker200"; 5 cutText ["","PLAIN"];}; if(life_istazed) exitWith {deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"];}; if(player getVariable ["Re-strained",FALSE]) exitWith { deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"];}; if (currentWeapon _robber isEqualTo "") exitWith {deleteMarker "Marker200"; _rip = false; 5 cutText ["","PLAIN"]; }; if(_robber distance _shop > 10.5) exitWith { deleteMarker "Marker200"; 5 cutText ["","PLAIN"]; _rip = false; }; 5 cutText ["","PLAIN"]; //t/itleText[format["Du hast $%1 gestohlen, flüchte bevor die Polizei eintrifft!",[_kassa] call life_fnc_numberText],"PLAIN"]; [format["Du hast $%1 gestohlen, flüchte bevor die Polizei eintrifft!",[_kassa] call life_fnc_numberText],"PINK",5] spawn life_fnc_notification_system; deleteMarker "Marker200"; // by ehno delete maker CASH = CASH + _kassa; _rip = false; _run = [] spawn { life_use_atm = false; uisleep (30 + random(180)); life_use_atm = true; }; }; if !(_onWanted) then { if!(_chance < 10) then { _chance = random 100; if(_chance < 40) then { [[getPlayerUID _robber,name _robber,"261A"],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP; }; }; }; _action = _shop addAction["Ausrauben",life_fnc_robShops];
zusätzlich haben wir in der live_server\init.sqf 2 Variablen definiert
C
Alles anzeigenlife_nextrob = 0; // 10 min nach Restart, funzt das Überfallen erst. publicVariable "life_nextrob"; life_firstrob = true; publicVariable "life_firstrob"; [] spawn { for "_i" from 0 to 1 step 0 do { uiSleep (10 * 60); life_firstrob = false; publicVariable "life_firstrob"; }; };
Achtung wir nutzen das Notificationsystem von DE100 allerdings ein wenig modifiziert
-
Ich glaube ich habe da was gesehen, werds mal testen danke.
-