Bonjour,
Actuellement, j'ai une fonction qui récupère une valeur INT en base de données. Cette valeur est bien récupérée et peut être manipuler dans des calculs pour réécrire en base. Néanmoins, quand j'essaie de l'afficher dans un hint, j'ai un affichage vide. J'ai essayé d'utiliser la commande str "des fois que", mais j'ai juste des guillemets (string dans string pour faire sale).
Voici comment je récupère ma valeur (script coté life_server) :
Voici comment je manipule ma valeur en base (je le précise car j'arrive bien à manipuler la donnée depuis le scope life_server) :
Voici ce que je mets dans la console de debug :
Et voici le résultat :
Est-ce que la valeur retournée ne peut pas parvenir au client ?
A savoir que j'ai déclaré mes fonctions comme suit dans CfgRemoteExec.hpp :
Potentiellement, dois-je créer une fonction pour me retourner la valeur et déclarer celle-ci dans mon CfgRemoteExec en client ?
Dans l'attente de vous lire, merci d'avance.
Actuellement, j'ai une fonction qui récupère une valeur INT en base de données. Cette valeur est bien récupérée et peut être manipuler dans des calculs pour réécrire en base. Néanmoins, quand j'essaie de l'afficher dans un hint, j'ai un affichage vide. J'ai essayé d'utiliser la commande str "des fois que", mais j'ai juste des guillemets (string dans string pour faire sale).
Voici comment je récupère ma valeur (script coté life_server) :
C++:
/*
fnc_getReputation
_pid : getPlayerUID player;
_column : "rep_patriote"|"rep_travail"|"rep_nuisible"
return : int (0–100)
Exemple d'utilisation : [getPlayerUID player, "rep_nuisible"] remoteExecCall ["RPY_fnc_getReputation",RSERV]
*/
params ["_pid","_column"];
private _valid = ["rep_patriote","rep_travail","rep_nuisible"];
if !(_column in _valid) exitWith {};
private _query = format ["SELECT id, %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 1;
_value
Voici comment je manipule ma valeur en base (je le précise car j'arrive bien à manipuler la donnée depuis le scope life_server) :
C++:
#include "\life_server\script_macros.hpp"
/*
fnc_addReputation
_pid : getPlayerUID player;
_column : "rep_patriote"|"rep_travail"|"rep_nuisible"
_delta : int (peut être négatif ou positif)
return : nouvelle valeur (0–100)
Exemple d'utilisation : [getPlayerUID player, "rep_nuisible", 10] remoteExec ["RPY_fnc_addReputation",RSERV]
*/
params ["_pid","_column","_delta"];
private _valid = ["rep_patriote","rep_travail","rep_nuisible"];
if !(_column in _valid) exitWith {};
private _current = [_pid,_column] call RPY_fnc_getReputation;
private _new = (_current + _delta) max 0 min 100;
private _existsQ = format ["SELECT id FROM reputation WHERE pid='%1'", _pid];
private _exists = [_existsQ, 2] call DB_fnc_asyncCall;
private _sql = "";
if (count _exists == 0) then {
_sql = format [
"INSERT INTO reputation (pid, %1) VALUES ('%2', %3)",
_column, _pid, _new
];
} else {
_sql = format [
"UPDATE reputation SET %1 = %2 WHERE pid = '%3'",
_column, _new, _pid
];
};
[_sql, 1] call DB_fnc_asyncCall;
_new
Voici ce que je mets dans la console de debug :
C++:
column = "rep_patriote";
pid = getPlayerUID player;
query = [pid, column] remoteExec ["RPY_fnc_getReputation", 2];
poney = str query;
hint poney;
Et voici le résultat :

Est-ce que la valeur retournée ne peut pas parvenir au client ?
A savoir que j'ai déclaré mes fonctions comme suit dans CfgRemoteExec.hpp :
C++:
class CfgRemoteExec {
class Functions {
mode = 1;
jip = 0;
F(RPY_fnc_addReputation,SERVER)
F(RPY_fnc_getReputation,SERVER)
};
};
Potentiellement, dois-je créer une fonction pour me retourner la valeur et déclarer celle-ci dans mon CfgRemoteExec en client ?
Dans l'attente de vous lire, merci d'avance.