[5.0] Saisir des Licences pour Les Cop


#1

Bonjour / Bonsoir,

j’ai pu voir ce tuto : http://altisdev.com/index.php?/topic/1145-fonction-remove-les-licences-côté-police/

Mais c’est un tuto qui date de 2014 et donc plus valide pour de la 5.0 donc j’ai pu trouver une réadaptation de ce script en 5.0.

Commençons :

Allez dans Dialog et créez un fichier nommé “revoke_licence.hpp” et ajoutez :

#define BGX 0.35
#define BGY 0.2
#define BGW 0.3

class revokeLicense_Menu
{
	idd = 41000;
    movingEnable = 0;
    enableSimulation = 1;

	class controlsBackground {
		class RscTitleBackground:life_RscText
		{
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			idc = -1;
			x = BGX;
			y = BGY;
			w = BGW;
			h = (1 / 25);
		};

		class MainBackground : life_RscText
		{
			idc = -1;
			colorBackground[] = {0,0,0,0.7};
			x = BGX;
			y = BGY + (11 / 250);
			w = BGW;
			h = 0.6 - (22 / 250);
		};

		class Title : life_RscTitle
		{
			colorBackground[] = {0,0,0,0};
			idc = 41001;
			text = "Dpt. des Véhicules";
			x = BGX;
			y = BGY;
			w = BGW;
			h = (1 / 25);
		};
	};

	class controls {

		class ButtonClose : life_RscButtonMenu
		{
			idc = -1;
			text = "Fermer";
			onButtonClick = "closeDialog 0;";
			x = BGX;
			y = 0.8 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};

		class ButtonOne : life_RscButtonMenu
		{
			idc = 41002;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Véhicule";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.07;
			w = 0.24;
			h = 0.038;
		};

		class ButtonTwo : life_RscButtonMenu
		{
			idc = 41003;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Camion";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.12;
			w = 0.24;
			h = 0.038;
		};

		class ButtonThree : life_RscButtonMenu
		{
			idc = 41004;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Moto";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.17;
			w = 0.24;
			h = 0.038;
		};

		class ButtonFour : life_RscButtonMenu
		{
			idc = 41005;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Pilote";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.22;
			w = 0.24;
			h = 0.038;
		};

		class ButtonFive : life_RscButtonMenu
		{
			idc = 41006;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Plongée";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.27;
			w = 0.24;
			h = 0.038;
		};

		class ButtonSix : life_RscButtonMenu
		{
			idc = 41007;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Bâteau";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.32;
			w = 0.24;
			h = 0.038;
		};

		class ButtonSeven : life_RscButtonMenu
		{
			idc = 41008;
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
			text = "Licence Armes";
			sizeEx = 0.025;
			x = BGX + 0.03;
			y = BGY + 0.37;
			w = 0.24;
			h = 0.038;
		};
	};
};

Puis toujours dans dialog allez dans “dialog\MasterHandler.hpp” et ajoutez a la fin :

/*
    Master UI Resource File
*/
#include "common.hpp"
#include "shop_items.hpp"
#include "player_inv.hpp"
#include "gang.hpp"
#include "key_chain.hpp"
#include "impound.hpp"
#include "bank.hpp"
#include "veh_shop.hpp"
#include "shops.hpp"
#include "hud_stats.hpp"
#include "admin_menu.hpp"
#include "cell_phone.hpp"
#include "wanted_list.hpp"
#include "ticket.hpp"
#include "clothing.hpp"
#include "trunk.hpp"
#include "spawnSelection.hpp"
#include "chop_shop.hpp"
#include "pInteraction.hpp"
#include "deathScreen.hpp"
#include "vehicleShop.hpp"
#include "vehicleShop3D.hpp"
#include "settings.hpp"
#include "federalReserve.hpp"
#include "compensate.hpp"
#include "FuelStat.hpp"
#include "newsStation.hpp"
#include "revoke_license.hpp" // <-- Ajoutez ici

Puis retournez a la base de votre mission puis ouvrez “Mission.carte\stringtable.xml” et ajoutez :

        <Key ID="STR_pInAct_RevokeLicense">
            <Original>Enlever Licence</Original>
        </Key>   

Ensuite allez dans dialog\pInteraction.hpp et ajoutez dans la class control :

        class ButtonNine: Life_RscButtonMenu {
            idc = 37458;
            colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
            text = "";
            sizeEx = 0.025;
            x = BGX + 0.03;
            y = BGY + 0.47;
            w = 0.4;
            h = 0.038;
        };  

!! Attention si vous avez déja modifié ce fichier il faudra remplacer le nine par height et le 37458 par 37459 !!

**Dans votre “Functions.hpp” a la racine de votre mission il faut ajouter a la class Player_Class il faut ajouter comme ceci :

    class Player_Menu {
        file = "core\pmenu";
        class cellphone {};
        class giveItem {};
        class giveMoney {};
        class keyDrop {};
        class keyGive {};
        class keyMenu {};
        class p_openMenu {};
        class p_updateMenu {};
        class pardon {};
        class removeItem {};
        class s_onChar {};
        class s_onCheckedChange {};
        class s_onSliderChange {};
        class settingsMenu {};
        class updateViewDistance {};
        class useItem {};
        class wantedAddP {};
        class wantedInfo {};
        class wantedList {};
        class wantedMenu {};
        class revokeLicense {};  // <--- Ajoutez ici      
    };

Allez dans core\cop\fn_copInteractionMenu et ajoutez ligne 16 et ajoutez en dessous :

#define Btn1 37450
#define Btn2 37451
#define Btn3 37452
#define Btn4 37453
#define Btn5 37454
#define Btn6 37455
#define Btn7 37456
#define Btn8 37457
#define Btn9 37458 // <-- Ajoutez ça ici
#define Title 37401

Puis restez dans le fichier et allez ligne 44 et ajoutez en dessous :

_Btn1 = _display displayCtrl Btn1;
_Btn2 = _display displayCtrl Btn2;
_Btn3 = _display displayCtrl Btn3;
_Btn4 = _display displayCtrl Btn4;
_Btn5 = _display displayCtrl Btn5;
_Btn6 = _display displayCtrl Btn6;
_Btn7 = _display displayCtrl Btn7;
_Btn8 = _display displayCtrl Btn8;
_Btn9 = _display displayCtrl Btn9; // <-- Ajoutez ça ici
#define Title 37401

Et allez ligne 92 et ajoutez quelque ligne en dessous :

// Revoke License
_Btn9 ctrlSetText localize "STR_pInAct_RevokeLicense";
_Btn9 buttonSetAction "[life_pInact_curTarget] call life_fnc_revokeLicense;";

Allez dans core\civilian\fn_removeLicenses.sqf et allez a la ligne 40 puis ajoutez comme ceci :

    //Killing someone while owning a gun license
    case 3: {
        if (missionNamespace getVariable LICENSE_VARNAME("gun","civ")) then {
            missionNamespace setVariable [LICENSE_VARNAME("gun","civ"),false];
            hint localize "STR_Civ_LicenseRemove_2";
        };
    };
    
    case 4: {
        missionNamespace setVariable [LICENSE_VARNAME("driver","civ"), false];
        hint "Votre permis de conduire vous à été retiré par la Gendarmerie !";
    };

    case 5: {
        missionNamespace setVariable [LICENSE_VARNAME("trucking","civ"), false];
        hint "Votre permis Poids-Lourd vous à été retiré par la Gendarmerie !";
    };

    case 6: {
        missionNamespace setVariable [LICENSE_VARNAME("moto","civ"), false];
        hint "Votre permis Moto A2 vous à été retiré par la Gendarmerie !";
    };

    case 7: {
        missionNamespace setVariable [LICENSE_VARNAME("pilot","civ"), false];
        hint "Votre brevet de pilote vous à été retiré par la Gendarmerie !";
    };

    case 8: {
        missionNamespace setVariable [LICENSE_VARNAME("dive","civ"), false];
        hint "Votre brevet de plongee vous à été retiré par la Gendarmerie !";
    };

    case 9: {
        missionNamespace setVariable [LICENSE_VARNAME("boat","civ"), false];
        hint "Votre permis bateau vous à été retiré par la Gendarmerie !";
    };

    case 10: {
        missionNamespace setVariable [LICENSE_VARNAME("gun","civ"), false];
        hint "Votre permis port-d'armes vous à été retiré par la Gendarmerie !";
    };    
};

Allez dans core/pmenu et creez un fichier nommé “fn_revokeLicense.sqf” ajoutez ça dans le fichier:

/*
	File: fn_revokeLicense.sqf
	Author: Michael Francis

	Description:
	Allows cops to revoke individual licenses, or all licenses. Vehicle related only.
*/
private["_display","_curTarget","_Btn1","_Btn2","_Btn3","_Btn4","_Btn5","_Btn6","_Btn7"];


params [
    ["_curTarget",objNull,[objNull]]
];
disableSerialization;
if (!(createDialog "revokeLicense_Menu")) exitWith {hint "revokeLicense_Menu Fail"};
if(isNull _curTarget) exitWith {hint "Wrong target!"; closeDialog 0;}; //Bad target
if(!isPlayer _curTarget && side _curTarget == civilian) exitWith {hint "Cannot perform this action!"; closeDialog 0;}; //Bad side check?

_display = findDisplay 41000;
_Btn1 = _display displayCtrl 41002;
_Btn2 = _display displayCtrl 41003;
_Btn3 = _display displayCtrl 41004;
_Btn4 = _display displayCtrl 41005;
_Btn5 = _display DisplayCtrl 41006;
_Btn6 = _display DisplayCtrl 41007;
_Btn7 = _display DisplayCtrl 41008;
_Btn8 = _display DisplayCtrl 41009;
life_pInact_curTarget = _curTarget;


_Btn1 buttonSetAction "[4] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn2 buttonSetAction "[5] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn3 buttonSetAction "[6] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn4 buttonSetAction "[7] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn5 buttonSetAction "[8] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn6 buttonSetAction "[9] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

_Btn7 buttonSetAction "[10] remoteExecCall [""life_fnc_removeLicenses"",life_pInact_curTarget]; closeDialog 0;";

Voila tutoriel finis n’hésitez pas a me dire si vous avez des avis ou si vous avez des questions :slight_smile:


#2

Ton tuto est non fonctionnel car il te manque un fichier et tu as des erreurs dans les noms de fichiers… Impossible que cela fonctionne.


#3

Voilà l’origine du post :
https://altisdev.com/topic/803/fonction-remove-les-licences-côté-police/2


#4

Oui, et??? j’ai deja ceci sur mon serv, mais laisser ce tuto alors qu’il est non fonctionnel…voila pourquoi je disais cela… A supprimer ou l’auteur doit le revoir et le modifier. :wink:


#5

Gbutome02 bah tu vas te détendre?
je donne l’origine, vu que tu dis qu’il est incomplet. Suffis juste de le compléter --’


#6

kovix5519 C’est bien se que je dis… l’auteur doit le refaire, ou alors le supprimer. Le lien que tu donne est effectivement la source, mais à vérifier si tu peux simplement le compléter car je pense qu’il y aura tout de même des modifs. J’ai écrit ici pour que le STAFF puisse intervenir et éviter de laisser ceci car cela n’ aidera pas les novices. … :wink:

PS: TKT pas pour moi, je suis très détendu. Si je n’étais pas détendu, j’aurais écris en maj… :wink:


#7

Selon moi, le fait que sa soit incomplet et le fait que je donne la source pourrait être instructif ( il y a pas 50 fichiers a ajouter et/ou édite ). Mais entièrement d’accord avec toi, un tuto se doit d’être complet


#8

Kovix5519 & Gbutome02 j’ai fait ce tuto avant de partir en vac donc je n’ai pas pu corriger mon erreur, mais j’ai verif et il manquait bien une étape !

Tuto Valide !


#9

Tuto corrigé ?

Belle journée


#10

T as juste a lire le commentaire du post et tu comprendra ce qui cloche !