• Estimado/a visitante,

    Parece que aún no te has registrado o conectado. Para poder participar debes tener una cuenta registrada haciendo click en el enlace inferior.

    ¡Haz click aquí para registrarte!

    Si ya dispones de una cuenta, simplemente debes hacer click en el botón de "Acceder" en el lado derecho.

    El Equipo de Grepolis

[tool] GPTools: Nueva web para calcular tiempos (hechizos, investigaciones, faro...)

naz9

Arquero
--> Buenas a todos,


Descripción/explicación detallada:

[Importante: dirección de la web al final del tochopost.]

Este es un proyecto que inicié a comienzos del 2014 y que dejé parado durante unos meses por falta de tiempo, hasta ahora que me he puesto nuevamente con ello. Creo que las herramientas que ofrezco en esta web ya son suficientes y/o están suficientemente bien desarrolladas para hacerlas públicas.
El motivo de la creación de esta web es la necesidad de calcular rápida y eficazmente los efectos que pueden tener cartografía, el faro, meteorología, arriar vela, y especialmente movimiento acelerado, el cual al principio causó bastante confusión desde mi punto de vista. Luego también voy a implementar el efecto de yelmo de invisibilidad porque una vez le apliqué 4 veces al mismo ataque de colono este hechizo y necesitaba calcular a qué hora exacta tenía que aplicar el siguiente hechizo, justo cuando terminase el efecto del que puse anteriormente, todo esto para que el ataque se mantuviese indetectable para la víctima durante el mayor tiempo posible, hasta que ni siquiera se diese cuenta que era un colono. A todo esto añadir que, tal vez no haya mirado lo suficiente, pero nunca he visto un cálculo totalmente exacto del nuevo tiempo resultante tras aplicarse alguno de los efectos mencionados. Por ejemplo, en la wiki, en la entrada de Cartografía, se hace un ejemplo de cómo calcular la reducción de tiempo causada por la investigación de cartografía, pero ésta en parte es incorrecta. Ahí se hace la reducción del 10%, bien, pero en Grepolis la reducción se hace ligeramente diferente porque hay un factor que hay que tener en cuenta en la fórmula para hacer un cálculo exacto. Ese factor es diferente dependiendo de la velocidad de cada mundo (velocidad de construcción según he podido comprobar, y no la velocidad de movimiento de unidades), y es un factor que consiste en 900 segundos (15 minutos) en un mundo velocidad x1, y la mitad (1/2) en un mundo x2, y un tercio (1/3) de 900 segundos en un mundo x3, luego un cuarto (1/4) y así sucesivamente. Estos segundos hay que restárselo al principio al tiempo que tenemos, antes de calcular cualquier efecto. Luego hay que calcular el efecto que se va a aplicar sobre ese tiempo al que le hemos restado el factor mencionado. Después, al nuevo tiempo (al que se le ha aplicado ya el efecto) hay que sumarle ese factor para conseguir el tiempo exacto que quedará después de aplicarle el efecto. Todo esto para verlo más claramente:

PHP:
tiempo_afectado = ( (tiempo_inicial - factor) / (1 + efecto1 + efecto2 + efectoN) ) + factor
|
\---- Donde "efecto" es 0.1 en el caso de querer calcular el efecto de cartografía y meteorología, y 0.15 en el caso del faro. Yelmo de invisibilidad todavía no lo he podido comprobar en la práctica (porque todo esto lo he podido comprobar en diferentes mundos de diferentes países, con diferentes combinaciones de efectos) porque requiere que la víctima esté atenta a la pantalla mirando los ataques a una hora estimada, a la que supuestamente terminará el efecto de la invisibilidad, y ahí observaremos si se aplica de la misma forma (ya al tiempo_afectado en este caso) o si no necesita factor. Yo lo que veo lógico es que no necesite factor, pero yo no he desarrollado Grepolis por lo que no puedo saberlo exactamente y tengo que averiguarlo en la práctica. Luego está movimiento acelerado, que incluyéndolo en la fórmula queda así:

PHP:
tiempo_resultante = (((tiempo_inicial - factor) / (1 + efecto1 + efecto2 + efectoN)) / m_acelerado) + factor
o simplificando:
PHP:
tiempo_resultante = ((tiempo_afectado - factor) / m_acelerado) + factor
|
\---m_acelerado es movimiento acelerado y tiene un valor de 1.3.
\---El factor es "(900 segundos / velocidad del mundo)".

Entonces si tienes un tiempo inicial de 02:00:00 que no ha sido afectado por nada y quieres calcular el tiempo resultante después de aplicar cartografía y movimiento acelerado, en un mundo velocidad x2, la fórmula es la siguiente:

Primero paso el tiempo a segundos:
PHP:
2h * 60min / 1h = 120min ... 120min * 60s / 1min = 7200s

tiempo_resultante = (((7200s - 900s / 2) / (1 + 0.1)) / 1.3) + 900s / 2
tiempo_resultante = 6750s / 1.1 / 1.3 + 450s
tiempo_resultante = 5170.28s ≃ 5170 segundos.......................hay que pasarlo a "hh:mm:ss":

5170.28s / 60s * 1min = 86.17min ...el 0.17 lo cogemos... 0.17min * 60s / 1min ≃ 10s
86min / 60min * 1h = 1.43h ...el 0.43 lo cogemos... 0.43h * 60min / 1h = 26min
...y de ahí queda 1 hora (quitándole el 0.43 a 1.43) y los restos... así que los sumamos y son:
"01:26:10" finalmente.
|
\-----> Todo esto se calcula en un instante en mi web.

En este caso no muestro los efectos de meteorología (+0.1) ni faro (+0.15) porque al no querer calcular su efecto valen 0, y no se tienen en cuenta. Movimiento acelerado valdría 1 al no querer calcular su efecto, porque si fuese por ejemplo 0, al estar dividiendo al tiempo_afectado, el tiempo_resultante sería infinito, porque algo dividido entre 0 es infinito.
Si el tiempo ya estaba afectado de antes y quieres calcular un nuevo efecto, tienes que averiguar cuál era el tiempo inicial sin efectos haciendo la fórmula inversamente (no sé si me explico, y esto es lo que intentaré implementar próximamente).
Falta comentar que en mi web puedes introducir el tiempo que quieres calcular con una unidad concreta, y debajo tienes una tabla con el resto de unidades y con sus respectivos tiempos resultantes ya calculados (ya lo probaréis, que no sé explicarlo del todo bien), y también los tiempos de cada unidad pero sin que estos sean afectados por hechizos/investigaciones/edificios, es decir esta función lo único que hace es decirte el tiempo normal que tardas con cada unidad. Esto lo hice porque a veces ocurre que tienes por ejemplo a Hades, y te gustaría saber el tiempo que tardas con arpías o mantícoras (o grifos) que son de otra deidad y no puedes mirarlo desde el juego mismo (poniendo un 1 por ejemplo en el cuadrado de la unidad), y con mi web puedes saber lo que tardaría el enemigo desde esa ciudad con arpías o mantícoras o lo que sea que no tengas en tu ciudad.

---------------------------------------------------------------------------------

La web es GPTools. Testada y funcionando correctamente en Opera, Firefox y Chrome.
Todavía tengo algunas ideas apuntadas para desarrollar, más o menos en el órden que quiero implementarlas:
  • Calcular el efecto de Meteorología para la función principal según la unidad elegida. --> ☑ v1.05
  • Añadir el hechizo Yelmo de Invisibilidad y calcular sus efectos tras aplicarlo hasta 5 veces.
  • Opción para indicar que el tiempo introducido a calcular son segundos (y no hh:mm:ss).
  • Sección de links a webs relacionadas.
  • Opción para que los efectos de l@s hechizos/investigaciones sean inversos (para calcular el tiempo sin efectos).
  • Añadir héroes y sus efectos según el nivel (por ejemplo, Atalanta).
  • Calculadora básica para hacer operaciones con horas (como en grepoutils).
  • Libro de visitas y/o minichat.
  • Opción para traducir a Inglés sin Google (cacoso) Traductor, instantánea y exactamente (con javascript, sin recargar la página). Puede que cuando no me quede nada que hacer lo traduzca a más idiomas.
  • Serie de vídeos de grepolis comentados para aprender a jugar y también para usuarios ya avanzados (YouTube).
  • Hacer una sección para los vídeos en la web.
  • Guardar en cookies algunas opciones elegidas para que la próxima vez que entres veas esas opciones marcadas, o no.


Se aceptan sugerencias, y si a alguien le gustaría un diseño concreto para la web, tal vez podría añadirlo para cambiarlo mediante un botón o algo así.
 
Última edición:

naz9

Arquero
Espero que os sea de utilidad jeje. A veces ocurre que el tiempo calculado es 1 segundo mayor o menor que el que aparecerá en el juego, supongo que en alguna parte se pierden decimales, lo tengo que mirar, pero puede ser también fallo del juego. Pero bueno, 1 segundo difícilmente va a hacer que salgan mal tus planes.
Si encontráis algún bug me avisáis enseguida :)
 

naz9

Arquero
Lo intenté arreglar pero por mi parte no puedo hacer más, es el juego que calcula los tiempos entre ciudades mediante la distancia que las separa, y hace todo con decimales pero claro luego no se muestran las décimas de segundo, sólo te muestra en formato "hh:mm:ss" en vez de "hh:mm:ss.ms". Tampoco hace falta que lo cambien, pero por ejemplo tengo comprobado que un viaje de hoplitas dentro del juego me dice 0:42:31 y con catapultas 3:00:09, luego hago manualmente las operaciones para pasar del tiempo de hoplita al de catapulta, y me sale que el de la catapulta es 3:00:06, es decir 3 segundos de diferencia. Ahí no puedo hacer nada porque en realidad el tiempo del hoplita es 0:42:31.500, y yo eso no lo puedo saber porque el juego no me muestra ese medio segundo que falta. De catapulta a hoplita sí se pasa bien el tiempo, pero al revés no se pasa bien porque el tiempo de hoplita a catapulta aumenta considerablemente y si el juego no me da decimales..., y si probamos de pegaso a catapulta el margen de error será aún más grande, no lo he probado pero puede que hasta 20 segundos.

------

Añadido/arreglado:
Ahora los efectos se aplican correctamente como en el juego: la cartografía sólo para los barcos, la meteorología sólo para los voladores y terrestres, etc. Esto es en la función principal donde pone "Nuevo tiempo:" y te calcula el tiempo. En las tablas de abajo esto ya funcionaba correctamente.
 
Última edición: