The-Programmer Forum

ProtoMehka a écrit le dernier message :
#3
Ah oui pardon !

Au final, j'ai suivi les instructions que vous m'avez fourni. Côté serveur, j'ai modifié mon fichier fn_getReputation.sqf comme ceci :

C++:
/*
  fnc_getReputation
  _pid    : getPlayerUID player;
  _column : "rep_patriote"|"rep_travail"|"rep_nuisible"
  return  : int (0–100)

Exemple d'utilisation : [getPlayerUID player, "rep_nuisible", player] remoteExec ["RPY_fnc_getReputation",RSERV]
*/


params ["_pid","_column","_target"];
private _valid = ["rep_patriote","rep_travail","rep_nuisible"];
if !(_column in _valid) exitWith {};

private _query = format ["SELECT %1 FROM reputation WHERE pid='%2'", _column, _pid];
private _resArr = [_query, 2] call DB_fnc_asyncCall;
if ((count _resArr) == 0) exitWith {};
private _value = _resArr select 0;

[_column, _value] remoteExec ["SOCK_fnc_sendReputation", _target];

_value

J'ai ajouté la variable _target dans les paramètres où je renseigne 'player'. Avant de retourner la valeur (_value) pour mon script fn_addReputation.sqf, je remoteExec un nouveau script côté client avec _target (player).

J'ai donc créé un fichier côté client nommé fn_sendReputation.sqf pour récupérer la valeur et la stocker dans une playerVariable :

C++:
/*
  fnc_sendReputation.sqf
  RPY_fnc_sendReputation (client only)
  _column : string
  _value  : int
*/

params ["_column","_value"];

/*
// Debug :

private _faction = "";
switch (_column) do {
    case "rep_patriote" : {_faction = "Camarade Patriote"};
    case "rep_travail" : {_faction = "Camarade Ouvrier"};
    case "rep_nuisible" : {_faction = "Camarade Nuisible"};
};
*/

player setVariable [format ["rep_%1", _column], _value];

/*
// Debug :
hint format ["Réputation %1 = %2", _faction, _value];
*/

Je récupère ainsi une variable de type SCALAR que je vais pouvoir manipuler pour l'interface de suivi des réputation que je tâche de mettre en place.

S'il manque des précisions, fais-moi signe, je pourrai les apporter avant clôture :)