Jump to content

borrar


caanmasu

Recommended Posts

  • caanmasu changed the title to ¿Qué tal mi quest más ambiciosa?

Esta bueno, aunque yo me sentiria inseguro con eso jajaj al no saber que valores van pasando, como que no hay transparencia jajaj, pero bueno, es una buena opcion de todas maneras (obviamente depende de la economia de cada metin por el valor del precio), me gusta 👍

Link to comment
Share on other sites

hace 22 horas, Lord Ahriman - 3D Modeler dijo:

Esta bueno, aunque yo me sentiria inseguro con eso jajaj al no saber que valores van pasando, como que no hay transparencia jajaj, pero bueno, es una buena opcion de todas maneras (obviamente depende de la economia de cada metin por el valor del precio), me gusta 👍

Hola amigo

jajaja es verdad lo de la transparencia, te explicaré cómo funciona para que no te sientas inseguro xD

En sí es un simulador, funciona de esta manera:

Al arrastrar el objeto al alquimista determina el id del objeto, según el id va a tomar el addon_type.

Primero revisa si el objeto tiene addon_type igual a -1 (o sea, que tiene bonus de media y habilidad). Si es así, entonces sale el menú de cuál media quieres sacar, habilidad y cuántos cambios quieres poner.

Luego hay una función donde saco media y habilidad.

Ver:

 

Hará tantos ciclos hasta que llegue al número de cambios que pusiste o se cumpla la condición de que la habilidad o media que sacó el simulador es mayor o igual que la media o habilidad que pusiste. Después de encontrar la media o habilidad, habrá una función donde genera 5 cambios aleatorios (ahora explico cómo funciona) y de esos 5 tomo los tres primeros en caso de que haya salido bonus regular (media > 0 y hab > 0). Si salió media = 0 y hab != 0 entonces tomo 4 de los cambios generados, y lo mismo para la hab = 0, y así se obtienen los 5 bonus.

 

Luego para el caso de los otros objetos de addon_type != -1,

Simplemente generará 5 bonus de la siguiente manera:

Creé una función que se llama verificar() donde toma los applytype# de ese ítem (del item_proto) y se guardan en un arreglo. Luego esos serán los bonus "prohibidos" o bloqueados. Para que cuando se haga la selección de bonus, no tome esos. O sea, si es una Tritón, no tomará velocidad de ataque (igual esa no saldrá porque no está en item_attr para armas), fuerza contra humanos ni fuerza contra demonios.

Luego de tomar todos los bonus menos los prohibidos, el siguiente paso es tomar todos los bonus disponibles para ese ítem. Y ahí necesito sacar el type y sub_type.

Si el type es 1, entonces es un arma y no importa el sub_type porque todas las armas tienen los mismos bonus disponibles.

Si el type es 2 entonces no es un arma y hay que clasificarlo entre collar, brazalete, armadura, etc. con el sub_type.

Sabiendo ya el subtype podemos sacar los bonus disponibles junto con los niveles de los bonus. 

Y la función retornará los bonus disponibles sin los prohibidos, para el objeto puesto encima del NPC.

Luego creé una función llamada agregar_bonus donde saco 5 types aleatorios diferentes y 5 niveles diferentes de esos types. La variable aleatoria es uniforme porque no agregué la parte de la prob del item_attr, eso está en revisión.

Esa función retorna 5 tipos de bonus cada uno con su nivel (aleatorio uniforme entre 1 y 5 cada uno de los bonus)

Luego sí viene la parte interesante que es cuando se comparan.

Se hace un ciclo hasta la cantidad de cambios o hasta que los bonus retornados de agregar_bonus sean iguales o mayores a cada uno de los bonus elegidos por el jugador. Obviamente validé de que no sean en orden aunque eso implica 5 veces menos rendimiento.

Y cuando pase lo segundo, se agregará el bonus al objeto con item.set_value

 

En resumen

 

Validaciones:

1. Bonus prohibidos o bloqueados. Los bonus que ya vienen en el proto en applytype no saldrán como bonus disponibles o en otras palabras, los bonus que vienen fijos en el objeto no saldrán.

2. Bonus válidos. Se seleccionan los bonus del item_attr del sub_type del objeto y excluye los prohibidos.

3. Bonus sin repetir. El bonus elegido aleatoriamente no vuelve a salir.

4. Select con bonus válidos. Aparecerá en el seleccionador los bonus que tienen la posibilidad de salir en el objeto junto con los posibles valores que pueden salir.

 

Optimizaciones:

Para mejorar el rendimiento del simulador hice lo siguiente para la comparación de los 5 bonus generados con los elegidos:

1. En el primer type generado, si el primer type del bonus generado es igual a algún type del bonus elegido, entonces se hará la siguiente condición:

Si el valor del bonus generado es mayor o igual al bonus elegido, entonces guardar y continuar con el siguiente type bonus.

En el segundo type generado, si sucede lo mismo que en la primera pero para el segundo bonus generado, entonces guardará y continuará con el tercer type.

Y así hasta el 5. Qué ocurre si no sucede lo mismo? pues continuará con el siguiente cambio o iteración.

Algo más práctico:

1     -En este caso el primer bonus elegido por ti, salió en los bonus generados y el valor >= al que elegiste.

2     -Acá salió otro bonus válido

3     -Acá salió otro bonus válido. Ya van 3 en la misma iteración o cambio.

1     -Acá perdió la racha. O sea, el cuarto bonus tuyo no apareció dentro de la lista de los bonus generados. Y se cambiaron los bonus otra vez y apareció uno que sí coincide

1     -El siguiente bonus tampoco estaba, así que volvió a generar nuevos bonus y apareció uno que sí hace parte de los tuyos.

0    -El siguiente bonus no estuvo, así que se generaron nuevos bonus y... tu primer bonus no estuvo en la lista de bonus generados 😞

0    -Aquí sucedió lo mismo.

1     -Y así xD

2

1     -Aquí empieza a tomar el primer bonus tuyo y lo compara con los generados. El primer bonus estuvo, bien.

2     -El segundo bonus también estuvo

3     -El tercer bonus también estuvo

4     -El cuarto bonus también estuvo

5     -El quinto bonus también estuvo. Aquí se terminan las iteraciones.

De esta forma evito hacer iteraciones innecesarias.

Aunque hace 5 ciclos en cada comparación, eso está en revisión.

 

Y bueno, en la generación de bonus de media y habilidad no hay problema, está óptimo.

 

 

 

Link to comment
Share on other sites

hace 20 horas, PACI dijo:

No se como esta escrito, por lo que no puedo opinar de ello, pero bastantes ciclos simultaneos pueden tirar el servidor, y más siendo una quest.

Hay que testearla en un sv ya con jugadores porque en verdad no sé si afecte al servidor

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...
En 28/7/2019 a las 10:15, Alejandra dijo:

Me ha gustado bastante. Sin embargo...

Estoy a favor de esto debido que ya se ha fomentado la pereza del jugador, así que no afecta en casi nada la economía, aunque sí se vería un cambio en el tema de la media y habilidad que era lo único en bonus que enorgullecía al jugador obstentar, no obstante no tiene importancia.

Por otro lado, sí se está metiendo con esto, ¿por qué no agregarle también lo que siempre se le pide a los autodopadores de la actualidad y nadie ha hecho?

El que se puedan elegir dos opciones de bonus en los ítems addon_type != -1, después de todo, aunque sea mucho más rápido, sigue gastando Yang para los Objetos Encantados.

Aunque, igualmente estoy de acuerdo que se debe de testear para que no genere problemas en ningún servidor, y la idea anterior antes puede empeorar esa situación. 😅

En fin, la idea está buena, así que espero ver que se siga mejorando, estaré al pendiente de las actualizaciones que suba.

 

🖤

Hola

Debes iniciar sesión para ver el contenido del enlace en esta publicación.
, gracias por participar

Creo que te refieres a que en el switchbot haya una opción donde se pueda elegir la media y habilidad y que cuando caiga alguno de los dos valores lo tome como bonus. O sea:

Pongo una Luna y elijo 50 de media y habilidad 25. Obviamente nunca parará porque es imposible que salgan esos valores pero la idea es hacer una condición de que cuando caiga 50+ de media o 25+ de habilidad pare de cambiar los bonus.

Algo así como un "or"

Si valor_media > 50 ó valor_habilidad > 25 entonces

detener

Yo sé que si vamos por media de 50 y de pronto cambiando los bonus cae habilidad 27, lógicamente dejaríamos el bonus de habilidad y buscamos otra arma para sacarle la media otra vez.

 

Link to comment
Share on other sites

  • caanmasu changed the title to borrar

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...