Forum d'entraide à la création de jeux d'aventure
 
PortailAccueilFAQRechercherS'enregistrerMembresConnexion

Partagez | 
 

 [résolu]script clavier virtuel

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 14:03

Bonjour,

un clavier numérique (voir image) et
j'aimerais que le joueur clic dans un ordre précis sur des chiffres  (hotspots), si l'ordre et tous les chiffres présents, "change room1", sinon "change room 2".
Est-ce compliqué à mettre en place et ou trouver un exemple?
J'ai bien regarder dans "demo game" le script du "terminal", mais je n'ai rien compris !!!



Dernière édition par dominouche le Jeu 15 Sep 2016 - 11:45, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 16:07

Salut dominouche,

C'est pas ultra compliqué, mais ça demande un peu de familiarité avec le code.
Tu as plusieurs façons de faire ça, mais l'idéal selon moi est de manipuler une variable textuelle en ajoutant le numéro à sa fin chaque fois que le joueur clique sur un bouton-numéro.

En supposant qu'on n'a pas à cliquer sur un bouton "Valider", mais que la vérification se déclenche automatiquement lorsqu'on a entré autant de numéros qu'il y en a dans le code attendu, ça donnerait quelque chose comme ça dans le script de pièce (à adapter évidemment, et je ne suis plus sûr du format des fonctions clic sur hotspot, mais de toute façon tu les génères automatiquement) :
Code:
String codeJoueurse = "", codeAttendu = "123456";

function AjouteNumeroEtVerifie(int numero) {
  // On ajoute le numéro (après l'avoir converti en texte)
  codeJoueurse = codeJoueurse.Append(String.Format("%d", numero));
  // Si on a fini d'entrer le code (longueur atteinte)
  if (codeJoueurse.Length == codeAttendu.Length) {
    // Bon code : vers pièce 1
    if (codeJoueurse == codeAttendu) player.ChangeRoom(1);
    // Mauvais code : vers pièce 2
    else player.ChangeRoom(2);
    // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois
    codeJoueurse = "";
  }
}

function hHotspotZero_Click(MouseButton* button) { AjouteNumeroEtVerifie(0); }
function hHotspotUn_Click(MouseButton* button) { AjouteNumeroEtVerifie(1); }
function hHotspotDeux_Click(MouseButton* button) { AjouteNumeroEtVerifie(2); }
function hHotspotTrois_Click(MouseButton* button) { AjouteNumeroEtVerifie(3); }
function hHotspotQuatre_Click(MouseButton* button) { AjouteNumeroEtVerifie(4); }
function hHotspotCinq_Click(MouseButton* button) { AjouteNumeroEtVerifie(5); }
function hHotspotSix_Click(MouseButton* button) { AjouteNumeroEtVerifie(6); }
function hHotspotSept_Click(MouseButton* button) { AjouteNumeroEtVerifie(7); }
function hHotspotHuit_Click(MouseButton* button) { AjouteNumeroEtVerifie(8); }
function hHotspotNeuf_Click(MouseButton* button) { AjouteNumeroEtVerifie(9); }

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 16:50

Merci Kitai, mais tu me fais rire en disant "pas ultra compliqué", je ne suis qu'un petit débutant !!!!

J'ai une erreur:
room6.asc(3): Error (line 3): cannot assign initial value to global pointer
Code:
// room script file
        
         String codeJoueure = "", codeAttendu = "1234";
        function AjouteNumeroEtVerifie(int numero) {
          // On ajoute le numéro (après l'avoir converti en texte)
          codeJoueurse = codeJoueurse.Append(String.Format("%d", numero));
          // Si on a fini d'entrer le code (longueur atteinte)
          if (codeJoueurse.Length == codeAttendu.Length) {
            // Bon code : vers pièce 1
            if (codeJoueurse == codeAttendu) player.ChangeRoom(1);
            // Mauvais code : vers pièce 2
            else player.ChangeRoom(2);
            // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois
            codeJoueurse = "";
          }
        }
        
    
        
function hHotspot1_AnyClick()
{
AjouteNumeroEtVerifie(1);
}
}
function hHotspot2_AnyClick()
{
AjouteNumeroEtVerifie(2);
}

function hHotspot3_AnyClick()
{
AjouteNumeroEtVerifie(3);
}
function hHotspot4_AnyClick()
{
AjouteNumeroEtVerifie(4);
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 16:59

dominouche a écrit:
Merci Kitai, mais tu me fais rire en disant "pas ultra compliqué", je ne suis qu'un petit débutant !!!!
D'où le "ultra" clin d\\\\'oeil

dominouche a écrit:
J'ai une erreur:
room6.asc(3): Error (line 3): cannot assign initial value to global pointer
Hm, je pensais pourtant qu'on pouvait donner une valeur initiale aux variables textuelles. Peut-être que différentes versions d'AGS gèrent ça différemment (ou que ma mémoire faillit). Essaie ça (attention à bien écrire le même nom de variable partout -- codeJoueurse dans mon code)

Code:
// room script file
       
String codeJoueurse, codeAttendu;

function game_start() {
 codeJoueurse = "";
 codeAttendu = "1234";
}

function AjouteNumeroEtVerifie(int numero) {
 // On ajoute le numéro (après l'avoir converti en texte)
 codeJoueurse = codeJoueurse.Append(String.Format("%d", numero));
 // Si on a fini d'entrer le code (longueur atteinte)
 if (codeJoueurse.Length == codeAttendu.Length) {
   // Bon code : vers pièce 1
   if (codeJoueurse == codeAttendu) player.ChangeRoom(1);
   // Mauvais code : vers pièce 2
   else player.ChangeRoom(2);
   // Et on réinitialise codeJoueurse pour une éventuelle prochaine fois
   codeJoueurse = "";
 }
}
       
   
function hHotspot1_AnyClick()
{
AjouteNumeroEtVerifie(1);
}
}
function hHotspot2_AnyClick()
{
AjouteNumeroEtVerifie(2);
}

function hHotspot3_AnyClick()
{
AjouteNumeroEtVerifie(3);
}
function hHotspot4_AnyClick()
{
AjouteNumeroEtVerifie(4);
}

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 17:26

autre erreur:

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 18:26

Je pense que ça vient de ce passage :
Code:
function game_start() {
 codeJoueurse = "";
 codeAttendu = "1234";
}

Il faudrait que tu mette les deux lignes dans la fonction game_start() du GlobalScript (elle existe déjà, normalement, tu la trouveras en parcourant le script).

Mais pour ça il faudrait créer des variables globales. Je privilégierais plutôt la solution suivante :
Code:
function room_Load()
{
 codeJoueurse = "";
 codeAttendu = "1234";
}

Tu peux créer cette fonction en passant par les events de la room (le puis : "Enters room before fade-in" ou équivalent si tu utilise la version fr). Tout le code qu'elle contient est exécuté à chaque nouvelle entrée dans la room.

Par ailleurs il faut penser au fait qu'en l'état actuel, si le joueur ne tape que deux chiffres, quitte le cadran, revient et tape deux autres chiffres, les derniers chiffres tapés pendront la position 3 et 4, le cadran n'est réinitialisé qu'en sortant de la room et en y entrant à nouveau (à condition de suivre ma deuxième suggestion).

Kitai a écrit:

D'où le "ultra" clin d\\\\'oeil
J'aurais plutôt dit "d'où le 'ça demande un peu de familiarité avec le code.'" clin d\\\\'oeil

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 2431

Date d'inscription : 01/08/2006


MessageSujet: Re: [résolu]script clavier virtuel   Mer 14 Sep 2016 - 18:41

Mea culpa, je pensais que game_start était locale à chaque script et que chaque instance était lancée dans un ordre pré-défini. Mais il semble en effet qu'on ne puisse en mettre que dans des scripts généraux.

valoulef a écrit:
Par ailleurs il faut penser au fait qu'en l'état actuel, si le joueur ne tape que deux chiffres, quitte le cadran, revient et tape deux autres chiffres, les derniers chiffres tapés pendront la position 3 et 4, le cadran n'est réinitialisé qu'en sortant de la room et en y entrant à nouveau (à condition de suivre ma deuxième suggestion).
Bien vu, il faudrait réinitialiser la variable codeJoueurse lorsqu'on quitte le cadran. Mais si le cadran est une pièce à lui seul, alors room_Load fera l'affaire.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]script clavier virtuel   Jeu 15 Sep 2016 - 8:08

Merci Valoulef pour ta proposition (la 2), mais erreur:
Failed to save room room6.crm; details below
room6.asc(10): Error (line 10): Undefined token 'codeJoueurse'
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]script clavier virtuel   Jeu 15 Sep 2016 - 10:22

Tu as bien laissé ça en haut du script ?
Code:
String codeJoueurse, codeAttendu;

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]script clavier virtuel   Jeu 15 Sep 2016 - 10:43

oups je l'avais enlevé, mais maintenant:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
valoulef
Délégué de la tasse bleue
Délégué de la tasse bleue


Nombre de messages : 1278

Age : 27

Localisation : Condate

Date d'inscription : 01/08/2011


MessageSujet: Re: [résolu]script clavier virtuel   Jeu 15 Sep 2016 - 10:51

Tu as créé une function room_FirstLoad dans les events de la room et tu as supprimé la fonction dans le script. Soit tu dois la laisser, soit tu dois également la supprimer dans les events.

_________________
"Je pense que la Terre tourne autour du soleil à une vitesse de 30 kilomètres par seconde et que je suis là, accroché à ce bolide de feu qui fonce d'un infini à un autre, accroché à une table, suspendu dans le vide, pendant que, sérieusement, drogué, abruti, inconscient, j'affirme que nous sommes désolés d'apprendre la perte d'un colis expédié le 4 et que nous ferons l'impossible pour réparer cet incident."

L'Employé, Jacques Sternberg.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dominouche
Adepte de la Grande Tasse Bleue
Adepte de la Grande Tasse Bleue


Nombre de messages : 79

Age : 60

Localisation : vendée

Date d'inscription : 19/04/2016


MessageSujet: Re: [résolu]script clavier virtuel   Jeu 15 Sep 2016 - 10:57

Super, ça fonctionne!
Merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [résolu]script clavier virtuel   Aujourd'hui à 8:02

Revenir en haut Aller en bas
 
[résolu]script clavier virtuel
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Astuce clavier virtuel qwertz
» [résolu] script A-RPG (VX) probleme d''activation d''interrupteur quand mort du monstre
» [Résolu]Script de quêtes sympa mais bugé ?
» [résolu]Script Journal de Quête RPG Maker VX Ace
» [Résolu] Script de quête.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: