Konami code en JS

2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu Konami code en JS

Message par Bl4ckE4gle Lun 13 Juin 2011 - 19:55

Bonjour à tous et à toutes.
Voici 2 jours que je cherche désespérément le moyen d'intégrer le fameux code konami en JS sur mon forum (http://massacreurs-de-noobs.forumactif.com).
Le code konami est, pour ceux qui ne le savent pas, le premier cheat code inventé pour je ne sais plus quel jeux. Il débloque un objet ou autre, et dans mon cas, afficherais une fenêtre pop-up qui redirigerai ensuite vers une page HTML.
Il serait activé en fesant : flèche haut, flèche haut, flèche bas, flèche bas, flèche droite, flèche gauche, flèche droite, flèche gauche, bouton B, bouton A.
Voici le script:
<script>
if ( window.addEventListener ) {
var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
window.addEventListener("keydown", function(e){
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 ) {
alert('Frui virtute.');
window.location = " http://massacreurs-de-noobs.forumactif.com/h1-konamihtml";
}
}, true);
}
</script>
Alors ma question est: est-il possible d'intégrer ce code à mon forum pour toutes personnes le visitant ou y étant inscrites ? Et comment faire ceci ?

Sachant que c'est pour intégrer une OP pour Airsoft, de façon à énigmatique. (OP = Scénario "géant" et spécial).

Merci beaucoup en avance.
Bl4ckE4gle.


Dernière édition par Bl4ckE4gle le Mer 15 Juin 2011 - 18:24, édité 1 fois
avatar

Bl4ckE4gle
Nouveau membre

Messages : 6
Inscrit(e) le : 13/06/2011

http://massacreurs-de-noobs.forumactif.com
Bl4ckE4gle a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Ea Lun 13 Juin 2011 - 20:45

Bonjour,


Cela marche en faisant flèche haut + flèche haut + flèche bas + flèche bas + flèche gauche + flèche droite + flèche gauche + flèche droite + B + A mais il ne faut pas appuyer sur SHIFT ou une autre touche ( et que le A et le B soient en majuscule ).

Pour l'intégrer à toute les pages il faudrait mettre dans une page html ( PA > Modules > HTML | Gestion des pages HTML ) :

Code:
if ( window.addEventListener ) {
var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
window.addEventListener("keydown", function(e){
kkeys.push( e.keyCode );
if ( kkeys.toString().indexOf( konami ) >= 0 ) {
alert('Frui virtute.');
window.location = "   http://massacreurs-de-noobs.forumactif.com/h1-konamihtml";
}
}, true);
}
Puis mettre dans la description du forum ( PA > Général > Forum | Configuration > Description du site ) :

Code:
<script src=/h3-></script>
En remplaçant le 3 par l'ID de la page html créée.

Ce projet là à l'air sympathique : http://code.google.com/p/konami-js/ ( et de gérer un peu mieux les a minuscule, majuscule, ... ), il doit suffire de mettre dans une page html :

Code:

/*
   * Konami-JS ~
   * :: Now with support for touch events and multiple instances for
   * :: those situations that call for multiple easter eggs!
   * Code: http://konami-js.googlecode.com/
   * Examples: http://www.snaptortoise.com/konami-js
   * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com)
   * Version: 1.3.3 (4/16/2011)
   * Licensed under the GNU General Public License v3
   * http://www.gnu.org/copyleft/gpl.html
   * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser
*/

var Konami = function() {
   var konami= {
         addEvent:function ( obj, type, fn, ref_obj )
         {
            if (obj.addEventListener)
               obj.addEventListener( type, fn, false );
            else if (obj.attachEvent)
            {
               // IE
               obj["e"+type+fn] = fn;
               obj[type+fn] = function() { obj["e"+type+fn]( window.event,ref_obj ); }
   
               obj.attachEvent( "on"+type, obj[type+fn] );
            }
         },
           input:"",
           pattern:"3838404037393739666513",
      /*pattern:"38384040373937396665",*/
           load: function(link) {               
            this.addEvent(document,"keydown", function(e,ref_obj) {                                 
               if (ref_obj) konami = ref_obj; // IE
               konami.input+= e ? e.keyCode : event.keyCode;
               if (konami.input.length > konami.pattern.length) konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
               if (konami.input == konami.pattern) {
                    konami.code(link);
               konami.input="";
                     return;
                    }
               },this);
          this.iphone.load(link)
                  
            },
           code: function(link) { window.location=link},
           iphone:{
                   start_x:0,
                   start_y:0,
                   stop_x:0,
                   stop_y:0,
                   tap:false,
                   capture:false,
               orig_keys:"",
                   keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],
                   code: function(link) { konami.code(link);},
                   load: function(link){
                           this.orig_keys = this.keys;
                            konami.addEvent(document,"touchmove",function(e){
                             if(e.touches.length == 1 && konami.iphone.capture==true){
                               var touch = e.touches[0];
                                   konami.iphone.stop_x = touch.pageX;
                                   konami.iphone.stop_y = touch.pageY;
                                   konami.iphone.tap = false;
                                   konami.iphone.capture=false;
                                   konami.iphone.check_direction();
                                   }
                                   });             
                           konami.addEvent(document,"touchend",function(evt){
                                   if (konami.iphone.tap==true) konami.iphone.check_direction(link);         
                                   },false);
                           konami.addEvent(document,"touchstart", function(evt){
                                   konami.iphone.start_x = evt.changedTouches[0].pageX
                                   konami.iphone.start_y = evt.changedTouches[0].pageY
                                   konami.iphone.tap = true
                                   konami.iphone.capture = true
                                   });             
                                   },
                   check_direction: function(link){
                           x_magnitude = Math.abs(this.start_x-this.stop_x)
                           y_magnitude = Math.abs(this.start_y-this.stop_y)
                           x = ((this.start_x-this.stop_x) < 0) ? "RIGHT" : "LEFT";
                           y = ((this.start_y-this.stop_y) < 0) ? "DOWN" : "UP";
                           result = (x_magnitude > y_magnitude) ? x : y;
                           result = (this.tap==true) ? "TAP" : result;                   

                           if (result==this.keys[0]) this.keys = this.keys.slice(1,this.keys.length)
                           if (this.keys.length==0) {
                                          this.keys=this.orig_keys;
                                          this.code(link)
                                          }
                           }
                   }
   }
   return konami;
}

konami = new Konami()
konami.load("http://massacreurs-de-noobs.forumactif.com/h1-konamihtml");
Et de la lier comme au dessus.

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Bl4ckE4gle Lun 13 Juin 2011 - 21:16

Merci de votre réponse très rapide, malgré que cela ne joue toujours pas pour moi.
Le problème est que je m'y connais peu, et je me suis peut-être simplement trompé lors de la mise en place.
Dois-je créer 2 pages html et les lier dans la description du site ?
Car voici ce que j'ai rentré:
Description du site: <script src=/hcode-></script>
Page HTML qui s'appelle code :

Code:
/*
  * Konami-JS ~
  * :: Now with support for touch events and multiple instances for
  * :: those situations that call for multiple easter eggs!
  * Code: http://konami-js.googlecode.com/
  * Examples: http://www.snaptortoise.com/konami-js
  * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com)
  * Version: 1.3.3 (4/16/2011)
  * Licensed under the GNU General Public License v3
  * http://www.gnu.org/copyleft/gpl.html
  * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser
*/

var Konami = function() {
  var konami= {
        addEvent:function ( obj, type, fn, ref_obj )
        {
            if (obj.addEventListener)
              obj.addEventListener( type, fn, false );
            else if (obj.attachEvent)
            {
              // IE
              obj["e"+type+fn] = fn;
              obj[type+fn] = function() { obj["e"+type+fn]( window.event,ref_obj ); }
 
              obj.attachEvent( "on"+type, obj[type+fn] );
            }
        },
          input:"",
          pattern:"3838404037393739666513",
      /*pattern:"38384040373937396665",*/
          load: function(link) {             
            this.addEvent(document,"keydown", function(e,ref_obj) {                               
              if (ref_obj) konami = ref_obj; // IE
              konami.input+= e ? e.keyCode : event.keyCode;
              if (konami.input.length > konami.pattern.length) konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
              if (konami.input == konami.pattern) {
                    konami.code(link);
              konami.input="";
                    return;
                    }
              },this);
          this.iphone.load(link)
                 
            },
          code: function(link) { window.location=link},
          iphone:{
                  start_x:0,
                  start_y:0,
                  stop_x:0,
                  stop_y:0,
                  tap:false,
                  capture:false,
              orig_keys:"",
                  keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],
                  code: function(link) { konami.code(link);},
                  load: function(link){
                          this.orig_keys = this.keys;
                            konami.addEvent(document,"touchmove",function(e){
                            if(e.touches.length == 1 && konami.iphone.capture==true){
                              var touch = e.touches[0];
                                  konami.iphone.stop_x = touch.pageX;
                                  konami.iphone.stop_y = touch.pageY;
                                  konami.iphone.tap = false;
                                  konami.iphone.capture=false;
                                  konami.iphone.check_direction();
                                  }
                                  });           
                          konami.addEvent(document,"touchend",function(evt){
                                  if (konami.iphone.tap==true) konami.iphone.check_direction(link);       
                                  },false);
                          konami.addEvent(document,"touchstart", function(evt){
                                  konami.iphone.start_x = evt.changedTouches[0].pageX
                                  konami.iphone.start_y = evt.changedTouches[0].pageY
                                  konami.iphone.tap = true
                                  konami.iphone.capture = true
                                  });           
                                  },
                  check_direction: function(link){
                          x_magnitude = Math.abs(this.start_x-this.stop_x)
                          y_magnitude = Math.abs(this.start_y-this.stop_y)
                          x = ((this.start_x-this.stop_x) < 0) ? "RIGHT" : "LEFT";
                          y = ((this.start_y-this.stop_y) < 0) ? "DOWN" : "UP";
                          result = (x_magnitude > y_magnitude) ? x : y;
                          result = (this.tap==true) ? "TAP" : result;                 

                          if (result==this.keys[0]) this.keys = this.keys.slice(1,this.keys.length)
                          if (this.keys.length==0) {
                                          this.keys=this.orig_keys;
                                          this.code(link)
                                          }
                          }
                  }
  }
  return konami;
}

konami = new Konami()
konami.load("http://massacreurs-de-noobs.forumactif.com/h1-konamihtml");
Testé aussi SANS de /* à */.
(Excusez de la mise en place du script, je ne sais comment le mettre dans une fenêtre comme vous).
Merci.
Bl4ckE4gle
avatar

Bl4ckE4gle
Nouveau membre

Messages : 6
Inscrit(e) le : 13/06/2011

http://massacreurs-de-noobs.forumactif.com
Bl4ckE4gle a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Bl4ckE4gle Lun 13 Juin 2011 - 21:18

EDIT: Je viens de remarquer, mais comme je l'ai dis je n'y connais rien, que il est dit keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"]. Qu'est-ce que le 3ème TAPE si b serait la première et a la seconde ?

Bl4ckE4gle
avatar

Bl4ckE4gle
Nouveau membre

Messages : 6
Inscrit(e) le : 13/06/2011

http://massacreurs-de-noobs.forumactif.com
Bl4ckE4gle a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Bl4ckE4gle Mar 14 Juin 2011 - 18:16

Je sais que c'est pas hyper urgent (enfin si je pouvais savoir au plus vite ^^') mais de peur qu'elle soit trop basse petit UP.
J'ai testé avec TOUT le code de la page mais cela ne change en rien mon problème.
Merci
Bl4ckE4gle
avatar

Bl4ckE4gle
Nouveau membre

Messages : 6
Inscrit(e) le : 13/06/2011

http://massacreurs-de-noobs.forumactif.com
Bl4ckE4gle a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Ea Mar 14 Juin 2011 - 18:39

C'est pour le cas où c'est sur un iphone le tap tap tap, si on est pas sur un iphone ça veut :

Code:
pattern:"3838404037393739666513"
Soit la même chose que votre script mais avec un ENTER à la fin ( normalement c'est censé être un start mais ils l'ont remplacé par ENTER ).

Il faudrait juste que vous changiez le :

Code:
<script src=/hhttp://massacreurs-de-noobs.forumactif.com/h2-code-></script>
En :

Code:
<script src=/h2-></script>
Et dans la page html il faut mettre comme vous l'avez mis dans le post :

Code:
/*
* Konami-JS ~
* :: Now with support for touch events and multiple instances for
* :: those situations that call for multiple easter eggs!
* Code: http://konami-js.googlecode.com/
* Examples: http://www.snaptortoise.com/konami-js
* Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com)
* Version: 1.3.3 (4/16/2011)
* Licensed under the GNU General Public License v3
* http://www.gnu.org/copyleft/gpl.html
* Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser
*/

var Konami = function() {
var konami= {
addEvent:function ( obj, type, fn, ref_obj )
{
if (obj.addEventListener)
obj.addEventListener( type, fn, false );
else if (obj.attachEvent)
{
// IE
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj["e"+type+fn]( window.event,ref_obj ); }

obj.attachEvent( "on"+type, obj[type+fn] );
}
},
input:"",
pattern:"3838404037393739666513",
/*pattern:"38384040373937396665",*/
load: function(link) {
this.addEvent(document,"keydown", function(e,ref_obj) {
if (ref_obj) konami = ref_obj; // IE
konami.input+= e ? e.keyCode : event.keyCode;
if (konami.input.length > konami.pattern.length) konami.input = konami.input.substr((konami.input.length - konami.pattern.length));
if (konami.input == konami.pattern) {
konami.code(link);
konami.input="";
return;
}
},this);
this.iphone.load(link)

},
code: function(link) { window.location=link},
iphone:{
start_x:0,
start_y:0,
stop_x:0,
stop_y:0,
tap:false,
capture:false,
orig_keys:"",
keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],
code: function(link) { konami.code(link);},
load: function(link){
this.orig_keys = this.keys;
konami.addEvent(document,"touchmove",function(e){
if(e.touches.length == 1 && konami.iphone.capture==true){
var touch = e.touches[0];
konami.iphone.stop_x = touch.pageX;
konami.iphone.stop_y = touch.pageY;
konami.iphone.tap = false;
konami.iphone.capture=false;
konami.iphone.check_direction();
}
});
konami.addEvent(document,"touchend",function(evt){
if (konami.iphone.tap==true) konami.iphone.check_direction(link);
},false);
konami.addEvent(document,"touchstart", function(evt){
konami.iphone.start_x = evt.changedTouches[0].pageX
konami.iphone.start_y = evt.changedTouches[0].pageY
konami.iphone.tap = true
konami.iphone.capture = true
});
},
check_direction: function(link){
x_magnitude = Math.abs(this.start_x-this.stop_x)
y_magnitude = Math.abs(this.start_y-this.stop_y)
x = ((this.start_x-this.stop_x) < 0) ? "RIGHT" : "LEFT";
y = ((this.start_y-this.stop_y) < 0) ? "DOWN" : "UP";
result = (x_magnitude > y_magnitude) ? x : y;
result = (this.tap==true) ? "TAP" : result;

if (result==this.keys[0]) this.keys = this.keys.slice(1,this.keys.length)
if (this.keys.length==0) {
this.keys=this.orig_keys;
this.code(link)
}
}
}
}
return konami;
}

konami = new Konami()
konami.load("http://massacreurs-de-noobs.forumactif.com/h1-konamihtml");
( pour mettre l'encadrement code il suffit de mettre [code]contenu[/code] )

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: Konami code en JS

Message par Bl4ckE4gle Mer 15 Juin 2011 - 12:06

Un ENORME merci à vous. Ca fonctionne dès à présent. Vous avez toute ma gratitude Wink

PS: Merci aussi pour l'insertion d'un code.

Bl4ckE4gle
avatar

Bl4ckE4gle
Nouveau membre

Messages : 6
Inscrit(e) le : 13/06/2011

http://massacreurs-de-noobs.forumactif.com
Bl4ckE4gle a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum