Bonjour à tous.
[CODE title="whitelist.sql"]
CREATE TABLE whitelist(
id int(255) NOT NULL AUTO_INCREMENT,
uid varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
[/CODE]
Ensuite, allez dans votre life_server et créer un fichier fn_whiteList.sqf dans \life_server\Functions\MySQL\ , insérez y le code suivant:
Dans votre config.cpp de votre life_server ajoutez en dessous de la class UpdatePartial {}; ceci :
Rendez vous maintenant dans votre mission. Créer un fichier fn_whitelistRes.sqf dans core/functions. Insérez y ceci :
Déclarez ce fichiez dans votre CfgRemoteExec.hpp comme ceci :
Et déclarez le aussi dans votre Functions.hpp comme ceci en dessous de la class actionKeyHandler {};
Rendez vous maintenant dans votre description.ext et ajoutez y les informations suivante dans la class CfgDebriefing {
Pour terminer rendez vous dans core/init.sqf et ajoutez y le code suivant en dessous de "[] call SOCK_fnc_dataQuery;"
Maintenant seulement les joueurs inscris dans la table whitelist de votre base de donnée pourront rejoindre le serveur
Cordialement, Adonis "BastienWolf" Johnson.
Dans ce tutoriel, je vais vous expliquer comment crée une whitelist pour que seulement certains joueurs accèdent au serveur. Les informations sont stockés dans votre base de données et modifiable sans reboot du serveur.
Source "Kira"
Premièrement, rendez vous dans votre base de données et ajoutez ici une nouvelle table qu'on appellera whitelist :Source "Kira"
[CODE title="whitelist.sql"]
CREATE TABLE whitelist(
id int(255) NOT NULL AUTO_INCREMENT,
uid varchar(50) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
[/CODE]
Ensuite, allez dans votre life_server et créer un fichier fn_whiteList.sqf dans \life_server\Functions\MySQL\ , insérez y le code suivant:
Code:
/*
File: fn_whiteList.sqf
Auteur: Kira modifé par Adonis 'BastienWolf' Johnson
Description: Récupération UID joueur pour la whitelist
PARAMETRES:
1.STRING (UID)
2.OBJECT (player)
RETURNS: Aucun
CALL: [STRING,OBJECT] call DB_fnc_whiteList
*/
private _uid = param[0,"",[""]];
private _player = param[1,objNull,[objNull]];
if ((_uid == "") || (isNull _player)) exitWith {};
private _query = (["SELECT uid FROM whitelist",2,true] call DB_fnc_asyncCall);
private _id = _query find [_uid];
if (_id == -1) then {
[false] remoteExecCall ["life_fnc_whitelistRes",_player];
}else{
[true] remoteExecCall ["life_fnc_whitelistRes",_player];
};
Dans votre config.cpp de votre life_server ajoutez en dessous de la class UpdatePartial {}; ceci :
Code:
class whiteList {};
Rendez vous maintenant dans votre mission. Créer un fichier fn_whitelistRes.sqf dans core/functions. Insérez y ceci :
Code:
/*
File: fn_whitelistRes.sqf
Auteur: J. Kira D.
*/
isInWL = param [0,false,[false]];
whiteListCheck = true;
Déclarez ce fichiez dans votre CfgRemoteExec.hpp comme ceci :
Code:
F(life_fnc_whitelistRes,CLIENT)
F(DB_fnc_whiteList,SERVER)
Et déclarez le aussi dans votre Functions.hpp comme ceci en dessous de la class actionKeyHandler {};
Code:
class whitelistRes {};
Rendez vous maintenant dans votre description.ext et ajoutez y les informations suivante dans la class CfgDebriefing {
Code:
class NotWhitelistedServer {
title = "Mission echouée";
subtitle = "WhiteList du serveur";
description = "Vous n'êtes dans la whiteList du serveur, contactez un administrateur.";
pictureBackground = "";
picture = "";
pictureColor[] = {0,0.3,0.6,1};
};
Pour terminer rendez vous dans core/init.sqf et ajoutez y le code suivant en dessous de "[] call SOCK_fnc_dataQuery;"
Code:
diag_log "::Life Client:: Check if player is in whiteList.";
0 cutText ["Verification dans la whitelist","BLACK FADED"];
0 cutFadeOut 99999999;
whiteListCheck = false;
isInWL = false;
[(getPlayerUID player),player] remoteExecCall ["DB_fnc_whiteList",RSERV];
waitUntil {whiteListCheck};
if(!isInWL)exitWith{
0 cutText ["Vous n'êtes pas dans la whiteList, veuillez contacter un administrateur du serveur.","BLACK FADED"];
0 cutFadeOut 99999999;
["NotWhitelistedServer",false,true] call BIS_fnc_endMission;
};
isInWL= nil;
whiteListCheck = nil;
Maintenant seulement les joueurs inscris dans la table whitelist de votre base de donnée pourront rejoindre le serveur
Cordialement, Adonis "BastienWolf" Johnson.
Dernière édition par un modérateur: