Solicitud Script NPC Cambiador de Items

kurinino

Miembro
LV
21
 
Awards
19
Hola amigos Alex, te quería pedir ayuda con un Script para un NPC que te pueda cambiar por ejemplo: 3 "Soulcrusher" (Mazo de 1 mano de la "Bag you Desire"), por una ficha de cambio "Ficha Bag you Desire". Y esa ficha tu puedes escoger cualquier item a elección dentro de la bolsa Bag you Desire. Entonces si has looteado varias bolsas de Bag you Desire, pero no te sale el item que tu quieres, puedes "sacrificar" 3 iguales para poder escoger el que necesitas. Te lo agradecería mucho Alex. Felices fiestas.
 
Solución
Hola,

No es por el orden, me costo la primera vez entenderlo, te explico:
Entre comas " ", la palabra que pondras, no tiene que contener las mismas letras que otras, en el caso de los soul items, "soul-bastion" y "soul-crusher" empiezan por soul, entonces uno o el otro funcionara, no los dos.
Lo que puede haces es agregar palabras distintas y te las cogera todas, cualquier orden,
Podrias no lo sé, soulbastion para uno y el otro le das otro nombre, dejando saber que es un soulcrusher ( club-soulcrusher ) por ejemplo, y al poner club, sabra que es esa palabra el soulcrusher.

Si es tonto, pero solo toma 1 palabra en todo el script que contenga las mismas letras.
Muchas gracias Alex, al final gracias a utilizar la nomenclatura...

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Hola amigos Alex, te quería pedir ayuda con un Script para un NPC que te pueda cambiar por ejemplo: 3 "Soulcrusher" (Mazo de 1 mano de la "Bag you Desire"), por una ficha de cambio "Ficha Bag you Desire". Y esa ficha tu puedes escoger cualquier item a elección dentro de la bolsa Bag you Desire. Entonces si has looteado varias bolsas de Bag you Desire, pero no te sale el item que tu quieres, puedes "sacrificar" 3 iguales para poder escoger el que necesitas. Te lo agradecería mucho Alex. Felices fiestas.

Un ejemplo, de una necessitas un script npc que coga el "player", el caso de Cledwyn, el se le puede agregar player.

entonces por ejemplo al principio en su texto sale:

Código Lua:
if MsgContains(message, 'token') or MsgContains(message, 'tokens') then
        npcHandler:say("If you have any {silver} tokens with you, let's have a look! Maybe I can offer you something in exchange.", npc, creature)
    elseif MsgContains(message, 'information') then
        npcHandler:say("With pleasure. <bows> I trade {token}s. There are several ways to obtain the {token}s I am interested in - killing certain bosses, for example. In exchange for a certain amount of tokens, I can offer you some first-class items.", npc, creature)

cogeremos desde el "elseif" y cambiaremos por:
Código:
elseif MsgContains(message, 'soulcrusher') then
if player:removeItem(ID_SOULCRUSHER, 3) then
        npcHandler:say("You have sucessfully exchanged x3 Soulcrusher for 1 token bag you desire.", npc, creature)
        player:addItem(ITEM_ID_TOKEN_BAG_YOU_DESIRE, 1)
else 
npcHandler:say("Sorry, you didn't have x3 Soulcrusher.", npc, creature)
end

Repite el código para más armas.
Claro el ejemplo de cledwyn es bastante largo el script del npc, encuentra quizas otro o bien borra todo lo que no necessitas dentro.
 

kurinino

Miembro
LV
21
 
Awards
19
Muchas gracias Alex, me funciona bien pero a medias, me pasa que si quiero cambiar los items Soul, debo hacerlos en ese orden, ejemplo: Primero el "Soulcrusher" (linea 113), luego el "Pair of Soulwalkers" (linea 126) y asi, tal cual el orden que está en el código, porque si parto por ejemplo cambiando primero el "soulbastion" (linea 139), después no puedo cambiar un Soulcrasher porque está al inicio del código. Debe ser un problema con las funciones elseif pero no se como arreglarlo para que pueda cambiar cualquier item sin importar el orden del código. Si me pudieras ayudar a corregirlo te lo agradecería.


itemSoul.png
 

Alex

Miembro del equipo
Webdesigner
LV
58
 
Awards
38
Muchas gracias Alex, me funciona bien pero a medias, me pasa que si quiero cambiar los items Soul, debo hacerlos en ese orden, ejemplo: Primero el "Soulcrusher" (linea 113), luego el "Pair of Soulwalkers" (linea 126) y asi, tal cual el orden que está en el código, porque si parto por ejemplo cambiando primero el "soulbastion" (linea 139), después no puedo cambiar un Soulcrasher porque está al inicio del código. Debe ser un problema con las funciones elseif pero no se como arreglarlo para que pueda cambiar cualquier item sin importar el orden del código. Si me pudieras ayudar a corregirlo te lo agradecería.


Ver archivo adjunto 4559


Hola,

No es por el orden, me costo la primera vez entenderlo, te explico:
Entre comas " ", la palabra que pondras, no tiene que contener las mismas letras que otras, en el caso de los soul items, "soul-bastion" y "soul-crusher" empiezan por soul, entonces uno o el otro funcionara, no los dos.
Lo que puede haces es agregar palabras distintas y te las cogera todas, cualquier orden,
Podrias no lo sé, soulbastion para uno y el otro le das otro nombre, dejando saber que es un soulcrusher ( club-soulcrusher ) por ejemplo, y al poner club, sabra que es esa palabra el soulcrusher.

Si es tonto, pero solo toma 1 palabra en todo el script que contenga las mismas letras.
 

kurinino

Miembro
LV
21
 
Awards
19
Entiendo Alex, algo así sospeché cuando me di cuenta que el npc no te tomaba si no incluía la palabra “token” para empezar a hablar con el jajaja. Que raro pero entiendo, mañana lo probaré y te cuento como me va. Muchas gracias 😁👍🏻
 

kurinino

Miembro
LV
21
 
Awards
19
Hola,

No es por el orden, me costo la primera vez entenderlo, te explico:
Entre comas " ", la palabra que pondras, no tiene que contener las mismas letras que otras, en el caso de los soul items, "soul-bastion" y "soul-crusher" empiezan por soul, entonces uno o el otro funcionara, no los dos.
Lo que puede haces es agregar palabras distintas y te las cogera todas, cualquier orden,
Podrias no lo sé, soulbastion para uno y el otro le das otro nombre, dejando saber que es un soulcrusher ( club-soulcrusher ) por ejemplo, y al poner club, sabra que es esa palabra el soulcrusher.

Si es tonto, pero solo toma 1 palabra en todo el script que contenga las mismas letras.
Muchas gracias Alex, al final gracias a utilizar la nomenclatura club-soulcrusher, si funciona 😁👍
 
Arriba