Ir para conteúdo
  • 0

Action que teleporta para lugar X, porem precisa ter 10 resets para ir,so pode ir denovo após 1 Hora


Dennyz Dias

Pergunta

Posts Recomendados

  • 0

Se alguém conseguir oque ?

Por uma placa TP ? '-'

Uma placa que faz com que teleport o player, porém, somente de 1 em 1 hr ?

Se sim:

 

 

local config = {
pos = {x = 160, y = 54, z = 7}, --Pos para onde vai o indivíduo.
storage = 838939, -- Não mecha
}
 
function convertTime(time)
    local t_table = {}
    t_table.days = math.floor(time / 86400)
    time = time - (t_table.days * 86400)
    t_table.hours = math.floor(time / 3600)
    time = time - (t_table.hours * 3600)
    t_table.minutes = math.floor(time / 60)
    t_table.seconds = time - (t_table.minutes * 60)
    return t_table
end
     
function onUse(cid, item, fromPosition, toPosition)
 
         if item.actionid == 5003 then
            if getPlayerStorageValue(cid, config.storage) >= 1 then
                 local time_model = "%d minuto(s) e %d segundo(s)."
                 local timeLeft = convertTime(getPlayerStorageValue(cid, config.storage) - os.time())
                 local str = "Desculpe, mas você só poderá clicar neste item novamente depois de "..time_model:format(timeLeft.minutes, timeLeft.seconds).."."
                 doPlayerSendTextMessage(cid, 27, str)
                return doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)  
             else
                 setPlayerStorageValue(cid, config.storage, os.time() + 1 * 60 * 60)
                 doTeleportThing(cid, config.pos)
                 doSendMagicEffect(getThingPos(cid), 37)
             return doSendAnimatedText(getThingPos(cid), "Teleport!", math.random(1,255))  
             end        
         end               
   return true
end
Editado por christopher17288
Link para o comentário
Compartilhar em outros sites

  • 0


function getPlayerReset(cid)

local pid = getPlayerGUID(cid)

local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= ".. pid..";")

rss = qr:getDataInt("reset", pid)

if not rss or not tonumber(rss) then

rss = 0

end

return rss

end

 

local hours = 1 -- tempo em horas

local position = {x = 123, y = 456, z = 7}

 

function onUse(cid, item)

if getPlayerReset(cid) >= 10 then

if getPlayerStorageValue(cid, 4954)-os.time() <= 0 then

doTeleportThing(cid, position)

setPlayerStorageValue(cid, 4954, os.time() + hours * 60 * 60)

else

doPlayerSendCancel(cid, "You need to wait: ".. getPlayerStorageValue(cid, 4954) - os.time() .."s to use this again.")

doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)

end

else

doPlayerSendCancel(cid, "You need 10 resets to do this")

doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Se nenhum de cima dar certo, tente assim:

function getPlayerReset(cid)
	local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";")
	rss = qr:getDataInt("reset", getPlayerGUID(cid))
	if rss < 0 then
		rss = 0
	end
	return rss
end
local config = {
	storage = 12312, -- storage (coloque uma livre do seu servidor)
	reset = 10, -- reset minimo
	tempo = 1, -- tempo em hora
	pos = {x = 123, y = 456, z = 7} -- pos que iá levar o jogador
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerStorageValue(cid,config.storage) < 0 then
		setPlayerStorageValue(cid,config.storage,0)
	end
	if getPlayerReset(cid) < config.reset then
		doPlayerSendCancel(cid, 'Você precisa de '.. config.reset ..' reset'.. (config.reset <= 1 and '' or 's') ..' para usar este item.')
		return true
	end
	if getPlayerStorageValue(cid,config.storage) >= os.time() then
		mostrartempo = getPlayerStorageValue(cid,config.storage)
		doPlayerSendCancel(cid, 'Você só pode usar esse item às ' .. os.date("%X",mostrartempo ) .. ' horas.')
		return true
	end
	doTeleportThing(cid, config.pos)
	setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo * 60 * 60))
	return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

mude aquela script por essa:

function getPlayerReset(cid)
	local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";")
	rss = qr:getDataInt("reset", getPlayerGUID(cid))
	if rss < 0 then
		rss = 0
	end
	return rss
end
function getGlobalStorageValue(key)
	local qr = db.getResult("SELECT `value` FROM `global_storage` WHERE `key`= "..key..";")
	local r = qr:getDataInt("reset", getPlayerGUID(cid))
	if r < 0 then
		r = -1
	end
	return r
 end
 function setGlobalStorageValue(key, value)
	if getGlobalStorageValue(key) < 0 then
		return db.executeQuery("INSERT INTO `global_storage` (`key`, `value`) VALUES (".. key ..", ".. value ..");")	
	else
		return db.executeQuery("UPDATE `global_storage` SET `value` = '".. value .."' WHERE `key` ='"..key.."'")
	end
 end


local config = {
	storage = 12312, -- storage (coloque uma livre do seu servidor)
	reset = 10, -- reset minimo
	tempo = 1, -- tempo em hora
	tempoGlobal = 30, -- tempo em minutos para todos
	pos = {x = 123, y = 456, z = 7} -- pos que iá levar o jogador
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerStorageValue(cid,config.storage) < 0 then
		setPlayerStorageValue(cid,config.storage,0)
	end
	if getPlayerReset(cid) < config.reset then
		doPlayerSendCancel(cid, 'Você precisa de '.. config.reset ..' reset'.. (config.reset <= 1 and '' or 's') ..' para usar este item.')
		return true
	end
	if getPlayerStorageValue(cid,config.storage) >= os.time() then
		mostrartempo = getPlayerStorageValue(cid,config.storage)
		doPlayerSendCancel(cid, 'Você só pode usar esse item às ' .. os.date("%X",mostrartempo ) .. ' horas.')
		return true
	end
	if getGlobalStorageValue(config.storage) >= os.time() then
		mostrartempo = getGlobalStorageValue(config.storage)
		doPlayerSendCancel(cid, 'Você só pode usar esse item às ' .. os.date("%X",mostrartempo ) .. ' horas.')
		return true		
	end
	doTeleportThing(cid, config.pos)
	setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo * 60 * 60))
	setGlobalStorageValue(config.storage, os.time() + (config.tempoGlobal * 60))
	return true
end

executa essa query na sua database:

CREATE TABLE IF NOT EXISTS `global_storage` (
  `key` int(11) NOT NULL,
  `value` bigint(20) NOT NULL,
  PRIMARY KEY (`key`,`value`)
);
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...