Jump to content

Soluccion temoral - Fear


RockStar
 Share

Recommended Posts

Quería propone una solución temporal al bug del fear de lok / priest con el fin de mejorar el pvp.

Nunca he mirado como esta programado pero en la parte del código de la spell debería de haber coordenadas aleatorios o algo por el estilo que hagan que se mueva el objetivo de la spell.

 

Sol 1:

Comentar la parte que hace que el objetivo del fear se mueva y hacer que el fear simplemente actue como un dormir (solución temporal)

 

Sol 2:

Encontrar la linea que pasa la coordenada Y y deshabilitarla.

 

Me lo explico de esta forma: para que se mueva el objetivo del fear se le pasan ciertos parámetros (los segundos que dura el fear, coordenadas X=horizontales /Y = verticales(por poner un ejemplo) y todo en un evento que se repite tantas veces como los segundos de la duración.. Por cada vuelta/segundo del evento imagino que se le moverá al personaje en su (posicionActual+ X/Y).. Lo que pienso que pasa y el motivo del bug que tira a los jugadores actualmente es justo esa coordenada Y.. es decir en vez de que solo se muevan horizontalmente también les pasa coordenadas que los hacen moverse hacia abajo y atraviesan las colisiones del suelo o algo por el estilo.

 

Un saludo, espero que sirva para algo la propuesta.

Link to comment
Share on other sites

  • Administrador

Hola RockStar

 

Siempre agradecemos las sugerencias e ideas.

La tuya suena bien, pero actualmente el tema del Fear / Blink es un trabajo en progreso para resolverlo.

El problema tiene relación con el tipo de terreno / suelo por el cual pasa el personaje.

Link to comment
Share on other sites

/*creo que por aqui van los tiros, he trasteado un poco por github

if (!map->IsInWater(tstX, tstY, tstZ))  // second safety check z for blink way if on the ground
                       {
                           // highest available point
                           tstZ1 = map->GetHeight(phasemask, tstX, tstY, prevZ + travelDistZ + 2.0f);
                           // upper or floor
                           tstZ2 = map->GetHeight(phasemask, tstX, tstY, prevZ + travelDistZ);
                           //lower than floor
                           tstZ3 = map->GetHeight(phasemask, tstX, tstY, prevZ - travelDistZ);

                           //distance of rays, will select the shortest in 3D
                           srange1 = sqrt((tstY - prevY)*(tstY - prevY) + (tstX - prevX)*(tstX - prevX) + (tstZ1 - prevZ)*(tstZ1 - prevZ));
                           srange2 = sqrt((tstY - prevY)*(tstY - prevY) + (tstX - prevX)*(tstX - prevX) + (tstZ2 - prevZ)*(tstZ2 - prevZ));
                           srange3 = sqrt((tstY - prevY)*(tstY - prevY) + (tstX - prevX)*(tstX - prevX) + (tstZ3 - prevZ)*(tstZ3 - prevZ));

                           if (srange1 < srange2)
                               tstZ = tstZ1 + 0.5f;
                           else if (srange3 < srange2)
                               tstZ = tstZ3 + 0.5f;
                           else
                               tstZ = tstZ2 + 0.5f;
                       }

                       destz = tstZ;
                       srange = sqrt((tstY - prevY)*(tstY - prevY) + (tstX - prevX)*(tstX - prevX) + (tstZ - prevZ)*(tstZ - prevZ));
                       totalpath += srange;
                       //TC_LOG_ERROR("server", "Blink cycle checking coordinates, number of cycle = %i , distance of step = %f, total path = %f", j, srange, totalpath);

 

/*aqui esta el enlace donde lo encontre nose si han probado esta solucion https://github.com/Quadral/335source/commit/7ddba303684c93d9f4e2c0edd0e6662c908a4474

Link to comment
Share on other sites

  • Administrador

He buscado sobre el enlace que has compartido.

 

Parece que el autor original es kvipka y ese código fue un pull request para un proyecto de open source.

Otros desarrolladores le indicaron cambios que debe realizar acorde a los estándares de C++ y del proyecto.

Ni ellos quedaron convencidos de la solución y el autor parece no haber quedado alegre con lo que le respondieron por lo que cerró su pull request y un desarrollador dijo que no se molestaría en arreglar código tan malo.

 

Hay dos formas de resolver un problema:

- La buena para ambos lados (el lado del usuario y el lado del programador)

- La buena para un solo lado (se ve bien siendo jugador pero es realmente una mala práctica en la programación)

 

Aplicar código como el que has citado puede generar conflictos a la hora de trabajar en otros sectores que modifican o se ven modificados por dicho código implementado, o generar crashes en el servidor al no manejar como corresponde todas las posibles situaciones.

 

Teniendo en cuenta que hay un trabajo en progreso que resuelve problemas de movimiento para Fear y Blink, creo que de momento prefiero ver cómo avanza ese tema.

Link to comment
Share on other sites

  • Administrador

Quiero aclarar que mi comentario arriba no busca desestimar tu idea.

Me alegra mucho ver el interés que le pones al tema.

Y has encontrado algo que es interesante, ya sea para implementar y probar, como para partir de ello como idea y usarlo como base.

 

Es una buena alternativa, que requeriría un trabajo por encima.

Link to comment
Share on other sites

Si era mi objetivo, la parte que he citado como base o referencia para hacerlo de vuestra manera. También he mirado soluciones a eso proporcionadas por otros programadores pero para versiones siguientes a la 3.3.5 . Si puedo ayudar con algo aunque no he visto c++ al final la sintaxis es parecida y la lógica igual en todos los lenguajes. De todas formas suerte con la tarea!
Link to comment
Share on other sites

  • Administrador

No sé de cuáles lenguajes de programación conozcas, pero si, en algunos casos la sintaxis es similar.

La lógica se comparte también, un "if", por ejemplo, funciona igual siempre que se adapte al lenguaje que se utiliza.

 

Realmente agradecemos tu interés y espero que hayas tomado a buenas maneras mi comentario.

Recuerda que ante cualquier otra idea o sugerencia puedes usar estos foros o comunicarte conmigo en Discord.

 

Creo que hemos cruzado ya unas palabras por una denuncia en una raid.

Link to comment
Share on other sites

Actualmente estudio php y javascript, tambien se puede dicir que se java ,C# y visualbasic .. ademas de temas de diseño web. El c++ me recuerda a php mucho por la forma de llamar los metodos -> y lo demas es muy parecido. Lo comprendo por asi decirlo pero no he intentado programar todavia en c++ .

 

No he tomado a malas tu comentario y si que hemos hablado por un ninjeo que hubo, me ha gustado la forma en que lo habeis manejado.. de ahi mi interes por aportar algo.

Link to comment
Share on other sites

 Share

×
×
  • Create New...