Bienvenue sur ce tutoriel qui vous permettra de différencier les garages entre eux selon leur position. Ainsi les véhicules rangés à un garage précis ne pourront être sortis qu'à ce garage.
Ce tutoriel fait suite à la demande d'aide de L Lilbape.
Ce tutoriel fait suite à la demande d'aide de L Lilbape.
C'est parti !
Sur votre mapping, vous devriez avoir une ligne comme ceci dans l'init de l'objet pour ranger votre véhicule dans le garage :
Code:
this addAction[localize "STR_MAR_Store_vehicle_in_Garage",life_fnc_storeVehicle,"",0,false,false,"",'!life_garage_store'];
Remplacez :
Code:
life_fnc_storeVehicle
Code:
{[cursorObject,player,"kavala"] call life_fnc_storeVehicle;}
Ce qui va donner :
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];
Code:
[getPlayerUID player,playerSide,"Car",player,"kavala"] remoteExecCall ["TON_fnc_getVehicles",2];
Dans votre core/actions/fn_storeVehicle.sqf, trouvez cette ligne :
Code:
[_vehicle,false,(_this select 1),_storetext] remoteExec ["TON_fnc_vehicleStore",RSERV];
Code:
[_vehicle,false,(_this select 1),_storetext,(param [2,"",["",0]])] remoteExec ["TON_fnc_vehicleStore",RSERV];
Ajoutez à la fin de votre life_server/Functions/Systems/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 votre life_server/Functions/Systems/fn_getVehicles.sqf, remplacez :
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];
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];
};
Dans votre base de données, exécutez la requête suivante :
Code:
ALTER TABLE `vehicles` ADD COLUMN `garage_name` TEXT NOT NULL;
-----
Si tous vos garages dépendent d'une position, il faudra définir un garage par défaut pour les nouveaux véhicules achetés qui ne sont pas rangés dans le garage avant le reboot du serveur, sinon il ne seront plus visibles nul part dans les garages.
Pour ce faire, dans votre life_server/Functions/MySQL/fn_insertVehicle.sqf, remplacez cette ligne :
Code:
_query = format ["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""')",_side,_className,_type,_uid,_color,_plate];
Code:
_query = format ["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage, garage_name) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""','""kavala""')",_side,_className,_type,_uid,_color,_plate];
-----
Et voilà !
Cordialement,
Forum Manager - Mathis
Dernière édition par un modérateur: