Français Système de braquage de station service

  • Auteur de la discussion Auteur de la discussion I'm the Boss
  • Date de début Date de début

I'm the Boss

Leader
Membre du personnel
2/1/20
701
3
44
1 100
Ce tutoriel vous permet de rajouter des stations services totalement personnalisable et fonctionnel !​
___

1 - Installation du système dans la mission

Dans votre fichier function.hpp, ajoutez en dessous de file = "core\actions"; ceci :
class robSystem {};

Dans le dossier Core, puis le dossier actions, créez un fichier fn_robSystem.sqf et mettez le code ci dessous dedans :
Code:
#include "..\..\script_macros.hpp"
/*
    Author: Jean- Baptiste for The Programmer Forum

    Description : gas station robbery
*/
params [
    ["_shop",ObjNull],
    ["_robber",ObjNull],
    ["_action",-1]
];

/*========Configuration=========*/
_number_cop = 0; //Nombre de policier minimum afin de pourvoir braquer
_add_interpol = true; //Ajoute ou non le crime dans l'interpol
_marker_create = true; //Active ou non la création d'un marker
_money_fix = 5000; //Argent fixe perçu
_blocked_time = 300; // Temps avant le prochain braquage
_money_random = 20000; //Argent aléatoire perçu en plus de l'argent fixe
_time = 90; //Temps pour braquer en secondes
_temps_atm = 5; //Temps avant que le braqueur puisse déposer son argent dans l'ATM (en minutes)
/*=============================*/

if (side _robber != civilian) exitWith {hint "Tu dois etre un civil !"};
if ((west countSide playableUnits) < _number_cop) exitWith {hint "Il n'y a pas assez de Gendarmes !"};
if (_robber distance _shop > 5) exitWith {hint "Tu dois etre à 5m !"};
if (vehicle player != _robber) exitWith {hint "Tu dois d'abord sortir de ton véhicule !"};
if !(alive _robber) exitWith {};
if (currentWeapon _robber isEqualTo "") exitWith {hint "Tu as besoin d'une arme pour braquer !"};
if (_shop getVariable ["robbery_progress",false]) exitWith {hint "Il y a déjà un braquage en cours"};

_exit = false;
_money = _money_fix + round (random _money_random);
_title = _shop actionParams _action;
_shop removeAction _action;
_shop setVariable ["robbery_progress",true,true];

_fn_create_Marker = {
    _marker = createMarker [format ["marker_var_%1",_action], _shop];
    _marker setMarkerColor "ColorRed";
    _marker setMarkerText "ATTENTION: BRAQUAGE EN COURS !";
    _marker setMarkerType "mil_warning";
};

if ((random 100) >= 50) then {
    [1,"ALERTE BRAQUAGE : Une alarme silencieuse vient d’être déclenchée dans une station service !"] remoteExec ["life_fnc_broadcast",west];
    [] call _fn_create_Marker;
};

disableSerialization;

"progressBar" cutRsc ["life_progress","PLAIN"];
_ui = uiNamespace getVariable "life_progress";
_progress = _ui displayCtrl 38201;
_pgText = _ui displayCtrl 38202;
_pgText ctrlSetText "Braquage en cours restez proche ! (5m) (1%)...";
_progress progressSetPosition 0.01;
_cP = 0.01;

if (_marker_create) then {
    [] call _fn_create_Marker;
};

for "_i" from 0 to 1 step 0 do {
    uiSleep (_time / 100);

    _cP = _cP + 0.01;
    _progress progressSetPosition _cP;
    _pgText ctrlSetText format ["Braquage en cours rester proche ! (5m)  (%1%2)...",round (_cP * 100), "%"];

    if (_cP >= 1) exitWith {};
    if (_robber distance _shop > 5) exitWith {_exit = true};
    if (!alive _robber) exitWith {_exit = true};
    if (_robber getVariable "restrained") exitWith {_exit = true};
    if (life_istazed) exitWith {_exit = true};                                 
};

if (_exit) exitWith {
    "progressBar" cutText ["","PLAIN"];
    hint "Le magasin a été fermé et la gendarmerie a été prévenu !";
    [1,format["Une personne vient d'essayer de voler une station service !",_robber,name _robber, _shop]] remoteExec ["life_fnc_broadcast",west];

    playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", _robber];
    deleteMarker format ["marker_var_%1",_action];
    _shop setVariable ["robbery_progress",false,true];

    if (_add_interpol) then {
        [getPlayerUID _robber, _robber getVariable ["realname", name _robber], "211"] remoteExecCall ["life_fnc_wantedAdd", RSERV];
    };
};

"progressBar" cutText ["","PLAIN"];
titleText[format["Vous avez volé %1, maintenant fuyez avant que le gendarmerie arrive !",[_money] call life_fnc_numberText], "PLAIN"];
playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", _robber];
[1, format["News : Une Station Essence vient d’être cambriolé de %1 €",[_money] call life_fnc_numberText]] remoteExec ["life_fnc_broadcast", west];

if (_add_interpol) then {
    [getPlayerUID _robber, _robber getVariable ["realname",name _robber], "211"] remoteExecCall ["life_fnc_wantedAdd", RSERV];
};

life_cash = life_cash + _money;
call SOCK_fnc_updatePartial;
deleteMarker format ["marker_var_%1",_action];
_shop setVariable ["robbery_progress",false,true];

[_shop,_title,_blocked_time] spawn {
    sleep (_this select 2);
    (_this select 0) addAction [((_this select 1) select 0),life_fnc_robSystem];
};

sleep (_temps_atm * 60);
life_use_atm = true;
___
2 - Installation du script sur votre carte
  • Posez un objet ou un PNJ et mettez dans le init cette ligne :
Code:
this addAction["Braquer la station service",life_fnc_robSystem,"",1.5,true,true,"","true",5];

Vous pouvez configurer le système en modifiant les lignes 13 à 21


Félicitations ! Vous venez de terminer d'installer ce script, n'hésitez pas à me poser vos questions !​
 
Dernière édition par un modérateur:
  • Love
  • Like
Les réactions: okin74, wally et -Huzah
Bonjour j'ai modifier votre script je voulais savoir si il est possible de mettre une condition avec un Vitems ?
 
drclement2503 drclement2503 Oui, c'est possible ! Il suffit d'ajouter en haut du fichier :
Code:
if (life_inv_variable isEqualTo 0) exitWith {hint "Tu n'as pas l'objet requis !";};

Remplace "variable" par la variable de ton item dans ton config_vItems.hpp. Par exemple si c'est toolkit, ça donnera life_inv_toolkit
 
Bonjour est-il possible de modifier le scrip et permettre d'envoyer la notification au gendarme dès le braquage commencer et non pas à la fin ?
 
C'est déjà le cas normalement, de la ligne 45 à 48 il a une chance sur deux pour que la police soit avertie avant le début du braquage. Si tu veux enlever la partie aléatoire et les prévenir dans tous les cas, tu peux supprimer les lignes 45 et 48 pour laisser ce qu'il y a à l'intérieur de ce bloc :)
 
  • Like
Les réactions: -Huzah
Penseriez-vous que si en adaptant l'init de l'objet (changer robSystem par robOrange), on pourrait changer le système en braquage de magasin Orange ? (en changement le nom du fichier et en le déclarant correctement dans le Functions.hpp) et changer tout ce qui comporte robSystem par robOrange, j'attends d'avoir une réponse avant d'essayer :D
 
Penseriez-vous que si en adaptant l'init de l'objet (changer robSystem par robOrange), on pourrait changer le système en braquage de magasin Orange ? (en changement le nom du fichier et en le déclarant correctement dans le Functions.hpp) et changer tout ce qui comporte robSystem par robOrange, j'attends d'avoir une réponse avant d'essayer :D

Oui bien sur aucun problème
 
drclement2503 drclement2503 Oui, c'est possible ! Il suffit d'ajouter en haut du fichier :
Code:
if (life_inv_variable isEqualTo 0) exitWith {hint "Tu n'as pas l'objet requis !";};

Remplace "variable" par la variable de ton item dans ton config_vItems.hpp. Par exemple si c'est toolkit, ça donnera life_inv_toolkit
Merci !
 
Il y'a déja une distance

if (_robber distance _shop > 5) exitWith {_exit = true};

Réduit la si elle est trop haute
 
Ou inverse le signe de l'inégalité pour que le joueur doive être à moins de 5m :
Code:
if (_robber distance _shop < 5) exitWith {hint "Tu dois être à moins de 5m !"};
et
Code:
if (_robber distance _shop < 5) exitWith {_exit = true};
 
Mal exprimer mais, j'ai add sa sur un véhicule je le braque je peux aller a l'autre bout de l'ile sans pb, avez vous solution?
 
Pour mettre une limite dans la distance de l'affichage de l'action, tu peux mettre ça dans l'init au lieu de ce qui est dit dans le tutoriel :
Code:
this addAction["Braquer la station service",life_fnc_robSystem,"",0,false,false,"",' ((player distance _target) < 5) '];
 
bonjour je voudrais savoir comment changer les 5 minute pour mettre plus ou moin au niveau du temps qu'on met a braquer
 
Bonjour j'aimerai savoir sil est possible d'augmenter via le Config Vehicul la capacity du reservoir , jai essayer avec "
class B_Heli_Light_01_F {
vItemSpace = 50;
conditions = "license_civ_driver || {!(playerSide isEqualTo civilian)}";
price = 50;
fuel = "fuel_6";
fuelCapacity = 650;
textures[] = {
"
mais meme avec le fuelCapacity sa ne marche pas , sachant que j'utilise le script essence de the programmer , et il donc possible de regler la capaciter directement dans le config VL ?
merci pour les reponse
Bien cordialement