elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 243
381  Programación / Programación General / Contar tiempo en que se presionan teclas pero... en: 31 Julio 2024, 10:00 am
Supongamos que se presiona una tecla. Pasa un frame (tiempo). En el siguiente frame, el contador debe aumentar. Eso lo logré.

Otra situación:
- Presión.
- Frame.
- Frame, aumenta el contador, presión de otra tecla.
- Frame, aumenta 1 el contador.
- Frame, aumenta 2 el contador.

Es decir, el contador aumenta 1 en cada frame por cada tecla presionándose pero sólo si se presionó durante más de 1 frame. No estoy pudiendo lograr eso.

Mi código es básicamente repetir esto:
Código:
Cuando hay una presión:
   TeclasPresionandose++
   Si AlgunaPresionandose == "No", then eso = "Recién"
Cuando hay un nuevo frame:
   Si AlgunaPresionandose == "Recién", then eso = "Sí"
   // Eso logra que en el 1er frame no aumente el contador.
   sino si AlgunaPresionandose == "Sí", then:
      Contador = Contador+TeclasPresionandose

Eso no sirve porque la 2nda, 3era, etc, tecla que se presione aumentará el contador desde el 1er frame en que se presione, y debe ser desde el 2ndo.

Intenté hacer esto:
Código:
Cuando hay una presión:
   TeclasPresionandose++
   TeclasRecientes++
   Si AlgunaPresionandose == "No", then eso = "Recién"
Cuando hay un nuevo frame:
   Si AlgunaPresionandose == "Recién", then eso = "Sí"
   sino si AlgunaPresionandose == "Sí", then:
      Contador = Contador+TeclasPresionandose-TeclasRecientes
      TeclasRecientes = 0

Pero sucede esto:
En el 1er frame no aumenta, eso está bien.
En el 2ndo frame tampoco, porque TeclasPresionandose-TeclasRecientes es 1-1, está mal que no aumente.


Lo que se me acaba de ocurrir es:
Código:
Cuando hay una presión:
   TeclasPresionandose++
   TeclasRecientes++
   Si AlgunaPresionandose == "No", then eso = "Recién"
Cuando hay un nuevo frame:
   Si AlgunaPresionandose == "Recién", then:
      Eso = "Sí"
      TeclasRecientes--
   sino si AlgunaPresionandose == "Sí", then:
      Contador = Contador+TeclasPresionandose-TeclasRecientes
      TeclasRecientes = 0

Lo pruebo, pero es feo ese -- sin que realmente se haya reducido. ¿Soluciones?

EDIT: Hay que poner 0 en vez de -- o sino si la 1era vez se presiona más de una tecla, lo que se sume será 2-1 la 1era vez, y debe ser 2. En realidad todo eso de "No", "Recién" y "Sí" podría ser innecesario, lo que pasa que también cuento la cantidad de frames (a partir del 2ndo) en que se está presionando alguna tecla, en este caso independientemente de cuántas se presionen, pero no pensé que fuese relevante. Dejo el código completo a ver si alguien lo puede simplificar:
Nota: Lo de C (ejemplo MovimientosC) es que se cuenta el evento si es el único en ese momento o si sucede a la vez que otros, resume +Cualquiercosa.
Código
  1. // Frame 1:
  2. Frames = 0;
  3. // Relativo a Movimiento del mouse:
  4. // Esto sólo lo pude contar en el cambio de frame:
  5. MovimientosC = 0;
  6. // Esto se cuenta desde el 2ndo frame en que se mueve:
  7. FramesMoviendoseC = 0;
  8. // Esto sólo lo pude contar en el cambio de frame:
  9. FrenadasC = 0;
  10. // Relativo a Clics:
  11. ClicsC = 0;
  12. // Esto se cuenta desde el 2ndo frame en que se está cliqueando:
  13. FramesCliqueandoC = 0;
  14. DesclicsC = 0;
  15. // Relativo a Clacs:
  16. ClacsC = 0;
  17. // Esto se cuenta desde el 2ndo frame en que se está claqueando:
  18. FramesClaqueando1C = 0;
  19. // La diferencia es que cuenta cada tecla claqueandose:
  20. FramesClaqueandoXC = 0;
  21. DesclacsC = 0;
  22. // Se detiene en el frame 4 (en el 2 y 3 hay un tiempo de espera antes de empezar, no viene al caso). Un objeto en él tiene:
  23. onClipEvent (load) {
  24. // Para saber si el mouse se movió:
  25. ActualXMouse = _level0._xmouse;
  26. ActualYMouse = _level0._ymouse;
  27. // Para saber si FramesMoviendoseC debe aumentar:
  28. Moviendose = "No";
  29. // Para saber si FramesClaqueando1C debe aumentar:
  30. Claqueando = "No";
  31. // Para determinar qué pantalla mostrar:
  32. PantallaActual = 1;
  33. TiempodePantalla = 333;
  34. }
  35. // Clics:
  36. onClipEvent (mouseDown) {
  37. _level0.ClicsC++;
  38. // Para saber si FramesCliqueandoC debe aumentar
  39. // (si al cambiar el frame es Recién, cambia a Sí y empieza...
  40. // a aumentar. Se detiene cuando cambia a No, al descliquear).
  41. Cliqueando = "Recién";
  42. }
  43. onClipEvent (mouseUp) {
  44. _level0.DesclicsC++;
  45. // Para que FramesCliqueandoC ya no aumente:
  46. Cliqueando = "No";
  47. }
  48. // Teclas:
  49. onClipEvent (keyDown) {
  50. // Clacs sólo debe aumentar si ocurre un clac, no si se mantiene:
  51. // Si la tecla presionándose no está indicada como tal:
  52. if (eval("Tecla"+Key.getCode()+"Presionandose") == undefined) {
  53. // Indicarla:
  54. // trace("Se presionó la tecla: "+Key.getCode());
  55. set ("Tecla"+Key.getCode()+"Presionandose", "S");
  56. // trace("Tecla"+Key.getCode()+"Presionandose: "+eval("Tecla"+Key.getCode()+"Presionandose"));
  57. _level0.ClacsC++;
  58. // Para más adelante saber qué tecla se soltó:
  59. TeclasPresionandose++;
  60. // Para más adelante saber cuánto debe aumentar FramesClaqueandoXC:
  61. TeclasRecienPresionadas++;
  62. // Esto es para saber cual eliminar cuando se deje de presionarse:
  63. set ("TeclaPresionandoseNro"+TeclasPresionandose, Key.getCode());
  64. // trace("TeclaPresionandoseNro"+TeclasPresionandose+": "+eval("TeclaPresionandoseNro"+TeclasPresionandose));
  65. if (Claqueando == "No") {
  66. Claqueando = "Recién";
  67. }
  68. }
  69. }
  70. onClipEvent (keyUp) {
  71. // Revisar lista de teclas guardadas como presionándose,
  72. // para quitar las que ya no estén así:
  73. Puntero = 0;
  74. do {
  75. Puntero = Puntero+1;
  76. if (Key.isDown(eval("TeclaPresionandoseNro"+Puntero))) {
  77. // trace("La tecla "+eval("TeclaPresionandoseNro"+Puntero)+" aún está presionada.");
  78. } else {
  79. // La tecla guardada como presionándose nro (puntero),
  80. // ya no está presionándose: Quitar la asignación:
  81. // ¿Debo indicar que sólo si existe?
  82. // trace("La tecla "+eval("TeclaPresionandoseNro"+Puntero)+" no está presionada.");
  83. // trace("Se elimina.");
  84. delete eval("Tecla"+eval("TeclaPresionandoseNro"+Puntero)+"Presionandose");
  85. // _level0.DesclacsC++;
  86. // Eliminar tecla de la lista de presionándose:
  87. delete eval("TeclaPresionandoseNro"+Puntero);
  88. // Reordenar lista si es necesario:
  89. Puntero2 = Puntero;
  90. while (Puntero2<TeclasPresionandose) {
  91. set("TeclaPresionandoseNro"+Puntero2, eval("TeclaPresionandoseNro"+(Puntero2+1)));
  92. Puntero2 = Puntero2+1;
  93. }
  94. // Borrar la última tecla de la lista (fue movida a antes):
  95. delete eval("TeclaPresionandoseNro"+Puntero2);
  96. TeclasPresionandose--;
  97. // TeclasSoltadasEnEsteFrame++;
  98. }
  99. } while (Puntero<TeclasPresionandose);
  100. if (TeclasPresionandose == 0) {
  101. Claqueando = "No";
  102. }
  103. Desclaqueando = "Sí";
  104. }
  105. onClipEvent (enterFrame) {
  106. // Relativo a Frames:
  107. _level0.Frames = _level0.Frames+1;
  108. // Relativo al Movimiento del Mouse:
  109. // Si se movió:
  110. if (ActualXMouse != _level0._xmouse or ActualYMouse != _level0._ymouse) {
  111. // Si estaba quieto:
  112. if (Moviendose == "No") {
  113. _level0.MovimientosC++;
  114. Moviendose = "Sí";
  115. } else {
  116. _level0.FramesMoviendoseC++;
  117. }
  118. } else if (Moviendose == "Sí") {
  119. // No se movió pero estaba moviéndose:
  120. Moviendose = "No";
  121. _level0.FrenadasC++;
  122. }
  123. ActualXMouse = _level0._xmouse;
  124. ActualYMouse = _level0._ymouse;
  125. // Relativo a Clics:
  126. if (Cliqueando == "Sí") {
  127. _level0.FramesCliqueandoC++;
  128. } else if (Cliqueando == "Recién") {
  129. Cliqueando = "Sí";
  130. }
  131. // Relativo a Clacs:
  132. if (Claqueando == "Sí") {
  133. _level0.FramesClaqueando1C++;
  134. _level0.FramesClaqueandoXC = _level0.FramesClaqueandoXC+TeclasPresionandose-TeclasRecienPresionadas;
  135. trace("TeclasPresionandose: "+TeclasPresionandose);
  136. trace("TeclasRecienPresionadas: "+TeclasRecienPresionadas);
  137. TeclasRecienPresionadas = 0;
  138. } else if (Claqueando == "Recién") {
  139. Claqueando = "Sí";
  140. // Esto es un parche para que a partir del 2ndo frame,
  141. // la 1er o 1eras teclas se cuenten:
  142. TeclasRecienPresionadas = 0;
  143. }
  144. // Relativo a cambiar pantalla:
  145. TiempodePantalla--;
  146. if (TiempodePantalla == 0) {
  147. TiempodePantalla = 333;
  148. if (PantallaActual == 1) {
  149. PantallaActual = 2;
  150. } else {
  151. PantallaActual = 1;
  152. }
  153. _level0.gotoAndStop(PantallaActual+3);
  154. }
  155. }

Lo del cambio de pantalla no es relevante aquí.
382  Seguridad Informática / Análisis y Diseño de Malware / Re: Como puedo hacer un virus para MS-DOS? en: 30 Julio 2024, 15:01 pm
En realidad no dije que fueras turbio, sino el hecho de que alguien quiera hacer un virus, especialmente si dice que no sabe programar. Lo que parece que digo, si es malo u ofensivo, lo lamento, pero no tengo interés en hacer cosas malas ni ofender. Pero tampoco me puedo alegrar o sentir cómodo conque alguien quiera hacer virus, quizá debí quedarme callado.
383  Seguridad Informática / Análisis y Diseño de Malware / Re: Como puedo hacer un virus para MS-DOS? en: 30 Julio 2024, 14:31 pm
No parece ético hacer un virus, ni útil si es para DOS, ni lógico hacerlo visual  :o

Alguien puede decir que sí es ético para investigarlo, pero esta persona acaba de decir que no sabe programar ¿y casi lo 1ero que quiere hacer es un virus? Es turbio.

Mejor que no lo sea útil el virus, pero entonces para qué hacerlo, no le veo sentido.

Un virus borra cosas, rompe, desconfigura, es código ¿qué quieres de visual? ¿programar arrastrando pictogramas por la pantalla? Bueno, vi un programa medio así, pero no recuerdo el nombre y no lo entendí. Puedes buscar "programación para niños" o quizá "programar sin escribir".
384  Sistemas Operativos / Windows / Re: Win10, ¿alternativas a adobe flash? en: 30 Julio 2024, 14:21 pm
¿Es un exe que requiere Flash para instalarse/usarse? No parece tener sentido. ¿Lo has intentado instalar y no te lo permite? ¿o has podido pero luego no funciona? ¿seguro que no tiene archivos swf?
385  Sistemas Operativos / Windows / Re: Win10, ¿alternativas a adobe flash? en: 29 Julio 2024, 20:10 pm
¿Qué extensión tienen las imágenes o archivos que no puedes abrir? ¿.flv? ¿.fla? ¿.swf?
386  Media / Juegos y Consolas / ¿Cómo se vería un ajedrez 3d o batallas 3d, en 2d? en: 29 Julio 2024, 19:56 pm
Estoy pensando cómo mejoraría esto:
https://www.youtube.com/watch?v=HWiqu4J9iDA
1:05:00

Una posibilidad sería que fuese 3d ¿pero cuántas vistas se requieren para que se vea todo? No importa desde qué lado se mire un cubo de rubik: Su interior no se ve, hay 1 cubito. Si el cubo fuese más grande, habría más cubitos internos. Sería así el caso del juego.

Digamos que hay naves amarillas, rojas, etc, enfrentando a una gris. Las que estén debajo de las amarillas, y entre las rojas y bordós, no se verán.

Una posibilidad es que se muestren varias vistas laterales, como si fuesen hojas, una detrás de la otra, pero dudo que sea bueno.
Que se muestre la perspectiva de cada nave difícilmente permitiría ver la perspectiva general.

¿Ideas? ¿conocen juegos que hayan mejorado en esto?

Yo nunca había visto algo así en videojuegos.

En los Super Robot Taisen, Advance Wars, etc, cada unidad tiene su propio turno, y la perspectiva es aérea con algo de diagonal... Pero son 2d, nunca se ve una unidad encima de la otra.

En Star Craft, vi que hay unidades terrestres y naves que pueden pasarles por encima, pero cada unidad tiene una Z fija, ninguna unidad puede elevarse o descender más.

Juegos como Star Fox muestran la perspectiva de 1 nave, la cual se controla, y se va moviendo, es distinto...

Gradius y Area 88 se ven de costado como aquí pero se controla sólo 1 nave, y son 2d.

El anime La Legenda de los héroes de la galaxia trata en parte de batallas en el espacio, la idea es aplicar algo de eso aquí. Es interesante el 3d en esto porque permite más formaciones y estrategias.
387  Foros Generales / Foro Libre / Re: ¿Alguien me podría explicar desde 0 cuánto flota algo? en: 29 Julio 2024, 01:09 am
Algo que llegué a entender es que el peso de un objeto sí influye en cuánto flota, porque inf.luye en su densidad, y como dijiste depende de eso, que depende del peso y el volúmen. Significa que aunque un vagón grande cerrado lleno de aire flotaría, un tornillito se hundiría. Ahora mi pregunta es por qué depende de la densidad y no simplemente del peso xD

En cuanto al video, parece que no soy hábil con las fórmulas, pero por ahí dice:
Presión = Densidad * Gravedad * Profundidad
Pero profundidad lo escribe como h y está hablando de altura y creo que a veces usa h para referirse a altura, así que me entrevera, buscaré otro video por mi cuenta.
388  Media / Juegos y Consolas / ¿Cómo encuentro guías en japonés? en: 28 Julio 2024, 18:21 pm
Últimamente me ha pasado ver que las guías en inglés de ciertos juegos son pocas (en gamefaqs) y bastante incompletas, y me ha pasado antes ver info más detallada en japonés (el navegador lo traduce, claro, sino no sé leerlo), así que quisiera saber cómo hallar guías así. Me interesan estas por ahora (NES):
- Daiva - Imperial of Nirsartia.
- Excitebike.
- Uchuusen - Cosmo Carrier.
389  Seguridad Informática / Seguridad / ¿Es muy inseguro comprar cosas por Internet? en: 27 Julio 2024, 02:11 am
Algo de Mercado Libre Argentina o España, soy de Uruguay.

Alguien me dijo que muchas ofertas son estafas para obtener datos de uno y luego usar eso para sacar préstamos o comprar cosas como si hubiera sido yo. Que hay muchas denuncias pero lo siguen haciendo. O que si compras una pelota de tenis por ejemplo y te mandan una de ping pong nada puedes hacer.

No entiendo por qué es tan complicado:
- El vendedor da su objeto al intermediario, quien le da una constancia de que lo recibió.
- El intermediario le muestra el objeto al comprador.
- El comprador dice si es lo que pidió o no.
- Si es lo que pidió, le da el dinero al intermediario, recibe una constancia de haber pagado, y el intermediario se queda con una copia de eso. Si no es lo que pidió, el intermediario deberá discutirlo con el vendedor, es problema suyo, el comprador sólo perdió tiempo.
- El intermediario muestra al vendedor la constancia de pago y le da el dinero acorde. Si el vendedor dice que el precio era otro, de nuevo es un problema entre ellos, pues el comprador pagó lo que el intermediario le dijo que pague.

¿Cómo van a robar datos así? ¿los intermediarios? Con ese criterio nunca te harías una tarjeta ni socio de algún lugar porque los de la empresa que tienen tus datos (para saber a quién reclamar si no pagas) va a usar tus datos para cualquier cosa.

Otra persona me dijo que incluso te pueden matar  :o
390  Programación / .NET (C#, VB.NET, ASP) / Re: Tiene que haber otra forma de hacer este código. en: 27 Julio 2024, 01:50 am
Concuerdo con EdePC. La explicación está muy bien, pero desde el inicio parece lógico y claro que no es necesario poner un if con una condición sobre cuando acabar el while, si dicha condición se puede poner en la condición misma del while.

Creo que lo ideal sería que el programa no esté mirando a cada milisegundo si se tocó Enter o no, sino que quede detenido hasta que se presione Enter, pero eso parece imposible. Por ejemplo, el sistema de una linterna, supongo, no es que esté chequeando a cada milisegundo si se está presionando un botón o no, nada hace, pero cuando se apreta eso activa algo. Pero un programa creo que no funciona así...
Páginas: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 [39] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ... 243
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines