Page 5 sur 6

MessagePosté: 07 Nov 2006, 13:25
par AimeGi
Yop yop powaaa ^^

Bon en direct de mon bahut mon pote à essayer un autre logiciel et on tiens le reccord du monde de chez reccord du monde :
Image

On peut pas descendre en dessous mais comme on ets sous win98 le gestionnaire des taches n'est pas capable encore de changer la priorité des processus donc j'essayerais chez moi ^^"

Sinon on ne peut toujours pas enregistrer notre score, il faut vraiment que je pense a decortiquer l'annimation flash chez moi et voir si un anti cheat est programmer et comment le detourner ^^"

MessagePosté: 07 Nov 2006, 16:28
par MacIntoc
MG & AG>Je veux bien savoir comment vous avez fait ça. J'ai pas d'idée sur la technique que vous avez utilisé (je connais pas vraiment le flash en profondeur).

MessagePosté: 07 Nov 2006, 20:20
par MysterGui
AG = AimeGi = MG = moi xD

Ben vu que je connait pas le C/C++ , j'utilise une macro (Wintask et mon pote je ne sais quel logiciel). Cette macro tape les lettres de l'alphabet tout simplement ^^

Sinon moi non plus j'y connait rien en flash ... mais comme je l'ai deja dit plus haut il doit y avoir un système anti triche codé dans l'annimation (obliger) car on peut pas envoyer nos resultat même en mettant des pauses dans nos macros ... même en faisant 24 secondes on peut pas envoyer ... J'ai deux avis sur la question : une que je ne serais exprimer et une autre qui ets farfelue : l'animation flash recupere les touches frappés quelque part et notre macro les introduis ailleur ... ça marche mais l'annimation flash arrive à dire d'ou viennent les touches et voit que c'est un logiciel qui les as taper ^^" C'est pour ça qu'il faut que je décortique l'animation flash afin d'avoir des reponses ^^

MessagePosté: 07 Nov 2006, 20:24
par remise
J'avais essayé en VBA (c'"est le seul truc que j'connais), j'arrive pas à sélectionner la fenêtre du jeu...
enfin bon...

Essaye sinon de faire démarrer le programme quand tu appuies sur A, peut être qu'il vérifie juste la 1ère lettre ?

Quand tu essayes d'enregistrer ton "score" avec le programme, t'a quand même les lettres qui apparaissent (vérification contre les tricheurs :evil: ) ??
Sinon, faut essayer de faire une lecture optique qui tape aussi les lettres automatiquements ^^"

Comment ça je rêve ?

MessagePosté: 07 Nov 2006, 20:56
par MysterGui
remise a écrit:J'avais essayé en VBA (c'"est le seul truc que j'connais), j'arrive pas à sélectionner la fenêtre du jeu...
enfin bon...


Au moins tu connait quelque chose comparé à moi xD

Essaye sinon de faire démarrer le programme quand tu appuies sur A, peut être qu'il vérifie juste la 1ère lettre ?


Mon pote y a penser ... qu'on tape la premier lettre, la derniere ou la première et la derniere nous même ça change rien il veut pas :p

Quand tu essayes d'enregistrer ton "score" avec le programme, t'a quand même les lettres qui apparaissent (vérification contre les tricheurs :evil: ) ??


Oui les lettres defile à vitesse tres grand V mais elles defilent ^^

MessagePosté: 08 Nov 2006, 13:48
par Olivier
J'ai décompilé le code à l'aide de cet utilitaire et je pense avoir trouvé l'explication. Voici la fonction qui traite l'appui sur une touche :

  Code:
onClipEvent (keyDown) {
  if (Selection.getFocus() == '_level0.sendFriend') {
    return undefined;
  }
  key = Key.getCode();
  if (key == 32) {
    if (_global.animating == true) {
      return undefined;
    }
    init();
  } else {
    _root.clockstart._visible = false;
    _root.hands.gotoAndStop((eval(_root.hands))._currentframe + 1);
    if (key - 65 == pos) {
      if (pos == 0) {
        startTime = new Date();
      }
      macroCheck[pos] = (new Date()).getTime();
      ++pos;
      if (pos == 26) {
        if (_global.playSounds) {
          comp.start();
        }
        _global.finalTime = new Date() - startTime.getTime();
        _root.pressed = _global.finalTime / 1000;
        _root.lettersC._visible = false;
        _root.i_submit._visible = true;
        _root.hands.gotoAndStop(1);
        return undefined;
      }
    } else {
      if (_global.playSounds) {
        wrong.stop();
        wrong.start(0, 1);
      }
      return undefined;
    }
  }
  if (_global.playSounds) {
    right.stop();
    right.start(0, 1);
  }
  _root.lettersC[alpha.substring(pos, pos + 1)]._visible = true;
}


On voit que macroCheck[pos] mémorise l'instant où la touche est appuyée. Lorsqu'on la relâche, on passe ici :

  Code:
onClipEvent (keyUp) {
  var keyPos = Key.getCode() - 65;
  if (keyPos < 0 || keyPos > 25) {
    return undefined;
  }
  if (!macroCheckFlags[keyPos]) {
    macroCheck[keyPos] = (new Date()).getTime() - macroCheck[keyPos];
    macroCheckFlags[keyPos] = true;
  }
}


On constate que macroCheck[keyPos] contient maintenant l'intervalle de temps (en ms) entre l'appui et le relâchement.
La fonction de soumission du score est là :

  Code:
on (press) {
  var i = 0;
  while (i < macroCheck.length) {
    if (macroCheck[i] == 0) {
      _global.pagePos = 0;
      loadHiScores();
      return undefined;
    }
    ++i;
  }
  var key = 'rocket';
  myVars = new LoadVars();
  ffdata = 'save|' + _root.i_name.text + '|' + _root.i_code.text + '|' + _global.finalTime + '|' + _global.gameId;
  encrypted = '';
  var i = 0;
  var j = 0;
  while (i < ffdata.length) {
    if (j >= key.length) {
      j = 0;
    }
    encrypted += String.fromCharCode((ffdata.charCodeAt(i) ^ key.charCodeAt(j)) + 1);
    i++;
    j++;
  }
  myVars.ffdata = encrypted;
  myVars.sendAndLoad(_global.servletUrl, myVars, 'POST');
  myVars.onLoad = showHiScoreSaveResult;
}


On remarque le test au début : si macroCheck[i] est nul, on sort. Autrement dit, si on a frappé une touche dans la même milliseconde, le score n'est pas enregistré. Les utilitaires qui simulent les appuis de touches envoient les événements KEYDOWN et KEYUP à la suite, sans temporisation.

Sinon, pour ceux qui maîtrisent trop l'alphabet à l'endroit, vous pouvez maintenant le travailler à l'envers :

http://www.offthewrist.com/frenzy2/FingerFrenzy2.swf

MessagePosté: 08 Nov 2006, 15:06
par remise
MysterGui a écrit:
Quand tu essayes d'enregistrer ton "score" avec le programme, t'a quand même les lettres qui apparaissent (vérification contre les tricheurs :evil: ) ??


Oui les lettres defile à vitesse tres grand V mais elles defilent ^^


Je vopualis dire le bandeau de lettre qu'il faut recopier pour enregistrer le score ^^

Mais bon, Olivier a trouvé al réponse ;)


Records à l'envers : 19.532 ^^
non, 15.703...
12.984 !

c'est horrible, je connais pas l'alphabet à l'envers par coeur moi ^^

13.25...
Trop dur ^^

MessagePosté: 08 Nov 2006, 19:57
par MysterGui
Olivier a écrit:On remarque le test au début : si macroCheck[i] est nul, on sort. Autrement dit, si on a frappé une touche dans la même milliseconde, le score n'est pas enregistré. Les utilitaires qui simulent les appuis de touches envoient les événements KEYDOWN et KEYUP à la suite, sans temporisation.:


Merci du boulot mais ce que je comprend pas c'est que même en mettant une pause de 1 seconde entre chaque touche ça marche pas non plus ...

remise a écrit:Je vopualis dire le bandeau de lettre qu'il faut recopier pour enregistrer le score ^^


Ha la protection anti bot ^^ Oui l'image s'affiche :p

MessagePosté: 08 Nov 2006, 20:01
par Olivier
MysterGui a écrit:ce que je comprend pas c'est que même en mettant une pause de 1 seconde entre chaque touche ça marche pas non plus ...


Ce n'est pas le temps entre 2 touches qui compte, mais la durée entre l'enfoncement et le relâchement d'une même touche.

MessagePosté: 08 Nov 2006, 21:01
par remise
Olivier a écrit:
MysterGui a écrit:ce que je comprend pas c'est que même en mettant une pause de 1 seconde entre chaque touche ça marche pas non plus ...


Ce n'est pas le temps entre 2 touches qui compte, mais la durée entre l'enfoncement et le relâchement d'une même touche.


C'est à die, si mes (petites) connaissances dans les évènements de certains programmes sont justes, il faut qu'il y ait un certain temps entre OnKeyDown et OnKEyUp...

Calculons : le meilleurs score est de 1.004 seconde...

1.004/26 = 0.0386153 secondes =? 3.8 centièmes de secondes ?

Donc, aux programmeurs : le temps minimum entre ces 2 évènements serait 3.8 centiemes...
Après, faut essayer de raccourcir ce temsp pour voir le score mini mini... :)

MessagePosté: 08 Nov 2006, 22:28
par MysterGui
La je m'avoue vaincu ^^" je voit pas comment faire ^^

Remise = ton calcul est fait pour calculer une pause entre chaque touche pas pour calculer le temps d'enfoncement d'une touche ... mais comme je suis pas logique en maths ça reste à confirmer :p

Olivier a écrit:On remarque le test au début : si macroCheck[i] est nul, on sort. Autrement dit, si on a frappé une touche dans la même milliseconde, le score n'est pas enregistré. Les utilitaires qui simulent les appuis de touches envoient les événements KEYDOWN et KEYUP à la suite, sans temporisation.


Nous il nous faut juste une milliseconde entre KEYDOWN et KEYUP ^^

Moi je voit trois soluce :
- faire sauter le controle keydown/keyup mais on peut pas sur leur serveur mais en rehebergeant le jeu ... mais c'est pas le top
- trouver comment mettre une temporisation entre keydown et keyup, pas fastoche (du moins pour moi)
- regarder le code de l'annimation et voir comment le jeux envoie les score au site ... ya peut etre un moyen d'envoyer un tres bon score par ce biais :p

MessagePosté: 08 Nov 2006, 22:53
par remise
MysterGui a écrit:La je m'avoue vaincu ^^" je voit pas comment faire ^^

Remise = ton calcul est fait pour calculer une pause entre chaque touche pas pour calculer le temps d'enfoncement d'une touche ... mais comme je suis pas logique en maths ça reste à confirmer :p


PAs forcément ^^
Il suffit de déplacer le temps...

Exemple simple : (les "-" indiquent un certain temps, moins y'en a, plus le temps est court)

Appui sur la touche A - On lâche la touche A -------- Appui sur la touche B - On lâche la touche B -------- etc...

Si on intervertit les longues et les courtes, ça donne la même chose :
Appui sur la touche A -------- On lâche la touche A - Appui sur la touche B --------- On lâche la touche B - etc...

MessagePosté: 11 Nov 2006, 12:52
par remise
ah !
Nouveau record !

http://img179.imageshack.us/img179/6880 ... itehe6.gif

Position au classement : 3020...
J'ai plus qu'çà passer en dessous du 3... :D

Edit :
Ah ! Enfin en dessous !
J'ai mis le score sur la même image...
Classement : 2458...

EDIT2 : encore un dernier record (à droite, toujours sur la même image)
Position : 2180... :D

Mais maintenant, j'arrive plus à repasser sous la berre des 3... :(

MessagePosté: 11 Nov 2006, 15:37
par Squirel
A l'endroit : 6.016

A l'envers : 12.5

Bon je voix partout 1.001 comme record ils s'entrainent nuits et jours à connaitre l'ordre des touche par coeur ^^'

MessagePosté: 11 Nov 2006, 16:31
par Olivier
Squirel a écrit:Bon je voix partout 1.001 comme record ils s'entrainent nuits et jours à connaitre l'ordre des touche par coeur ^^'


Ce n'est pas très dur de tricher. Regarde qui est en tête maintenant :

http://www.offthewrist.com/index.jsp?id=ff_hs

MessagePosté: 11 Nov 2006, 16:35
par remise
Olivier a écrit:
Squirel a écrit:Bon je voix partout 1.001 comme record ils s'entrainent nuits et jours à connaitre l'ordre des touche par coeur ^^'


Ce n'est pas très dur de tricher. Regarde qui est en tête maintenant :

http://www.offthewrist.com/index.jsp?id=ff_hs


Bravo ! ^^

MG -> T'as toujours pas réussi à le faire ton programme ? ^^

MessagePosté: 11 Nov 2006, 17:06
par Squirel
mdr !!! Tu aurais pu mettre 0 :p

MessagePosté: 11 Nov 2006, 17:17
par the boss
comment faite vous pour tricher de dans ?

MessagePosté: 11 Nov 2006, 17:17
par Olivier
Squirel a écrit:mdr !!! Tu aurais pu mettre 0


Le serveur refuse les temps inférieurs ou égaux à la seconde ;)

comment faite vous pour tricher de dans ?


J'ai posté un formulaire avec les données qui vont bien :p

MessagePosté: 12 Nov 2006, 15:48
par LighThundeR
Mon nouveau record :
Image

MessagePosté: 12 Nov 2006, 17:56
par MysterGui
Olivier a écrit:
comment faite vous pour tricher de dans ?


J'ai posté un formulaire avec les données qui vont bien :p


Ha tu as suivit ma deuxième hypothese ^^" ben maintenant tu es imbattable si il refuse les score inférieurs ou egaux à 1 secondes ^^"

MessagePosté: 12 Nov 2006, 21:23
par remise
MysterGui a écrit:
Olivier a écrit:
comment faite vous pour tricher de dans ?


J'ai posté un formulaire avec les données qui vont bien :p


Ha tu as suivit ma deuxième hypothese ^^" ben maintenant tu es imbattable si il refuse les score inférieurs ou egaux à 1 secondes ^^"


Sauf si quelqu'un fait comme lui...
Le classement se fait selon la date...
Donc si quelqu'un fait le même score, cette personne sera 1ère...


LighThundeR : Laisse moi au moins le temps de te rattraper ^^

MessagePosté: 12 Nov 2006, 22:02
par MacIntoc
Olivier a écrit:J'ai posté un formulaire avec les données qui vont bien :p

Ou ça ?

MessagePosté: 12 Nov 2006, 22:38
par LighThundeR
XDDDDDDDDDDDDDDDDDDD

J'ARRIVE PAS à CROIRE QUE PERSONNE AIT REMARQUE QUE J'AVAIS TRAFIQUE L'IMAGE !!!!!!

J'avais fait 3.532, mais je voulais voir qi vous le remarqueriez, mais non !

MessagePosté: 12 Nov 2006, 23:20
par remise
LighThundeR a écrit:XDDDDDDDDDDDDDDDDDDD

J'ARRIVE PAS à CROIRE QUE PERSONNE AIT REMARQUE QUE J'AVAIS TRAFIQUE L'IMAGE !!!!!!

J'avais fait 3.532, mais je voulais voir qi vous le remarqueriez, mais non !


XDDDDDDDDDDDDDDDDDD !!

J'arrive pas à croire que tu m'as cru quand je t'ai demandé de me laisser le temps de te rattraper !