• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Ayuda] Tp System

    Compartir:

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

    1default [Ayuda] Tp System el Jue Sep 06, 2018 3:41 pm

    MtkDiaz

    avatar
    Nuevo Miembro
    Nuevo Miembro
    hola amigos de tf hoy les vengo a pedir ayuda con un script
    la script consiste en usar un comando "!tp" para ser transportado pero tengo un problema que dicho comando lo pueden usar todos y lo que quiero es que solo los player que tengan un determinado storage lo piedan usar
    aki les dejo la script "https://pastebin.com/YqARVb8R"

    Ver perfil de usuario

    2default Re: [Ayuda] Tp System el Jue Sep 06, 2018 10:08 pm

    Josens

    avatar
    Miembro
    Miembro
    Prueba con este
    Código:
    --[[
    Teleport System
    Desenvolvido por Vodkart
    Exclusivo TibiaKing
    Versão : 1.0
    ]]--



    --[[ Configuração ]]--


    local time = 5 -- tempo que demora para ser teleportado
    local premium_teleport_houses = true -- se para teleportar para as houses precisa ser premium

    local teleports = { -- ["nome do lugar"] que poderá ir
     ["depot"] = {pos = {x=129, y=54, z=6}, premium = false}, -- posição que irá e se precisa de premium para ir!
     ["templo"] = {pos = {x=160, y=54, z=7}, premium = false},
     ["arena"] = {pos = {x=125, y=351, z=9}, premium = false},
     ["baiak city"] = {pos = {x=1028, y=1034, z=7}, premium = false}
    }

    local requiere_storage = {X, Y}




    --[[ Functions ]]--
    function doTeleportWithDelay(cid, pos, delay) -- by vodkart
     if not isCreature(cid) then return LUA_ERROR end
     if delay > 0 then
     if getCreatureCondition(cid, CONDITION_INFIGHT) then
     setPlayerStorageValue(cid, 548745, 0)
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} O teletransporte foi desativado pois você entrou em estado de combate.") return true
     end
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} "..delay.." segundos para se teletransportar.")
     addEvent(doTeleportWithDelay, 1000, cid, pos, delay-1)
     else
     doTeleportThing(cid, pos)
     doSendMagicEffect(getPlayerPosition(cid), 10)
     end
    end
    function getHouseInvite(cid) -- by vodkart
     local t = {}
     local qry = db.getResult("SELECT `house_id`,`list` FROM `house_lists`;")
     if (qry:getID() ~= -1) then
     repeat
     local lista = qry:getDataString("list")
     if string.find(lista, getCreatureName(cid)) then
     local id = qry:getDataInt("house_id")
     if not isInArray(t, id) then
     t[#t+1] = id
     end
     
     end
     until not qry:next()
     qry:free()
     end
     return t
    end
    function onSay(cid, words, param)
     local z = string.explode(param:lower(), ",")
     if getCreatureCondition(cid, CONDITION_INFIGHT) then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Este comando só pode ser usado fora de combate.") return true
     elseif getPlayerStorageValue(cid, 548745) - os.time() > 0 then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} aguarde, você está em processo de teletransporte.") return true
     end
     if(getPlayerStorageValue(cid, requiere_storage[1]) < requiere_storage[2]) then
     return false
     end
     if z[1] == "casa" or z[1] == "house" then
     local t,invite,str = {},getHouseInvite(cid),'{Teleport} As casas disponíveis para você se teletransportar são:\n'
     if premium_teleport_houses == true and not isPremium(cid) then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} você precisa ser premium account para teleportar para houses.") return true
     end
     if getHouseByPlayerGUID(getPlayerGUID(cid)) ~= nil then
     t[#t+1] = getHouseByPlayerGUID(getPlayerGUID(cid))
     end
     if #invite ~= 0 then
     for i = 1,#invite do
     t[#t+1] = invite[i]
     end
     end
     if #t == 0 then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} você não tem nenhuma house para ir.") return true
     end
     if not tonumber(z[2]) or tonumber(z[2]) > #t then
     for i = 1, table.maxn(t) do
     local h = getHouseInfo(t[i])
     local hname, htown = getHouseName(t[i]),getTownName(h.town)
     
     str = str .. i .. ') '..hname..' [' .. htown..']'
     str = i ~= table.maxn(t) and str .. ', ' or str .. '.'
     end
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Você deve especificar uma das casas para se teletransportar usando !tp house,numeroDoIndice")
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) return true
     end
     setPlayerStorageValue(cid, 548745, os.time()+time)
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Ativado.")
     doTeleportWithDelay(cid, getHouseEntry(t[tonumber(z[2])]), time) return true
     end
     if not teleports[z[1]] then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Desculpe, este lugar não existe, lugares disponíveis: house, depot, templo, arena, baiak city.") return true
     elseif teleports[z[1]].premium == true and not isPremium(cid) then
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Desculpe, você precisa ser premium para ir para este lugar.") return true
     end
     setPlayerStorageValue(cid, 548745, os.time()+time)
     doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Ativado.")
     doTeleportWithDelay(cid, teleports[z[1]].pos, time) return true
    end

    Al principio agregue una linea donde dice
    requiere_storage
    {X, Y}

    el X es el storage y el Y es el valor del storage que debe tener para que funcione el tp.

    Cualquier error o duda me avisas, ya que no probe el script, ja.



    Very Happy
    Ver perfil de usuario http://No tengo ._.

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