• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    necesito un npc para tibia 8.70

    Compartir:

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

    1necesito un npc para tibia 8.70 Empty necesito un npc para tibia 8.70 Lun Feb 26, 2024 2:18 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    necesito un npc que me de storage cada vez que mate 1000 creaturas o mas para que con el storage que le de a los players los players pasen a un portal que mataran un boss tfs 0.3.6 alguien me ayuda???

    3 participantes

    2necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Lun Feb 26, 2024 5:43 pm

    akane

    akane
    Miembro
    Miembro
    Código:
    -- Configuración
    local requiredMonsterCount = 1000
    local monsterName = "Rat"

    -- Función para comprobar si se ha completado la tarea
    function onCreatureAppear(cid)
        if getPlayerStorageValue(cid, 1000) < 0 then
            setPlayerStorageValue(cid, 1000, 0)
        end
        if getPlayerStorageValue(cid, 1000) < requiredMonsterCount then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "¡Hola aventurero! Soy el Hunter. Mátame ".. requiredMonsterCount .." ".. monsterName .." para una recompensa.")
        else
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "¡Enhorabuena! Has completado mi tarea. ¡Regresa cuando quieras!")
            setPlayerStorageValue(cid, 1000, 0) --pones el storage que quieras que te de despues de matar los 1000 monsters (para continuar la mission)
        end
    end

    -- Función para manejar la muerte de monstruos (creaturescript)
    function onKill(cid, target, lastHit)
        if isPlayer(target) and isMonster(lastHit) then
            if getCreatureName(lastHit) == monsterName then
                local playerStorage = getPlayerStorageValue(cid, 1000)
                setPlayerStorageValue(cid, 1000, playerStorage + 1)
                if playerStorage + 1 == requiredMonsterCount then
                    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "¡Felicidades! Has completado la tarea.")
                end
            end
        end
        return true
    end

    revisa si te funciona

    3 participantes

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    vale se le dice que hi nada mas ? mas nada?

    3 participantes

    4necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Lun Feb 26, 2024 6:02 pm

    akane

    akane
    Miembro
    Miembro
    Nemesis811 escribió:vale se le dice que hi nada mas ? mas nada?

    en la primera parte debes crear tu un npc, con su respectivo lua, donde tenga una palabra clave en donde te de el storage inicial para comenzar la mision (en este caso el storage 1000). Luego viene la parte del creaturescript que es para que la matar vaya contabilizando las kills

    3 participantes

    5necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Lun Feb 26, 2024 6:05 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    Me dejastes igual

    3 participantes

    6necesito un npc para tibia 8.70 Empty necesitaria adivinar Lun Feb 26, 2024 6:31 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    necesitaría adivinar como poner esa palabra clave para que me de estorage Sad Sad Sad Sad Sad Surprised

    3 participantes

    7necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Lun Feb 26, 2024 8:35 pm

    akane

    akane
    Miembro
    Miembro
    Nemesis811 escribió:necesitaría adivinar como poner esa palabra clave para que me de estorage  Sad Sad Sad Sad Sad Surprised

    aqui tengo un script, tuve que modificarlo desde 0 y que era de uno de mis ots.

    NPC.xml:

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Carlos" script="Carlos.lua" walkinterval="2000" floorchange="0">
     <health now="150" max="150"/>
     <look type="139" head="132" body="79" legs="97" feet="132" corpse="2212"/>
     <parameters>
     <parameter key="message_greet" value="Hola |PLAYERNAME|. Do you want kill some monsters?"/>
     </parameters>
    </npc>


    --Npc.lua:

    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

    function creatureSayCallback(cid, type, msg)
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
        local quest = 86669020 -- ID de la misión
        msg = string.lower(msg)

        if msgcontains(msg, 'kill') then
            if getPlayerStorageValue(cid, quest) == -1 then
                npcHandler:say("You will need to kill rats. Do you agree?", cid)
                talkState[talkUser] = 2
            elseif getPlayerStorageValue(cid, quest) == 3 then
                npcHandler:say("You don't need to kill rats anymore. You can proceed with the mission.", cid)
            end
        elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
            npcHandler:say("Thank you very much, when you finish tell me {report}, and I will open the door for you immediately!", cid)
            setPlayerStorageValue(cid, quest, 2)
            talkState[talkUser] = 0 -- Reiniciar el estado de la conversación
        elseif msgcontains(msg, 'report') then ---esta ultima no es necesaria a menos que quieras agregar mas o que se yo.
            if getPlayerStorageValue(cid, quest) == 3 then
                npcHandler:say("You don't need to report anymore. You have completed the mission.", cid)
            end
        end
        return true
    end

    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

    archivo en Creaturescript:

    Código:
    local monsters = {
        ["rat"] = 45000303 --- acá cambias el nombre del monster y su respectivo storage de monster
    }

    function onKill(cid, target)
        local questStorage = 86669020 -- no mover, ya que usa el storage que dá el npc para que muestre y contabilice las kills para terminar la mision
        local hasRequiredStorage = getPlayerStorageValue(cid, questStorage)

        if hasRequiredStorage ~= 3 then
            if not isPlayer(target) then
                local name = string.lower(getCreatureName(target))
                local monsterStorage = monsters[name]

                if monsterStorage then
                    local killedMonsters = getPlayerStorageValue(cid, monsterStorage)

                    if killedMonsters == -1 then
                        killedMonsters = 1
                    else
                        killedMonsters = killedMonsters + 1
                    end

                    setPlayerStorageValue(cid, monsterStorage, killedMonsters)

                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have killed " .. killedMonsters .. " of 12 " .. name .. "s.")

                    -- Verificar si se completó la cantidad requerida de monstruos para esta especie
                    if killedMonsters >= 12 then --acá puedes modificar la cantidad de monster que deseas
                        local totalKills = 0
                        for _, monster in pairs(monsters) do
                            totalKills = totalKills + getPlayerStorageValue(cid, monster)
                        end

                        -- Verificar si se completó la misión matando suficientes monstruos de todas las especies
                        if totalKills >= 12 * #monsters then --acá tambien modificas la cantidad de monster que quieres que maten
                            setPlayerStorageValue(cid, questStorage, 3)
                            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations! You have completed the mission.")
     doPlayerAddItem(cid, 2160, 100) --acá al matar la cantidad de monsters especificadas te dará un item de recompenza, también puedes colocar que te de un storage nuevo para seguir la misión, lo que se te ocurra
                        end
                    end
                end
            end
        end

        return true
    end

    creaturescript.xml:

    Código:
    <event type="kill" name="npc test" event="script" value="kills npc.lua"/> --esto es super importante, el "name="

    Finalmente en Login.lua (creaturescript):

    Código:
    registerCreatureEvent(cid, "npc test") --este ultimo con el mismo nombre que pusiste en la línea en creaturescript.xml


    Espero que te funcione ya que yo lo testee en tfs 0.4.

    Saludos

    3 participantes

    8necesito un npc para tibia 8.70 Empty gracias amigo Mar Feb 27, 2024 10:07 am

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    lo probare y te cuento si me funciono asi si esta bien explicado pero si sirve para tfs 0.3.6?

    3 participantes

    9necesito un npc para tibia 8.70 Empty gracias amigo Mar Feb 27, 2024 10:13 am

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    otra pregunta que se me habia olvidado cual es el estorage que me dara cuando termine de matar la creatura para ponerselo al portal y me deje pasar?

    3 participantes

    10necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Mar Feb 27, 2024 2:26 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Nemesis811 escribió:otra pregunta que se me habia olvidado cual es el estorage que me dara cuando termine de matar la creatura para ponerselo al portal y me deje pasar?

    local questStorage = 86669020

    3 participantes

    11necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Mar Feb 27, 2024 2:42 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    SoyFabi escribió:
    Nemesis811 escribió:otra pregunta que se me habia olvidado cual es el estorage que me dara cuando termine de matar la creatura para ponerselo al portal y me deje pasar?

    local questStorage = 86669020


    como estas soyfabi me distes antiguamente un npc que me diera premio por nivel y te dije que no me funcionada me puedes ayudar con eso para ponerlo a funcionar?

    3 participantes

    12necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Mar Feb 27, 2024 3:09 pm

    akane

    akane
    Miembro
    Miembro
    Nemesis811 escribió:otra pregunta que se me habia olvidado cual es el estorage que me dara cuando termine de matar la creatura para ponerselo al portal y me deje pasar?

    te lo especifiqué en el script

    3 participantes

    13necesito un npc para tibia 8.70 Empty nome funciona bien Mar Feb 27, 2024 7:06 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    termino de matar las creaturas pero cuando le digo report no me dice nada me pregunta que si ya termine le digo yes o report y no dice nada

    3 participantes

    14necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Miér Feb 28, 2024 11:58 am

    akane

    akane
    Miembro
    Miembro
    Nemesis811 escribió:termino de matar las creaturas pero cuando le digo report no me dice nada me pregunta que si ya termine le digo yes o report y no dice nada

    porque en este caso, te da el premio automáticamente después de matar a los monsters, no es necesario decirle report.

    3 participantes

    15necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Miér Feb 28, 2024 7:02 pm

    Nemesis811

    Nemesis811
    Miembro
    Miembro
    aja despues no me deja matarlas de nuevo

    3 participantes

    16necesito un npc para tibia 8.70 Empty Re: necesito un npc para tibia 8.70 Miér Feb 28, 2024 7:08 pm

    akane

    akane
    Miembro
    Miembro
    Nemesis811 escribió:aja despues no me deja matarlas de nuevo

    claro, solo te dejará matarlas 1 vez, para eso es el storage de recompenza, para que solo tengas que matar 1 vez y no a cada rato xd

    3 participantes

    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).