• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Script para questlog

    Compartir:

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

    1Script para questlog Empty Script para questlog Miér Jun 14, 2023 9:00 pm

    Hino

    Hino
    Nuevo Miembro
    Nuevo Miembro
    Descripcion escribió:quisiera saber si alguien me dice como agregar un quest log a un ot server TFs 0.4.0 para agregar misiones o logros que den como resultado el aumento de la vida,mana, robo de vida, etc.
    Imagen Explicativa escribió:Imagen Explicativa: Script para questlog Tibiaf10
    Version del Scripts: TFs 0.4.0

    3 participantes

    2Script para questlog Empty Re: Script para questlog Sáb Jun 17, 2023 3:51 pm

    akane

    akane
    Miembro
    Miembro
    en la carpeta xml/quest.lua, ahí agregas las questlogs, pero estas trabajan con storages

    3 participantes

    3Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 3:56 pm

    Hino

    Hino
    Nuevo Miembro
    Nuevo Miembro
    podria darme un ejemplo simple de como seria?

    3 participantes

    4Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 4:44 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Hino escribió:podria darme un ejemplo simple de como seria?

    Código:
    <quest name="Quest Example" startstorageid="80000" startstoragevalue="1">
         <mission name="Quest Example" storageid="80001" startvalue="1" endvalue="3">
     <missionstate id="1" description="Texto Uno" />
         <missionstate id="2" description="Texto Dos" />
        <missionstate id="3" description="Texto Tres" />
     </mission>
            
            <mission name="Quest Example Dos" storageid="80002" startvalue="1" endvalue="3">
         <missionstate id="1" description="Texto Uno" />
         <missionstate id="2" description="Texto Dos" />
        <missionstate id="3" description="Texto Tres" />
     </mission>
    </quest>

    Para que la quest salga en QuestLog, debes tener el storage en este caso es 80000, luego para que te la primera mision debes tener el storage 80001, mas adelante cuando vas completando la misiones, tendrias que darle valor al storage 80001, para que te de el texto dos, en este caso:

    setPlayerStorageValue(cid, 80000, 1) -- se registrara la mision en el QuestLog
    setPlayerStorageValue(cid, 80001, 1) -- te dara la primera mision, que seria el primer texto.

    Para el siguiente texto seria:
    setPlayerStorageValue(cid, 80001, 2) -- le dimos un valor de 2. (Texto Dos)
    setPlayerStorageValue(cid, 80001, 3) -- Para el tercero seria un 3. (Texto Tres)

    Por lo que ya tendrias la mision completada.

    Para la siguiente mision, tienes que tener el storage 80002, y asi sucesivamente.

    3 participantes

    5Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 5:41 pm

    Hino

    Hino
    Nuevo Miembro
    Nuevo Miembro
    se registrara la mision en el QuestLog
    y si al finalizar una quest quisiera que de un bono de vida o cualquier otro stat en que parte tengo que agregarlo?

    3 participantes

    6Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 6:00 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Hino escribió:
    se registrara la mision en el QuestLog
    y si al finalizar una quest quisiera que de un bono de vida o cualquier otro stat en que parte tengo que agregarlo?

    Para añadir bonus ya sea de vida o mana seria utilizando esto:
    setCreatureMaxHealth(cid, 1000) -- añadir 1000 de vida al player.
    setCreatureMaxMana(cid, 1000) -- añadir 1000 de mana al player.

    Ya luego tendrias que pensarlo como hacerlo para aquello, no se si lo quieres por NPC o un item.


    3 participantes

    7Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 6:05 pm

    Hino

    Hino
    Nuevo Miembro
    Nuevo Miembro
    me gustaria ponerlo en NPC, y apenas estoy aprendiendo asignarles las quest

    3 participantes

    8Script para questlog Empty Re: Script para questlog Dom Jun 18, 2023 6:27 pm

    SoyFabi

    SoyFabi
    Miembro
    Miembro
    Hino escribió:me gustaria ponerlo en NPC, y apenas estoy aprendiendo asignarles las quest

    Aqui un ejemplo de un Npc.

    data/npc/crear archivo llamado "Mami Linda"

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Mami Linda" script="Mami_Linda.lua" walkinterval="2000" floorchange="0">
     <health now="100" max="100" />
     <look type="331" head="39" body="39" legs="39" feet="76" addons="0" />
    </npc>

    Data/npc/scripts/crear archivo llamado "Mami_Linda"

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


    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

     if msgcontains(msg, "mission") and getPlayerStorageValue(cid, 80000) < 1 then
     npcHandler:say("Hola quieres hacer una mision?", cid)
     npcHandler.topic[cid] = 1
        elseif msgcontains(msg, "mission") and getPlayerStorageValue(cid, 80001) == 1 then -- o colocarle numero 2,  
                setPlayerStorageValue(cid, 80000, 3) -- quest log mission 3
                selfSay("Haz completado la mision, aqui tienes un bono de vida e mana.", cid)
                setCreatureMaxHealth(cid, 1000) -- añadir 1000 de vida al player.
                setCreatureMaxMana(cid, 1000) -- añadir 1000 de mana al player.
     elseif msgcontains(msg, "yes") then
     if npcHandler.topic[cid] == 1 then
     selfSay("Necesito que busques algo en mi casa.", cid)
     npcHandler.topic[cid] = 0
     setPlayerStorageValue(cid, 80000, 1) -- quest log mission 1
     setPlayerStorageValue(cid, 80001, 1) -- quest log mission 1. texto uno    
     end
     end

     return true
    end
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

    Es solo un ejemplo rapidito.

    Le dices al npc > hi/mission/yes... luego le dices de nuevo mission, y veras que te dara el bonus de vida e mana.

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