• 06 Mai 2025, 00:42:29


Auteur Sujet: [Réglé] Besoin d'aide pour créer une porte automatique  (Lu 5333 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
[Réglé] Besoin d'aide pour créer une porte automatique
« le: 01 Décembre 2010, 22:02:40 »
Bonjour,

Je fais appel à vous car vous êtes mon dernier moyen, sa fait deux jours que je cherche et recherche sur les forums de samp pour créer une porte automatique (une grille qui s'ouvre quand on arrive devant).

J'ai réussi car à ce tuto :
http://wiki.sa-mp.com/wiki/Automatic_Gates

Sa fonctionne parfaitement MAIS je ne voudrais pas m'arrêter là et faire pour que la porte ne s'ouvre QUE pour clan (: "COP") mais impossible. Soit ma porte s'ouvre pour tout le monde soit elle s'ouvre pour personne...

Pourriez-vous m'expliquer à partir de ce code comment faire svp ?

public CheckGate()
{
    new mygate_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(IsPlayerInRangeOfPoint(i,10.0,closed_X,closed_Y,closed_Z))mygate_status=1;
    }
    if(c_gate_status)MoveObject(mygate, open_X, open_Y, open_Z,Moving Speed);
    else MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
(tiré d'ici :http://wiki.sa-mp.com/wiki/Automatic_Gates)
Votre aide me serait d'une grande utilité  :)

Merci
« Modifié: 03 Décembre 2010, 18:03:11 par Winklevows »

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #1 le: 01 Décembre 2010, 22:23:55 »
Salut, quel type de serveur as tu ? DM, RP ? Je demande ça, pour savoir quels est le nom du tableau ou et recensé toutes les informations des joueurs du styles : PlayerInfo pour les serveurs roleplay..  :happy

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #2 le: 01 Décembre 2010, 22:30:08 »
C'est un Cops And Robbers, voici le gamemode que j'utilise : http://forum.sa-mp.com/showthread.php?t=157338&highlight=cops

Hors ligne Hip-hop

  • *
  • Tueur en série
  • Messages: 159
    • Voir le profil
    • Grand Theft RolePlay
Re : Besoin d'aide pour créer une porte automatique
« Réponse #3 le: 01 Décembre 2010, 23:16:25 »
Tu met une condition que sa ouvre juste pour un COP



Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #4 le: 01 Décembre 2010, 23:44:52 »
Merci de ta réponse mais je ne sais pas comment faire, mes connaissances ne sont pas très avancé.

J'ai essayé quelque chose comme sa (en gras ce que j'ai rajouté en plus du code original) :

forward CheckGate(playerid, classid);
public CheckGate(playerid, classid)
{
    new lvpdgate1_status;
    for(new i;i<MAX_PLAYERS;i++)
      {
      if (gTeam[playerid] == COP)
                           {

                           if(!IsPlayerConnected(i)) continue;
                           if(IsPlayerInRangeOfPoint(i,10.0,2334.30908203,2443.67431641,6.30757141))
                           }
      if(lvpdgate1_status)MoveObject(lvpdgate1, 2330.28222656,2436.89086914,6.30757141,5); //OPEN
      else MoveObject(lvpdgate1, 2334.30908203,2443.67431641,6.30757141, 5);//CLOSE
      }
 }

J'ai aussi essayé quelque chose du même type :

forward CheckGate(playerid, classid);
public CheckGate(playerid, classid)
{
    new lvpdgate1_status;
    for(new i;i<MAX_PLAYERS;i++)
      {
      if( GetPlayerTeam(i) == COP )
                           {

                           if(!IsPlayerConnected(i)) continue;
                           if(IsPlayerInRangeOfPoint(i,10.0,2334.30908203,2443.67431641,6.30757141))
                           }
      if(lvpdgate1_status)MoveObject(lvpdgate1, 2330.28222656,2436.89086914,6.30757141,5); //OPEN
      else MoveObject(lvpdgate1, 2334.30908203,2443.67431641,6.30757141, 5);//CLOSE
      }
 }

Mais sa ne fonctionne pas, je pense que j'ai du faire une erreur très idiote mais j'ai essayé plusieurs chose par moi même pour arriver au résultat... :(

« Modifié: 01 Décembre 2010, 23:48:40 par Winklevows »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Besoin d'aide pour créer une porte automatique
« Réponse #5 le: 02 Décembre 2010, 00:20:41 »
public CheckGate()
{
new mygate_status;

for (new i;i<MAX_PLAYERS;i++) {
if (gTeam[playerid] !== COP) {
continue;
}
if (!IsPlayerConnected(i)) {
continue;
}
if (IsPlayerInRangeOfPoint(i, 10.0, closed_X, closed_Y, closed_Z)) {
mygate_status = 1;
}
}
if (c_gate_status) {
MoveObject(mygate, open_X, open_Y, open_Z, Moving Speed);
}
else {
MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
}

J'ai regardé la forme du script et j'en est déduit ceci, je n'ai pas essayé mais théoriquement, cela marche !
« Modifié: 03 Décembre 2010, 20:19:02 par Xartrick »

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #6 le: 02 Décembre 2010, 00:29:51 »
Un grand merci ! Je testerai sa demain pour voir si sa fonctionne mais en tout cas merci beaucoup :)

Double post
public CheckGate()
{
new mygate_status;

for (new i;i<MAX_PLAYERS;i++) {
if (gTeam[playerid] != COP) {
continue;
}
if (!IsPlayerConnected(i)) {
continue;
}
if (IsPlayerInRangeOfPoint(i, 10.0, closed_X, closed_Y, closed_Z)) {
mygate_status = 1;
}
}
if (c_gate_status) {
MoveObject(mygate, open_X, open_Y, open_Z, Moving Speed);
}
else {
MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
}

J'ai regardé la forme du script et j'en est déduit ceci, je n'ai pas essayé mais théoriquement, cela marche !
Bonjour, j'ai deux erreurs :
error 001: expected token: ";", but found "for" sur la ligne :
for (new i;i<MAX_PLAYERS;i++) {
et error 017: undefined symbol "playerid" sur la ligne :
if (gTeam[playerid] != COP) {
Double post
visiblement la 1ere erreur était un bug car en réécrivant le code elle n'apparait plus.

Pouvez vous m'aider car j'ai vraiment du mal ?

Merci
« Modifié: 02 Décembre 2010, 18:55:15 par Winklevows »

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #7 le: 03 Décembre 2010, 15:25:19 »
Plus personne ? :(

Hors ligne Brian Turner

  • PAWN/PHP/SQL/MAP/SQUIRIEL
  • *
  • Bandit
  • Messages: 438
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #8 le: 03 Décembre 2010, 15:47:32 »
Salut, tout simplement: la varibale playerid n'existe pas.

Pour ton code faut faire sa:
Code: (pawn) [Sélectionner]
public CheckGate()
{
new mygate_status;

for (new i;i<MAX_PLAYERS;i++) {
if (gTeam[i] != COP) {
continue;
}
if (!IsPlayerConnected(i)) {
continue;
}
if (IsPlayerInRangeOfPoint(i, 10.0, closed_X, closed_Y, closed_Z)) {
mygate_status = 1;
}
}
if(c_gate_status)
{
MoveObject(mygate, open_X, open_Y, open_Z, Moving Speed);
}
else
{
MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
}

Voila ++ Brian
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 Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Besoin d'aide pour créer une porte automatique
« Réponse #9 le: 03 Décembre 2010, 17:34:59 »
@Winklevows: Je te conseil vivement d'aller lire les règles, tu fais plusieurs double post, et tu ne met pas tes codes en les balises adéquates ...
Va lire et respecte les règles car c'est le seul avertissement que je donne, la prochaine fois que tu ne les respectent pas ne t'attend pas à ce que je soit clément.



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

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : Re : Besoin d'aide pour créer une porte automatique
« Réponse #10 le: 03 Décembre 2010, 18:02:48 »
Salut, tout simplement: la varibale playerid n'existe pas.

Pour ton code faut faire sa:
Code: (pawn) [Sélectionner]
public CheckGate()
{
new mygate_status;

for (new i;i<MAX_PLAYERS;i++) {
if (gTeam[i] != COP) {
continue;
}
if (!IsPlayerConnected(i)) {
continue;
}
if (IsPlayerInRangeOfPoint(i, 10.0, closed_X, closed_Y, closed_Z)) {
mygate_status = 1;
}
}
if(c_gate_status)
{
MoveObject(mygate, open_X, open_Y, open_Z, Moving Speed);
}
else
{
MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
}

Voila ++ Brian
Je n'arrive pas a y croire, depuis le temps que j'essaye de faire fonctionner ces foutus portes, sa marche enfin grace à toi ! Merci beaucoup ! Je faisais la même chose sauf que je mettais le "i" entre parenthèses : (i), au lieu de le mettre entre crochets : .

@Winklevows: Je te conseil vivement d'aller lire les règles, tu fais plusieurs double post
Sasuke, je connais les règles.
J'ai fais un double post ? Non car je savais que le forum éditait les messages pour éviter le justement double post, donc où est le problème vu que mon message a été édité ?
J'ai simplement "uppé" mon topic car personne ne répondait et mon dernier message datait de plus de 24h.

et tu ne met pas tes codes en les balises adéquates ...
Je ne met pas mes codes dans les balises ? Relis mon premier messages, le code est dans les balise.
Sa sert à quoi de mettre le code entre balise ? Pour que le message soit plus claire. Pourquoi je n'ai pas mis mon second code dans les balises ?
Parce que j'ai mis des zones en gras pour que sa soit plus claire, et quand on met un code entre balise, on ne peut pas mettre de BBCODE (logique).
« Modifié: 03 Décembre 2010, 18:20:42 par Winklevows »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [Réglé] Besoin d'aide pour créer une porte automatique
« Réponse #11 le: 03 Décembre 2010, 20:05:00 »
Salut, bon déjà tu me dit ouvertement et sans le savoir que tu ne connais strictement pas les règles ....

http://www.gtaonline.fr/forums/index.php/topic,12060.0.html

Va lire ici, les doubles posts ( UP ) sont interdits non pas durant 24 heures mais 48, ensuite ton argument du je savais que le forum éditait n'est pas valide, si tu le savais tu aurai du le faire manuellement !

Ensuite tu me dit que tu met tes codes entre les balises code et tu me dit de regarder le premier poste, mais le problème ne vient pas du premier post, mais d'un autre que tu peut voir ici et même si c'est pour que ce soit plus clair, tu aurai pû le mettre sur le pastebin de GTAOnline ....



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

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [Réglé] Besoin d'aide pour créer une porte automatique
« Réponse #12 le: 03 Décembre 2010, 20:24:21 »
Pour ton problème, j'ai fait une erreur, j'ai attribué une valeur ou lieu de la comparer.
Pour ton problème qui dit que playerid n'est pas définit, il suffit d'ajouter le paramètre à ta fonction et ensuite de l'appeler avec l'ID du joueur en argument.


public CheckGate(playerid)
{
new mygate_status;

for (new i; i<MAX_PLAYERS; i++) {
if (gTeam[playerid] !== COP) {
continue;
}
if (!IsPlayerConnected(i)) {
continue;
}
if (IsPlayerInRangeOfPoint(i, 10.0, closed_X, closed_Y, closed_Z)) {
mygate_status = 1;
}
}
if (c_gate_status) {
MoveObject(mygate, open_X, open_Y, open_Z, Moving Speed);
}
else {
MoveObject(mygate, closed_X, closed_Y, closed_Z, Moving Speed);
}
}

Hors ligne Winklevows

  • *
  • Tueur
  • Messages: 64
    • Voir le profil
Re : [Réglé] Besoin d'aide pour créer une porte automatique
« Réponse #13 le: 03 Décembre 2010, 21:06:34 »
Merci de vos réponses :)

Brian Turner m'a déjà donné un code et il fonctionne, il y a une différence entre le sien et le tien Xartrick  ? Vaut mieux utiliser un code plus qu'un autre ?

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : [Réglé] Besoin d'aide pour créer une porte automatique
« Réponse #14 le: 03 Décembre 2010, 21:11:41 »
Oui, mon code est complètement faux, si tu utilise mon code, il ne changera jamais de joueur mais il restera sur le joueur qui aura lancé la boucle.
J'avais donné l'ID du joueur alors qu'il fallait donner la valeur de i, je ne devais pas avoir vraiment les idées claires.
D'ailleurs, à ce propos, vérifie d'abord que le joueur n'est pas connecté avant de tester si il est dans telle ou telle équipe, cela évitera certains problèmes facilement évitables !
Le code de Brian_Turner est donc juste, et le mien non, à la différence de l'édition apporté par lui même ;).