Français Solved Erreur de variable dans le script de masquage de marqueurs

  • Auteur de la discussion Auteur de la discussion cadwella
  • Date de dĂ©but Date de dĂ©but

cadwella

User
17/2/24
119
5
2
800
Hello đź‘‹
J'ai consulté mes logs clients et j'ai trouvé cette erreur qui semble venir du fichier fn_markers.sqf dans /core/functions, cela fait suite au script que j'ai installé en suivant ce tuto : Français - Cacher des marqueurs sur la carte Le script masque des marqueurs selon licence ou side.

Voici l'erreur qui revient toujours dans mes logs :
15:38:17 Error in expression <lphaLocal 0} foreach _hideMarkers;

if (license_civ_rebel) then {
{_x setMarkerA>
15:38:17 Error position: <license_civ_rebel) then {
{_x setMarkerA>
15:38:17 Error Variable indéfinie dans une expression: license_civ_rebel
15:38:17 File mpmissions\__CUR_MP.gallo_kelleysisland\core\functions\fn_markers.sqf..., line 14

Le script fonctionne mais je ne comprends pas pourquoi ce message s'affiche alors que ma licence rebelle existe bien dans mon config_licence.hpp, comme ceci :
class rebel {
variable = "rebel";
displayName = "STR_License_Rebel";
price = 75000;
illegal = true;
side = "civ";
};

Et voici le fichier fn_markers.sqf : Paste-Me

Si quelqu'un à une idée d'où cela peut bien venir ? 🤔

Posté par @.mikelima via discord.
 
Solution
Hello! En fait je pense que le script est appelé trop tôt, avant de savoir si le joueur a la licence ou pas. C'est d'ailleurs écrit ici :
En l’exécutant ici, vous pourrez rencontrer des "erreurs" pour les licences qui ne sont pas de base dans la mission, rien de grave, elles partent une fois le joueur spawn.

Pour cacher les marqueurs avant le spawn, dans ton initPlayerLocal.sqf supprime cette ligne :
Code:
[] spawn life_fnc_markers;
et met Ă  la place :
Code:
_hideMarkers = ["heroin_1","heroin_process","cocaine_1","cocaine_process","marijuana_process_1","squat1","squat2","squat3","squat4","squat5","squat6","squat7","chopshop1","gang_area_1","gang_area_2","gang_area_3","gang_area_4","rebelop1","meth_process"];

{_x...
--- Ce message a été généré automatiquement par ChatGPT, le contenu peut être incorrect. Veuillez lire le message avec précaution ! ---

Bonjour @.mikelima đź‘‹,

Il semble que l'erreur soit due au fait que la variable "license_civ_rebel" n'est pas définie dans le script. Assurez-vous que vous avez correctement défini cette variable dans votre script ou qu'elle est accessible depuis fn_markers.sqf. Vous pouvez également vérifier si la syntaxe de la condition est correcte.

Je vous recommande de vérifier si la variable "license_civ_rebel" est déclarée et accessible au moment où le script fn_markers.sqf s'exécute.

N'hésitez pas à me tenir au courant si vous avez besoin d'aide supplémentaire !

Cordialement,

SQF Bot​

--- Pour continuer la discussion avec ChatGPT, cliquez sur "Répondre" en bas à droite de ce message. Sinon, attendez que quelqu'un vous réponde. ---
 
Hello! En fait je pense que le script est appelé trop tôt, avant de savoir si le joueur a la licence ou pas. C'est d'ailleurs écrit ici :
En l’exécutant ici, vous pourrez rencontrer des "erreurs" pour les licences qui ne sont pas de base dans la mission, rien de grave, elles partent une fois le joueur spawn.

Pour cacher les marqueurs avant le spawn, dans ton initPlayerLocal.sqf supprime cette ligne :
Code:
[] spawn life_fnc_markers;
et met Ă  la place :
Code:
_hideMarkers = ["heroin_1","heroin_process","cocaine_1","cocaine_process","marijuana_process_1","squat1","squat2","squat3","squat4","squat5","squat6","squat7","chopshop1","gang_area_1","gang_area_2","gang_area_3","gang_area_4","rebelop1","meth_process"];

{_x setMarkerAlphaLocal 0} foreach _hideMarkers;
ça cachera tous les marqueurs dans le menu de spawn, même s'ils ont la licence, mais ils pourront les voir sur la carte après avoir spawn
 
Solution