Français Blacklist de joueurs

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

Mathis

The-Programmer
Membre du personnel
29/12/19
503
16
48
1 100
vdgrg-ConvertImage.png

Bonjour à toutes et à tous,
Aujourd'hui, on se retrouve pour un tutoriel en rapport avec Altis-Life. Ce tutoriel consiste, comme l'indique son nom à rendre la possibilité de bannir des joueurs par BDD.
Si vous avez un soucis, n'hésitez pas à ouvrir un topic sur le forum plutôt que répondre en demandant de l'aide sous le tutoriel.

Maintenant, place à l'installation.

1. Ajouter la table suivante dans la base de données :
Code:
CREATE TABLE `joueurs_bannis` (
    `id` INT(6) NOT NULL,
    `player_id` VARCHAR(17) NOT NULL,
    `banned_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `banned_until` TIMESTAMP NOT NULL
) ENGINE = InnoDB;

2. Ensuite, il faut vérifier quand le joueur se connecte s'il est banni ou pas.
Dans le fn_queryRequest.sqf, ajoutez les ligne suivante pour kick le joueur :
Code:
_queryBanned = format ["SELECT id FROM joueurs_bannis WHERE player_id='%1' AND CURRENT_TIMESTAMP < banned_until",_uid];
_isBanned = [_queryBanned,2] call DB_fnc_asyncCall;

if ((count _isBanned) > 0) exitWith {
    ["Notwhitelisted",false,true] remoteExec ["BIS_fnc_endMission",_ownerID];
};

3. Pour pouvoir kick, il faudra également autoriser la fonction dans le CfgRemoteExec.hpp :
Code:
F(BIS_fnc_endMission,CLIENT)
(Si la ligne est déjà mise, veillez à ne pas la remettre)

Merci à vous d'avoir lu et suivi ce tutoriel, à bientôt ;)
 
Dernière édition par un modérateur:
Bonjour,
je voulais installer ton script mais voici ce que j'obtiens comme erreur :


#1067 - Valeur par défaut invalide pour 'banned_until' Capture d'écran 2023-03-13 105203.png
 
Hello W Westcoast, est-ce que tu peux essayer d’exécuter ce code dans ta base de données sinon ?
Code:
CREATE TABLE `joueurs_bannis` (
    `id` INT(6) NOT NULL,
    `player_id` VARCHAR(17) NOT NULL,
    `banned_on` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `banned_until` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE = InnoDB;
 
How would I add someone thru code say they got flagged by spyglass.
I would like to add here:
[CODE title="clientValidator.sqf"]#include "..\script_macros.hpp"

/*
File: clientValidator.sqf
Author:

Description:
Loops through a list of variables and checks whether
or not they are defined, if they are defined then trigger
spyglass and kick the client to the lobby.
*/

private _vars = [
"life_revive_fee", "life_gangPrice", "life_gangUpgradeBase", "life_enableFatigue", "life_paycheck_period", "life_vShop_rentalOnly", "life_weapon_shop_array",
"life_garage_prices", "life_garage_sell", "life_houseLimit", "life_gangUpgradeMultipler", "life_impound_car", "life_impound_boat", "life_impound_air"
];

{
if (!isNil {(missionNamespace getVariable _x)}) exitWith {
[profileName, getPlayerUID player, format ["VariableSetBeforeInitialized_%1", _x]] remoteExecCall ["SPY_fnc_cookieJar", RSERV];
[profileName, format [localize "STR_SpyDetect_VariableSetBeforeClientInitialized", _x]] remoteExecCall ["SPY_fnc_notifyAdmins", RCLIENT];
sleep 0.5;
//Add To DB Here <---
failMission "Cheating";
};
} forEach _vars;
[/CODE]
 
Dernière édition: