Français Solved Bug touche "C" Menu objets plaçables

  • 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
Bonjour
J'ai suivi ce tuto pour installer un script qui permet de plaçé des barrière/cône etc en police et medics : wiki/tutoriels-life-version-5/menu-dobjets-placables.md at master · AltisDev/wiki

Mon problème c'est que quand j'appuie sur la touche C en jeu peu importe mon side (civil, indep ou bluefor) une notif s'affiche à l'écran en mettant "Vous avez placé l'objet".
Je n'ai aucune idée d'où ça peut venir et j'ai refait le tuto 2-3 fois sans trouver d'erreur

J'utilise le framework v5.0.0 et voici ce que j'ai dans mes différents fichiers modifiés pour l'ajout du script ;
function.hpp Paste-Me
core/pmenu/fn_p_openMenu.sqf Paste-Me
core/fn_initCop.sqf Paste-Me
core/fn_initMedic.sqf Paste-Me
core/Function/fn_KeyHandler.sqf Paste-Me
dialog/MasterHandler.hpp Paste-Me
dialog/placeables.hpp Paste-Me
dialog/player_inv.hpp : Paste-Me

J'ai un doute sur le fait que ça vient du KeyHandler mais je ne sais pas trop où ?
Merci d'avance pour vos réponses ! 🙂

Posté par @.mikelima via discord.
 
Solution
Je te conseille aussi d'ajouter une condition pour vérifier si le joueur est en train de placer un objet, pour éviter que le message soit affiché à chaque fois que tu appuies sur la touche :
Code:
//Placer les objets (C)
case 46: {
    if (playerSide in [west,independent]) then { //Juste ici choisir ton side
        if !(isNull life_barrier_activeObj) then {
            _currentPos = getPosATL life_barrier_activeObj; 
            detach life_barrier_activeObj; 
            life_barrier_activeObj setPos[(getPos life_barrier_activeObj select 0), (getPos life_barrier_activeObj select 1), 0]; 
            life_barrier_activeObj enableSimulationGlobal true; 
            life_bar_placey pushBack life_barrier_activeObj...
--- Ce message a été généré automatiquement par ChatGPT, le contenu peut être incorrect. Veuillez lire le message avec précaution ! ---

Bonjour @.mikelima, merci d'avoir partagé vos fichiers. Après avoir examiné vos scripts, je vous recommande de vérifier la fonction fn_KeyHandler.sqf. Assurez-vous que la condition qui vérifie si la touche C est pressée est correctement définie. Assurez-vous également que la variable qui contrôle l'affichage de la notification est correctement gérée. N'hésitez pas à ajouter des logs pour déboguer le processus. Bonne chance! 🙂

--- Pour continuer la discussion avec ChatGPT, cliquez sur "Répondre" en bas à droite de ce message. Sinon, attendez que quelqu'un vous réponde. ---
 
Il te suffit de rajouter une condition dans le fn_keyhandler


C++:
//Placer les objets (C)
    case 46: {
        if (playerSide in [west,independent]) then { //Juste ici choisir ton side
            _currentPos = getPosATL life_barrier_activeObj; 
            detach life_barrier_activeObj; 
            life_barrier_activeObj setPos[(getPos life_barrier_activeObj select 0), (getPos life_barrier_activeObj select 1), 0]; 
            life_barrier_activeObj enableSimulationGlobal true; 
            life_bar_placey pushBack life_barrier_activeObj; 
            life_barrier_active = false; 
            life_barrier_activeObj = ObjNull; 
            hint "Vous avez placé l'objet !";
        };
       };
 
Je te conseille aussi d'ajouter une condition pour vérifier si le joueur est en train de placer un objet, pour éviter que le message soit affiché à chaque fois que tu appuies sur la touche :
Code:
//Placer les objets (C)
case 46: {
    if (playerSide in [west,independent]) then { //Juste ici choisir ton side
        if !(isNull life_barrier_activeObj) then {
            _currentPos = getPosATL life_barrier_activeObj; 
            detach life_barrier_activeObj; 
            life_barrier_activeObj setPos[(getPos life_barrier_activeObj select 0), (getPos life_barrier_activeObj select 1), 0]; 
            life_barrier_activeObj enableSimulationGlobal true; 
            life_bar_placey pushBack life_barrier_activeObj; 
            life_barrier_active = false; 
            life_barrier_activeObj = ObjNull; 
            hint "Vous avez placé l'objet !";
        };
    };
};
 
  • Like
Les réactions: Vikor
Solution