• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [NPC] npc que solo deje elegir una opción

    Compartir:

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

    1Cảnh báo [NPC] npc que solo deje elegir una opción Miér Jul 19, 2023 12:33 am

    akane

    akane
    Miembro
    Miembro
    Descripcion escribió:Hola a todos cree un script de un npc en el cual al momento de decirle una palabra clave hace aparecer x monsters tanto como summon como monster normales, el problema es que al momento de hablar con el npc y decirles las 2 palabras claves (good y evil) a la vez este crea muchos monsters, por lo que necesito que al momento de hablar con el me deje escoger solo una opción y no las 2 como lo está haciendo.

    acá el script:

    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 onPlayerEndTrade(cid)            npcHandler:onPlayerEndTrade(cid)         end
    function onPlayerCloseChannel(cid)         npcHandler:onPlayerCloseChannel(cid)      end

    local nome = "Amon" -- nome do monstro que vai parecer
    local nome2 = "Isis" -- nome do monstro que vai parecer
    local nome3 = "Bastet" -- nome do monstro que vai parecer
    local enemy = "Osiris" -- nome do monstro que vai parecer
    local enemy2 = "Seth" -- nome do monstro que vai parecer
    local enemy3 = "Horus" -- nome do monstro que vai parecer


    function creatureSayCallback(cid, type, msg)
       if string.lower(msg) == 'bye' or string.lower(msg) == 'xau' then
          npcHandler:resetNpc(cid)
          return false
       end
        if(not npcHandler:isFocused(cid)) then
            return false
        end
    if (msgcontains(msg, 'good')) then
       if getPlayerStorageValue(cid,20027) >= 1 then
          local pos = getCreaturePosition(getNpcId())
          selfSay('So let the war begin.', cid)
          doCreatureSay(getNpcId(), "Have fun hahahaha!", TALKTYPE_MONSTER_YELL)
          npcHandler:resetNpc(cid)
          doSummonMonster(cid, "Amon")
          doSummonMonster(cid, "Isis")
          doSummonMonster(cid, "Bastet")
          doCreateMonster(enemy, pos)
          doCreateMonster(enemy2, pos)
          doCreateMonster(enemy3, pos)
          setPlayerStorageValue(cid,20028,1)
       else
       selfSay('no puedes.', cid)
       end
    elseif (msgcontains(msg, 'evil')) then
       if getPlayerStorageValue(cid,20027) >= 1 then
          local pos = getCreaturePosition(getNpcId())
          selfSay('So let the war begin.', cid)
          doCreatureSay(getNpcId(), "Have fun hahahaha!", TALKTYPE_MONSTER_YELL)
          npcHandler:resetNpc(cid)
          doSummonMonster(cid, "Osiris")
          doSummonMonster(cid, "Seth")
          doSummonMonster(cid, "Horus")
          doCreateMonster(nome, pos)
          doCreateMonster(nome2, pos)
          doCreateMonster(nome3, pos)
          setPlayerStorageValue(cid,20029,1)
       else
       selfSay('no puedes.', cid)
       end   
       
       return true
    end
    end

    npcHandler:setCallback(CALLBACK_GREET, greetCallback)
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())
    Captura del Error escribió:Imagen del error: [NPC] npc que solo deje elegir una opción Empty
    El error radica en: Npc

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    a tu script veo que le has añadido asi

    if getPlayerStorageValue(cid,20027) >= 1 then

    aqui solo verifica si tienes un storage no un storage repetido digamos

    if getPlayerStorageValue(cid,20027) >= 1 and getPlayerStorageValue(cid,20030) == 0 then

    aqui me esta diciendo si cumple con cierto estorage 20027 y si no tiene el storage 20030 para que no s repita la otra opcion


    Código:


    if (msgcontains(msg, 'good')) then
      if getPlayerStorageValue(cid,20027) >= 1 and getPlayerStorageValue(cid,20030) == 0  then
          local pos = getCreaturePosition(getNpcId())
          selfSay('So let the war begin.', cid)
          doCreatureSay(getNpcId(), "Have fun hahahaha!", TALKTYPE_MONSTER_YELL)
          npcHandler:resetNpc(cid)
          doSummonMonster(cid, "Amon")
          doSummonMonster(cid, "Isis")
          doSummonMonster(cid, "Bastet")
          doCreateMonster(enemy, pos)
          doCreateMonster(enemy2, pos)
          doCreateMonster(enemy3, pos)
          setPlayerStorageValue(cid,20028,1)
    setPlayerStorageValue(cid,20030,1) ------ storage para que no se repita la quest
      else
      selfSay('no puedes.', cid)
      end
    elseif (msgcontains(msg, 'evil')) then
      if getPlayerStorageValue(cid,20027) >= 1 and getPlayerStorageValue(cid,20030) == 0 then
          local pos = getCreaturePosition(getNpcId())
          selfSay('So let the war begin.', cid)
          doCreatureSay(getNpcId(), "Have fun hahahaha!", TALKTYPE_MONSTER_YELL)
          npcHandler:resetNpc(cid)
          doSummonMonster(cid, "Osiris")
          doSummonMonster(cid, "Seth")
          doSummonMonster(cid, "Horus")
          doCreateMonster(nome, pos)
          doCreateMonster(nome2, pos)
          doCreateMonster(nome3, pos)
          setPlayerStorageValue(cid,20029,1)
    setPlayerStorageValue(cid,20030,1) ------ storage para que no se repita la quest
      else
      selfSay('no puedes.', cid)
      end 
     




    [NPC] npc que solo deje elegir una opción YNU5B25
    2 participantes
    http://www.tibiaface.com

    akane

    akane
    Miembro
    Miembro
    entiendo, probaré que tal



    Very Happy Resuelto Gracias Very Happy

    2 participantes

    Contenido patrocinado


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