• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Npc Recompense

    Compartir:

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

    1default Npc Recompense el Miér Nov 08, 2017 1:03 pm

    blanca77

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Buenas, tengo un servidor 10.98 y quiero hacer un npc que pida una mision como aqui (http://www.tibiaface.com/t263-mision-npc-mitrox-ganas-exp-y-item) pero que recompense con puntos de la tienda que tengo en mi pàgina web y la verdad esque nose como compaginarlo y hacer que el npc de puntos de la tienda.

    Ver perfil de usuario

    2default Re: Npc Recompense el Miér Nov 08, 2017 6:20 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    aqui tienes

    esta parte del scripts son mensajes de informacion que puedes editar que dan informacion de donde conseguir los objetos informacion util para el player para ayudarle un poco a su mission
    editas el mensaje a tu gusto:

    para ver los mensaje se dice la palabra job o gnome o area esta te manda textos automaticos

    puedes duplicar estos por mas si necesitas pero que el mensaje

    if msgcontains(msg, 'job') then donde dice job no se repita por ejemplo en ves de job otro le pondria trabajo


    Código:
      if msgcontains(msg, 'job') then
            return npcHandler:say('I\'m the officer responsible for this area. I give out missions, accept mission reports and oversee our defences.', cid)
        end
     
        if msgcontains(msg, 'gnome') then
            return npcHandler:say('We are the only protectors of the world against the enemies below. With small stature comes great responsibilities, as they say.', cid)
        end
     
        if msgcontains(msg, 'area') then
            return npcHandler:say({
                "On these levels we found evidence of some monumental battle that has taken place here centuries ago. We also found some grave sites, but oddly enough no clues of any form of settlement. ...",
                "Some evidence we have found suggests that at least one of the battles here was fought for many, many years. People came here, lived here, fought here and died here. ...",
                "The battles continued until someone or something literally ploughed through the battlefields, turning everything upside down. All this killing and death soaked the area with negative energy. ...",
                "Necromantic forces are running wild all over the place and we are hard-pressed to drive all these undead, spirits and ghosts, away from the Spike. ...",
                "Unless we can secure that area somehow, the Spike operation is threatened to become crippled by the constant attacks of the undead. ...",
                "The whole growing downwards could come to a halt, leaving us exposed to even more attacks, counter attacks, and giving the enemy time to prepare their defences. There's a lot to do for aspiring adventurers."
            }, cid)
        end

    para hablar con el npc solo le dice mission

    como editar la parte de las misiones

    Código:
    if msgcontains(msg, 'pacifiers') then    ------->  pacifiers mensaje identificador de la mision o palabra que hay que decirle al npc
                if player:getItemCount(8262) == 0 then    -------> mensaje si no tiene el item 8262
                    npcHandler:say('Usted necesita el item 8262.', cid)
                elseif player:getItemCount(8262) == 2 then    ----------->necesita 2 item 8262 para el reward
                    npcHandler:say('felicidades aqui tiene su reward.', cid)
                  playerAddPoints(player, 10)      ------> añadir 10 premium point
                    player:addExperience(1000, true)
                player:removeItem(8262, 2)  -------> te remueve 2 item 8262
                else
                    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid)  -----> mensaje si no contienes 2 item 8262
                end


    y bueno aqui esta el npc

    Código:
    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState = {}
    local levels = {25, 300}
     
    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)
        if not npcHandler:isFocused(cid) then
            return false
        end
     
        local player = Player(cid)
     
        if msgcontains(msg, 'job') then
            return npcHandler:say('I\'m the officer responsible for this area. I give out missions, accept mission reports and oversee our defences.', cid)
        end
     
        if msgcontains(msg, 'gnome') then
            return npcHandler:say('We are the only protectors of the world against the enemies below. With small stature comes great responsibilities, as they say.', cid)
        end
     
        if msgcontains(msg, 'area') then
            return npcHandler:say({
                "On these levels we found evidence of some monumental battle that has taken place here centuries ago. We also found some grave sites, but oddly enough no clues of any form of settlement. ...",
                "Some evidence we have found suggests that at least one of the battles here was fought for many, many years. People came here, lived here, fought here and died here. ...",
                "The battles continued until someone or something literally ploughed through the battlefields, turning everything upside down. All this killing and death soaked the area with negative energy. ...",
                "Necromantic forces are running wild all over the place and we are hard-pressed to drive all these undead, spirits and ghosts, away from the Spike. ...",
                "Unless we can secure that area somehow, the Spike operation is threatened to become crippled by the constant attacks of the undead. ...",
                "The whole growing downwards could come to a halt, leaving us exposed to even more attacks, counter attacks, and giving the enemy time to prepare their defences. There's a lot to do for aspiring adventurers."
            }, cid)
        end
     
        if msgcontains(msg, 'mission') then
            if player:getLevel() > levels[2] then
                npcHandler:say('Sorry, but no! Your expertise could be put to better use elsewhere. Here awaits you no challenge. You are desperately needed in the deeper levels of the Spike. Report there immediately. ', cid)
            else
                npcHandler:say('I can offer you several missions: to recharge our ghost {pacifiers}, to {release} the spiritual anger, to {track} an evil presence and to {kill} some demon skeletons.', cid)
            end
            return
        end
     

            if msgcontains(msg, 'pacifiers') then
                if player:getItemCount(8262) == 0 then
                    npcHandler:say('Usted necesita el item 8262.', cid)
                elseif player:getItemCount(8262) == 2 then
                    npcHandler:say('felicidades aqui tiene su reward.', cid)
                  playerAddPoints(player, 10)
                    player:addExperience(1000, true)
                player:removeItem(8262, 2)
                else
                    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid)
                end
               

            elseif msgcontains(msg, 'release') then
                if player:getItemCount(8262) == 0 then
                    npcHandler:say('Usted necesita el item 8262.', cid)
                elseif player:getItemCount(8262) == 2 then
                    npcHandler:say('felicidades aqui tiene su reward.', cid)
                  playerAddPoints(player, 10)
                    player:addExperience(1000, true)
                player:removeItem(8262, 2)
                else
                    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid)
                end
               
               
               
               
               
            elseif msgcontains(msg, 'tracking') then
                if player:getItemCount(8262) == 0 then
                    npcHandler:say('Usted necesita el item 8262.', cid)
                elseif player:getItemCount(8262) == 2 then
                    npcHandler:say('felicidades aqui tiene su reward.', cid)
                  playerAddPoints(player, 10)
                    player:addExperience(1000, true)
                player:removeItem(8262, 2)
                else
                    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid)
                end
               
               
               
               
            elseif msgcontains(msg, 'killing') then
              if player:getItemCount(8262) == 0 then
                    npcHandler:say('Usted necesita el item 8262.', cid)
                elseif player:getItemCount(8262) == 2 then
                    npcHandler:say('felicidades aqui tiene su reward.', cid)
                  playerAddPoints(player, 10)
                    player:addExperience(1000, true)
                player:removeItem(8262, 2)
                else
                    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid)
                end
               
         
     
     
        return true
    end
     
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())



    en tu global.lua agregas esta funcion al final


    Código:
    function playerAddPoints(player, amount)
        local plural = ''
        db.query("UPDATE `accounts` SET `premium_points` = `premium_points` + " .. amount .. " WHERE `id` = " .. player:getAccountId() .. ' LIMIT 1;')
        if amount > 1 then plural = 's' end
        return true
    end



    Ver perfil de usuario http://www.tibiaface.com

    3default Gracias el Miér Nov 08, 2017 6:33 pm

    blanca77

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Muchas gracias por dedicar tu tiempo, se entiende todo perfectamente Smile!

    Ver perfil de usuario

    4default Error el Jue Nov 09, 2017 11:27 am

    blanca77

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Cuando le digo al npc pacifiers y tengo los objetos que me pide en la mochila me dice "felicitationes aqui tienes su reward" pero no me da nada y tampoco me coje los objetos de la mision Sad

    Ver perfil de usuario

    5default Re: Npc Recompense el Jue Nov 09, 2017 11:34 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    ahi explica bien como configurar

    if msgcontains(msg, 'pacifiers') then -------> pacifiers mensaje identificador de la mision o palabra que hay que decirle al npc
    if player:getItemCount(8262) == 0 then -------> mensaje si no tiene el item 8262
    npcHandler:say('Usted necesita el item 8262.', cid)
    elseif player:getItemCount(8262) == 2 then ----------->necesita 2 item 8262 para el reward
    npcHandler:say('felicidades aqui tiene su reward.', cid)
    playerAddPoints(player, 10) ------> añadir 10 premium point
    player:addExperience(1000, true)
    player:removeItem(8262, 2) -------> te remueve 2 item 8262
    else
    npcHandler:say('lamentablemente no tienes los item necesarios necesitas 2 del item 8262.', cid) -----> mensaje si no contienes 2 item 8262
    end



    Ver perfil de usuario http://www.tibiaface.com

    Contenido patrocinado


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