[Introduccion] Scripts ahk

    • neocai85
      neocai85
      Bronce
      Registro: 05-31-2009 Artículos: 4.170
      En este hilo voy a pegar un pequeños HotKeys que sirve para la Red iPoker, de momento, sólo servirá para asignarle a una tecla, un valor determinado de apuesta. Pero la idea es explicar, con lo poco que sé del tema, como se crean o editan los distintos scripts, para llegar a ir haciendo varios entre todos y mejorándonos.

      Primero que nada, hay que bajarse e instalar el AutoHotkey para que funcionen, desde aquí:
      http://www.autohotkey.com/

      Luego, para crear un script, abrimos el block de notas y pegamos el código fuente que les voy a dejar, o bien pueden escribir el mismo. Vamos a Archivo-> Guardar como... y le damos un nombre finalizando con ".ahk" (sin comillas). Si lo hemos guardado sin eso, nos quedará un archivo .txt que es de texto solamente, podemos cambiarle la extensión al archivo directamente borrando el .txt por y poniedo el .ahk

      Haciendo doble click sobre el archivo antes creado con extensión .ahk nos abrirá el AutoHotkey con dicho script ya cargado.

      Si vamos a File -> Window Spy, nos habre una nueva ventana con información sobre la ventana en la cual estamos trabajando, por ejemplo, una mesa de nuestra sala.



      En los primeros renglones, luego de ahk_class nos da el "titulo" o clase del programa sobre el cual estamos parados con el mouse, esto es útil, para que, al agregar dicha clase a nuestro script no sea necesario suspender el script para hacer otras tareas. Por ejemplo, si estamos jugando y a la letra "a" le asignamos un "fold", cuando queramos escribir en el foro, con el AHK activado, no nos dejará, para ello es se agrega simplemente una linea al script y la función asignada a "a" funcionará solamente en la mesa de póker.



      Los óvalos remarcados en rojo, son; la posición del mouse en la ventana activa y el tamaño de la misma.

      Esto sirve, para revisar coordenadas y que el con el script, al apretar un botón del teclado o combinación, por ejemplo el mouse haga click en ese punto especifico, como ser, el recuadro donde se escriben las apuestas en la mesa.

      Hay dos formas de ingresar las coordenadas a nuestro script, una es poniendo el valor puntual (ej. 981, 698) o bien relativo (0,65*Ancho, 0,70*Alto). En el primer caso, si queremos programar un script para varias mesas, tendremos que ir mirando el punto necesario en cada una de las mismas. De la segunda forma, si bien es un poco mas tedioso al principio, una vez realizado nos servirá para todas las mesas ya que al variar el tamaño, la relación no cambia.

      ¿Como hacemos para calcular una coordenada relativa?
      Con el tamaño de la mesa, width y height que nos da el Window Spy y un punto que necesitemos.

      Por ejemplo:
      Si queremos que el puntero del mouse se posicione sobre el recuadro donde se escriben manualmente las apuestas ingresar una cantidad, obtenemos de allí las coordenadas, en "In Active Windows" y con ello hacemos lo siguiente (recordar que es un ejemplo, no siempre serán estos valores).

      In Active Windows: 973, 698
      left: 0 top: 0 width: 1144 height: 1040
      (left y top es la posición del vértice superior derecho de la ventana, en 0,0 es mas fácil de hacer)

      Entonces, hacemos:
      973/1144 = 0.85
      698/1040 = 0.671

      Y con esos valores, al multiplicarlos por el tamaño de la ventana (automáticamente) nos va a dar siempre el "click" que queríamos si importar el tamaño de la mesa.

      Por otro lado, desde File -> Edit Script nos abrirá nuestro script para editar, también es posible hacer lo mismo abriéndolo desde el Bloc de Notas, o bien, botón derecho sobre el archivo y Edit Script (en Windows 7)

      Bueno, aquí dejo el script creado para subir una cantidad determinada y explico cada comando:


      ;Subir apuesta a 30

      #IfWinActive ahk_class PTIODEVICE

      S::
      WinGetPos,,, width, height,A
      center_checkx:=width*0.6416
      center_checky:=height*0.844
      MouseClick, left,center_checkx,center_checky
      Sleep 20
      Send, {Del}
      Send, {Del}
      Send, {Del}
      Send, {Del}
      Sleep 30
      Send, 50
      Sleep 30
      Send, {F3}
      return
      Este script funciona para iPoker como dije al principio y hace una apuesta de 30.

      1- Después del ; va un comentario que el programa no lee, es para el programador o quien necesita información al leerlo.

      2- #IfWinActive ahk_class PTIODEVICE Aquí lo primero es un condicional, "si la ventana activa es" ahk_class y el PTIODEVICE es el "nombre" de las ventanas que se dan en la Red iPoker a las mesas.

      3- S:: La letra "s" está asignada a los que sigue en el script, si queremos otra letra se la cambia por la que queremos o número, de elegir un numero del teclado numerico, será "numpad5" por ejemplo para el 5 de dicho teclado. Es decir, cada caracter que precede a "::" es la tecla que hará correr el comando.

      4- WinGetPos,,, width, height,A Encuentra el tamaño de la ventana

      5- center_checkx:=width*0.6416 y center_checky:=height*0.844 Posiciona el puntero del mouse sobre la coordenada relativa en función del tamaño de la ventana.

      6- MouseClick, left,center_checkx,center_checky Hace "click" izquierdo del mouse en el punto deseado.

      7- Sleep 20 Da un tiempo "muerto" de espera entre el los comandos, si bien en algunos casos pueden estar redundantes, es para evitar problemas con la sala, se puede probar variar la duración o directamente eliminarlos. Está en milisegundos, por lo que el valor 1000 es un segundo.

      8- Send, {Del} Send, envía que se presione la tecla, en este caso Delete o Suprimir o también lo que queramos escribir, por ejemplo, en Send 50 nos escribe en pantalla el numero 50. En este script dicho valor se debe cambiar al tamaño de la apuesta que nosotros queramos, por ejemplo, si jugamos NL10 y queremos una apuesta de 2,5bb, debería quedar el comando "Send, 0,25" (sin comillas). En cambio, las palabras entre corchetes hacen referencia a "apretar" una tecla en particular, como en este caso, apreta la tecla "delete" para borrar las apuestas que hay en el casillero por defecto.

      9- Send, {F3} Presiona la tecla F3, la cual en iPoker es la de Raise, por lo tanto, anteriormente a ingresado automáticamente el valor deseado en la ventana de apuestas y luego al apretar F3 hace dicha apuesta.

      10- return Regresa al principio del comando para que pueda volver a ser utilizado.

      Cada vez que editemos un script desde el AutoHotkey, es necesario que le demos a File -> Reload Script para que funcione correctamente, o bien cerrarlo y volverlo a abrir (no olvidar guardar los cambios).

      Como consejo, probar éste script tal cual está, modificado o uno que nosotros hemos realizado en mesas de Play Money, para ver si funcionan correctamente.

      Me disculpo por el largo de la explicación, y sé que realmente no es la mejor ya que mis conocimientos sobre este tema son bastante pobres.

      Pueden ir pidiendo que se le adicionen distintas funciones a este script u otros, y me gustaría que entre todos vayamos llegando a varios de buena calidad.

      Saludos ;)

      neocai85
  • 7 respuestas
    • ariakna
      ariakna
      Bronce
      Registro: 11-29-2008 Artículos: 4.091
      Gran aporte Neo! GJ!

      Saludos.

      Ariakna
    • neocai85
      neocai85
      Bronce
      Registro: 05-31-2009 Artículos: 4.170
      Gracias Ari :D

      Parece que no tuvo mucha repercusión :ayfkm

      Saludos ;)

      neocai85
    • Iragel
      Iragel
      Bronce
      Registro: 03-02-2011 Artículos: 376
      Vaya paliza que te has metido xDDD
      Yo esto lo conocia de bottear en algunos juegos y tal, pero no se me habia ocurrido utilizarlo asi o.o
      Buen trabajo : )
    • oscaraguirre
      oscaraguirre
      Bronce
      Registro: 08-26-2010 Artículos: 219
      Está bien lo de aprender a usar el autohotkey, ¿pero no es excesivo hacerlo en Ipoker habiendo el Betpot?
      Me parece demasiado curro habiendo algo hecho ya.
    • neocai85
      neocai85
      Bronce
      Registro: 05-31-2009 Artículos: 4.170
      original de oscaraguirre
      Está bien lo de aprender a usar el autohotkey, ¿pero no es excesivo hacerlo en Ipoker habiendo el Betpot?
      Me parece demasiado curro habiendo algo hecho ya.
      Pasa que se ha dejado de vender, y la versión de prueba sólo sirve para NL5.

      Además, que se puede utilizar para muchísimas cosas o salas no sólo para iPoker, por eso he tratado de hacer una guía bastante básica como para que se entienda el funcionamiento y la construcción de script.

      Saludos ;)

      neocai85
    • oscaraguirre
      oscaraguirre
      Bronce
      Registro: 08-26-2010 Artículos: 219
      original de neocai85
      Pasa que se ha dejado de vender, y la versión de prueba sólo sirve para NL5.
      No la vende temporalmente pero está dando licencias gratuitas, es mucho mejor que te regalen algo a tener que pagarlo.
      Lo pone exactamente debajo de donde dice que no vende temporalmente.
      "Free serial keys are available"
    • neocai85
      neocai85
      Bronce
      Registro: 05-31-2009 Artículos: 4.170
      original de oscaraguirre
      original de neocai85
      Pasa que se ha dejado de vender, y la versión de prueba sólo sirve para NL5.
      No la vende temporalmente pero está dando licencias gratuitas, es mucho mejor que te regalen algo a tener que pagarlo.
      Lo pone exactamente debajo de donde dice que no vende temporalmente.
      "Free serial keys are available"
      Gracias por el aporte oscaraguirre como ya hace rato no juego en iPoker, no tenia conocimiento de ésto, pensé, como me habían dicho, que ya no estaba disponible.

      Saludos ;)

      neocai85