Jump to content
  • 0
Sign in to follow this  
Jormundgander

Entregar item 1 vez por cuenta

Question

3 answers to this question

Recommended Posts

  • 0

Hola.
 
El script que pides es algo muy básico que (en mi humilde opinión) realmente deberías conocer antes siquiera de plantearte abrir un servidor. No obstante, soy consciente de que todos hemos empezado servidores sin ningún tipo de conocimiento específico, por lo que en vez de convertir este mensaje en una regañina, te voy a ofrecer la ayuda.
 
Existe desde hace tiempo una serie de guías básicas de scripting que pueden ayudarte como estos vídeos de M45T3R o las guías de scripting básico de Rokimoki (muy viejas y en la que se han perdido los caracteres especiales del español pero aún 99% válidas), aunque también deberías considerar el uso de la guía "oficial" (en inglés), incluida en cada descarga completa del emulador y situada en doc/script_commands.txt. De hecho, la petición de NPC que has hecho se cubre totalmente con el capítulo 1 de la guía de Rokimoki.
 
El siguiente NPC se trata de un NPC genérico que resuelve tu problema de forma básica. Recuerda sustituir los parámetros entre los signos <> por lo que tú quieras o necesites y las indicaciones de tabulaciones (marcadas con <%TAB%>) por un espacio de tabulación (es obligatorio para su funcionamiento).
 

<mapa>,<x>,<y>,<dir><%TAB%>script<%TAB%><nombreNPC><%TAB%><sprite>,{	if (#objetodado == 0) { // El valor de una variable que no ha sido previamente asignado es 0		mes "Hola, bienvenido.";		mes "Te he dado un objeto como regalo de bienvenida.";		getitem <ID_ITEM>,<CANTIDAD>;		#objetodado = 1; // #objetodado tiene prefijo #, que es variable de cuenta, al ser 1 el NPC ya usará el else en vez de esta rama y no dará un objeto.		close; // Cierre del diálogo	} // Fin if	else { // Si la cuenta ya tiene el objeto del NPC, #objetodado será distinto de 0		mes "Hola.";		mes "Ya te dí un objeto, no te puedo dar más objetos.";		close;	}}

 
Consejos:

  • [*]Puedes obtener el mapa y las coordenadas x,y del NPC cuando quieras usando /where desde el cliente. [*]Una dirección de 4 o 5 suele orientar el NPC para que mire hacia abajo, mira la documentación para saber el resto de direcciones si quieres que el NPC mire hacia otro lado. [*]¡Evita que el nombre del NPC supere los 23 caracteres! [*]Generalmente te conviene usar la ID de sprite de un NPC para que haya compatibilidad con versiones anteriores de los emuladores, aunque en las últimas versiones de Hercules también puedes usar las constantes de sus nombres. Puedes usar gran parte de los sprites de NPC que aparecen catalogados en la página de @Ai4rei aquí:
http://nn.nachtwolke.com/dev/npclist/ [*]¡Que no se te olvide sustituir la item ID y la cantidad que quieres entregar! Si quieres entregar más de un objeto diferente, añade más comandos getitem con su ID y cantidad. [*]La variable utilizada en este NPC debe ser única. Es decir, ningún otro NPC debe estar utilizándola. Comprúebalo. En ocasiones te interesa que una misma variable sea manejada por más de un NPC, pero no es así en este caso.

 

Espero haberte ayudado al menos un poco. Para próximas peticiones tuyas de NPC si son muy básicas no te daré el código completo sino que trataré de ayudarte a que seas tu mismo quien lo construya y así aprendas.

 

Un saludo.

Share this post


Link to post
Share on other sites
  • 0

Agradezco tu respuesta, y es 2 foro en el cual me responden con "El script que pides es algo muy básico que (en mi humilde opinión) realmente deberías conocer antes siquiera de plantearte abrir un servidor." o algo parecido... no es para tanto... Quizas no sabia por que nunca lo use y quizás no conozco mucho de scripter, pero tampoco soy estúpido...

 

Y justamente leyendo descubrí que tal simple era con poner un #. en la variable.

 

Bueno gracias de todas formas. 

Share this post


Link to post
Share on other sites
  • 0

Soy consciente de que Ziu en rAthena también te ha comentado algo similar, aunque hay un punto muy grande de diferencia: simplemente Ziu dice que no deberías tener un servidor y yo te he comentado que deberías saber de esto antes de llevar un servidor (con garantías). No obstante, no deberías pasar por alto el resto del primer párrafo, en el cual no solo he comentado que todos siempre hemos sido principiantes alguna vez sino que además era un intento de animarte, y es verdad: yo mismo aprendí a través de la paciencia de otra persona. No deberías tomarte tal cosa como una falta de respeto sino como un comentario constructivo, a título personal.

 

El scripting comporta el 90% de las necesidades (excluyendo aquellas derivadas de su web y sus añadidos o modificaciones gráficas, si tiene) que tendrás como administrador de cualquier servidor de Ragnarok Online y muchas veces es lo que marca la diferencia de un servidor que dura solo unos pocos meses (con el consiguiente enfado de sus usuarios) de uno que se mantiene durante años, y hablo tristemente desde la experiencia.

 

Muchas otras personas no se habrían tomado siquiera el tiempo de responderte, o en caso de hacerlo lo habrían hecho de mala gana (con un RTFM) y/o yendo directamente al grano. Yo te he considerado una persona aún no iniciada en scripting y te he enlazado a multitud de recursos que te servirán para aprender el scripting y (como comenté anteriormente) ayudarte a que seas tú mismo quien sepa construir sus propios scripts.

 

Para tu información, con una experiencia de más de cuatro años en scripting a avanzado he necesitado consultar el manual yo mismo para hacerte ese script porque no me sé de memoria todos los comandos. Ser bueno o experimentado no implica saber todo de memoria: Google y el manual de referencia (doc/script_commands.txt) son tus amigos y están ahí para que siempre puedas consultarlos. Probablemente hubieras recibido una respuesta más rápida y directa a tu problema si lo hubieses buscado tú mismo.

 

No eres estúpido: tienes potencial. Para desarrollar ese potencial necesitarás seguir preguntando a alguien que sepa más que tú o experimentar tú mismo. Como persona absolutamente capaz como considero que eres he dedicado mi tiempo no solo a responderte (como Ziu), sino a tratar de enseñarte un poco más de scripting y animarte a que seas tú mismo quien experimente y responda a tus propias dudas siempre que puedas.

 

Por último, me alegro de haber podido ser de ayuda, que a fin de cuentas para eso estoy.

 

¡Un saludo!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

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