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


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 51
1  Foros Generales / Sugerencias y dudas sobre el Foro / No sé qué título. en: 12 Julio 2025, 14:46 pm
Quizá debería aprender a no prestar atención a asuntos ajenos. Probablemente. Pero mirar temas de foros parece algo normal.

En Quora, gente postea chistes, curiosidades de la historia, respuestas varias a preguntas de los usuarios... En general, nada me parece tonto, nomás bloqueé a uno que daba mensajes "espirituales" crípticos disfrazados de sabiduría y a otro no recuerdo exactamente por qué, algo como que daba información irrelevante o le ponía demasiada opinión suya con la que no estaba de acuerdo.

Acá, El_Andaluz postea, no cualquier cosa sobre guerras, pero muchas cosas sobre guerras ¿demasiadas? Para mí sí, considerando que es un foro de Informática y que en teoría no se puede opinar de política. Lo que postea sobre eso es generalmente casi todo noticias copiadas de otro lado, que quien quiera verlas las podría leer en otro lado, así que no entiendo para qué. Se puede decir que es un tema importante, preocupante, y que cada uno puede postear de lo que se le de la gana, pero a mí me choca que casi siempre se esté hablando de lo mismo, como si te tiraran el tema en la cara, una y otra vez, donde para colmo no se puede opinar casi y no parece que corresponda, por ser un foro de informática, no de guerras ni tan general como otros foros. No entiendo la intención, me parece incomprensible, esa manía de copiar cosas de guerra de un diario hacia un foro de informática.
También de vez en cuando postea videos de cosas paranormales. Que me hacen sentir más o menos lo mismo: ¿Para qué muestra videos random? ¿por qué tengo que leer sobre eso en un foro de informática? Se lee acá:
https://foro.elhacker.net/unread.html;all
y sí entro porque quiero creer que es algo importante, revolucionario, como pareció que fue lo de la esfera de buga, aunque pasó mucho tiempo y no la abrieron, así que quedó en probable farsa, pero ese video que puso sí estuvo bueno.

Por otro lado, Elektro publicó un tema donde casi que dice haber alcanzado la iluminación, la sabiduría, y hace muchas recomendaciones pero parece decir nada, que tienes que ver los videos enteros o leer los libros para poder opinar debidamente. Para mí si alguien tiene algo importante y sabio que decir lo debería poder resumir un poco, pero bueno, no quise creer que fuera una tontería, aunque ese no resumen inspira desconfianza. Leí un resumen, el señor que recomienda cree que la vida es un videojuego, un montaje de la consciencia para evolucionar.

Ante tanta "espiritualidad" en el foro, me pregunté: ¿Esta gente ha experimentado algo paranormal alguna vez o...?
Por eso en parte hice el tema preguntando si alguna vez experimentaron algo paranormal. Y me pareció interesante. Videos probablemente hechos para lucrar, no. Tampoco me gusta asustarme al pedo.

Electro me insultó más o menos, y el tema se desvió.

Ahora, hice este tema que están leyendo porque quería preguntar cómo se supone que evite que se desvíe si me insulta y casi cualquier cosa menos decir lo que más me interesaba. Si él cree que la vida es un videojuego o no sé qué cosa aparentemente paranormal, podría explicar por qué ¿ha tenido alguna experiencia que lo induzca a creer eso? No explicó. ¿Qué debo pensar? Probablemente nada, pero ese tipo de gente me cansa. Si tienen algo importante que decir, que lo digan, sino es como una burla, no sé explicarlo, como si uno tuviese hambre (de sabiduría) y estos tipos nos intentaran hacer ver que están comiendo, pero algo probablemente falso, que probablemente ni ellos se dan cuenta, así que siento una mezcla de rabia y pena.

Más allá de eso, no sé lo que quiero, explicar algunas cosas sí.

Y bueno, no quiero que se prohíban ciertos temas en el foro, ni quiero que la gente se dedique sólo a cosas "inteligentes", pero siento que algo está mal, que no encaja, puede que sea yo, que necesite unas vacaciones de las redes sociales, o de este foro, pero como digo en Quora es muy difícil que te llegue una notificación de un video random de YT de dudosa credibilidad, de cada puñetero ataque en una guerra, o si llegan, como los mensajes espirituales crípticos, se tiene la opción de bloquear, de ignorar.

Quizá, por ejemplo, podrían hacer que los temas del foro libre no aparezcan acá:
https://foro.elhacker.net/unread.html;all
o denme un link donde no aparezcan, aunque igual me siento un poco mal, se me olvida esto: ¿Por qué no hacen algo más importante o relacionado con la Informática? Avances en la IA por ejemplo. No sé, es como que siento que está mal que alguien pierda su tiempo viendo o leyendo "estupideces", no sé, porque lo que siento cambia a veces, me olvido qué era, yo puedo pensar, en teoría, que son unos locos e ignorarlos, pero los temas me aparecen en el link, así que los veo, no puedo ignorarlos... Además a veces me da como rabia que pierdan el tiempo en "estupideces" pudiendo hacer algo mejor, aunque claro no debo obligarlos, pero me molesta ser obligado a ver esos temas.

En mi barrio hay gente durmiendo en la calle, y varios más revisan contenedores de basura, buscando sobras de comida o algo que vender. Yo no me siento tan distinto. Muy cerca se reúnen unos hinchas de políticos a charlar. ¿Debería spamearles una y otra vez lo mal que está el país? No lo hago porque hacer propaganda, joder una y otra vez con lo mismo, me parece mal.

No sé, lamento si soy el problema, demasiado intolerante, intentaré no prestar atención a temas que no sean de informática aquí y no dar importancia a lo "no importante" que hagan otros, pero sería bueno, y quizá importante, que haya una mejora en el foro como para que nos llegue lo que nos interesa, y no lo que no. ¿Qué sentido tiene que se pueda publicar cualquier cosa y que a la gente le llegue cualquier cosa aunque no quieran?
2  Foros Generales / Foro Libre / ¿Alguna vez experimentaste algo paranormal? en: 11 Julio 2025, 04:21 am
Que no parece tener explicación científica, que parece magia o de otro mundo.

Yo lo 1ero sería cuando con unos 5 años más o menos intentando abrir una puerta con una llave que no era de esa puerta, luego vi que la llave estaba doblada. No sé si originalmente estaba así, pero es un fierro corto y grueso, no creo que lo pudiera doblar ahora.

Lo 2ndo sería más o menos a los 9. Aunque tengo los recuerdos un poco mezclados, el orden. Creo que 1ero me pasó que una noche desperté, escuchaba "fshc, fshc, fshc", como si fuese un aleteo o algo, y vi entrar por la puerta abierta de mi cuarto, una especie de boomerang de luz, que giraba, se acercó y me pasó. El problema es que también recuerdo que en otra ocasión escuché ese ruido y me tapé todo pensando que era un vampiro xP Lo que no recuerdo es cual de los 2 eventos fue 1ero.

El resto de mis experiencias son relacionadas con OVNIS que no me parece lo mismo.

Bueno, una vez vi un líquido en el piso de casa, afuera, lo toqué, froté 2 dedos y brilló verde, como si fueran pequeñas explosiones, fue bastante raro eso, quizá era líquido de algún bicho.
3  Seguridad Informática / Hacking / Resolver que página me bloquea porque tengo bloqueador de anuncios. en: 9 Julio 2025, 02:11 am
No es una página confiable, ni me interesa usarla seguido, nomás estoy viendo una serie, pero este problema puede ocurrir en otras páginas así que, quisiera respuesta.

Básicamente cuando se carga la página te ponen un cartel de que detectaron el bloqueador de anuncios y no te dejan usar la página.

Ah, ya me acordé de algo: Detenerla antes de que se cargue del todo. Ya evité el cartel en un caso. Bien.

¿Otras técnicas?


¿Por qué no desactivar el bloqueador?
Porque te abren ventanas que en general no se pueden cargar, o las bloquea el antivirus, o no me interesan.
4  Programación / Programación General / ¿Error al convertir nùmero grande a binario? en: 8 Julio 2025, 10:53 am
En el dibujo de arriba izquierda:

debería formarse esto:

es como una L reflejada verticalmente.
pero como ven, está mal.

Ahí hay 7*7 dibujos (cuadros) compuestos de 8*8 cuadraditos cada uno.

El problema ocurre con esos números, no ocurre con números menores como
2 y 3
3 y 4
...
6 y 7
como ven siempre pongo que CuadrosPorFila = CuadraditosPorFila-1

Creo que el problema está en cómo se genera la variable DibujoaMostrar, en esta función, que se usa al inicio y cada vez que cambian esos números:
Código
  1. function AjustarVariables () {
  2. Cuadros = CuadrosPorFila*CuadrosPorFila;
  3. MaxCuadro = Cuadros-1;
  4. Cuadraditos = CuadraditosPorFila*CuadraditosPorFila;
  5. MaxCuadradito = Cuadraditos-1;
  6. LargoDeCuadraditos = 384/(CuadraditosPorFila*CuadrosPorFila+CuadrosPorFila-1);
  7. LargoDeCuadros = CuadraditosPorFila*LargoDeCuadraditos;
  8. // Esto es para que el 1er dibujo sea una L al revés...
  9. // Se averigua su número representante en binario:
  10. // Para formar la _
  11. DibujoEnBinario = String(Math.round(Math.pow(10, CuadraditosPorFila)));
  12. // Quitar el 1:
  13. DibujoEnBinario = DibujoEnBinario.substring(1, CuadraditosPorFila+1);
  14. // Esto forma las filas siguientes, con el 1ero pintado:
  15. NroDelCaracter = Cuadraditos-CuadraditosPorFila;
  16. AnterioraPintar = MaxCuadradito-CuadraditosPorFila;
  17. do {
  18. NroDelCaracter--;
  19. if (NroDelCaracter != AnterioraPintar) {
  20. DibujoEnBinario = 1+DibujoEnBinario;
  21. } else {
  22. DibujoEnBinario = 0+DibujoEnBinario;
  23. AnterioraPintar = AnterioraPintar-CuadraditosPorFila;
  24. }
  25. } while (NroDelCaracter>0);
  26. // trace("DibujoEnBinario que hace la L invertida: "+DibujoEnBinario);
  27. // Convertirlo en decimal:
  28. DibujoaMostrar = 0;
  29. do {
  30. DibujoaMostrar = DibujoaMostrar+(Number(DibujoEnBinario.charat(NroDelCaracter))*Math.pow(2, DibujoEnBinario.length-1-NroDelCaracter));
  31. NroDelCaracter++;
  32. } while (NroDelCaracter<Cuadraditos);
  33. DibujoaMostrar = Number(DibujoaMostrar);
  34. trace("DibujoaMostrar calculado desde la L invertida: "+DibujoaMostrar);
  35. }

Porque tengo una función que convierte DibujoaMostrar a binario y...

Si CuadroPorFila es 2 y CuadraditosPorFila es 3, la conversión dice:
Convirtiendo a binario esto: 432
DibujoEnBinario: 110110000
y está bien, vean que tiene 4 0s al final. Los dibujos se muestran al revés a eso, o sea:
000
011
011
y 0 es negro, vean que se forma la ┌
son 3 0s y uno más que sigue en la siguiente fila. 4.

Si pongo 3 y 4:
Convirtiendo a binario esto: 61152
DibujoEnBinario: 1110111011100000
5 0s, la cantidad de 0s aumentó 1.

Con 4 y 5:
Convirtiendo a binario esto: 32472000
DibujoEnBinario: 1111011110111101111000000
6, de nuevo aumentó 1.

5 y 6:
Convirtiendo a binario esto: 67628691328
DibujoEnBinario: 111110111110111110111110111110000000
7, de nuevo +1.

6 y 7:
Convirtiendo a binario esto: 558517276622592
DibujoEnBinario: 1111110111111011111101111110111111011111100000000
8, de nuevo +1.

7 y 8:
Convirtiendo a binario esto: 1.83744039008715e+19
DibujoEnBinario: 1111111011111110111111101111111011111110111111110000000000000000
Con esto ocurre el problema. Vean que en 1er lugar el número se muestra raro, y el binario en vez de tener 9 0s al final tiene 16.
Creo haber confirmado que la función que convierte a binario no es el problema, falla porque se le da ese número raro.

¿Se puede corregir el error o es un número muy largo y por eso fallará sí o sí?

Explico por qué uso números grandes:
Supongan que el programa calcula cuántos dibujos pueden formarse con las condiciones dadas. Siendo 8*8 cuadraditos, si mal no recuerdo el cálculo es 2^64, que en la calculadora dice que es:
18446744073709551616
ese número convertido a binario forma lo que sería el dibujo todo pintado, con uno 1 delante que sobra:
10000000000000000000000000000000000000000000000000000000000000000
se vería así si quitamos el 1:
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
son 8*8 0s.

Supongan que esa cantidad la queremos dividir entre 7, para que cada cuadro muestre la misma cantidad de esos posibles dibujos a lo largo de cierto tiempo.
El cuadro nro 1 mostrará los 1eros 1000 dibujos posibles, por decir algo, el 2ndo los siguientes, y así.

Básicamente por eso es que necesito los números grandes. A la cantidad de dibujos posible le voy restando la cantidad que va a mostrar cada cuadro, para saber qué dibujo se mostrará 1ero en cada cuadro. Eso no lo puse en el código aquí porque no creo que sea el problema.

¿Hay alguna otra cosa importante que deba decir sobre esto?

La conversión es:
Código
  1. function ConvertiraBinario (numero) {
  2. // trace("Convirtiendo a binario esto: "+numero);
  3. // Averiguar cómo es en binario:
  4. DibujoEnBinario = "";
  5. while (numero>0) {
  6. DibujoEnBinario = numero%2+DibujoEnBinario;
  7. numero = Math.floor(numero/2);
  8. }
  9. // Agregar 0s a DibujoEnBinario si hacen falta:
  10. while (DibujoEnBinario.length<Cuadraditos) {
  11. DibujoEnBinario = 0+DibujoEnBinario;
  12. }
  13. // trace("DibujoEnBinario: "+DibujoEnBinario);
  14. }
5  Foros Generales / Dudas Generales / ¿Cómo compartir una lista de youtube? en: 7 Julio 2025, 00:19 am
Pregunta tonta o que debería serlo pero TY me hace dar muchas vueltas para casi todo.

Lo pude hacer pero no sé cómo y no puedo volver a hacerlo. Busqué info y tampoco encontré. Por ejemplo esto:
https://www.youtube.com/watch?v=qla5PqXF274
A mí se me ve así:

No hay opción de copiar link, obtener enlace, etc.
Si entro en la lista y copio el enlace, ajá, podría ser, pero eso da un link más largo y de un video en específico, creo. Yo vi un modo de obtener un link más corto.

Y lo tengo copiado en el bloc de notas, pero como YT no mostraba los videos en el orden que le dije (y tuve que buscar cómo se ordenaban, pero no se aplica) no me sirve, no sé si andará bien ese link, tuve que quitar los videos de las listas y volverlos a poner.


Quejas extras:
- Tampoco me dejó poner el video entero, lo tuve que cortar. Lo intenté unas 3 veces.
- Siempre me pregunta si es para niños. No, no, no, NO, ¡NO! No me vuelvas a preguntar por favor.
- Que si es público. Sí, la mayoría lo será, para eso es, debería haber una opción especial, cliqueable, OPCIONAL, no que me obligue a cliquear una cosa un otra. Que esté marcado como público y si lo desmarco me de otras opciones.
- Votar las listas está deshabilitado por defecto @_@

Son la empresa más usada y grande del mundo ¿es tan difícil hacerlo bien?
6  Programación / Programación General / Empujado mientras se aleja más rápido que el empujador ¿por qué? en: 5 Julio 2025, 10:15 am
Deberían agregar un ícono de confusión.

Esta es la salida:
Caminó a la derecha: 0.5
Caminó a la izquierda: 0
Caminó a la izquierda: -0.5
Caminó a la derecha: 0
Caminó a la derecha: 0.5
Caminó a la izquierda: 0
Caminó a la izquierda: -0.5
Mario empujado mientras caminaba a: -0.5
El EmpujeaDKMario es: 0
Distancia: 60.7
Empuje negativo, no debería ocurrir
Mario empujado mientras caminaba a: -0.5

y se repite. Esos mensajes indican la velocidad pixeles por frame, conque Mario se está moviendo, y la distancia respecto a Donkey Kong, que está a su derecha, moviéndose hacia él:
Mario <-DK
Los mensajes de movimientos son sobre Mario.

La velocidad de ambos es 0.5. Así que... voy a poner que la distancia se muestre más seguido, pero no es un error que pueda obtener a voluntad.

Distancia: 57.8
Mario empujado mientras caminaba a: 0.5
El EmpujeaDKMario es: 2.93
Moving por ser empujado: -2.43
Caminó a la derecha contra gran empuje: -2.4007
Distancia: 59.75
Mario empujado mientras caminaba a: -2.4007
El EmpujeaDKMario es: -5.569051
Empuje negativo, no debería ocurrir

Casi seguro que es cuando presiono izquierda justo antes de que sea empujado o en el mismo momento.

No puedo explicar lo que no entiendo, pero quedan tan cerca que hay colisión, cuando Mario caminaba a la derecha, así que es empujado a la izquierda, bastante, no debería haber colisión de nuevo en ese momento, pero hay... ¿por qué?

¿Cómo lo puedo entender más?

Viendo mensajes que no puse (son muchas líneas que parecen irrelevantes) veo que con 58.8 no ocurre colisión:
Distancia: 59.8
Distancia: 58.8
Distancia: 57.8
Mario empujado mientras caminaba a: 0.5
...pero en lo que puse antes dice que se detectó a 59.75, o sea, a mayor distancia sí se detectó colisión, no puede ser. Les dejo lo que me parece relevante del código, espero no resumir de más. Ah, un detalle: Cuando Mario es empujado, su velocidad tarda en normalizarse, dependiendo de si camina contra el empuje, si se queda quieto o camina a favor, pero dudo que eso sea la causa del problema, creo que es en la parte de DK.
Código
  1. // Player:
  2. attachMovie("sDKMario", "Player", 1001);
  3. setProperty ("Player", _x, 620);
  4. setProperty ("Player", _y, 568);
  5. // Velocidad conque se está moviendo y dirección:
  6. Player.Moving = 0;
  7. DKMarioSpeed = 0.5;
  8. // IA:
  9. attachMovie("sDK", "IA", 1000);
  10. setProperty ("IA", _x, 780);
  11. setProperty ("IA", _y, 568);
  12. IA.Moving = 0;
  13. DKSpeed = 0.5;
  14. // /////////////////////////////////////////////
  15. // //////////////////  Most  ///////////////////
  16. // /////////////////////////////////////////////
  17. // Nota: Creo que no estoy usando esto:
  18. function FrenoPorFriccion (ID, Character) {
  19. if (Math.abs(eval(ID+".Moving")) > eval(Character+"Speed")) {
  20. set(ID+".Moving", (eval(ID+".Moving")+eval(Character+"Speed")*eval(ID+".Facing"))/2);
  21. }
  22. }
  23. // /////////////////////////////////////////////
  24. // //////////////////  Mario  //////////////////
  25. // /////////////////////////////////////////////
  26. function WalkToRight () {
  27. // Si no está empujado a la derecha con más velocidad a la propia:
  28. if (Player.Moving < DKMarioSpeed) {
  29. // Si no está empujado a la izquierda con más velocidad a la propia:
  30. if (Player.Moving >= -DKMarioSpeed) {
  31. // Aumenta su velocidad hacia la derecha sin exceder el máximo:
  32. Player.Moving = Math.min(DKMarioSpeed, Player.Moving+DKMarioSpeed);
  33. trace("Caminó a la derecha: "+Player.Moving);
  34. } else {
  35. // Aumenta su velocidad un poco hacia la derecha sin exceder el máximo:
  36. Player.Moving = Math.min(DKMarioSpeed, (Player.Moving*99+DKMarioSpeed)/100);
  37. trace("Caminó a la derecha contra gran empuje: "+Player.Moving);
  38. }
  39. } else if (Player.Moving > DKMarioSpeed) {
  40. // Reducción de la velocidad:
  41. Player.Moving = (Player.Moving*99+DKMarioSpeed)/100;
  42. trace("Derecha con empuje: "+Player.Moving);
  43. }
  44. Player._x = Player._x+Player.Moving;
  45. }
  46. function WalkToLeft () {
  47. // Si no está empujado a la izquierda con más velocidad a la propia:
  48. if (Player.Moving > -DKMarioSpeed) {
  49. // Si no está empujado a la derecha con más velocidad a la propia:
  50. if (Player.Moving <= DKMarioSpeed) {
  51. // Aumenta su velocidad hacia la izquierda sin exceder el máximo:
  52. Player.Moving = Math.max(-DKMarioSpeed, Player.Moving-DKMarioSpeed);
  53. trace("Caminó a la izquierda: "+Player.Moving);
  54. } else {
  55. // Esto no ocurre por ahora (haber sido empujado a la derecha).
  56. }
  57. } else if (Player.Moving < -DKMarioSpeed) {
  58. // Reducción de la velocidad:
  59. Player.Moving = (Player.Moving*99-DKMarioSpeed)/100;
  60. trace("Izquierda con empuje: "+Player.Moving);
  61. }
  62. Player._x = Player._x+Player.Moving;
  63. }
  64. function Frenar () {
  65. if (Player.Moving > DKMarioSpeed) {
  66. // Si está moviéndose a la derecha más rápido de lo normal
  67. // (porque está empujado), poca reducción de la velocidad:
  68. Player.Moving = 0.99*Player.Moving;
  69. trace("Frenando naturalmente: "+Player.Moving);
  70. Player._x = Player._x+Player.Moving;
  71. } else if (Player.Moving < -DKMarioSpeed) {
  72. // Si está moviéndose a la izq más rápido de lo normal
  73. // (porque está empujado), poca reducción de la velocidad:
  74. Player.Moving = 0.99*Player.Moving;
  75. trace("Frenando naturalmente: "+Player.Moving);
  76. Player._x = Player._x+Player.Moving;
  77. }
  78. }
  79. // /////////////////////////////////////////////
  80. // ///////////////////  DK  ////////////////////
  81. // /////////////////////////////////////////////
  82. function DKVsDKMario () {
  83. Distancia = IA._x-Player._x;
  84. trace("Distancia: "+Distancia);
  85. if (Distancia > 0) {
  86. // DK está a la derecha de Mario:
  87. IA._x = IA._x-DKSpeed;
  88. if (IA.hitTest(Player)) {
  89. if (Player.Action2 == "Walking") {
  90. EmpujeaDKMario = (DKSpeed+Player.Moving)*((DKPeso-DKMarioPeso)/100);
  91. trace("Mario empujado mientras caminaba a: "+Player.Moving);
  92. trace("El EmpujeaDKMario es: "+EmpujeaDKMario);
  93. } else {
  94. EmpujeaDKMario = DKSpeed*((DKPeso-DKMarioPeso)/100);
  95. trace("Mario empujado mientras estaba quieto.");
  96. trace("EmpujeaDKMario: "+EmpujeaDKMario);
  97. }
  98. if (EmpujeaDKMario > 0) {
  99. Player.Moving = Player.Moving-EmpujeaDKMario;
  100. trace("Moving por ser empujado: "+Player.Moving);
  101. } else {
  102. trace("Empuje negativo, no debería ocurrir");
  103. }
  104. }
  105. } else if (Distancia < 0) {
  106. // DK está a la izquierda de Mario, esto tampoco ocurre por ahora.
  107. } else {
  108. // DK está en el mismo lugar que DKMario, tampoco.
  109. }
  110. }

Resumiendo el código acá me di cuenta de que el empuje no es necesariamente negativo, lo dice el if... Puede ser 0, de hecho al inicio dice que es 0, no lo había visto. Pero en la 2nda salida es negativo. El cálculo es:
EmpujeaDKMario = (DKSpeed+Player.Moving)*((DKPeso-DKMarioPeso)/100);
Supongo que resulta negativo porque Player.Moving es negativo, lo cual como expliqué no sé cómo ocurre en ese momento, parece que a veces se capta una colisión a una distancia menor, pero que yo sepa el tamaño de los dibujos (animados) no varía tanto.

¿Necesitan algo más?

O sea, estaba a Distancia 57.8, hubo colisión, fue empujado a la izquierda, caminó a la derecha intentando oponerse, pero estaba a distancia mayor que antes, y aún así se detectó otra colisión. ¿Acaso el caminar se está aplicando luego de que se dice la distancia, antes de terminar el frame? Digo, puede que la salida esté desordenada, chequearé eso.
7  Informática / Software / ¿Método para "reiniciar" el monitor? en: 2 Julio 2025, 23:10 pm
A veces cuando enciendo la PC, el monitor muestra imagen y luego nada. Tengo que apagarlo y prenderlo muchas veces para que quede... un poco rojo u oscuro en un costado, pero "bien". Una forma más cómoda es abrir ZSNES, un programa de DOS parece, y hacer alt+tab cada vez que el monitor deja de mostrar imagen. Porque ir a "DOS" y volver a Windows, o viceversa, hace que el monitor se apague o algo así por un momento.

Lo dejo encendido siempre ya con la esperanza de que no dé problemas, pero estar como 5 minútos o no sé cuánto, haciendo alt+tab sin poder hacer mucho más, es como, desastrozo. No puedo mandar a arreglarlo ni conseguir otro.

Pregunto cómo podría, con un programa o test, causar el efecto de "reinicio" de monitor, o apagado y reencendido, como expliqué.
Recuerdo que sucedía con los test de Direct X, posiblemente también con un emulador de Playstation y posiblemente con el cambio de tamaño del escritorio o pantalla en Windows.
Imaginen que no pueden ver. Yo muevo el mouse para un costado, hago clic, apreto Z, sé que se selecciona el ZSNES que está en el escritorio, pongo un juego y empiezo a hacer alt+tab como ¿boludo? hasta que el monitor quede bien.
Me gustaría algo más simple, algo que lo ponga en el monitor, lo abra así con una tecla (puedo ponerle un nombre con X por ejemplo), y que luego tenga el efecto usando sólo 1 tecla.

¿Qué se les ocurre?

Hablando con GPT me dijo algo de crear un programa que se ponga en pantalla completa. Tendría que cerrarse cuando yo le diga. Que se abra con Enter, claro, y en lo posible con Enter también se cierre, pero que el detector de Enter empiece luego de unos segundos para que no se cierre enseguida.
Pero no cualquier pantalla completa sirve. Por ejemplo la de Chrome creo que no sirve, debe ser una que "reinicie" al monitor.
8  Programación / Programación General / Cuando las cartas tienen opciones. en: 1 Julio 2025, 04:49 am
En mi proyecto de juego en Macromedia Flash 5, se le daba una carta al jugador, se le decía cual, y había una pausa hasta que presionara A. Sólo tiene 1 carta.

Quisiera que cuando la carta tiene opciones (causar un efecto u otro), eso se diga al jugador y haya una pausa hasta que presione arriba, o abajo, u otra tecla según cuántas opciones sean.

Parece claro que se puede hacer creando, para cada carta, una variable que marque si la carta tiene opciones o no, y poniendo un if para que dependiendo de eso ponga la pausa básica o la pausa con opciones.

Mi duda es si hay una mejor forma de hacerlo porque no me gusta crear tantas variables ni usar un if cada vez que se obtiene la carta.

Se me ocurre:
- Cuando se obtiene, se busca el valor de una variable llamada Opciones, por ejemplo si se obtiene la carta DKMario se busca una variable llamada DKMarioOpciones.
- Si no tiene valor es que no existe, no tiene opciones, hace la pausa normal. Sino, hace la pausa con opciones.

Eso usa un if pero en vez de crear variables para todas las cartas, crea sólo para las que tienen opciones.

El tema de las pausas también se complica un poco, yo tenía:
// Frame 1: La IA recibe una carta, el humano también.
// F2: Un objeto repite TurnoDeHumano hasta que se presione A.
// F3: Pequeña pausa.
// F4: Turno de la IA.
...ahora debería ser:
// Frame 1: La IA recibe una carta, el humano también.
// F2: Si la carta no tiene opciones, se inserta un objeto que genera la pausa normal. Sino otro que genera la pausa con opciones.
...el resto igual.
Supongo que eso es mejor que crear un frame para la pausa normal y otro para la otra y que vaya para un frame u otro según el caso.

¿Se les ocurre algo mejor?

Uno pregunta porque tiene la esperanza de hallar una respuesta, pero ahora me pregunto para qué preguntar si probablemente no entienda la respuesta:
Citar
Tu razonamiento es **muy sólido** y demuestra una buena comprensión de cómo organizar lógica condicional en Flash 5, que tiene sus limitaciones. Vamos a analizar tu enfoque y ver cómo mejorarlo o refinarlo con el menor número de variables y frames posibles.

---

## 🎯 Objetivo

- Tienes cartas que pueden o no tener múltiples opciones.
- Quieres pausar el juego hasta que el jugador elija una opción (una tecla).
- No quieres crear una variable por cada carta.
- No quieres duplicar frames innecesariamente.

---

## ✅ Lo Bueno de Tu Enfoque

Tu idea de usar una **nomenclatura dinámica** como `DKMarioOpciones` es muy buena para evitar crear estructuras repetitivas o usar `if` para cada carta. En Flash 5 (ActionScript 1.0), puedes usar esta técnica:

```actionscript
var opcionesVar = this[NombreDeCarta + "Opciones"];
```

Si `opcionesVar` es `undefined`, entonces no hay opciones.

Esto te permite tener una lista como:

```actionscript
DKMarioOpciones = ["Arriba", "Abajo"];
CartaFuegoOpciones = ["Izquierda", "Derecha", "Abajo"];
```

Y no necesitas definir ninguna variable para cartas que no tienen opciones. Perfecto.

---

## 💡 Mejora Propuesta: Usar una Sola Función y el Mismo Frame

Si quieres evitar duplicar frames o insertar objetos distintos según el tipo de carta, puedes hacer esto:

### 1. Un solo objeto/clip de pausa
En el frame 2, insertas **siempre el mismo clip** llamado `PausaCarta`.

Ese clip tiene el siguiente código en su `onClipEvent(enterFrame)`:

```actionscript
onClipEvent(enterFrame) {
    var opciones = _root[_root.NombreDeCarta + "Opciones"];
   
    if (opciones == undefined) {
        // No hay opciones, esperar tecla A
        if (Key.isDown(Key.A)) {
            _root.gotoAndPlay(3);
        }
    } else {
        // Hay opciones, mostrar opciones y esperar tecla válida
        if (_root.mostrandoOpciones != true) {
            _root.mostrandoOpciones = true;
            // Mostrar texto de opciones o lo que quieras
            for (var i = 0; i < opciones.length; i++) {
                trace("Opción " + (i+1) + ": " + opciones);
            }
        }

        // Aquí podrías detectar teclas según cantidad de opciones
        if (Key.isDown(Key.UP)) {
            _root.opcionElegida = 0;
            _root.gotoAndPlay(3);
        } else if (Key.isDown(Key.DOWN)) {
            _root.opcionElegida = 1;
            _root.gotoAndPlay(3);
        } // etc.
    }
}
```

Este objeto es universal: maneja ambas situaciones.

Solo necesitas asegurarte de que:

- `_root.NombreDeCarta` esté definido antes de entrar al frame 2.
- Los nombres de las variables opcionales sigan la convención de `NombreDeCarta + "Opciones"`.

---

### 2. Limpieza al salir del frame

En el Frame 3 podrías resetear cosas:

```actionscript
mostrandoOpciones = false;
opcionElegida = -1;
```

---

## 🧠 Alternativa Más Limpia (Con Objetos)

Si quieres hacer algo más estructurado, puedes usar un objeto (diccionario) para definir las opciones:

```actionscript
CartasConOpciones = {
    "DKMario": ["Arriba", "Abajo"],
    "CartaFuego": ["Izquierda", "Derecha", "Abajo"]
};
```

Y luego:

```actionscript
var opciones = CartasConOpciones[NombreDeCarta];
```

Esto sigue siendo dinámico pero más organizado.

---

## ✅ Conclusión

Tu idea:

- Es válida
- Es eficiente
- Se puede mejorar levemente con objetos o clips genéricos

Lo que te propongo:

- Usa **un solo frame** y **un solo clip de pausa inteligente**
- Usa un objeto o variables dinámicas para definir solo las cartas que tienen opciones
- Evita `if` por cada carta o duplicación de clips

Esto te da un sistema **escalable**, **fácil de mantener** y muy en línea con las capacidades de Flash 5.

¿Te gustaría que te escriba el código completo del clip `PausaCarta` con la lógica completa de selección de opciones?

Lo que entendí es que su "Un solo objeto/clip de pausa" implica hacer ifs a cada rato (120 por segundo creo), así que no me sirve.

Me perdí en lo de diccionario. Quizá está pensando en cosas que aún no pensé.
9  Foros Generales / Foro Libre / (Solucionado) Nunca pude escuchar un video de Tik Tok. en: 25 Junio 2025, 19:50 pm
Ejemplo:
https://www.tiktok.com/@juanmaya_mkt/video/7508633856359107847

https://www.tiktok.com/@juanmaya_mkt/video/7519577801930902792

¿Es que debo estar registrado, es que mi Windows es muy antiguo?

Quisiera escucharlos.
10  Sistemas Operativos / Windows / Abrir PNG rápido con Chrome aunque esté configurado con Paint. en: 16 Junio 2025, 04:10 am
Ese tipo de archivo quiero abrirlo con Paint, pero a veces necesito que sea con Chrome.

Con Paint lo abro haciendo doble clic.

Cuando debo abrirlo con Chrome, hago clic derecho, espero (a veces mucho) a que se muestre el menú, elijo abrir con Chrome.

Es un proceso bastante lento. ¿Algo más rápido?


Tomo fotos a juegos, se guardan como PNG, quiero copiarlas o parte de ellas a Flash, pero si las copio desde Paint quedan mal, pero Paint es lo que más me gusta para borrar partes y copiar, así que debo crear una nueva imagen con el corte, abrirla con Chrome y copiarla de ahí.
Digo eso por si hay alguna mejor alternativa a lo que pido en el título.
Páginas: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 51
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines