Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254727 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 08:26:18
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)je me lance dans les includes pour voir
Pages: [1] 2   Bas de page
Imprimer
Auteur Fil de discussion: je me lance dans les includes pour voir  (Lu 504 fois)
0 Membres et 1 Invité sur ce fil de discussion.
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« le: 15 Juillet 2009 à 22:10:06 »

Bonjour voila a ce jour je me lance dans les include et j'aimerais si possible que l'on m'explique un peu

Qu'est ce que Statics dans le includes?


Pour le moment je travaille sur une include demarrage et systeme d'essence d'essence mais la il est fini pour moi mais ne fonctionne pas :s voila un exemple

Code:
//OnPlayerStateChange

SCFS(playerid, newstate, oldstate)
{
    new VID = GetPlayerVehicleID(playerid);
    new MOD = GetVehicleModel(playerid);
    new string[128];
   
    if(newstate == PLAYER_STATE_DRIVER)
{
    format(string, sizeof(string), "~g~%s",Nom_Des_Vehicules[GetVehicleModel(VID)-400]);
    GameTextForPlayer(playerid,string,3500,1);
if(Voiture_Demarer[VID] == 0 && MOD != 510 && MOD != 509 && MOD != 481)
{
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid,Blanc,"Le moteur de ce vehicule est eteint appuie sur 'TAB' pour demarer");
}
else
{
SendClientMessage(playerid,Jaune,"Chouette le moteur tourne déjà!");
}
if(Voiture_essence[VID] < 1)
{
SendClientMessage(playerid,Blanc,"Dommage ce vehicule n'as plus d'essence!");
}
}
return 1;
}
enfaite je j'aimerais fair un peu comme l'include de fredo que l'on mette ceci dans le script

Code:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    SCFS(playerid, newstate, oldstate);
return 1;
}
Mais apparement il y a une etape que j'ai du zapper mais je ne sais ou :s


le soucis pawno ne repond pas :s et je sais d'avance que sa vient de l'include
Journalisée

S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #1 le: 16 Juillet 2009 à 04:03:29 »

Salut,

il faudrait voir ton "en-tête d'include", mais normalement cette fonction ne pose pas problème...

les static sont simplement des variables qui ne sont accessible que dans une sections du script. Il est possible de séparer un script en plusieurs parties (par une technique que j'ignore), mais les includes sont par définition une section différente du script, donc elles se prêtent bien à ce type de variables. Ainsi une variable globale déclarée dans ton include n'existera pas pour le reste du script, ça permet d'éviter des conflits de nom et des modifications non désirée de ces variables puisque l'on est forcé de passé par l'include pour en modifier la valeur via une fonction...
EDIT: désolé si je ne suis pas très clair...

++Sim++
Journalisée





cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #2 le: 16 Juillet 2009 à 10:00:43 »

Voila ou j'en suis est dans cette etat il est inutilisable apparement :s

Lien pastebin GTAOnline
Journalisée

Jerome02
Hors ligne Hors ligne


Tueur en série
*

Messages: 211


« Répondre #3 le: 29 Juillet 2009 à 19:45:37 »

Petit Up

PS: Desole de faire un Petit Up Mais ce FS m'intéresse 
Journalisée



((** Débute dans le scripte mais connais deja pas mal de chose
mais beaucoup a apprendre encore Sourire **))
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #4 le: 29 Juillet 2009 à 20:08:37 »

ce n'est pas un fs mais une inc je vais pouvoir le partager des que je l'aurais tester grand merci a Sim pour son aide d'ailleur Clin d'oeil
Journalisée

Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #5 le: 30 Juillet 2009 à 14:06:15 »

Ainsi une variable globale déclarée dans ton include n'existera pas pour le reste du script

Heu ... c'est exactement le contraire.

En fait, un include, comme sont nom l'indique est un fichier qui sera inclus dans un autre pour former le fichier à compiler.

Exemple :

Voici un include (que j'appellerais MonInclude) :
Code:
new UneVariable;
MaFonction ()
{
   UneVariable++;
   printf ("Nouvelle valeur : %d\n", UneVariable);
}

Voici mon script PAWN (volontairement très simple) :
Code:
#include "MonInclude"

main ()
{
   UneVariable = 7;
   MaFonction ();
}

Ce que le compilateur va faire, c'est construire un gros fichier final en mémoire avant de compiler. Le fichier final dans notre cas sera comme suit :
Code:
new UneVariable;
MaFonction ()
{
   UneVariable++;
   printf ("Nouvelle valeur : %d\n", UneVariable);
}

main ()
{
   UneVariable = 7;
   MaFonction ();
}

La variable UneVariable et la fonction MaFonction sont donc utilisables dans tout le script.
Il est même possible d'utilisé cette variable ou fonction dans un autre include mais il faut impérativement que l'autre include apparaisse après le premier :

Un autre include (nommé AutreInclude) :
Code:
AutreFonction ()
{
   UneVariable+=2;
   printf ("Nouvelle valeur : %d\n", UneVariable);
}

Le source suivant compile :
Code:
#include "MonInclude"
#include "AutreInclude"

main ()
{
   UneVariable = 7;
   MaFonction ();
}

Alors que si on met les includes dans le mauvais sens :
Code:
#include "AutreInclude"
#include "MonInclude"

main ()
{
   UneVariable = 7;
   MaFonction ();
}

On obtient les erreurs suivantes :
D:\Utilities&Misc\samp-server-0.2.2\pawno\include\AutreInclude.inc(3) : error 017: undefined symbol "UneVariable"
D:\Utilities&Misc\samp-server-0.2.2\pawno\include\AutreInclude.inc(4) : error 017: undefined symbol "UneVariable"


++
Syg
Journalisée

Courtesy of GtaManiac
S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #6 le: 30 Juillet 2009 à 17:40:32 »

les static sont simplement des variables qui ne sont accessible que dans une sections du script.

je parlais des variables static mdr....
Journalisée





Syg
Expert programmeur C/C++/PAWN
Hors ligne Hors ligne


Administrateur
GTAOnline Legend
*

The GTAOnline Jesus

Messages: 3760


« Répondre #7 le: 31 Juillet 2009 à 11:02:09 »

Effectivement, c'est vrai pour les variable static, elles ne sont visibles que dans le script (ou la fonction) où elles sont déclarées.

Attention toutefois avec l'utilisation de static.
Utilisé dans une fonction, ce mot clé indique que le variable ne sera pas détruite à la fin de la fonction et qu'elle conservera sa valeur.

Exemple :
Code:
MaFonction ()
{
   /* Déclaration et initialisation d'un variable statique */
   static Var =2;

   /* Incrémentation de la variable */
   Var +=5;
   printf ("Valeur de Var : %d\n", Var);
}

main ()
{
   MaFonction ();
   MaFonction ();
}[\code]

L'exécution de main provequera l'affichage suivant
[tt]Valeur de Var : 7
Valeur de Var : 12[/tt]

La variable [tt]Var[/tt] n'est pas re-initialisée entre deux appels à [tt]MaFonction[/tt]

++
Syg
Journalisée

Courtesy of GtaManiac
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #8 le: 31 Juillet 2009 à 16:24:29 »

Merci pour cette precision enfaite cette include est un depart etant donner que je reserve quelque chose qui je pense raviras quelque coder debutant


Pour le moment voici donc l'include en question


pour l'utiliser rien de plus simple avec vos autre include declarer celle ci

Code:
#include <essence>

Vous pouvez egalement retirer

Code:
#include <a_samp>

Il est apeler dans l'include

les commande

Pour demarrer le vehicule appuiyer sur "TAB"

Pour fait le plein dans une station /essence

Si vous etes dans un vehicule sans essence /sortir pour le quitter

http://www.megaupload.com/?d=8WJX67KM


Merci a Sim de m'avoir m'aider sans lui sa ne fonctionnerais toujour pas ^^
Journalisée

S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #9 le: 31 Juillet 2009 à 16:27:21 »

Salut,

ça j'ignorais, très intéressant comme info, merci Syg, je ne les avait utilisé qu'en "globale"

j'aurais une petite question en lien avec ces variables,
les static ne sont valides que dans la "section" de code où ils sont déclarés, les includes sont déjà à la base dans une section différente, mais il existe surement une instruction de précompilation qui permet de faire un changement de section où l'on le désire, si oui, laquelle?

EDIT: cristab, c'est toi qui a tout fais dans ton include...

++Sim++
Journalisée





Jerome02
Hors ligne Hors ligne


Tueur en série
*

Messages: 211


« Répondre #10 le: 31 Juillet 2009 à 16:43:49 »

j'ai u petit problème mais je n'arrive pas a poster ce que ma dit quand je compile mais je vous explique sa me donne 8 erreur :

Code:
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(27372) : error 025: function heading differs from prototype
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(27373) : error 021: symbol already defined: "PlayerToPoint"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(8350) : error 021: symbol already defined: "OnPlayerCommandText"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(1864) : error 021: symbol already defined: "OnPlayerConnect"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(3664) : error 021: symbol already defined: "OnPlayerSelectedMenuRow"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(3669) : error 021: symbol already defined: "OnPlayerExitedMenu"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(3705) : error 021: symbol already defined: "OnPlayerStateChange"
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(118) : error 025: function heading differs from prototype


et je ne sais combien de Warning  Grima&ccedil;ant Grima&ccedil;ant Grima&ccedil;ant
Journalisée



((** Débute dans le scripte mais connais deja pas mal de chose
mais beaucoup a apprendre encore Sourire **))
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #11 le: 31 Juillet 2009 à 16:45:02 »

desoler tromper de version commente cette ligne

Code:
#define FILTERSCRIPT

c'est a dire comme ceci


Code:
//#define FILTERSCRIPT
Journalisée

Jerome02
Hors ligne Hors ligne


Tueur en série
*

Messages: 211


« Répondre #12 le: 31 Juillet 2009 à 16:48:20 »

voila et sa donne sa :

Code:
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\pawno\include\essence.inc(157) : error 004: function "core_OnGameModeExit" is not implemented
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\pawno\include\essence.inc(202) : error 004: function "core_OnVehicleSpawn" is not implemented
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\pawno\include\essence.inc(347) : error 004: function "core_OnPlayerKeyStateChange" is not implemented
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(118) : error 025: function heading differs from prototype
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(27372) : error 025: function heading differs from prototype
C:\Documents and Settings\Administrateur.15C8C0122FFA4EF\Bureau\samp02Xserver.win32\gamemodes\WC-RP.pwn(27373) : error 021: symbol already defined: "PlayerToPoint"


et encore je sais pas combien de Warnings
Journalisée



((** Débute dans le scripte mais connais deja pas mal de chose
mais beaucoup a apprendre encore Sourire **))
cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #13 le: 31 Juillet 2009 à 16:53:08 »

je vient de tester sa fonctionne attention cette include et utilisable en GM sinon decommenter  #define FILTERSCRIPT   et changer l'extension du fichier en pwn et voila votre FS
Journalisée

Jerome02
Hors ligne Hors ligne


Tueur en série
*

Messages: 211


« Répondre #14 le: 31 Juillet 2009 à 16:56:37 »

ahhh Merci c'est bon sa marche GG   Sourire


Citation
Merci pour cette precision enfaite cette include est un depart etant donner que je reserve quelque chose qui je pense raviras quelque coder debutant

presser de voir de quoi s'agit il  Embarrass&eacute; Embarrass&eacute;




EDIT : tu peu pas ajouter la vitesse accoter de l'essence??? ou explique comment faire je peu essayer de la faire  Tire la langue Embarrass&eacute; Roulement d'yeux
« Dernière édition: 31 Juillet 2009 à 16:59:06 par Jerome02 » Journalisée



((** Débute dans le scripte mais connais deja pas mal de chose
mais beaucoup a apprendre encore Sourire **))
Pages: [1] 2   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.33 secondes avec 23 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact