• 06 Juin 2026, 08:29:44


Auteur Sujet: Problème script: Zone commune avec plusieurs entrées/sorties  (Lu 1338 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Mick68

  • *
  • Nouveau
  • Messages: 3
    • Voir le profil
Bonjour à tous!

Je viens poser une petite question ce jour en espérant trouver de l'aide sur ce forum :)

J'ai créer un système de prison qui place aléatoirement le prisonnier dans 3 cellules à l'arrestation. Jusque la pas de problème.
Les prisonniers peuvent, depuis leur cellule, accéder à une cour commune mais lorsqu'ils rejoignent leur cellule, chacun doit retourner dans la cellule ou il était.

Pour les entrées j'ai donc:
Citer
if (PlayerToPoint(2.0, playerid,0,0,0))//entree depuis cellule1
              {
            SetPlayerInterior(playerid,2);
            SetPlayerPos(playerid,0,0,0);//point dans la cour
            return 1;
         }

Et pour sortir de la cour vers les cellules, il n'y a qu'une sortie mais qui doit rediriger vers plusieurs cellules en fonction de la cellule par laquelle on est venu.

Je suppose donc qu'il faut un système avec une variable permettant de détecter la cellule au départ mais je ne maitrise pas du tout ce système. Ou si vous avez plus simple, je suis ouvert aux idées :P


Merci à vous

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème script: Zone commune avec plusieurs entrées/sorties
« Réponse #1 le: 22 Août 2012, 12:23:15 »
Salut.

Pour faire simple, il faut que tu définisse quelque chose sur la personne qui correspondra à telle cellule. Même si ça fait un moment que je script, je ne connais pas les termes exact donc je vais te donner un exemple vite fait.

Lorsque la personne arrive dans la cellule 1 par exemple tu ajoutes à cette personne pCellule = 1, s'il est dans la cellule 2, tu lui met pCellule = 2 et ainsi de suite. Lorsqu'il est dans la cour, tu lui laisse cette variable et pour qu'il retourne dans sa cellule tu n'as qu'à faire : " Si pCellule = 1 alors Tp vers cellule 1", "Si pCellule = 2 alors Tp vers cellule 2",...
Si la personne déco/reco, tu fais en sorte qu'il spawn dans la cellule qu'il était avant de déco avec le même procédé, et lorsqu'il sortira de prison tu lui enlèves cette variable.

Le système que je te propose n'est selon moi pas trop difficile à mettre en oeuvre, mais je ne sais pas s'il y a plus simple ou même si d'autres méthodes existent. L'idée de bases est là en tout cas, et à toi de la mettre sous forme de code ;)
Merci à Colonel Marco pour la Signature

Hors ligne Mick68

  • *
  • Nouveau
  • Messages: 3
    • Voir le profil
Re : Problème script: Zone commune avec plusieurs entrées/sorties
« Réponse #2 le: 22 Août 2012, 14:54:36 »
Merci à toi Diablo62 pour ta réponse!

Ce que tu me conseil est effectivement dans l'idée de ce que je cherchai à faire.

J'ai donc essayé avec un retourcell sur ce principe:

Lorsque le joueur sort de la cellule pour aller dans la cour, si il est dans la cellule 2 je mets ca:

Citer
retourcell[playerid] = 0;


et ensuite:

Citer
if(retourcell[playerid] > 0)
                  {
                            retourcell[playerid] = 0;
                     SetPlayerInterior(playerid,10);
                     SetPlayerPos(playerid,213.9770,108.6007,999.0156);//celluledufond
                     SendClientMessage(playerid, COLOR_WHITE,"Retour en cellule!");

                  }
                  else
                  {
                     SetPlayerInterior(playerid,10);
                     SetPlayerPos(playerid,219.4481,110.1855,999.0156);//cellulestandard
                     SendClientMessage(playerid, COLOR_WHITE,"Retour en cellule!");
                     
                  }


Déjà pour 2 cellules c'est pas mal. Je vais voir si il y a moyen de faire mieux. Et la dans mon système il me manque encore la gestion en cas de crash ou déco du joueur dans la cour.

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Problème script: Zone commune avec plusieurs entrées/sorties
« Réponse #3 le: 22 Août 2012, 15:18:07 »
Pour le remettre en prison en cas de crash ou de déco du joueur lorsqu'il est dans la cour, il faut que tu save ces données dans les infos du Joueur (infos du joueur = Son Pseudo, son Mdp, son argent,...). C'est d'ailleurs un peu pour cela que j'avais mis pCellule (même si c'était un nom à titre d'exemple :P ).

Si le pCellule de la personne = 0 alors il spawn normalement, sinon il spawn directement dans la cellule qui lui est destinée.

En faisant ainsi, si la personne déco ou si le serveur crash, vu que la personne aura un pCellule supérieur à 0, il retournera automatiquement en prison.
De plus, cela te permettra de faire un système avec plusieurs cellules et non plus seulement 2 ;)
Merci à Colonel Marco pour la Signature

Hors ligne Mick68

  • *
  • Nouveau
  • Messages: 3
    • Voir le profil
Re : Problème script: Zone commune avec plusieurs entrées/sorties
« Réponse #4 le: 22 Août 2012, 15:38:23 »
Ah oui ok, j'ai compris le principe! Je vais modifier ca!

Merci à toi :)