• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [NPC] ayuda para terminar script

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1Cảnh báo [NPC] ayuda para terminar script Sáb Oct 22, 2022 8:49 pm

    Angel92

    Angel92
    Miembro
    Miembro
    Descripcion escribió:hice el script que voy a postear a continuacion con informacion que recopile de reddit, traduje los dialogos y todo funciona de maravilla, solo me falta agregar una lista con 30 hints (consejos) de forma tal que el jugador diga `consejo` y le aparesca uno diferente cada vez, soy muy nuevo en esto del scripting y no se como hacerlo, y en los tutoriales no encuentro nada parecido, si alguien me puede ayudar lo agresco. estoy usando un otx 2.x.s.3


    Código:
    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState = {}


    function onCreatureAppear(cid)                  npcHandler:onCreatureAppear(cid)                        end
    function onCreatureDisappear(cid)              npcHandler:onCreatureDisappear(cid)                    end
    function onCreatureSay(cid, type, msg)  npcHandler:onCreatureSay(cid, type, msg)        end
    function onThink()                      npcHandler:onThink()                                            end

    npcHandler:setMessage(MESSAGE_GREET, "Hola, hola, |PLAYERNAME|! Entra, mira y compra! Soy especialista en todo tipo de herramientas. Solo pideme {comerciar} para ver mis {ofertas}! Tambien puedes pedirme {consejos} generales sobre el juego o preguntarme sobre cada {ciudadano} de la isla.")
    npcHandler:setMessage(MESSAGE_FAREWELL, "Adios |PLAYERNAME|!")

    function creatureSayCallback(cid, type, msg)
            if(not npcHandler:isFocused(cid)) then
                    return false
            end
            local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

       
        if msgcontains(msg,'como estas') then
       if getPlayerSex(cid)== 0 then
       selfSay('Estoy bien. Estoy tan contento de tenerte aqui como mi clienta.', cid)
       else
       selfSay('Estoy bien. Estoy tan contento de tenerte aqui como mi cliente.', cid)
        end
       
        elseif msgcontains(msg, 'trabajo') then
       selfSay('Soy un {comerciante}. Solo pideme {comerciar} para ver mis {ofertas}', cid)
       
       elseif msgcontains(msg, 'informacion') or msgcontains(msg,'ayuda') then
       selfSay('Si necesita herramientas en general, solo pideme {comerciar}. Tambien puedo proporcionarte algunos consejos generales sobre el juego.', cid)
       
       elseif msgcontains(msg, 'profesion') then
       selfSay('Aprenderas todo lo que necesitas saber sobre las profesiones una vez que hayas llegado a la {Isla del Destino}.', cid)
       
       elseif msgcontains(msg, 'vital') then
       selfSay('Caramba!, recursos vitales, {cosas} muy necesarias para que sobrevivas!', cid)
       
       elseif msgcontains(msg, 'premium') then
       selfSay('Como aventurero premium tienes muchas ventajas. Realmente deberias echarle un vistazo!', cid)
       
       elseif msgcontains(msg, 'hora') then
       selfSay('Son alrededor de las |TIME|. Lo siento mucho, no tengo relojes para vender. Quieres comprar algo mas?', cid)
       
       elseif msgcontains(msg, 'ciudadano') then
       selfSay('Si me dices el {nombre} de un ciudadano, te dire lo que sepa sobre el o ella.', cid)
       
       elseif msgcontains(msg, 'comerciante') then
       selfSay('Para ver las ofertas de un comerciante, simplemente habla con el o ella y pidele {comerciar}. Con gusto te mostraran sus ofertas y tambien las cosas que compran.', cid)
       
       elseif msgcontains(msg, 'rey') or msgcontains(msg,'tibianus') then
       selfSay('El rey animo a los vendedores a viajar aqui, pero solo yo me atrevi a correr ese el riesgo', cid)
       
       elseif msgcontains(msg, 'hueso') then
       selfSay('Sera mejor que vuelvas a poner ese hueso donde lo sacaste.', cid)
       
       elseif msgcontains(msg, 'nombre') then
       selfSay('Mi nombre es Al Dee, pero puedes llamarme Al. Tal vez te interese {comerciar} conmigo?', cid)
       
       elseif msgcontains(msg, 'al dee') then
       selfSay('Sip, ese soy yo. Inteligente de tu parte el darte cuenta de eso!', cid)
       
       elseif msgcontains(msg, 'amber') then
       selfSay('Actualmente se esta recuperando de sus viajes, en la {academia}. Siempre es agradable charlar con ella!', cid)
       
       elseif msgcontains(msg, 'billy') then
       selfSay('Este es un granjero local. Si necesita alimentos frescos para recuperar tu salud, es un buen lugar para ir. Sin embargo, solo comercia con aventureros premium.', cid)
       
       elseif msgcontains(msg, 'cipfried') then
       selfSay('Es solo un viejo monje. Sin embargo, puede curarte si estas gravemente herido o envenenado.', cid)
       
       elseif msgcontains(msg, 'dallheim') then
       selfSay('Algunos lo llaman heroe. El protege la ciudad de los monstruos.', cid)
       
       elseif msgcontains(msg, 'dixi') then
       selfSay('Es la nieta de {Obi} y se ocupa de vender escudos y armaduras. Su {tienda} esta al suroeste de la ciudad, cerca del {templo}.', cid)
       
       elseif msgcontains(msg, 'hyacinth') then
       selfSay('Pasa la mayoria del tiempo solo. Es un ermitaño que vive fuera de la ciudad. Buena suerte para encontrarlo.', cid)
       
       elseif msgcontains(msg, 'lee\'\delle') then
       selfSay('Si eres un aventurero {premium}, deberias visitar la {tienda} de Lee\'\Delle. Vive en la parte oeste de la ciudad, al otro lado del puente.', cid)
       
       elseif msgcontains(msg, 'lily') then
       selfSay('Vende {pociones} de salud y  de antidoto. Ademas, compra {arandanos} y galletas en caso de que tengas algunos.', cid)
       
       elseif msgcontains(msg, 'loui') then
       selfSay('No tengo idea de quien es.', cid)
       
       elseif msgcontains(msg, 'norma') then
       selfSay('Solia vender equipos, pero creo que ahora ha abierto un pequeño bar. Habla de cambiar su nombre a \'\Mary\'\ y tal, chica extraña.', cid)
       
       elseif msgcontains(msg, 'obi') then
       selfSay('Vende armas. Su {tienda} esta al suroeste de la ciudad, cerca del {templo}.', cid)
       
       elseif msgcontains(msg, 'oraculo') then
       selfSay('Puedes encontrar el oraculo en el ultimo piso de la {academia}, justo encima de {Seymour}. Ve alli cuando estes en el nivel 8.', cid)
       
       elseif msgcontains(msg, 'paulie') then
       selfSay('Es el empleado del {banco} local.', cid)
       
       elseif msgcontains(msg, 'santiago') then
       selfSay('Dedico su vida a dar la bienvenida a los recien llegados a esta isla.', cid)
       
       elseif msgcontains(msg, 'seymour') then
       selfSay('Seymour es un maestro que dirige la {academia}. El tiene mucha información importante sobre {Tibia}.', cid)
       
       elseif msgcontains(msg, 'tom') then
       selfSay('Es el curtidor local. Podrias intentar venderle cadaveres frescos o cuero.', cid)
       
       elseif msgcontains(msg, 'willie') then
       selfSay('Es un granjero local. Si necesita alimentos frescos para recuperar tu salud, es un buen lugar para ir. Sin embargo, muchos monstruos tambien llevan comida como carne o queso. O simplemente podrias recoger arandanos.', cid)
       
       elseif msgcontains(msg, 'zerbrus') then
       selfSay('Algunos lo llaman heroe. El protege la ciudad de los monstruos.', cid)
       
       elseif msgcontains(msg, 'zirella') then
       selfSay('Pobre anciana, su hijo {Tom} nunca la visita.', cid)
       
       elseif msgcontains(msg, 'monstruo') then
       selfSay('Si quieres desafiar a los monstruos en las mazmorras, necesitas algunas {armas} y {armaduras} de los comerciantes locales.', cid)
       
       elseif msgcontains(msg, 'rata') then
       selfSay('Las ratas plagan nuestras {alcantarillas}. Puedes vender los cadaveres de ratas frescas a {Seymour} o {Tom} el curtidor.', cid)
       
       elseif msgcontains(msg, 'bichos') then
       selfSay('Los bichos plagan esta isla, pero mi mercancia esta libre de bichos, totalmente libre de bichos.', cid)
       
       elseif msgcontains(msg, 'tibia') then
       selfSay('Un dia volvere al {continente} como un hombre rico, muy rico!', cid)
       
       elseif msgcontains(msg, 'continente') then
       selfSay('Alguna vez te has preguntado que es ese \'\continente\'\ del que habla la gente? Bueno, una vez que hayas alcanzado el nivel 8, deberias hablar con el oraculo. Puedes elegir una profesion despues y explorar mucho mas de Tibia.', cid)
       
       elseif msgcontains(msg, 'isla del destino') then
       selfSay('Se puede llegar a la Isla del Destino a traves del {oraculo} una vez que estes en el nivel 8. Este viaje te ayudara a elegir tu {profesion}!', cid)
       
       elseif msgcontains(msg, 'rookgaard') then
       selfSay('En la isla de Rookgaard puedes reunir experiencias importantes y prepararte para la vida en el {continente}.', cid)
       
       elseif msgcontains(msg, 'thais') then
       selfSay('Thais es un pueblo atestado de gente.', cid)
       
       elseif msgcontains(msg, 'banco') then
       selfSay('Un banco es bastante util. Puedes depositar tu dinero de forma segura alli. De esta manera no tendras que llevarlo contigo todo el tiempo. Tambien podrias invertir tu dinero en mis productos!', cid)
       
       elseif msgcontains(msg, 'academia') then
       selfSay('El gran edificio en el centro de {Rookgaard}. Tienen una biblioteca, un centro de formacion, un {banco} y la sala del {oraculo}. {Seymour} es el maestro alli.', cid)
       
       elseif msgcontains(msg, 'templo') then
       selfSay('El monje {Cipfried} cuida nuestro templo. El puede curarte si estas gravemente herido o envenenado.', cid)
       
       elseif msgcontains(msg, 'mazmorra') then
       selfSay('Si quieres explorar mazmorras como las {alcantarillas}, debes equiparte con las {cosas} vitales que vendo. Es {vital} en el sentido más profundo de la palabra.', cid)
       
       elseif msgcontains(msg, 'alcantarillas') then
       selfSay('Oh, nuestro sistema de alcantarillado es muy primitivo, es tan primitivo que esta invadido por ratas. Pero las {cosas} que vendo estan a salvo de ellas. Solo pideme comerciar para verlo!', cid)
       
       elseif msgcontains(msg, 'comerciar') or msgcontains(msg, 'ofertas') then
       selfSay('Echa un vistazo a la ventana de comercio.', cid)
       
       elseif msgcontains(msg, 'tienda') then
       selfSay('Las tiendas son lugares donde vas a comprar y vender {cosas}, por supuesto. La mayoria de los ciudadanos por aqui son comerciantes.', cid)
       
       elseif msgcontains(msg, 'cosas') or msgcontains(msg, 'compras') or msgcontains(msg, 'mercancias') or msgcontains(msg, 'vender') then
       selfSay('Solo pideme {comerciar} para ver mis ofertas.', cid)
       
       elseif msgcontains(msg, 'mochila') or msgcontains(msg,'cuerda') or msgcontains(msg,'pala') then
       selfSay('Si, vendo eso. Simplemente pideme {comerciar} para ver todas mis ofertas.', cid)
       
       elseif msgcontains(msg, 'equipo') or msgcontains(msg,'equipamiento') then
       selfSay('Como aventurero, siempre debes tener al menos una {mochila}, una {cuerda}, una {pala}, un {arma}, una {armadura} y un {escudo}.', cid)
       
       elseif msgcontains(msg, 'arma') or msgcontains(msg,'armas') then
       selfSay('Oh, lo siento, pero no trato con armas. Eso es asunto de {Obi} o {Lee\'\Delle}. Podria ofrecerte un {pico} a cambio de un hacha pequeña si llegaras a tener una.', cid)
       
       elseif msgcontains(msg, 'armadura') or msgcontains(msg, 'armaduras') or msgcontains(msg,'escudo') or msgcontains(msg,'escudos') then
       selfSay('Las armaduras y los escudos se pueden comprar en la {tienda} de {Dixi} o en la de {Lee\'\Delle}. {Dixi} dirige esa {tienda} cerca de la de Obi.', cid)
       
       elseif msgcontains(msg, 'comida') then
       selfSay('Hmm, la mejor direccion para buscar comida podria ser {Willie} o {Billy}. {Norma} tambien tiene algunos bocadillos a la venta.', cid)
       
       elseif msgcontains(msg, 'pociones') then
       selfSay('Lo siento, no vendo pociones. Deberias visitar a {Lily} para eso.', cid)
       
       elseif msgcontains(msg, 'arandanos') then
       selfSay('Los arandanos crecen en los arbustos. Son bastante comunes en {Tibia}. Solo recogelos de un arbusto si necesitas un refrigerio!', cid)
       
       elseif msgcontains(msg, 'galletas') then
       selfSay('Si quieres encontrar a alguien que quiera comprar tus galletas, deberias conocer a {Lily}.', cid)
       
       elseif msgcontains(msg, 'oro') or msgcontains(msg, 'dinero') then
       selfSay('Bueno, sin oro, no hay trato. Gana oro luchando contra monstruos y recogiendo las {cosas} que llevan. Vendelo a los comerciantes para obtener ganancias!', cid)
       
       elseif msgcontains(msg, 'pico') then
       selfSay('Los picos son dificiles de conseguir. Solo lo cambiaria por un hacha pequeña de alta calidad. Te gustaria hacer ese trato?', cid)
       talkState[talkUser] =1
       
       elseif msgcontains(msg,'no') and talkState[talkUser] == 1 then
       selfSay('Bueno, entonces no', cid)
       talkState[talkUser] = 0

       elseif msgcontains(msg,'si') and talkState[talkUser] == 1 then
       if getPlayerItemCount(cid, 2559) >= 1 then
       selfSay('Espléndido! Aqui tienes tu pico.', cid)
       doPlayerAddItem(cid,2553,1)
       doPlayerRemoveItem(cid, 2559, 1)
       else
       selfSay('Lo siento, estoy buscando un hacha pequeña.', cid)
       end
       end
        return true
    end

    local shopModule = ShopModule:new()
    npcHandler:addModule(shopModule)

    shopModule:addBuyableItem({'backpack'}, 1988, 10, 'mochila')
    shopModule:addBuyableItem({'bag'}, 1987, 4, 'bolsa')
    shopModule:addBuyableItem({'fishing rod'}, 2580, 150, 'caña de pescar')
    shopModule:addBuyableItem({'rope'}, 2120, 50, 'cuerda')
    shopModule:addBuyableItem({'scroll'}, 1949, 5, 'papel')
    shopModule:addBuyableItem({'scythe'}, 2550, 12, 'guadaña')
    shopModule:addBuyableItem({'shovel'}, 2554, 10, 'pala')
    shopModule:addBuyableItem({'torch'}, 2050, 2, 'antorcha')
    shopModule:addBuyableItem({'worm'}, 3976, 1, 'gusano')

    shopModule:addSellableItem({'rope'}, 2120, 8, 'cuerda')
    shopModule:addSellableItem({'shovel'}, 2554, 2, 'pala')
    shopModule:addSellableItem({'fishing rod'}, 2580, 30, 'caña de pescar')



    function thinkCallback()
    talk = math.random(1,100)
            if talk == 1 then
                    doCreatureSay(getNpcCid(), "Te sientes perdido? Siempre puedes preguntarme sobre consejos generales!", TALKTYPE_YELL)
            elseif talk == 2 then
                    doCreatureSay(getNpcCid(), "Estas buscando las mejores ofertas? Ven a mi tienda!", TALKTYPE_YELL)
            elseif talk == 3 then
                    doCreatureSay(getNpcCid(), "Herramientas y equipo en general en la tienda de Al Dee!", TALKTYPE_YELL)
          elseif talk == 4 then
                    doCreatureSay(getNpcCid(), "No te lances a la aventura sin una cuerda y antorchas! Compra tus suministros aqui!", TALKTYPE_YELL)
            end
          
    return true
    end


    npcHandler:setCallback(CALLBACK_ONTHINK, thinkCallback)
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())
    Imagen Explicativa escribió:Imagen Explicativa: [NPC] ayuda para terminar script Nop
    Version del Scripts: OTx Old Version(0.3.7)

    3 participantes

    2Cảnh báo Re: [NPC] ayuda para terminar script Sáb Oct 22, 2022 11:29 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    No entendi muy bien, al decir Consejos, el npc te muestra una lista de todos los consejos?

    "y le aparesca uno diferente cada vez" ?

    3 participantes

    3Cảnh báo Re: [NPC] ayuda para terminar script Dom Oct 23, 2022 7:42 am

    Angel92

    Angel92
    Miembro
    Miembro
    Me explico mejor entonces, el jugador le dice al npc "consejos", entonces el npc responde con el primer consejo de la lista, el jugador dice "consejos" una segunda vez y el npc le responde con el segundo consejo de la lista, y así sucesivamente.
    Lo que vendría siendo que el npc tenga múltiples respuestas a una misma palabra.

    3 participantes

    4Cảnh báo Re: [NPC] ayuda para terminar script Dom Oct 23, 2022 2:27 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Angel92 escribió:Me explico mejor entonces, el jugador le dice al npc "consejos", entonces el npc responde con el primer consejo de la lista, el jugador dice "consejos" una segunda vez y el npc le responde con el segundo consejo de la lista, y así sucesivamente.
    Lo que vendría siendo que el npc tenga múltiples respuestas a una misma palabra.

    La cosa seria jugar con el Storage, cada respuesta con la palabra "Consejos" tenga un diferente Storage
    Ejemplo:

    Código:
    if msgcontains(msg, "consejos") then
     if getPlayerStorageValue(cid, 5000) == 0 then -- Storage (5000) == 0
     selfSay("Mi Consejo seria.", cid)
     setPlayerStorageValue(cid, 5000, 1) -- Le dara el storage (5000 +1)
     elseif msgcontains(msg, "consejos") then
     if getPlayerStorageValue(cid, 5000) == 1 then -- Si tiene El Storage con +1 entonces ejecutara lo demas "Otro Consejo"
     selfSay("Otro Consejo", cid)
     setPlayerStorageValue(cid, 5000, 2)
     elseif msgcontains(msg, "consejos") then
     if getPlayerStorageValue(cid, 5000) == 2 then -- Si tiene El Storage con +2 entonces ejecutara lo demas "Otro Consejitos mas"
     selfSay("Otro Consejitos mas", cid)
     end
     end
     end
    end

    Si quieres añadir mas consejos, seria añadir otro, solo seria cambiar el storage a
    Código:
    if getPlayerStorageValue(cid, 5000) == 3 then

    3 participantes

    5Cảnh báo Re: [NPC] ayuda para terminar script Dom Oct 23, 2022 4:24 pm

    Angel92

    Angel92
    Miembro
    Miembro
    Muchísimas gracias SoyFabi, funciono de maravilla, un saludo enorme.

    3 participantes

    6Cảnh báo Re: [NPC] ayuda para terminar script Lun Oct 24, 2022 9:36 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Tema resuelto



    [NPC] ayuda para terminar script YNU5B25
    3 participantes
    http://www.tibiaface.com

    Contenido patrocinado


    3 participantes

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).