• 17 Mai 2024, 19:40:34


Auteur Sujet: [Questions] Variables et Fonctions[RESOLU]  (Lu 1041 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
[Questions] Variables et Fonctions[RESOLU]
« le: 27 Octobre 2010, 10:01:47 »
Bonjour a tous et a toute,

J'ai 2 petites questions a poser qui me trottent dans la tete depuis un certain temps. Les voici(ce sont des exemple biensur):

1) J'ai un GM avec une variable IsPlayerSing[playerid] et j'ai la meme dans un de mes fs, j'aimerai rajouter a cette variable +1(donc: IsPlayerSing[playerid] += 1) dans mon GM comment faire pour que sa rajoute 1 aussi dans le fs?
(Toujours question 1) J'ai une variable PlayerInfo[playerid][pAdmin] dans mon gamemode qui defini le level admin, mais j'ai un FS avec des commandes reserver aux admins, comment faire pour que la variable PlayerInfo[playerid][pAdmin] soit communiqué au FS?


2) (Idem mais avec Fonction) J'ai une fonction PlayerSing(playerid) dans mon GM comment la faire executer aussi dans le filterscript?


Voila j'espere etre clair.
J'attend votre aide avec impatience.
Brian Price ++.
« Modifié: 27 Octobre 2010, 11:20:18 par Brian Turner »
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Questions] Variables et Fonctions
« Réponse #1 le: 27 Octobre 2010, 10:38:36 »
Salut, utilise SetPVarInt et GetPVarInt quelque choses comme ça, tu regardes sur le wiki de sa-mp tu auras son utilisation.

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [Questions] Variables et Fonctions
« Réponse #2 le: 27 Octobre 2010, 10:51:23 »
salut

Merci je viens de la comprendre! en gros je peux faire SetPVarInt(playerid, "AdminLevel", PlayerInfo[playerid][pAdmin]);

C'est sa? J'ai compris?

++
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Questions] Variables et Fonctions
« Réponse #3 le: 27 Octobre 2010, 11:09:24 »
Voila :D
Après si tu veux des précisions, regarde les scripts de Sim, il l'a utilisé ou bien demande lui ^^

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [Questions] Variables et Fonctions
« Réponse #4 le: 27 Octobre 2010, 11:20:05 »
Ok merci pour ton aide, si j'ai un probleme je lui demandai.

Merci, résolu.
Brian Price
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne mjlayak

  • *
  • Tueur en série
  • Messages: 150
    • Voir le profil
Re : [Questions] Variables et Fonctions[RESOLU]
« Réponse #5 le: 27 Octobre 2010, 12:36:50 »
En repondant a cette question chneubeul tu a aidais un  bon nombre de personne , merci  :D

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : [Questions] Variables et Fonctions[RESOLU]
« Réponse #6 le: 27 Octobre 2010, 12:59:08 »
Je viens de mettre en oeuvre le SetPVarInt et le GetPVarInt sa marche parfaitement!

Ah sa me résous pleins de problèmes sa!

encore Merci  :P
Momoto33127
__________________________________________
[TRADUCTION][FS]Celular call 1.5 : Voir le poste
[ADDON/INC]Motor System (/clef et /vsortir pour Gveh) : Voir le poste
[FS]BanList (BlackListe) [Systeme de BAN] : Voir le poste

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [Questions] Variables et Fonctions[RESOLU]
« Réponse #7 le: 27 Octobre 2010, 14:00:01 »
Salut,

alors pour être sur:

La communication entre les scripts


1. La communication de données

Ici nous entendons la communication de variables. Cette section sera répartie en 2 sections. Une pour les fonctions du type CallRemoteFunction et une autre pour les PVar.

CallRemoteFunction

La fonction CallRemoteFunction permet d'appeler une fonction dans un autre script. Si l'appel est réussi, cette fonction retourne la valeur de retour de la fonction appelée (d'où l'importance de toujours retourner une valeur, dans les fonctions public, car seules celles ci peuvent être appelées ainsi). Ainsi, on peut l'utiliser en appelant une fonction qui renvoie une information.
Par exemple:
new level = CallRemoteFunction("GetAdminLevel", "i", playerid);
//dans un autre script
public GetAdminLevel(playerid)
{
    return AdminInfo[playerid][level];//dans un cas où on a un gros tableau multidimensionnel
}
Grâce à cet appel on peut donc savoir la valeur du niveau admin du joueur.

En continuant avec le même exemple, on pourrait, par exemple vouloir aller changer la valeur du niveau du joueur. Ceci est également possible, en passant des paramètres supplémentaires ddans la fonction.

CallRemoteFunction("SetAdminLevel", "ii", playerid, newlevel);
//dans un autre script
public SetAdminLevel(playerid, level)
{
    AdminInfo[playerid][level] = level;//on change la valeur du niveau
    return 1;
}
ATTENTION : il faut les fonctions public en conséquence.

PVar

La même chose est possible avec les PVar, mais peut-être plus intuitive. Il suffit de donner un nom à la PVar, et elle sera accessible sous ce même nom dans tous les scripts.
Reprise de l'exemple:
Récupération de la valeur:
new level = GetPVarInt(playerid, "AdminLevel");
//dans un autre script on utilise la même chose, c'est donc plus facile à gérer

Modification de la valeur:
SetPVarInt(playerid, "AdminLevel", newlevel);
//dans un autre script, on utilise la même chose, donc plus facile à gérer
Donc, c'est plus simple et aussi plus efficace niveau temps (enfin je suis pratiquement sûr).

2. La communication "d'évènements"

Ici pas de magie avec les PVar, on en revient aux CallRemoteFunction. Donc, en bref, il suffit de se créer son propre système de "callback".
Les callback sont, vous l'avez surement remarqué, toutes des fonctions déclarée en public. Ceci permet d'y accéder depuis l'extérieur du script. Donc, sa-mp peut les appeler, et un autre script peut le faire aussi.

Bref, pour créer son système de callback, il suffit de:
 - ajouter une fonction public, ce sera la callback.
 - l'appeler quand l'évènement voulu a lieu.
 - si l'on veut tenir compte de la valeur de retour de la callback, ceci devient un peu plus difficile (un bon exemple est zcmd avec les 2 callbacks qu'il ajoute).


Petit exemple de base:
//Dans un seul script:
new money[MAX_PLAYERS];//tableau contenant l'argent précédant du joueur
public OnPlayerUpdate(playerid)
{
    new cash = GetPlayerMoney(playerid);
    if(cash != money[playerid])
    {
        CallRemoteFunction("OnPlayerMoneyUpdate", "iii", playerid, money[playerid], cash);//on ne tient même pas compte de la valeur de retour, on appèle simplement la fonction public
    }
    money[playerid] = cash;
    .....
}

//dans tous les scripts:
forward OnPlayerMoneyUpdate(playerid, oldmoney, newmoney);
public OnPlayerMoneyUpdate(playerid, oldmoney, newmoney)
{
    ....
    return 1;
}

3. La communication de fonction

En ce qui concerne la communication de fonctions, j'entends ici : pouvoir utiliser la même fonction dans plusieurs scripts différent.
Pour y arriver il n'y a pas de méthode magique, soit vous implantez la fonction dans chacun des scripts, soit vous vous faites un include contenant cette fonction (et possiblement d'autres) et vous l'intégrez dans chacun de ces scripts.

Voilà, j'espère que c'est suffisamment clair et que ceci vous aidera à comprendre

++Sim++





Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : [Questions] Variables et Fonctions[RESOLU]
« Réponse #8 le: 27 Octobre 2010, 14:46:14 »
Bravo, Sim. C'est très bien expliqués. En plus ça ma permis de réviser :D