• 04 Juin 2026, 17:30:20


Auteur Sujet: SetPVarInt ?  (Lu 1829 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
SetPVarInt ?
« le: 23 Mai 2010, 17:16:13 »
Bonjour ,
J'arrive pas à comprendre l'utiliter de SetPVarInt ?

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : SetPVarInt ?
« Réponse #1 le: 23 Mai 2010, 17:43:12 »
Nan moi j'ai compris que c'était une variable qui ce m'était auto à zéro à la deconexion

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : SetPVarInt ?
« Réponse #2 le: 23 Mai 2010, 18:15:12 »
en gros c'est un façon d'exporter tes variable d'un FS sur le GM ou le contraire :)
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPVarInt ?
« Réponse #3 le: 25 Mai 2010, 23:22:46 »
Non, c'est simplement la façon de déclarer des variables associées à un joueur.

Ces variables doivent être crées par le script au moment de la connexion d'un joueur.
Ces variables existent pendant toutes la durée de connexion du joueur, elles sont détruites lors de sa déconnexion.

Ceci permet d'utiliser efficacement la mémoire en évitant la déclaration de tableaux avec [MAX_PLAYERS] (Si MAX_PLAYERS vaut 200, on réserve 200 fois les variables).

Par contre, l'utilisation de ce système (introduit avec le R4 je crois) alourdit considérablement le script (qui devient vite difficilement lisible).

A vous de voir.

++
Syg
Courtesy of GtaManiac

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : SetPVarInt ?
« Réponse #4 le: 25 Mai 2010, 23:36:45 »
Faudrait qu'ils mettent un language qui ressemble au C++ pour la POO et ca rendra les codes plus lisible =) et plus simple =)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : SetPVarInt ?
« Réponse #5 le: 25 Mai 2010, 23:40:05 »
Salut,

Non, c'est simplement la façon de déclarer des variables associées à un joueur.

Ces variables doivent être crées par le script au moment de la connexion d'un joueur.
Ces variables existent pendant toutes la durée de connexion du joueur, elles sont détruites lors de sa déconnexion.

Ceci permet d'utiliser efficacement la mémoire en évitant la déclaration de tableaux avec [MAX_PLAYERS] (Si MAX_PLAYERS vaut 200, on réserve 200 fois les variables).

Par contre, l'utilisation de ce système (introduit avec le R4 je crois) alourdit considérablement le script (qui devient vite difficilement lisible).

A vous de voir.

++
Syg

ça dépend, il y a moyen de ne pas trop alourdir le script avec l'aide des defines, par exemple:

#define GetAdminlevel(%0) GetPVarInt(%0, "AdminLevel")
#define SetAdminLevel(%0,%1) SetPVarInt(%0, "AdminLevel", %1)
#define GetRaceState(%0) GetPVarInt(%0, "RaceState")
....

j'utilisais déjà cette méthode avec les variables pour rendre le script plus agréable à lire (du moins je trouve que ça parait plus beau quand on fait un test sur une fonction...)
l'ennui c'est que ça ne fonctionne pas aussi bien quand on arrive pour récupérer la valeur d'un string comme il faut passer la variable en paramètre ça se fait mais il faudra un truc de ce genre:

#define GetPlayerStateName(%0,%1,%2) GetPVarString(%0, "StateName", %1, %2)
//à utiliser ainsi: GetPlayerStateName(playerid, variable où stocker l'info, taille de la variable);

++Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : SetPVarInt ?
« Réponse #6 le: 25 Mai 2010, 23:49:13 »
Ouais c'est un moyen de contourner le problème, mais écrire des defines à chaque fois, c'est un peu chi*nt ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : SetPVarInt ?
« Réponse #7 le: 26 Mai 2010, 00:42:49 »
Salut,

Ouais c'est un moyen de contourner le problème, mais écrire des defines à chaque fois, c'est un peu chi*nt ^^
ouais, mais au fond, déclarer une variable ça prend 1 ligne. Déclaré un define du genre ça prend 2 lignes (quand tu fait le Set et le Get)





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : SetPVarInt ?
« Réponse #8 le: 26 Mai 2010, 10:43:55 »
Oui, Sim, c'est la base de la programmation objet, chaque variable est un objet que l'on n'accède pas directement mais au moyen de méthode (Set, Get, ...).

Sinon, je reviens sur la phrase de cristab qui dit "en gros c'est un façon d'exporter tes variable d'un FS sur le GM ou le contraire".
Effectivement, c'est un moyen simple de pouvoir partager des variables entre un GM et les FS qui l'entourent. Les variables associées aux joueurs sont gérées par le serveur lui-même et sont donc accessibles directement dans tous les FS.
Il suffit de mettre les #define de Sim dans le bon include et le tour est joué.
Le seul petit problème de cette solution c'est que les FS sont irrémédiablement liés au GM (mais il permet une plus grande modularisation du code, ce qui est une bonne chose).

++
Syg
Courtesy of GtaManiac

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : SetPVarInt ?
« Réponse #9 le: 26 Mai 2010, 12:10:24 »
Il y a une limite d'utilisation de cette fonction ?



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : SetPVarInt ?
« Réponse #10 le: 26 Mai 2010, 16:51:40 »
Salut,

Il y a une limite d'utilisation de cette fonction ?

je ne crois pas, la seule limite c'est quand tu l'utilise tellement que t'utilise toutes les ressources du serveur....
personnellement je m'en sert à fond pour tous les trucs qui peuvent m'être utiles d'un script à l'autre. Par exemple, le statut en course, le niveau d'admin, le dm dans lequel le joueur se trouve....

++Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : SetPVarInt ?
« Réponse #11 le: 26 Mai 2010, 16:58:27 »
Ouais c'est assez interressant, surtout si on gère avec des FS les serveurs ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog