Jormundgander 0 Posted March 2, 2014 Bueno como el titulo lo dice, me podrian ayudar a hacer un NPC que entrege un item X pero solo 1 vez por cuenta se los agradecería. Quote Share this post Link to post Share on other sites
0 jaBote 438 Posted March 3, 2014 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. 1 diieg0 reacted to this Quote Share this post Link to post Share on other sites
0 Jormundgander 0 Posted March 3, 2014 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. Quote Share this post Link to post Share on other sites
0 jaBote 438 Posted March 3, 2014 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! 2 diieg0 and darknis reacted to this Quote Share this post Link to post Share on other sites
Bueno como el titulo lo dice, me podrian ayudar a hacer un NPC que entrege un item X pero solo 1 vez por cuenta se los agradecería.
Share this post
Link to post
Share on other sites