Français Solved Comment affecter une variable à un véhicule à la sortie du garage ?

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

Lewy

User
23/12/20
10
1
250
Salut à tous !

Sauriez vous comment faire un setVariable sur un vehicule, au moment de la sortie du garage. Exemple, j'aimerais pouvoir, quand quelqu'un sort un vehicule du garage ou quand il l'achete, pouvoir attacher une variable à ce vehicule en question comme ceci : _vehicle setVariable ["variable", true, true]; Je pourrai ensuite la récupérer plus tard dans un autre script.

Actuellement, j'ai essayé plusieurs techniques, comme avec le fn_spawnvehicle.sql ou le fn_unimpound.sql, mais je ne peux pas attacher de variable car je n'arrive pas à récupérer le bon objet _vehicle, à la manière d'un cursorObject lors de l'action d'un joueur sur le vehicule.

Du coup cette commande : _vehicle setVariable ["variable", true, true]; me renvoie une erreur

Autre petite question qui n'a pas vraiment de rapport, comment faire pour modifier la prix d'achat un vehicule, mais pour un side precis, sachant qu'il est disponible à la vente pour plusieurs sides. (Je ne parle pas du multiplicateur que je ne veux pas toucher, je parle de modifier un seul prix d'une classe précise pour un side précis).

Merci d'avance pour vos réponses !
Lewy ;)
 
  • Like
Les réactions: KlyZer
Solution
Alors le problème c'est le life_donorlevel, pas le setVariable. En fait, le life_donorlevel peut être utilisé que dans les fichiers de la mission, pas dans les fichiers du life_server.

Pour faire ça, il faut envoyer le life_donorlevel depuis le fn_unimpound.sqf comme ceci :
Code:
[_vid,_pid,(getMarkerPos life_garage_sp),_unit,_price,markerDir life_garage_sp,_spawntext,(call life_donorlevel)] remoteExec ["TON_fnc_spawnVehicle",RSERV];
Et le récupérer dans le fn_spawnVehicle.sqf en remplaçant ces lignes :
Code:
params [
    ["_vid", -1, [0]],
    ["_pid", "", [""]],
    ["_sp", [], [[],""]],
    ["_unit", objNull, [objNull]],
    ["_price", 0, [0]],
    ["_dir", 0, [0]],
    "_spawntext"
];
par :
Code:
params [...
Hello ! Oui bien sûr c'est possible :)

Pour l'achat d'un véhicule c'est dans le fn_vehicleShopBuy.sqf
Et pour la sortie d'un véhicule, c'est dans le fn_spawnVehicle.sqf
Quel est l'erreur que tu as ?

Pour modifier le prix du véhicule, tu peux modifier le fn_vehicleShopLbChange.sqf et fn_vehicleShopBuy.sqf pour ajouter une condition qui modifie le prix selon le side, le type de véhicule etc.
 
Salut !

J'ai éssayé au niveau du fn_spawnVehicle.sqf dans le live_server, mais mon problème est que j'aimerais lui affecter cette variable en vérifiant le donorlevel. j'ai donc rajouté ce code dans le fichier, je ne vois pas d'erreur dans les logs, mais la variable ne s'attache pas au véhicule qui vient de spawn.

[CODE lang="cpp" title="Insert Variable"]if (FETCH_CONST(life_donorlevel) isEqualTo 1) then {
_vehicle setVariable ["variable",true,true];
};[/CODE]
 
Alors le problème c'est le life_donorlevel, pas le setVariable. En fait, le life_donorlevel peut être utilisé que dans les fichiers de la mission, pas dans les fichiers du life_server.

Pour faire ça, il faut envoyer le life_donorlevel depuis le fn_unimpound.sqf comme ceci :
Code:
[_vid,_pid,(getMarkerPos life_garage_sp),_unit,_price,markerDir life_garage_sp,_spawntext,(call life_donorlevel)] remoteExec ["TON_fnc_spawnVehicle",RSERV];
Et le récupérer dans le fn_spawnVehicle.sqf en remplaçant ces lignes :
Code:
params [
    ["_vid", -1, [0]],
    ["_pid", "", [""]],
    ["_sp", [], [[],""]],
    ["_unit", objNull, [objNull]],
    ["_price", 0, [0]],
    ["_dir", 0, [0]],
    "_spawntext"
];
par :
Code:
params [
    ["_vid", -1, [0]],
    ["_pid", "", [""]],
    ["_sp", [], [[],""]],
    ["_unit", objNull, [objNull]],
    ["_price", 0, [0]],
    ["_dir", 0, [0]],
    "_spawntext",
    ["_donorLevel", 0, [0]]
];

Et après tout ça tu pourras faire ta condition :
Code:
if (_donorLevel isEqualTo 1) then {
    _vehicle setVariable ["variable",true,true];
};
 
Solution
Salut !

J'y avais pensé, c'est pouvoir j'ai aussi essayé de set la variable sans condition pour voir si le problème venait du donor_level qui n'était pas accessible, et cela n'a pas marché non plus. Je n'ai pas d'erreur, ni coté client, ni côté serveur, mais quand je teste la variable, celle-ci n'existe pas après que le véhicule ai spawn. J'ai quand même réessayé par acquis de conscience ta solution, et j'ai le même problème.

Bref, je patauge...
 
Perso a la fin de mon fn_spawnVehicle j'ai

[CODE lang="html" title="Code"]if ((_vInfo select 1) isEqualTo "med" ) then {
_vehicle setVariable ["VehcMed",true,true];
_vehicle setVariable ["VehcSirenTrue",true,true];
};
[/CODE]
Et sa fonctionne tres bien
 
Je ne comprends pas vraiment d'où vient le problème dans ce cas, je n'ai aucune erreur mais la variable ne se set pas sur le vehicule...
 
Au final j'ai tout recommencé depuis le départ avec les fichiers de base que j'avais save, je sais pas vraiment d'où venait l'erreur puisque je n'avais aucun log, mais toujours est-il que ça marche maintenant !