Bueno, no entraremos en controversias, para comenzar, después de la implementación de los Battle Grounds en el emulador, se decidió cambiar el tipo de ataque que los mobs tendrían, entiéndanse sus atribuciones en las armas dando origen a que las armas ya no fueran neutrales en los mobs si no que estas no tuvieran un elemento… ¿curioso no?, es por eso que los ataques se atribuían a un elemento ¿null?, y no te podías proteger ni por reducción, ni por cartas elementales.
Mi primera teoría: Los mobs habían cambiado el ataque de acuerdo al tipo elemento que era, teóricamente estaba equivocado eso no podía ser, puesto que después de hacer una primera prueba con 110% (una manteu) a todos los elementos aun me seguían pegando.
Entonces ¿qué rayos pasa?, siguiendo con el manteu a 110% y me seguían pegando, hasta que Eureka se me ocurre llamar a un Seyren haciendo que me persiguiera.
¿Por qué el Spiral Pirce del Seyren me curaba?, entonces me formule, algo ha de estar cambiado. Obvio no xD… después de 150 muertes aproximadamente.
Empecé a revisar línea a línea cada parte del código del emulador (debido a que el SVN esta caído y se me hace más fácil poder comparar ahí), y Eureka de nuevo, encontré algo que me llamo la atención.
//forced neutral for monsters
¿Y que sucede con lo otro?, empecé a trabajar en el archivo battle.c buscando este pedazo de código.
if (!skill_num && tstatus->flee2 && rand()%1000 < tstatus->flee2)
{ //Check for Lucky Dodge
wd.type=0x0b;
wd.dmg_lv=ATK_LUCKY;
if (wd.div_ < 0) wd.div_*=-1;
return wd;
}t_class = status_get_class(target);
s_ele = s_ele_ = skill_get_ele(skill_num, skill_lv);
if (!skill_num || s_ele == -1) { //Take weapon's element
s_ele = sstatus->rhw.ele;
s_ele_ = sstatus->lhw.ele;
if (flag.arrow && sd && sd->arrow_ele)
s_ele = sd->arrow_ele;
if (battle_config.attack_attr_none&src->type)
nk|=NK_NO_ELEFIX; //Weapon's element is "not elemental"
} else if (s_ele == -2) { //Use enchantment's element
s_ele = s_ele_ = status_get_attack_sc_element(src,sc);
}
Como podemos ver ahí encontramos la atribución a este post //Element is not elemental, o sea que a partir de esas implementación el ataque de las armas en mob no tiene ningún elemento. ¿Pareciera?
Bueno si tu servidor es elemental, con equipo de 4 slots y tus usuarios ya se acostumbraron a “subir de nivel” de esta forma sin que los mobs los maten, editamos la siguiente línea:
nk|=NK_NO_ELEFIX; //Weapon's element is "not elemental"
De la siguiente manera:
nk &= ~NK_NO_ELEFIX;
De tal forma que la nueva versión del código es:
if (!skill_num && tstatus->flee2 && rand()%1000 < tstatus->flee2)
{ //Check for Lucky Dodge
wd.type=0x0b;
wd.dmg_lv=ATK_LUCKY;
if (wd.div_ < 0) wd.div_*=-1;
return wd;
}t_class = status_get_class(target);
s_ele = s_ele_ = skill_get_ele(skill_num, skill_lv);
if (!skill_num || s_ele == -1) { //Take weapon's element
s_ele = sstatus->rhw.ele;
s_ele_ = sstatus->lhw.ele;
if (flag.arrow && sd && sd->arrow_ele)
s_ele = sd->arrow_ele;
if (battle_config.attack_attr_none&src->type)
// Remmi Atribution Change
nk &= ~NK_NO_ELEFIX; // Forced neutral for monster by Remmi Change
} else if (s_ele == -2) { //Use enchantment's element
s_ele = s_ele_ = status_get_attack_sc_element(src,sc);
}
Y ahora todo regresa a la normalidad, con mobs que nos curan si tenemos protección o inhumanidad a un elemento.
Recuerda que este es un cambio de eAthena y de Gravity, por favor considera las atribuciones a las modificaciones, una motivación o felicitación no esta de más y no te hagas del derecho del código, y si algún servidor elemental de los que actualmente conozco les dice que fue invención de ellos lo de los mobs con ataque Null no es cierto >.<.
Posdata: Gracias Geraldine por ayudarme a testear el código cambiado ^^
exelente guachon (XD)
ResponderEliminarpero para los usuarias que tendriamos que aser para que continue elemental nuestro server?
o van a sacar un parche nuevo con respecto a ese pequeño error que atodos nos involucra?
(recuerden que la mayoria no entiende de programacion)
PD:y grax ami ya me funciona
No, es solo recompilar el emulador y listo todo solucionado, sin editar mobs ni nada, solo fue una modificación que se hizo en eathena.
ResponderEliminarExcelent aporte viejo, siempre solucionando problemas
ResponderEliminarFake
oies wena pero lo malo es k no se de programacion =( almenos dime como se llama el emulador, como entrar y hacer ese movimiento x3
ResponderEliminarEl emulador se llama eAthena (http://eathena.ws) para hacer todo ese movimiento se hace desde el SRC, en la sección de guias en el soporte español esta como compilar desde Windows con visual C++, ya que el emulador esta escrito en C :p, si eres nuevo mejor lee, aprende como se usa el emulador porque a mi conocerlo a fondo mas haya de implementar cosas, me ha tomado casi 1 año y medio
ResponderEliminareris muy Inteligente Diwolf, minimo deberian de ponerte de programador en el server elemental mas conocido(tu ya sabes a q me refiero XD)
ResponderEliminary como siempre e dixo diwolf para precidente xD
ATTE Lord Shivi
No me esperaba menos .....
ResponderEliminarVeamos si el copy paste ... no se les va en collera XD
men te pasaste con eso....cuando tendremol EternalRO otravez >_>.
ResponderEliminarpero mientras me gusto ke yo pude entender parte de lo escrito gracias a mis clases de programacion XD
PD: TU RULEAZ....
Obi D. Knight