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:
Développer Réduire Copier
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:
Développer Réduire Copier
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:
Développer Réduire Copier
["CALL deleteOldGangs",1] call DB_fnc_asyncCall;
Rajoutez ceci :
Code:
Développer Réduire Copier
/*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:
Développer Réduire Copier
if (!alive _vehicle) exitWith {hint localize "STR_Garage_SQLError_Destroyed"};
Rajoutez :
Code:
Développer Réduire Copier
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:
Développer Réduire Copier
if (count (_vehicle getVariable ["dbInfo",[]]) isEqualTo 0) exitWith {};
Rajoutez :
Code:
Développer Réduire Copier
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:
Activité
Pour l'instant, il n'y a personne ici