Question de noob : variable client/serveur


#1

Bonjour,

Donc voila mon problème : J’ai une variable côté serveur (dans life_server) et j’aimerais utiliser sa valeur dans un script côté client.
Comment faire svp ?


#2

Bonjour,

A ma connaissance il n’y a pas de notion de script client, même si à la lecture de ton poste, j’ai pu trouver une librairie Remote Execution.

Mais quel genre de script ? Car en fait j’ai du mal à voir ce que tu souhaites faire. Au pire génère une variable globale que tu synchronises sur le réseau.


#3

tar0un Par script côté client je veux juste dire que je souhaite utiliser la valeur de cette variable dans un fichier de la mission, en l’occurence “core/shops/fn_virt_sell.sqf”

Mais je ne sais pas comment faire, à chaque fois j’obtiens “NULL”. Justement comment ça marche les variables globales en SQF ?


#4

Je te renvoie sur le wiki de bohémia : https://community.bistudio.com/wiki/Variables

En gros c’est une variable nommée sans _. Je ne sais pas si les addons limitent des namespaces (en gros, je ne sais pas si ta variable serait visible depuis les scripts de mission même en étant globale). Un truc que tu pourrais contourner en la rendant public.

Cela dit, vu que tu veux en fait faire appel à une variable, un truc plus propre, c’est de créer un getter, une fonction qui va te retourner la variable souhaitée. Il te reste ensuite à appeler la fonction dans le script.

Ca donnerait un truc du style

_variable = [] call TON_fnc_getMaVariable```

, getter défini dans les fichiers de life_server.

Je pourrais pas plus t'aider cela dit, je connais assez mal le sqf et la structure de altis life.

#5

Je te renvoie sur le wiki de bohémia : https://community.bistudio.com/wiki/Variables

En gros c’est une variable nommée sans _. Je ne sais pas si les addons limitent des namespaces (en gros, je ne sais pas si ta variable serait visible depuis les scripts de mission même en étant globale). Un truc que tu pourrais contourner en la rendant public.

Cela dit, vu que tu veux en fait faire appel à une variable, un truc plus propre, c’est de créer un getter, une fonction qui va te retourner la variable souhaitée. Il te reste ensuite à appeler la fonction dans le script.

Ca donnerait un truc du style

_variable = [] call TON_fnc_getMaVariable

, getter défini dans les fichiers de life_server.

Je pourrais pas plus t’aider cela dit, je connais assez mal le sqf et la structure de altis life.

Merci de ta réponse.

Je viens d’essayer avec un getter. Si je l’appelle dans le life_server j’obtiens bien la valeur de ma variable, mais en l’appelant depuis les scripts de mission j’obtiens “any” :confused:


#6

Je crois que tu aies besoin de l’ajouter à la déclaration des classname pour pouvoir l’utiliser ailleurs. Essaye de mieux regarder comment sont déclarées les TON_* qui sont bien utilisées dans le mpmission.


#7

bin en fait dans mpmission pour appeler des script du life_server, on utilise à chaque fois un appel du style :

[[_parametres],"TON_fnc_maFonction",false,false] spawn life_fnc_MP;  

avec “TON_fnc_maFonction” déclaré dans config.cpp du life_server.

Sauf qu’avec “spawn”, impossible de retourner quoi que ce soit, et avec “call” j’obtiens pas ce que je cherche. Peut être qu’il faut regarder dans les différents paramètres de life_fnc_MP


#8

En cherchant un peu sur life_fnc_MP, j’ai vu que le spawn était une “copie” du code associé. life_fnc_MP est similaire à BIS_fnc_MP.

Du coup, je t’invite à regarder : https://community.bistudio.com/wiki/BIS_fnc_MP

Je pense que le commentaire de Fireball pourrait t’aider.