Français [Company System] Empêcher le stockage des véhicules d'entreprise dans leur garage personnel

  • Auteur de la discussion Auteur de la discussion Zomblard
  • Date de début Date de début

Zomblard

User
11/6/20
194
9
19
800
Salut petit tuto permettant d'empêché le stockage des véhicules pro dans les garage perso comme vous l'aurez compris

! ATTENTION !
  • Ceci ne fonctionne qu'avec des classname (Si vous avez par ex une hayon texturer vous ne pourrez pas le bloquer la texture par ex. Ceci bloque tout le véhicule)
Si jamais des véhicule sont déjà stockés dans des garage personnel pas de panique la manip que je vous montre les rangera tout correctement lors du prochain restart :)



Partie 1 (SQL et LIFE SERVER)​

Ceci permet des les ranger automatiquement au bon endroit a chaque reboot​
Explication :
Il faut que l'entreprise existe déjà c'est plus simple pour savoir quel ID en bdd lui est attribué
Dans votre requête SQL modifier :
  • NOM_UTILISATEUR_DE_VOTRE_BDD par le nom d'utilisateur qui gère la bdd arma3
  • ID_ENTREPRISE par l'id de l'entreprise ou vous souhaitez stocké le véhicules (c'est l'id dans la table entreprises)
  • VOTRE_CLASSNAME par la classname du véhicule qui doit être stocker dans l'entreprise voulue
De base je vous en est mis 3 mais vous pouvez sois en enlever en supprimant la ligne sois en rajouter en rajoutant une ligne.
voici la ligne en question :
Code:
UPDATE `vehicles` SET `entreprise_id` = 'ID_ENTREPRISE' WHERE `classname` = "VOTRE_CLASSNAME";

Procédure :
Rendez-vous dans votre base de donnée
Et créons une nouvelle procédure :
Code:
DELIMITER $$
CREATE DEFINER=`NOM_UTILISATEUR_DE_VOTRE_BDD`@`%` PROCEDURE `stockVehicleEnt`()
BEGIN
  UPDATE `vehicles` SET `entreprise_id` = 'ID_ENTREPRISE' WHERE `classname` = "VOTRE_CLASSNAME";
  UPDATE `vehicles` SET `entreprise_id` = 'ID_ENTREPRISE' WHERE `classname` = "VOTRE_CLASSNAME";
  UPDATE `vehicles` SET `entreprise_id` = 'ID_ENTREPRISE' WHERE `classname` = "VOTRE_CLASSNAME";
END$$
DELIMITER ;

Attention : Chaque classname de véhicule d'entreprise ne peut être que dans une seule et unique entreprise.


Bien maintenant rendez-vous dans votre life_server/init.sqf et en dessous de :
Code:
["CALL deleteOldGangs",1] call DB_fnc_asyncCall;
Rajoutez ceci :
Code:
/*Vérification pour ranger le véhicule dans la bonne entreprise*/
["CALL stockVehicleEnt",1] call DB_fnc_asyncCall;




Partie 2 (Mission.sqm et Company System)​

Ceci permet d'empêcher les joueurs de stocker les véhicules d'entreprise dans leurs garages personnels et inversement.​

Merci Maxence Maxence pour la partie 2 :

Explication :
Les classnames sont, dans tous les cas, les classname des véhicules entreprise.
Remplacez CLASSNAME_1 CLASSNAME_2 CLASSNAME_3 par la classname de votre véhicule vous pouvez sois en rajouter sois en enlevez (rien de compliqué ici)

Procédure :
Rendez-vous dans votre mission/core/actions/fn_storeVehicle.sqf, en dessous de :
Code:
if (!alive _vehicle) exitWith {hint localize "STR_Garage_SQLError_Destroyed"};
Rajoutez :
Code:
if ((typeOf _vehicle) in ["CLASSNAME_1","CLASSNAME_2","CLASSNAME_3"]) exitWith {hint "Vous ne pouvez pas ranger un véhicule d'entreprise dans votre garage personnel !";};

Maintenant rendez-vous dans votre @The_Programmer/addons/company_system/client/fn_storeVehicleEnt.sqf, en dessous de :
Code:
if (count (_vehicle getVariable ["dbInfo",[]]) isEqualTo 0) exitWith {};
Rajoutez :
Code:
if !((typeOf _obj) in ["CLASSNAME_1","CLASSNAME_1","CLASSNAME_3"]) exitWith {hint "Vous ne pouvez pas ranger un véhicule personnel dans l'entreprise !";};
 
Dernière édition par un modérateur: