jaBote

Global Moderators
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    42

Everything posted by jaBote

  1. Uf, las cosas de cliente no son lo mío, aunque creo recordar hace años que había problemas para meter mobs custom. Si te sigue saliendo el mismo error que el primer post, ¿estás seguro de que tienes en tu data el sprite del nuevo mob? Si no siempre dará error. En caso de que quieras utilizar el sprite de otro mob ya hecho te recomiendo "engañar" al cliente con el fichero db/mob_avail.txt de tu emulador. Muevo este tema a la sección de cliente, a ver si tienes más suerte.
  2. Elegir episodios no es posible en Hercules (ni en ningún otro emulador que conozca salvo Cronus, que está en Portugués y presenta otros problemas). No obstante, poner el emulador en modo pre-renewal (últimas novedades antes de instaurar Renewal) es posible, y más bien sencillo: Entra a tu copia local en src/config/renewal.h y observa que hay una serie de líneas que rezan así: /** * Renewal full toggle switch. * * Uncomment this line to disable all of the below settings at once. * Note: in UNIX builds, this can be easily done without touching this * line, by passing --disable-renewal to the configure script: * ./configure --disable-renewal */ //#define DISABLE_RENEWAL Lo que tienes que hacer (que entenderás si lees el inglés del texto anterior) es quitar las dos barras (//) en el #define DISABLE_RENEWAL, dejando el texto así: #define DISABLE_RENEWAL Una vez hecho esto, guarda el archivo y recompila el emulador. Debería ejecutarse en modo pre-renewal a partir de ese instante. Te recomiendo que en todo caso empieces una comunidad desde cero en modo pre-renewal y que no vayas cambiando de renewal a pre-renewal a las buenas con una base de datos en funcionamiento. La compatibilidad con modos pre-renewal es limitada, pero hasta donde pude comprobar funciona de forma apropiada. Un saludo.
  3. Hola. Me alegro de que hayas podido arreglar el problema por tu cuenta y siento no haber podido ayudar. ¿Podrías confirmar si se trata de un bug de nuestro emulador? En caso afirmativo, serías tan amable de escribir un reporte de error en GitHub (preferiblemente en inglés)? ¿Podrías comentar la solución para que otros miembros puedan tener acceso a la información? La comunidad depende mucho de ayuda de la propia comunidad, y mi conocimiento actual debido a los avances del emulador que no he podido seguir está volviéndose cada vez más limitado. Muchas gracias por tu atención.
  4. No estoy muy puesto en clientes actuales, aunque la verdad es que nunca se me dieron bien los temas de cliente . Que sepa cuando me tuve que comenzar a ausentar en estos temas del RO, por desgracia un accesorio no podía tener visibilidad física en un sprite del juego. Por favor, que alguien me corrija en caso de que ahora sí sea posible.
  5. ¿Has probado a ejecutarlo con derechos de administrador?
  6. I do support each and every of the points Jman posted. I do also support this All hail our new Development Manager!
  7. El plugin se encuentra desactualizado y no funciona con el gestor de plugins actual de Hercules. Esto ocurre porque el motor de plugins fue actualizado y ha habido una serie de cambios estructurales en el mismo que hacen que ese plugin no funcione actualmente. Esperemos a ver si @@Mhalicot se entera de que su plugin se encuentra desactualizado y puede actualizarlo. O puedes intentar actualizarlo tú, yo lo haría si encuentro un rato largo que echarle. Un saludo.
  8. Los mapas estarán siempre a menos que los elimines de tu cliente y el mapcache, pero el juego, con los scripts por defecto, evitará que puedas acceder a cualquier ciudad de Renewal de cualquier forma normalmente accesible para un usuario normal.
  9. Eso significa que el error está ya reportado y que es problema del código de Hercules (en rAthena no está) aunque nadie se ha puesto aún a trabajar en él.
  10. No entiendo muy bien a lo que te refieres. Aún así la primera ocurrencia de los mensajes podría no ser a la media hora, pero para el resto de ocurrencias sí tienes que calibrar que sea más o menos media hora (será un poco más aunque no voy a entrar en el detalle ya que no se trata, ni mucho menos, de un sistema de tiempo real critico). De todas formas, lo que más tergiversa la base de tiempos es la espera de 3 s entre mensaje y mensaje, que se hace aún antes de lanzar de nuevo el contador. Puedes probar a hacer esto (a sabiendas de que no termino de entenderte) a ver si mejora: OnTimer5000: if (.inUse) { set .inUse, 0; } else { getmapxy .map$,.x,.y,1; set .curX, callfunc("NPCWalk",.minX, .maxX,.minD,.maxD,.x); set .curY, callfunc("NPCWalk",.minY, .maxY,.minD,.maxD,.y); npcwalkto .curX, .curY; } .current_count++; stopnpctimer; initnpctimer; if(.current_count >= 360) { // Número de veces que camina antes de anunciar .current_count = 0; npctalk "Hola Forastero!"; sleep 3000; npctalk "Si Me Das 10.000 Zeny Te Doy Agility y Blessing"; sleep 3000; npctalk "En nivel 15 Por 5 Minutos , Te Sera De Gran Ayuda.!"; } end;
  11. Buf, del emulador llevo desactualizado desde que las cosas del día a día me pillaron, que viene a ser principios de año (desde entonces doy soporte casi únicamente en la sección hispana por falta de tiempo). Si antes iban y ahora no van, la forma "científica" de comprobarlo es descargando una versión antigua y comprobar que sobre el mismo cliente con el emulador de antes vaya y con el nuevo no (y después ir a reportar el bug en GitHub), aunque me sigue pareciendo muy extraño que el cliente simplemente se cierre sin más. Siento no poder ser mucho más de ayuda al respecto: a mi desactualización se une que siempre me llevé mal con el cliente. ¡Un saludo!
  12. 1.- Creo que no sin liarla con el cliente y meter el sprite del mob entre los sprites de NPC (cosa que no sé, nunca me llevé muy bien con el cliente), o a menos que haya habido una actualización reciente de scripting que permita hacerlo y de la que no esté informado. 2.- Como tu NPC camina cada 5 segundos, podemos hacer algo interesante. Si quieres hacerlo hablar cada 30 minutos puedes hacer la cuenta y "abusar" de la rutina de temporización haciendo una simple cuenta. Si media hora es 1800000 milisegundos, y se pasa cada 5000 milisegundos, por lo que la cuenta de veces que ha de pasar antes de anunciar nada es de 1800000/5000 = 360. El NPC quedaría más o menos así: prontera,162,193,4 script Sakura MAGALETA,3,3,{ set .inUse, .inUse + 1; [email protected] = 10000; [email protected] = 1; [email protected] = 3; if (@HD > gettimetick(2)) end; if ([email protected]) { if (Zeny < [email protected]) end; Zeny -= [email protected]; } specialeffect2 EF_HEAL2; percentheal 100,100; emotion e_thx; if ([email protected]) { specialeffect2 EF_INCAGILITY; sc_start SC_INC_AGI,300000,15; specialeffect2 EF_BLESSING; sc_start SC_BLESSING,300000,15; } if ([email protected]) @HD = gettimetick(2)[email protected]; end; set .inUse, .inUse - 1; end; OnInit: set .minX,148; set .maxX,163; set .minY,176; set .maxY,195; set .minD,0; set .maxD,10; npcspeed 200; initnpctimer; end; OnTimer5000: if (.inUse) { set .inUse, 0; } else { getmapxy .map$,.x,.y,1; set .curX, callfunc("NPCWalk",.minX, .maxX,.minD,.maxD,.x); set .curY, callfunc("NPCWalk",.minY, .maxY,.minD,.maxD,.y); npcwalkto .curX, .curY; } .current_count++; if(.current_count >= 360) { // Número de veces antes de anunciar npctalk "Hola Forastero!"; npctalk "Si Me Das 10.000 Zeny Te Doy Agility y Blessing"; npctalk "En nivel 15 Por 5 Minutos , Te Sera De Gran Ayuda.!"; .current_count = 0; } stopnpctimer; initnpctimer; end;OnTouch: specialeffect2 EF_HEAL2; percentheal 10,10; }//////////////////////////////////////////////////////////////////////////////////////function script NPCWalk { set .CP, getarg(4); set .DST, rand(getarg(2),getarg(3)); if (rand(2)) set .CP, .CP + .DST; else set .CP, .CP - .DST; if (.CP < getarg(0)) set .CP, .CP + .DST; if (.CP > getarg(1)) set .CP, .CP - .DST; return .CP;}
  13. Según veo, el problema puede ser que uses un cliente viejo que no soporte las tumbas de MvP o que tu cliente sea lo suficientemente reciente pero no dispongas del sprite de la tumba en tu GRF (el cliente deja de funcionar y, si no tienes los errores desactivados te salta un Gravity Error en ambos casos, para poder disponer de más detalles deberías tener activada la opción de mostrar errores al diffear el cliente). No tengo un conocimiento mucho más profundo del cliente, aunque puedes decidir usar el servidor sin tumbas de MvP para evitar estos problemas (en conf/battle/monster.conf, la opción mvp_tomb_enabled). Un saludo.
  14. Hola, Parece que no has adjuntado ninguna imagen, por lo que no podemos servir mucho de ayuda. La única pregunta que me surge al respecto que podría ser útil al no saber en absoluto lo que has hecho hasta ahora es: ¿Seguro que has diffeado el exe? Un saludo.
  15. No sé porque no he mirado los items que da el NPC, pero si getitem te crea los items en el suelo (cuando normalmente los crea en el inventario del usuario), es posible que el usuario no tenga suficiente capacidad de peso para tener todo en el inventario.
  16. Nunca he usado este tipo de herramientas por lo que puede que esté errado, pero deberías haber guardado una copia de seguridad antes de haberlo encriptado porque este tipo de encriptaciones, aunque reversibles, suelen ser complicadas de decodificar sin la clave.
  17. Posiblemente tengas un Izlude muy viejo. Prueba a utilizar el Izlude de un GRF nuevo, pues el Criatura Academy (así se llama) sustituye a las muy antiguas training grounds de los novices en otros mapas.
  18. Por lo pronto no ha llegado a mis oídos ninguna noticia más de esta gente, aunque desde inicios de año estoy más fuera que dentro del panorama del RO, por lo que me es imposible saber si la aparente calma es debida a una política más permisiva de lo que parecía en un inicio o si siguen haciendo cosas por ahí. Quizá haya ido un poco de sensacionalista cuando tiraron el top en ragnarokonline.es (lo cual no quita que sea un gesto horriblemente feo en su afán de proteger su negocio), pero la página del top (en el subdominio top.ragnarokonline.es) por ejemplo sigue ahí. Lo que no sabemos es cuáles son sus intenciones al respecto, porque siguen saliendo servidores privados en la lista ahí. De momento, ya que parecen más permisivos yo seguiría en el ajo; luego no sé. Total, si con el Tree of Savior todo lo relacionado con el RO se encuentra en mínimos históricos... Ya si envían un Cese y Desista pues a apagar el servidor y adeu. ¿Sabéis si han mejorado la traducción? Yo no puedo entrar por otros asuntos más importantes que un triste juego.
  19. Seems more than enough, but it's not possible to guarantee that unless you take your device and try to install it.
  20. Oh, my... Maybe I guessed the problem while moving this topic back to international sections. On char-server.conf: login_ip: 127.0.0.1 char_ip: 151.80.37.7 On map-server.conf: char_ip: 127.0.0.1 map_ip: 151.80.37.7 On your data/clientinfo.xml: Point the server address and port to your login server (151.80.37.7 as it's your IP and 6900 if you're using the default port). It's a fairly common issue on newbies making online servers. Try it and tell me. P.S.: Moving!
  21. Creo que el cash se usaba con el valor contenido en las siguientes variables: #CASHPOINTS: para los cashpoints de por sí; #KAFRAPOINTS: para los cashpoints "gratuitos" que puedes conseguir en los oficiales. Para manejarlos, simplemente haz scripts que manejen las citadas variables, o utiliza un script de cashshop. Un saludo.
  22. No estoy muy seguro ya que se fastidió mucho el /save desde fuentes oficiales y apenas lo he usado, pero por defecto todos los mapas que no tengan el mapflag nosave, permiten que hagas /save (puesto que creo que se lanza una petición al servidor para preguntar si puedes guardar ahí). Una mayoría de mapas con el nosave se encuentra aquí en /npc/mapflag/nosave.txt (ahora mismo desconozco por qué no aparecen las dungeons ni muchos mapas de fields, ¿eso es que /save vuelve a ser útil? No puedo comprobarlo ahora mismo). Por otro lado, puedes restringir el uso de /save bien con el citado mapflag nosave, o bien usando el script command setmapflag (la constante para el mapflag que buscas es mf_nosave) o directamente setmapflagnosave. Para instrucciones de como usarlos, puedes ver la guía en inglés: doc/script_commands.txt, desde la línea 6857 según la revisión actual a fecha de publicación de este mensaje. Si quieres eliminar ese mapflag utiliza removemapflag, descrito en dicho texto directamente a continuación de setmapflag, o bien elimina la parte del script que asigna el estado nosave al mapa en cuestión y vuelve a cargar los scripts en el servidor. Un saludo.
  23. Bueno, para poder hacerte tu propio panel de control necesitas como mínimo conocimientos de programación web (PHP por ejemplo) y de consultas a las bases de datos (los servidores utilizan MySQL, por ejemplo, pero son compatibles con MariaDB u otros similares). Ya que tu preocupación actual se basa en cómo insertar una cuenta, lo único que tienes que hacer es generar una consulta SQL que inserte una nueva fila dentro de la tabla login. Los únicos datos que realmente necesitas son usuario, contraseña, y sexo de la cuenta y tal vez el e-mail (por si te interesa ponerte en contacto con tus usuarios, aunque es un dato personal así que ojo) y la ID de grupo, por si prefieres hacer algo que no sea una cuenta normal. Deberías jugar tú mismo a insertar filas como ejemplo (con el gestor de bases de datos que prefieras) y probar si funcionan en el propio juego.
  24. Hola, No tengo mucho tiempo ahora mismo, pero te recomiendo que te mires el tipo de NPC que es el trader en la documentación. Básicamente el trader te permite hacer una tienda dinámica con gestión de precios y stocks (necesitas un cliente 20131223 o superior en este caso) Te recomiendo mirar doc/script_commands.txt en las siguientes líneas (basado en la versión actual del repositorio a fecha de publicación de este mensaje): Líneas 304 a 325 Líneas 1085 a 1098 Líneas 8987 a final de archivo Por cierto, tienes un ejemplo muy ilustrativo en /doc/sample/npc_trader_sample.txt