Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Everything posted by jaBote

  1. Hope I get enough spare time to make a translation on Ziu's patch translations.Some are way too big...
  2. Específicamente de eso no entiendo mucho. Intenta editar las packet keys con NEMO y probar con las tuyas propias, o al menos las que vienen por defecto.
  3. ¿Es posible que para que funcione tengas que añadir un diff llamado "Enable packet encription" mientras estás diffeando el cliente?
  4. Si te soy sincero, yo suelo evitar cualquier cosa en relación con el client-side ya que me parece cuanto menos complicado, y muy críptico todo. Personalmente suelo usar clientes prehechos de gran calidad como los de @ossi0110, que tiene unos cuantos en client-side releases, que si bien no se ajustarán del todo a lo que necesitas en tu proyecto, te dan las herramientas para rediffearlos y hacer el tuyo propio, así como añadir tus customs. Aún así, en el tema Requested Links (enlaces muy solicitados), situado en el menú superior dentro de la pestaña "+ Others", tienes enlaces a los anteriores proyectos donde se conservan clientes de otras fechas. Últimamente se tienen muy pocos clientes estables para uso. Para diffearlos a tu gusto, pues honestamente te recomiendo utilices una nueva herramienta como NEMO (con la que aún no he podido experimentar pero según dicen da hasta gusto usar). El diff patcher online de rAthena fue buena idea en su momento, pero como puedes ver si accedes a su página no te interesa mucho usarlo. Por supuesto que tienes que poner el PACKETVER de tu cliente y luego compilar. De esta forma le dices al emulador cómo tiene que comunicarse con el cliente, porque se tiene que cada cliente es bastante especialito como mínimo y requiere que algunas cosas se le envíen de forma diferente. Recuerdo que el PACKETVER es simplemente la fecha aaaammdd (año-mes-día) del cliente para facilitar las cosas. También tienes que tener cuidado con que si estás usando un cliente que es ragexeRE y no un ragexe, tienes que descomentar la línea 55 de src/common/mmo.h: #ifndef PACKETVER#define PACKETVER 20131223#endif // PACKETVER//Uncomment the following line if your client is ragexeRE instead of ragexe (required because of conflicting packets in ragexe vs ragexeRE).//#define ENABLE_PACKETVER_RE#ifdef ENABLE_PACKETVER_RE#define PACKETVER_RE#undef ENABLE_PACKETVER_RE#endif // DISABLE_PACKETVER_RE
  5. Yo en tu lugar trataría de usar algún que otro cliente más nuevecito... Aún así, puedes añadir tus paquetes en src/map/packets.h, solo recuerda mantener el orden cronológico de los clientes porque si no te puedes llevar una sorpresita bastante frustrante y además difícil de descubrir el por qué del fallo .
  6. Estas preguntas ya son algo más complicadas. Creo que al final se acabó lanzando de forma gratuita en rAthena la modificación para facciones, aunque supongo que si el desarrollador principal no lo ha ido actualizando la modificación estará ya totalmente obsoleta. Aquí hicieron el plugin en DLL (que nunca supe cómo añadirlos manualmente si no es compilando a través de su código) aunque tiene pinta de que le ocurre lo mismo. Creo que con summon puedes hacer un poco el paripé (aunque creo que no funciona el truco de la mob GID), aunque no dispondrás de ningún tipo de control avanzado sobre él (ni de su HP, aunque eso sí estaba en la mob control suite). He echado un par de horas sin una versión de prueba de Hercules (las que tengo de momento no están funcionales por diferentes proyectos tanto públicos como privados y no puedo usar más) para intentar que summon devuelva una GID, aunque sin éxito porque las funciones usadas en el comando no te dan la GID de forma directa. Sobre intentar hacer un SC_START para mobs, tras empezar a hacer un nuevo comando (que no sabría si iba a funcionar por lo anteriormente comentado) y tratando de comprender bien el comando SC_START existente, parece que puedes pasarle una GID de monstruo para que le haga el status. Pruébalo si puedes y ya me comentas. Un saludo.
  7. ¡Hola de nuevo! Tengo malas noticias en general sobre las peticiones/sugerencias que has hecho. Vayamos por partes: Sobre las Summon ID: Esto formaba parte en eAthena de una suite de comandos de scripting (llamada mob control suite) hechos por Ultramage, que fue posteriormente eliminada en la propia eAthena debido a que estaba muy ineficientemente programada, usando gran cantidad de recursos. Yo mismo no estaba en el mundo del RO entonces, así que no puedo decirte muy bien qué fue de ellos. Lo que sí sé es que en Hercules se plantean reintegrar dicha suite como plugin para Hercules aunque no se ha puesto aún nadie a la obra. Aunque sí puedes hacer uso del script command monster con un único monstruo a la vez y guardar su game ID, para poder controlarlo de forma básica más tarde, con los pocos comandos remanentes de la citada suite (unit*). Sobre las variables de Party: Aunque no lo encuentro ahora mismo, creo que esto ya fue sugerido y rechazado como sugerencia porque había una forma de hacer cosas parecidas. Yo personalmente iteraría en toda la party, le pondría a todo el mundo la variable deseada como variable temporal (@var, válida hasta que se desconectan del servidor) y haría las comprobaciones pertinentes en cada NPC. Y no estoy seguro de esto, pero creo recordar que las variables de instancia ('var, variable de party que está haciendo una instancia) también son válidas para Battlegrounds. También desde el Staff se está hablando de hacer un comando de scripting que se ejecute simultáneamente en cada usuario conectado en una misma party, aunque no puedo contarte mucho más al respecto. Sobre las variables temporales de mob: No recuerdo si estaba en la mob control suite, aunque que sepa nunca se ha hablado de esto en ningún sitio. Sobre hacer andar las mobs: Como comenté en el apartado 1, puedes hacer esto obteniendo la GID del monstruo y usando unitwalk. Sobre mobs que defiendan a un grupo: Puedes hacer uso del comando de scripting summon. Creo que no es exactamente lo que buscas aunque puedes hacer buen uso de él. Siempre puedes ir al foro de sugerencias del emulador (en inglés) y sugerir la implementación de alguna que otra nueva característica. No es complicado obtener apoyo aunque he de reconocer que siempre tardan bastante debido a que aquí hay menos desarrolladores y pasan más tiempo solucionando bugs y ajustando comportamientos oficiales más que a esto. Por otro lado, no sé personalmente la versión de DirectX que usan en el cliente, aunque preguntando en el IRC me han respondido que aún están utilizando DirectX 7. P.D.: Como nota curiosa, no me explico cómo he caído enfermo dos veces este mes, cada vez exactamente un día después de cada mensaje tuyo en este topic ¡Un saludo!
  8. Not usually for this kind of topics, but felt like I should participate for once /heh Ludwig van Beethoven: Piano Sonata No.8 in C minor, Op.13 -"Pathétique" - 3. Rondo (Allegro)
  9. You can use anything that sets you up a MySQL server, but some steps would be different. We are just walking through the easiest way at our point of view.
  10. You just have to disable 64 bit compilation if you're running a 32-bit OS. Else you don't have to actually mind.
  11. Not possible unless you perform some source modifications.
  12. I haven't tested myself and don't know very well where's that sitting sprite, so I don't really know
  13. A nifty way of doing that in scripting is checking if the mob has MvP experience to deliver when killed. I'm not that good on source but you could find a way to test if that assumption still works for SRC. It should, too.
  14. ¡Hola! Yendo directos a la pregunta, Hercules ha dado un cambio de filosofía bastante radical y se basa mucho más en la eficiencia y la flexibilidad que los proyectos hermanos. Para ello se ha modificado sustancialmente el código previo, facilitando enormemente la creación de plugins y modificación del código fuente siempre y cuando "se sepa dónde tocar". Si alguno se pone a mirar sin tener mucha idea pues la dificultad de modificación de código fuente es exactamente la misma que en eAthena salvo cuando quieres añadir nuevas funciones (no modificar las existentes), puesto que para ello hay que añadirlas a una interfaz (para los plugins más que nada). Aunque haya comentado que tocar el código fuente es prácticamente igual de sencillo (o complicado) que antes, tener conocimientos de cómo modificar cosas en eAthena/rAthena traerá con casi total seguridad más problemas que soluciones debido a un sutil cambio. No tendrás ningún problema en adaptarte si tienes en cuenta que debes "olvidar" cómo se hacían los cambios anteriormente. Simplemente, para llamar a otra función ya no se hace directamente, sino a través de una interfaz. Te doy mi palabra de que aunque esto te suene a chino, sabrás adaptarte de forma muy natural y sin problemas si haces ese ejercicio de "olvido". Más que nada te lo digo yo que no soy muy bueno tocando el src y he aprendido a hacer mis pinitos con Hercules muy pronto. ¡Un saludo! Edición: He esperado a que me respondiera un desarrollador porque no me sonaba que se hubiera implementado soporte de ejecución simultánea en varios núcleos (multi-threading). En efecto no lo está en su mayoría, aunque algunas partes del emulador sí utilizan varios núcleos a la vez. De todas formas no tienes por qué preocuparte mucho si tu máquina tiene un procesador decente, a menos que quieras tener un servidor de enormes proporciones. En un núcleo de 2.66 GHz aguantas perfectamente tener el servidor encendido, más alrededor de 200 usuarios sin ningún tipo de problemas (quizás sí si da la casualidad de que están todos ejecutando algún script muy pesado, aunque eso ya es un caso particular).
  15. Mapflags are still being used in scripts through setmapflag and also in map_zone_db... I'm not sure whether there is any way to use zones via scripts. So it's possible but I've never got to test that. Example: setmapflag "mymap",mf_zone,"custom";
  16. I think it's done Themon: http://herc.ws/board/topic/4328-2014-01-15-full-client-download/
  17. jaBote

    [HELP] npctimer

    I think it's easier for your server's processing capabilities just calculating the time difference from when the user logged out by using the OnPCLogoutEvent to when he logs in back when he uses OnPCLoginEvent. You can use gettimetick(2) for this. Once you know the time the user went out and the time it's logged back in, and since gettimetick(2) is a measure of seconds from January 1 1970, you'll only need to subtract the logout time to the login time (now you have the difference) and then give according exp. This will reduce your processing time burden, because it's way too heavy for a processor to host, say, 5000 timers at once*? *one per character be it online or not, based on a small-sized server of mine that was run alive for some more than a year.
  18. First of all... Where do you assign the .@i var? O.o If it isn't assigned it defaults to 0 and you'll have a nifty stone curse for 10 minutes. I've also fixed a potential issue with close being used when there's no message windows, which happens to guild masters and now guild members too. You can have the guild member part fixed this way (I've also fixed indentation for making it more readable): prontera,155,181,5 script Guild Owner 718,{ set .Map$,"prtg_cas03"; if (getcharid(2) != getcastledata(.Map$,1) && getgmlevel() < 50) { mes "Only ^FF0000"+getguildname( getcastledata( .Map$,1 ) )+"^000000 members can use this services."; close; } else { sc_start .@i,600000,0; } close;}
  19. http://herc.ws/board/topic/152-obtaining-hercules/
  20. You're missing quite a lot basic information. After downloading Hercules, you have to compile it in order to make it work and generate the exe files: http://herc.ws/wiki/Compiling
  21. Lo siento, eso de pedirte la información en inglés es porque publicaste el mensaje en inglés. Me ocupé de mover el tema al foro en español, donde podemos darte soporte en español sin problemas. No soy especialmente bueno en la parte del cliente para ser concreto, aunque necesitas un GRF o al menos un clientinfo.xml que te funcione para poder acceder a tus servidores y no al oficial como hace por defecto. Esos errores de NO MSG salen porque intentas usar msgstringtable.txt y no lo tienes debido a que ese fichero también es propio de los GRF custom. A todo esto, para darte cualquier tipo de soporte específico para el cliente, nos es obligatorio saber qué versión de cliente estás utilizando porque cada cierto tiempo Gravity implementa cambios en el cliente y hace que se comporte de formas distintas. Sería también apropiado saber si se produce reacción alguna de las consolas en cuanto intentas conectarte al servidor. Son datos básicos que nos ayudan a poder darte una mejor solución al problema. ¡Un saludo!
  22. Try using NEMO, posted on the client-side releases section of this forum.
  23. You usually want to debug on a test server. Can't be much of a help right now because I'm on my cellphone, but try installing and applying screen on your server (apt-get install screen) and run your server on screens for attaching later. Or google something similar to "output of a program to a file linux", I'm getting very good results on that one. Sorry I can't be of much help right now.
  24. Nope. Without a source edit it's impossible to get the two at the same time, but would be a nifty feature to add that somewhere in the scripting engine...
  25. Thanks for the setmapflag point, I just supposed Cabrera would have them set by himself somewhere else and didn't add them on the script. I usually prefer to make the scripts readable for the people, so that they could easily modify and/or use them for learning. At least in my hopes someone would ever get encouraged to jump upon the scripting because of my scripts...
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.