Français Solved Comment supprimer le permis lors de l'utilisation du Whitelist Menu

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

Zomblard

User
11/6/20
194
9
19
800
Salut

Suite à la demande de Maxence concernant un problème de suppression de License
Nous allons résoudre ce problème ici pour que tout le monde est la soluce :)

Voici ce qu'il se passe quand vous avez les produit suivant en même temps sur votre serveur : WhitelistMenu et Permis à points
Ce problème est valable sur 4 licences (Voiture, Camion, Bateau, Pilote)

Explication avec le permis voiture par exemple :
Vous achetez le permis de conduire il passe en 1 en bdd : [[license_civ_driver,1], et également [[driver,12], passe donc à 12
Quand vous utilisez Whitelist Menu ou même si vous allez en bdd passer la valeur [[license_civ_driver,1], à 0 le fait d'avoir toujours 12 point dans la table points_data vous remettra automatiquement le permis
En revanche si vous allez en bdd que vous passer manuellement [[license_civ_driver,1] à 0 et [[driver,12], à 0 lors de la reconnexion vous n'aurez plus votre permis

Le but final :
faire en sorte que quand on fait une demande a whitelistmenu de supprimer le permis il passe aussi la valeur du permis concerner à 0 dans la table points_data
 
Solution
Yop !

Les modifications sont à faire dans ton @The_Programmer/addons/whitelist_menu/client/fn_whitelist.sqf.

Pour enlever les points d'un permis lors du retrait d'une licence, en dessous de :
Code:
hint format [(["STR_WHITELIST_REMOVED","Max_Settings_WhitelistMenu","WhitelistMenu_Localization"] call theprogrammer_core_fnc_localize),(localize _displayName),(name _from)];
ajoute :
Code:
if (_varName isEqualTo "license_civ_driver") then {
    _permisClass = "driver";
    _var = getText (missionConfigFile >> "Max_Settings_PermisPoints" >> "permis_type" >> _permisClass >> "points_variable");
    missionNamespace setVariable [_var,0];

    ([] call max_permisPoints_fnc_getAllPoints) remoteExec...
Yop !

Les modifications sont à faire dans ton @The_Programmer/addons/whitelist_menu/client/fn_whitelist.sqf.

Pour enlever les points d'un permis lors du retrait d'une licence, en dessous de :
Code:
hint format [(["STR_WHITELIST_REMOVED","Max_Settings_WhitelistMenu","WhitelistMenu_Localization"] call theprogrammer_core_fnc_localize),(localize _displayName),(name _from)];
ajoute :
Code:
if (_varName isEqualTo "license_civ_driver") then {
    _permisClass = "driver";
    _var = getText (missionConfigFile >> "Max_Settings_PermisPoints" >> "permis_type" >> _permisClass >> "points_variable");
    missionNamespace setVariable [_var,0];

    ([] call max_permisPoints_fnc_getAllPoints) remoteExec ["max_permisPoints_fnc_savePoints",2];
};

Pour ajouter les points maximum d'un permis lors de l'ajout d'une licence, en dessous de :
Code:
hint format [(["STR_WHITELIST_ADDED","Max_Settings_WhitelistMenu","WhitelistMenu_Localization"] call theprogrammer_core_fnc_localize),(localize _displayName),(name _from)];
ajoute :
Code:
if (_varName isEqualTo "license_civ_driver") then {
    _permisClass = "driver";
    _var = getText (missionConfigFile >> "Max_Settings_PermisPoints" >> "permis_type" >> _permisClass >> "points_variable");
    _max = getNumber (missionConfigFile >> "Max_Settings_PermisPoints" >> "permis_type" >> _permisClass >> "maximum_points");
    missionNamespace setVariable [_var,_max];

    ([] call max_permisPoints_fnc_getAllPoints) remoteExec ["max_permisPoints_fnc_savePoints",2];
};

Dans les deux cas, tu peux ajouter plusieurs fois le bout de code à la suite s'il y a plusieurs types de permis.
Il faudra modifier license_civ_driver par license_civ_ + la variable de la licence associée ainsi que modifier le _permisClass par la class de ce type de permis dans le config_master du dossier PermisPoints :
1599644408353.png
 
Solution