Français Solved Restriction des garages par zone sur une map modifiée

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

Lilbape

User
8/4/20
12
0
100
Bonsoir,

J'aimerai savoir, comment faire pour que par exemple si un joueurs range ça voiture à Athira, Qu'il ne puisse la sortir que au Garage de Athira et non Kavala ou Pyrgos par exemple ( etant donner que j'utilise une map moddé )

Merci d'avance à vous !
 
Solution
Yo !

Sur ton mapping, tu devrais avoir une ligne comme ça dans l'init de l'objet pour ranger ton véhicule :
Code:
this addAction[localize "STR_MAR_Store_vehicle_in_Garage",life_fnc_storeVehicle,"",0,false,false,"",'!life_garage_store'];
Remplace :
Code:
life_fnc_storeVehicle
Par :
Code:
{[cursorObject,player,"kavala"] call life_fnc_storeVehicle;}
Ce qui donne dans mon cas :
Code:
this addAction[localize "STR_MAR_Store_vehicle_in_Garage",{[player,false,"kavala"] call life_fnc_storeVehicle;},"",0,false,false,"",'!life_garage_store'];

Dans l'init du garage pour sortir les véhicules, remplace cette ligne :
Code:
[getPlayerUID player,playerSide,"Car",player] remoteExecCall ["TON_fnc_getVehicles",2];
par :
Code:
[getPlayerUID...
Yo !

Sur ton mapping, tu devrais avoir une ligne comme ça dans l'init de l'objet pour ranger ton véhicule :
Code:
this addAction[localize "STR_MAR_Store_vehicle_in_Garage",life_fnc_storeVehicle,"",0,false,false,"",'!life_garage_store'];
Remplace :
Code:
life_fnc_storeVehicle
Par :
Code:
{[cursorObject,player,"kavala"] call life_fnc_storeVehicle;}
Ce qui donne dans mon cas :
Code:
this addAction[localize "STR_MAR_Store_vehicle_in_Garage",{[player,false,"kavala"] call life_fnc_storeVehicle;},"",0,false,false,"",'!life_garage_store'];

Dans l'init du garage pour sortir les véhicules, remplace cette ligne :
Code:
[getPlayerUID player,playerSide,"Car",player] remoteExecCall ["TON_fnc_getVehicles",2];
par :
Code:
[getPlayerUID player,playerSide,"Car",player,"kavala"] remoteExecCall ["TON_fnc_getVehicles",2];

Tu peux remplacer "kavala" par le nom du garage, il doit correspondre au nom du garage de sortie et de celui pour ranger les véhicules de l'emplacement où tu es (le nom n'a pas d'importance)

Dans ton fn_storeVehicle.sqf, trouve cette ligne :
Code:
[_vehicle,false,(_this select 1),_storetext] remoteExec ["TON_fnc_vehicleStore",RSERV];
et remplace la par :
Code:
[_vehicle,false,(_this select 1),_storetext,(param [2,"",["",0]])] remoteExec ["TON_fnc_vehicleStore",RSERV];

Ajoute a la fin de ton fn_vehicleStore.sqf :
Code:
_garageName = param [4,"",["",0]];
if (_garageName isEqualType "") then {
    if !(_garageName isEqualTo "") then {
        _query = format ["UPDATE vehicles SET garage_name='%1' WHERE pid='%2' AND plate='%3'",_garageName,_uid,_plate];
        [_query,1] call DB_fnc_asyncCall;
    };
};

Dans ton fn_getVehicles.sqf, remplace :
Code:
_query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3'",_pid,_side,_type];
par ces lignes :
Code:
_garageName = param [4,"",[""]];
_query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3'",_pid,_side,_type];
if !(_garageName isEqualTo "") then {
    _query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3' AND garage_name='%4'",_pid,_side,_type,_garageName];
};
ATTENTION, si la ligne que tu as dans ton fichier n'est pas exactement la même que celle que je t'ai mise ici, ci qui est fort probable, ne copie pas directement la ligne mais ajoute les modifications sur celle que tu as dans ton fichier.

Dans ta base de données, exécute la requête suivante :
Code:
ALTER TABLE `vehicles` ADD COLUMN  `garage_name` TEXT NOT NULL;

Dis-moi si ça fonctionne :)
 
Dernière édition:
  • Love
Les réactions: Barette_ et Florian Digate
Solution