[5.0] Braquage station service


#1

Tuto d’origine : http://www.altisliferpg.com/topic/2434-rob-shopsgas-stationsetc/

Je prends la majeur partie des infos d’ici , j’effectue juste l’update, j’attends vos retours :).

Allez dans votre mpmission => Function.hpp

Ajouter :

class robShops {}; //Voler station service

Dans les actions comme ci dessous :

class Actions  
	{  
		file = "core\actions";  
		class buyLicense {};  
		class healHospital {};  
		class pushVehicle {};  
		class repairTruck {};  
		class serviceChopper {};  
		class sellLicense {};  
		class robShops {}; //Rob Gas Station & Shops Script  
		class takeOrgans {}; 
        class robShops {}; //Voler station service 

Ensuite aller dans mpmission/core/actions et creer un fichier fn_robShops.sqf avec le code qui suit :

 /*  
file: fn_robShops.sqf  
Author: MrKraken  
Made from MrKrakens bare-bones shop robbing tutorial on www.altisliferpg.com forums  
Description:  
Executes the rob shob action!  
Idea developed by PEpwnzya v1.0  
*/  
private["_robber","_shop","_kassa","_ui","_progress","_pgText","_cP","_rip","_pos"];  
_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 != civilian) exitWith { hint "Tu ne peux pas dérober cette station" };  //mauvais side pour voler la station
if(_robber distance _shop > 5) exitWith { hint "Tu dois etre a 5 mètres" }; //Distance a la quelle il faut etre pour faire le braquage 

if !(_kassa) then { _kassa = 1000; };  
if (_rip) exitWith { hint "Avancement du braquage!" };  
if (vehicle player != _robber) exitWith { hint "Sors de ton véhicule!" };  //Vole impossible si il est dans le vehicule

if !(alive _robber) exitWith {};  
if (currentWeapon _robber IsEqualTo "") exitWith { hint "HaHa, ne me menace pas ■■■■■■■! Casses-toi !" };  
if (_kassa IsEqualTo 0) exitWith { hint "La caisse est vide!" };// si il n'y a rien dans la caisse alors elle est vide (suite a un braquage)  

_rip = true;  
_kassa = 20000 + round(random 10000);//20000= le nombre minimal de la recette + suivant d'un "tirage au hasard"  
_shop removeAction _action;  
_shop switchMove "AmovPercMstpSsurWnonDnon";  
_chance = random(100);  
if(_chance < 50) then { hint "Le caissier avait une alarme secrete, la police arrive!"; [1,format["ALERTE la Station service: %1 est dérobé!", _shop]] remoteExec ["life_fnc_broadcast",west]; }; //une chance sur 2 que la police sois contacter pendant le braquage  

_cops = (west countSide playableUnits);  
if(_cops < 2) exitWith{[_vault,-1] remoteExec ["disableSerialization;",false]; hint "Il n'y a pas assez de policiers!";}; //2 est le nombre de policiers necessaire   
disableSerialization;  
5 cutRsc ["life_progress","PLAIN"];  
_ui = uiNameSpace getVariable "life_progress";  
_progress = _ui displayCtrl 38201;  
_pgText = _ui displayCtrl 38202;  
_pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (1%1)...","%"];  
_progress progressSetPosition 0.01;  
_cP = 0.01;  

if(_rip) then  
{  
while{true} do  
{  
sleep 0.8;  
_cP = _cP + 0.01;  
_progress progressSetPosition _cP;  
_pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (%1%2)...",round(_cP * 100),"%"];  
_Pos = position player; // by ehno: get player pos  
				                _marker = createMarker ["Marker200", _Pos]; //by ehno: Place a Maker on the map  
				                "Marker200" setMarkerColor "ColorRed";  
				                "Marker200" setMarkerText "Attention un braquage a lieu !";  
				                "Marker200" setMarkerType "mil_warning";  
if(_cP >= 1) exitWith {};  
if(_robber distance _shop > 10.5) exitWith { };  
if!(alive _robber) exitWith {};  
};  
if!(alive _robber) exitWith { _rip = false; };  
if(_robber distance _shop > 10.5) exitWith { deleteMarker "Marker200"; _shop switchMove ""; hint "Tu as besoin de resté à 10m pour que le braquage continue !"; 5 cutText ["","PLAIN"]; _rip = false; };  
5 cutText ["","PLAIN"];  

titleText[format["Vous avez volé $%1, maintenant partez, les flics arrivent !",[_kassa] call life_fnc_numberText],"PLAIN"];  
deleteMarker "Marker200"; // by ehno delete maker  
life_cash = life_cash + _kassa;  

_rip = false;  
life_use_atm = false;  
sleep (60 + random(180));  
life_use_atm = true;  
if!(alive _robber) exitWith {};  
[getPlayerUID _robber,name _robber,"211"] remoteExec ["life_fnc_wantedAdd",false];  
};  
sleep 300;  
_action = _shop addAction["Braquer la station service",life_fnc_robShops];  
_shop switchMove ""; 

pour finir allez sur votre editeur de map, rajouter un PNJ civil non jouable!! et mettez ca dans son init :

this addAction["Rob Cash Register",life_fnc_robShops];

J’attends les retours :slight_smile:

@Vikor Le voilà, un peu de motivation et tu aurais pu faire une update seul


#2

C’est pas trop la motivation qui manque mais je suis très vite perdu… J’apprends tout juste à faire un serveur… As tu des sites ou autres pour bien apprendre le développement ?
Mais merci beaucoup pour le tutoriel.


#3

Le seul site que je peux te conseiller c’est le wiki de bohemia :slight_smile:


#4

y a mon site aussi … mais je l ai pas fini !
http://www.btrteam.fr/
dans Ancien site (visible dans les tutos)](http://btrteam.fr/ressources.html)
et les tutos sur mon youtube:
Tutoriel sur le sqf / script


#5

j’avais oublié :blush:


#6

Je pense qu on en oublie d autre …


#7

J’avais une petite question, pour modifier le temps du braquage, c’est quel ligne ? Merci


#8

Pour modifier le temps du braquage c’est le sleep dans la boucle while.