XatiyaRO
General => Errores y Bugs => Mensaje iniciado por: Ereborn en 15 de Diciembre de 2012, 23:08:55 pm
-
Buenas, solo reportar un evento raro donde el efecto de slow grace ha durado unos 5 minutos seguidos aun cuando no estaba dentro de la cancion en ningun momento.
Creo que puede deberse a que el efecto se mantiene despues de morir (estaba en slow grace cuando me mataron y el efecto dura normalmente 20 segundos despues de volver a city, lo que no se si sera bug tambien) y se puede bugear a veces.
-
Me paso lo mismo hoy con el sinx una gypsi metió slow y después de un buen rato no se me quitaba(contando que tenia autoritative) y me volvieron a dar agi.
-
Up, añadir que la duracion del slow grace en woe esta siendo muy superior a 20 segundos (esta vez muriendo gipsy)
-
Doy un Up a esto porque, desde hace ya un tiempo, encuentro que el efecto dura demasiado. En la descripción de la skill hay dos valores: stay duration (lo que dura la skill activa) y effect duration (el tiempo que te dura como efecto adverso). Sé con seguridad que dura más de 20 segundos y eso no debería ser posible de acuerdo con la descripción de ratemyserver. Si está modificado en este servidor, me gustaría que lo dijesen públicamente (alguna persona de responsabilidad y que tenga peso en el staff).
Saludos.
-
la duracion del slow grace es de 3 min, aunque igual he notado que esta durando mas de lo normal ultimamente
-
la duracion del slow grace es de 3 min
o.0
Lo "normal" son 20 segundos después de salirte de la canción, lo que edani llama "effect duration". Había ocasiones en las que el Slow del teamfight anterior nos seguía afectando durante la WoE :S
-
la duracion del slow grace es de 3 min
o.0
Lo "normal" son 20 segundos después de salirte de la canción, lo que edani llama "effect duration". Había ocasiones en las que el Slow del teamfight anterior nos seguía afectando durante la WoE :S
no se vayan por las descripciones de ratemyserver que son una basura xD, cosa de leer el script de la skill
-
la duracion del slow grace es de 3 min
o.0
Lo "normal" son 20 segundos después de salirte de la canción, lo que edani llama "effect duration". Había ocasiones en las que el Slow del teamfight anterior nos seguía afectando durante la WoE :S
no se vayan por las descripciones de ratemyserver que son una basura xD, cosa de leer el script de la skill
¿Cómo puedo leer los scripts de las skills?
En la descripción de la skill se indica que la duración es de 180 segundos, pero eso es lo que dura la canción en la gypsy sin que haga amp, cambie de arma, etc. Una cosa es eso y otra el tiempo que te sigue afectando una canción sin que haya una gypsy/clown tocándola encima tuya.
-
coinciden un poco la duracion de la skill puesta con la del efecto, al menos para esta cancion, para el ms riff y demas skills de "soporte" la duracion es de 20 seg al salir de la cancion, y en el scrip que lei (lo puedes hacer en la pagina de eathena con uno cuantos conocimientos de programacion y tal) la duracion aprox del movement speed reducido por la cancion es de 3min, el efecto del ASPD reducido si es de solamente 20 seg
-
Googleando un poco he encontrado algunas cosas. No soy experto en la materia, así que pido que no se me pida demasiado y puede que algo que diga no es del todo cierto, fruto de mi desconocimiento.
Primero de todo, una descripción de la skill: http://irowiki.org/wiki/Slow_Grace. Creo que lo explica bastante bien y se entiende de una manera muy por encima cómo funciona Slow Grace.
Luego, yendo un poco más a fondo, busqué el script de la skill y esto fue lo que encontré (se encuentra en el archivo skill.c):
case DC_DONTFORGETME:
val1 = 3*skilllv+(status_get_dex(src)/10); // ASPD decrease
val2 = 2*skilllv+(status_get_agi(src)/10); // Movement speed decrease
if(src->type == BL_PC){
val1 += pc_checkskill((struct map_session_data *)src,DC_DANCINGLESSON);
val2 += pc_checkskill((struct map_session_data *)src,DC_DANCINGLESSON);
}
break;Cómo no soy experto en programación, a mí no me dice nada dicho código, no veo que ponga nada de una duración expresada en tiempo. Quizás, el código sí que esté haciendo referencia, pero yo no lo veo.
Por último, quise revisar el fichero donde se especificaba el tiempo que dura una skill o los delays, etc. (parece ser que se llama skill_cast_db.txt) y esto es lo que encontré: http://code.google.com/p/rathena/source/browse/trunk/db/re/skill_cast_db.txt?r=16983 de lo cual interesa:
// Structure of Database:
// SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time
//== Explained:
// CastingTime : time to cast this skill, in miliseconds
// AfterCastActDelay : "normal" delay, character cannot use skills, in miliseconds
// AfterCastWalkDleay : amount of time before character can move again, in miliseconds
// Duration1 / Duration2 : usually the durations used by the skill, at special cases it is used to hold special data
// Cool Down : amount of time until character can re-use this skill, in miliseconds
// Fixed Casting Time: the skills fixed casting time (when 0, uses 20% of cast time and less than 0 means no fixed cast time)
//-- DC_DONTFORGETME
328,0,0,0,180000,20000,0,0
// Duration1 / Duration2 : usually the durations used by the skill, at special cases it is used to hold special data
328,0,0,0,180000,20000,0,0
Lo que yo entiendo de esta información es que los valores de effect duration y stay duration son diferentes. Otra cosa ya es que esto, precisamente, se haya modificado.
En fin, repito: no soy experto en esto y, por lo tanto, puede ser que esté explicando algo mal. Quisiera que alguien que entienda se pronunciase (staff de programación); y si además me/nos aclarase qué pasa pues mejor ;).
Saludos.
-
Gracias por el enlace.
Viendo la descripción de cada número y los números en sí se deduce lo siguiente:
La canción dura 3 minutos (180.000 milisegundos). Algunas canciones duran 3 y otras duran 2. Esto se refiere al tiempo que está la gypsy cantando si hace la skill (o Encore) y no cancela de ninguna manera la canción; el recuadro de color que le rodea.
El Duration 2, es decir, lo que dura la canción después de que la Gypsy ya no esté cantando sobre ti, es 20.000 milisegundos para TODAS las canciones (excepto dissonance y ugly dance), entre las que se incluye el Slow Grace.
-
//-- DC_DONTFORGETME
328,0,0,0,180000,20000,0,0Yo diría, que según eso, el efecto son 20 segundos. Como todas las canciones, vaya.
Y 20 segundos no dura, al menos aquí. La última woe estuve más de 5 minutos con el efecto.
-
//-- DC_DONTFORGETME
328,0,0,0,180000,20000,0,0Yo diría, que según eso, el efecto son 20 segundos. Como todas las canciones, vaya.
Y 20 segundos no dura, al menos aquí. La última woe estuve más de 5 minutos con el efecto.
Eso esta bien en el código, lo que tiene que pasar es que cuando se te aplica otra skill, cambias de mapa, mueres, deslogueas, etc; no recuperas tu antigua velocidad de movimiento, lo que hay que saber es qué es ese evento que provoca eso (todo esto lo digo partiendo que dudo que desde que me fuera se editara eso).
case UNT_DONTFORGETME:
case UNT_FORTUNEKISS:
case UNT_SERVICEFORYOU:
if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
return 0;
if (!sc) return 0;
if (!sce)
sc_start4(bl,type,100,sg->skill_lv,sg->val1,sg->val2,0,sg->limit);
else if (sce->val4 == 1) {
//Readjust timers since the effect will not last long.
sce->val4 = 0;
delete_timer(sce->timer, status_change_timer);
sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type);
}
break;
case DC_DONTFORGETME:
case DC_FORTUNEKISS:
case DC_SERVICEFORYOU:
if (sce)
{
delete_timer(sce->timer, status_change_timer);
//NOTE: It'd be nice if we could get the skill_lv for a more accurate extra time, but alas...
//not possible on our current implementation.
sce->val4 = 1; //Store the fact that this is a "reduced" duration effect.
sce->timer = add_timer(tick+skill_get_time2(skill_id,1), status_change_timer, bl->id, type);
}
break;
if( !status_isdead(src) && ((TBL_PC*)src)->state.warping && !((TBL_PC*)src)->state.changemap ) {
switch( group->skill_id ) {
case BA_DISSONANCE:
case BA_POEMBRAGI:
case BA_WHISTLE:
case BA_ASSASSINCROSS:
case BA_APPLEIDUN:
case DC_UGLYDANCE:
case DC_HUMMING:
case DC_DONTFORGETME:
case DC_FORTUNEKISS:
case DC_SERVICEFORYOU:
skill_usave_add(((TBL_PC*)src), group->skill_id, group->skill_lv);
break;
}
}http://code.google.com/p/rathena/source/browse/trunk/src/map/skill.c
Os faltaba copiar esas partes del codigo, creo que la ultima parte puede ser la que no esté bugeada o algo de eso.
-
El tiempo que dura la skill son 3 minutos. El tiempo que debería durar el efecto sobre el enemigo son 20 segundos (como afectar un MS o cualquier otra de support). Pero en este server esta bug llegando a durar minutos.
//-- DC_DONTFORGETME
328,0,0,0,180000,20000,0,0Yo diría, que según eso, el efecto son 20 segundos. Como todas las canciones, vaya.
Y 20 segundos no dura, al menos aquí. La última woe estuve más de 5 minutos con el efecto.
Eso esta bien en el código, lo que tiene que pasar es que cuando se te aplica otra skill, cambias de mapa, mueres, deslogueas, etc; no recuperas tu antigua velocidad de movimiento, lo que hay que saber es qué es ese evento que provoca eso (todo esto lo digo partiendo que dudo que desde que me fuera se editara eso).
De hecho, el efecto ms dura despues de muerto. Lo que deberia haber es algún tipo de "desdope" cuando mueres, exceptuando efectos que perduran aún muerto como pergaminos de exp y similares.
-
Si rez dice que el efecto del ms te dura después de muerto, seguramente el bug esté en el código que ha puesto Phi. A ver si alguien de programación lo puede revisar.
-
¿Algún miembro de programación que se digne a decirnos algo?
-
Sí es un bug, parece que ocurre algún fallo con el temporizador en todas las canciones. Está reportado en eAthena, así que no es del servidor. Cuando se encuentre la solución se pondrá.
-
Sí es un bug, parece que ocurre algún fallo con el temporizador en todas las canciones. Está reportado en eAthena, así que no es del servidor. Cuando se encuentre la solución se pondrá.
Muchas gracias =)
-
Error corregido.
El parche se aplicará en el próximo reinicio.