• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Talkactions] Sistema de Teleport - Fly de The_Pain(no es mio)

    Compartir:

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

    selenia

    selenia
    Nuevo Miembro
    Nuevo Miembro
    [Tienes que estar registrado y conectado para ver este vínculo]Es el autori original de este script. Todos los creditos son para el Very Happy!

    Bueno primero que nada quisiera agradecer a toda la comunidad que siempre esta atenta y al pendiente de todos entre si Very Happy! me encanta

    Segundo: The Pain se paso de lanza con este script esta buenisimo!!!

    Tercero: Quisiera preguntar como añadir en esos variables que el player no pueda usarlo en :

    Modo de batalla(listo-modificacion) o Solo pueda usarlo en zona de proteccion como templos o casas(aun no hecho)

    Roockgard (intente añadirle una linea para que no se pudiera usar si el player no tiene la promocion)

    Talkaction
    Código:
    ---@Tabla de destinos
    --# Las posiciones se configuran en el archivo ( creaturescripts/script )
    local destinos = {
      { name = 'Temple', inpz = true, inlvl = 0, inprmy = true },
      { name = 'Thais Depot', inpz = true, inlvl = 50, inprmy = true },
      { name = 'Venore', inpz = true, inlvl = 50, inprmy = true },
      { name = 'Skills', inpz = true, inlvl = 100, inprmy = false }
    }

    ---@Variable en segundos
    local delaySayCommand = 20
    local delaySayStorage = 77000

    ---@Talkaction Teleport por ventanas modal
    --#Devuelve boolean
    --#Modal_Window_Teleports
    function onSay(player, words, param)

    local delaySay = player:getStorageValue(delaySayStorage)
    if delaySay > os.time() then
      player:sendCancelMessage('Exaust command.')
      return false
    end

    local modalWindow = ModalWindow(1000, 'Teleporter', 'Elige a donde volar.')
    for index, destino in pairs(destinos) do
    local msg = {
      inpz = (destino.inpz and '[yes]' or '[no]'),
      inlvl = destino.inlvl,
      inprmy = (destino.inprmy and '[yes]' or '[no]')
    }
    local msgOut = '[ ' .. destino.name .. ' ]' .. msg.inpz .. ', lvl:[' .. msg.inlvl .. '], ' .. msg.inprmy
    modalWindow:addChoice(index, msgOut)
    end
    modalWindow:addButton(1, 'Go')
    modalWindow:addButton(2, 'Cancel')
    modalWindow:setDefaultEnterButton(1)
    modalWindow:setDefaultEscapeButton(2)
    player:registerEvent('WindowTeleports')
    modalWindow:sendToPlayer(player)

    return false
    end

    Creaturescript
    Código:
    ---@Tabla de destinos
      local destinos = {
        { 'Temple', Position(1000, 1000, 7), inpz = true, inlvl = 0, inprmy = false },
        { 'Depot', Position(1000, 1000, 7), inpz = true, inlvl = 50, inprmy = false },
        { 'Skills', Position(1000, 1000, 7), inpz = true, inlvl = 100, inprmy = true }
      }

      function onModalWindow(player, modalWindowId, buttonId, choiceId)
      if modalWindowId == 1000 then
      if buttonId == 1 then
      local destino = destinos[choiceId]
      if destino ~= nil then
          if destino.inpz and player:isPzLocked() then [con ayuda de The Pain(aqui yo agregue esto playerCondition(CONDITION_INFIGHT, CONDITIONID_DEFAULT) then)para que el player no pudiera abusar del comando estando en medio de una batalla con un monster]
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio con Pz.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inlvl > player:getLevel() then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres lvl' .. destino.inlvl .. '.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inprmy and player:getPremiumDays() > 0 then (aqui yo intente remplazarlo con player:getStorageValue == 30018 then para que no se pudiera usar si el player no tenia promoted(elite-royal-elderetc, el storage 30018 lo saque de la lista de storage values donde el king te dice you are already promoted)
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres premium.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          local toPosition = destino[2]
          player:getPosition():sendMagicEffect(CONST_ME_POFF)
          player:teleportTo(toPosition, true)
          toPosition:sendMagicEffect(CONST_ME_TELEPORT)
      end
      end
      end
      return true
      end]

    Gracias por la ayuda de antemano y espero que esto nos ayude a todos Very Happy!



    Última edición por selenia el Miér Feb 21, 2018 2:17 pm, editado 3 veces (Razón : espero su respuesta chicos :D!)

    Invitado

    Anonymous
    Invitado
    no entiendo =/

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Buenas tardes, aqui esta lo que querias

    TALKACTION
    Código:
    ---@Tabla de destinos
    --# Las posiciones se configuran en el archivo ( creaturescripts/script )
    local destinos = {
      { name = 'Temple', inpz = true, inlvl = 0, inprmy = true, promotion = 0 },
      { name = 'Depot', inpz = true, inlvl = 50, inprmy = true, promotion = 1 },
      { name = 'Skills', inpz = true, inlvl = 100, inprmy = false, promotion = 2 }
    }

    ---@Variable en segundos
    local delaySayCommand = 20
    local delaySayStorage = 77000

    ---@Talkaction Teleport por ventanas modal
    --#Devuelve boolean
    --#Modal_Window_Teleports
    function onSay(player, words, param)

    local delaySay = player:getStorageValue(delaySayStorage)
    if delaySay > os.time() then
      player:sendCancelMessage('Exaust command.')
      return false
    end

    local modalWindow = ModalWindow(1000, 'Teleporter', 'Elige a donde volar.')
    for index, destino in pairs(destinos) do
    local msg = {
      inpz = (destino.inpz and '[Pz:yes]' or '[Pz:no]'),
      inlvl = destino.inlvl,
      inprmy = (destino.inprmy and '[Premy:yes]' or '[Premy:no]'),
      promo = (destino.promotion > 0 and '[Promo:'..destino.promotion..']' or '')
    }
    local msgOut = '[ ' .. destino.name .. ' ]' .. msg.inpz .. ', lvl:[' .. msg.inlvl .. '], ' .. msg.inprmy .. ', ' .. msg.promo
    modalWindow:addChoice(index, msgOut)
    end
    modalWindow:addButton(1, 'Go')
    modalWindow:addButton(2, 'Cancel')
    modalWindow:setDefaultEnterButton(1)
    modalWindow:setDefaultEscapeButton(2)
    player:registerEvent('WindowTeleports')
    modalWindow:sendToPlayer(player)

    return false
    end



    CREATURESCRIPT
    Código:
    ---@Tabla de destinos
      local destinos = {
        { 'Temple', Position(1000, 1000, 7), inpz = true, inlvl = 0, inprmy = false, promotion = 0 },
        { 'Depot', Position(1000, 1000, 7), inpz = true, inlvl = 50, inprmy = false, promotion = 1 },
        { 'Skills', Position(1000, 1000, 7), inpz = true, inlvl = 100, inprmy = true, promotion = 2 }
      }

      local isPzNormal = function(player)
      local condition = player:getCondition(CONDITION_INFIGHT, CONDITIONID_DEFAULT)
      return condition and true or false
      end

      local isPromotionResult = function(player)
      local vocationId = player:getVocation():getId()
      if vocationId > 8 then
          return 2
      elseif vocationId > 4 then
          return 1
      end
      return 0
      end


      function onModalWindow(player, modalWindowId, buttonId, choiceId)
      if modalWindowId == 1000 then
      if buttonId == 1 then
      local destino = destinos[choiceId]
      if destino ~= nil then
          if destino.inpz and isPzNormal(player) then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio con Pz.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inlvl > player:getLevel() then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres lvl' .. destino.inlvl .. '.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inprmy and player:getPremiumDays() > 0 then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres premium.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.promotion > 0 and isPromotionResult(player) < destino.promotion then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No puedes viajar a este zona, necesitas obtener un nivel de promotion mas avanzado.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          local toPosition = destino[2]
          player:getPosition():sendMagicEffect(CONST_ME_POFF)
          player:teleportTo(toPosition, true)
          toPosition:sendMagicEffect(CONST_ME_TELEPORT)
      end
      end
      end
      return true
      end



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Talkactions] Sistema de Teleport - Fly de The_Pain(no es mio) TRJEB8aSRYK5IulEU6ilJw

    elchuvas

    elchuvas
    Miembro
    Miembro
    el teleport tambien funciona para la casa?

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    CREATURESCRIPT :: Para las houses tambien.
    Código:
    ---@Tabla de destinos
      local destinos = {
        { 'Temple', Position(1000, 1000, 7), inpz = true, inlvl = 0, inprmy = false, promotion = 0, ishouse = true },
        { 'Depot', Position(1000, 1000, 7), inpz = true, inlvl = 50, inprmy = false, promotion = 1, ishouse = true },
        { 'Skills', Position(1000, 1000, 7), inpz = true, inlvl = 100, inprmy = true, promotion = 2, ishouse = true },
        { 'House', Position(0, 0, 0), inpz = true, inlvl = 100, inprmy = true, promotion = 2, ishouse = true }
      }

      local isPzNormal = function(player)
      local condition = player:getCondition(CONDITION_INFIGHT, CONDITIONID_DEFAULT)
      return condition and true or false
      end

      local isPromotionResult = function(player)
      local vocationId = player:getVocation():getId()
      if vocationId > 8 then
          return 2
      elseif vocationId > 4 then
          return 1
      end
      return 0
      end


      function onModalWindow(player, modalWindowId, buttonId, choiceId)
      if modalWindowId == 1000 then
      if buttonId == 1 then
      local destino = destinos[choiceId]
      if destino ~= nil then
          if destino.inpz and isPzNormal(player) then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio con Pz.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inlvl > player:getLevel() then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres lvl' .. destino.inlvl .. '.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.inprmy and player:getPremiumDays() > 0 then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No esta permitido viajar a este sitio si no eres premium.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          if destino.promotion > 0 and isPromotionResult(player) < destino.promotion then
            player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No puedes viajar a este zona, necesitas obtener un nivel de promotion mas avanzado.')
            player:getPosition():sendMagicEffect(CONST_ME_POFF)
            return true
          end
          local toPosition = destino[2]
          if destino.ishouse then
             local house = player:getHouse()
             if not house then
                player:sendTextMessage(MESSAGE_STATUS_DEFAULT, 'No tienes casa!')
               player:getPosition():sendMagicEffect(CONST_ME_POFF)
                return true
             end
             toPosition = house:getExitPosition()
          end
          player:getPosition():sendMagicEffect(CONST_ME_POFF)
          player:teleportTo(toPosition, true)
          toPosition:sendMagicEffect(CONST_ME_TELEPORT)
      end
      end
      end
      return true
      end



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Talkactions] Sistema de Teleport - Fly de The_Pain(no es mio) TRJEB8aSRYK5IulEU6ilJw

    elchuvas

    elchuvas
    Miembro
    Miembro
    Y Asi te lleva a la casa de propietario?
    o que pes

    draxloth12

    draxloth12
    Nuevo Miembro
    Nuevo Miembro
    cual seria el comando ?? de teleport

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