Ir para conteúdo
  • Cadastre-se

Posts Recomendados

vc me ajuda a coloca para todos os player ganha storage nao somente quem ta online

 

local configuration = { 
    to_pos = {x = 477, y = 1363, z = 7},    --Para onde o teleport levará.
    pos = {x = 571, y = 1009, z = 7},       --Onde o teleport será criado.
    teleport_id = 1387,                --ID do teleport.
    monstername = "Tower Event", -- nome do boss
    monsterpos = { x = 477, y = 1369, z = 7 }, -- posiçao do boss
    poss = {x = 578, y = 1014, z = 7},
     time = 1,
    tempoTP = 1,
   teleport_id = 1387,
    storage = 10203,
}
function onSay(cid, words, param, channel, player)
        local item = getTileItemById(configuration.pos, configuration.teleport_id).uid
         if item > 0 then
        	for _, player in ipairs(getPlayersOnline()) do
        		setPlayerStorageValue(player, configuration.storage, 0)
end
            doRemoveItem(item, 1)
            broadcastMessage("~> [TOWER] foi fechado.", 27)
    else
        	for _, player in ipairs(getPlayersOnline()) do
        		setPlayerStorageValue(player, configuration.storage, 1)
        	end
           broadcastMessage( "~> [TOWER] foi aberto no Templo.", 27)
            doCreateTeleport(configuration.teleport_id, configuration.to_pos, configuration.pos)
            doCreateMonster(configuration.monstername, configuration.monsterpos)
    end
    return true
end
Link para o post
Compartilhar em outros sites

Eu corrigi algumas partes do código, sugiro que atualizem o de vocês para o novo.

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
  • 2 months later...

@Talesigorvr Boa noite eu estou atraz desse system de hunt exclusiva tbm ai vi que vc colocou ali e tentei colocar no meu ot so que quando eu vou use no iten ou o player que nao deu use no iten tentar entrar no teleporte da o seguinte erro :

 

[04/08/2016 02:35:58] [Error - MoveEvents Interface] 
[04/08/2016 02:35:58] data/movements/scripts/hunttime.lua:onStepIn
[04/08/2016 02:35:58] Description: 
[04/08/2016 02:35:58] data/lib/032-position.lua:2: attempt to index global 'position' (a nil value)
[04/08/2016 02:35:58] stack traceback:
[04/08/2016 02:35:58]     data/lib/032-position.lua:2: in function 'isInRange'
[04/08/2016 02:35:58]     data/movements/scripts/hunttime.lua:13: in function 'getPlayersInArea'
[04/08/2016 02:35:58]     data/movements/scripts/hunttime.lua:29: in function <data/movements/scripts/hunttime.lua:1>
 

Link para o post
Compartilhar em outros sites
17 horas atrás, Talesigorvr disse:

@churupetinha, eu testei e está funcionando, deve ser o seu TFS. O código está em TFS 1.0.

pode mi ajudar

 

Editado por ZikaLord (veja o histórico de edições)
O rei de seu proprio destino é aquele que luta pela gloria do amanhã!
Discord : ZoR#9373


 

Link para o post
Compartilhar em outros sites
  • 8 months later...
  • 2 weeks later...
Em 02/05/2016 ás 14:36, Vodkart disse:

Sistema simples, se for como eu estou pensando... Basta usar Storage.

 

Mas como funciona a cave? Só pode um jogador por vez na cave ou se 4 jogadores tiverem a key, os 4 podem caçar junto na mesma cave?

 

Pode me ajudar? Eu fiz exatamente oque o pessoal falou aqui e funcionou só que o ITEM é infinito ele não some igual FOOD, como faço pra usar o item e ele sumir?

Link para o post
Compartilhar em outros sites
  • 10 months later...

Não sei se esse aki e o lugar certo si não for pesso desculpa,  no meu ot 8.60 bestbaiak esta acontecendo uma coisa estranha pq quando eu clico cave exclusiva de número 1 ela fica dono da 1 e da 2 e também quando acaba o tempo que o player da cave deve ser teleporta pro Templo ele não vai o tempo acaba a mensagem avisa mas o player não e teleportado alguém sabe me dizer oque e isso..  Obrigado quem souber deixo um REP +

Link para o post
Compartilhar em outros sites
  • 6 months later...
Em 16/05/2016 em 19:00, Bodak Reborn disse:

function onStepIn(cid, item, position, fromPosition) local config = { storage = 789456, from = {x = 1049, y = 1051, z = 6}, -- coordenada do canto superior esquerdo da área. to = {x = 1051, y = 1053, z = 7}, -- coordenada do canto inferior direito da área. maxPlayers = 1, -- quantos jogadores poderão entrar na área ao mesmo tempo. pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado. } local function getPlayersInArea(left, right) local playersInArea = {} for _, cid in ipairs(getPlayersOnline()) do if isInRange(getThingPos(cid), left, right) then table.insert(playersInArea, cid) end end return playersInArea end if isPlayer(cid) then if getPlayerStorageValue (cid, config.storage) < os.time() then doPlayerSendTextMessage(cid, 19, "MSG caso o player não tenha acesso.") doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) doTeleportThing(cid, fromPosition, true) else doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) end if table.getn(getPlayersInArea(config.from, config.to)) < config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then doSendMagicEffect(fromPosition, CONST_ME_TELEPORT) doTeleportThing (cid, config.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) elseif table.getn(getPlayersInArea(config.from, config.to)) >= config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then doPlayerSendTextMessage (cid, 19, "MSG caso já tenha o limite de jogadores dentro da área.") doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) doTeleportThing(cid, fromPosition, true) end end return true end

 

Em 16/05/2016 em 19:00, Bodak Reborn disse:

Como faltou algumas informações, fiz do jeito que entendi.

Crie um teleport sem coordenadas pelo remeres (os que vão teleportar para a cave).

Nesses teleports, coloque um action id.

 

movements/scripts

nome_arquivo.lua


function onStepIn(cid, item, position, fromPosition)
	local config = {
	storage = 789456,
	from = {x = 1049, y = 1051, z = 6}, -- coordenada do canto superior esquerdo da área.
	to = {x = 1051, y = 1053, z = 7}, -- coordenada do canto inferior direito da área.
	maxPlayers = 1, -- quantos jogadores poderão entrar na área ao mesmo tempo.
	pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado.
	}
	
	local function getPlayersInArea(left, right)
		local playersInArea = {}
		for _, cid in ipairs(getPlayersOnline()) do
			if isInRange(getThingPos(cid), left, right) then
				table.insert(playersInArea, cid)
			end
		end
	return playersInArea
	end
	
	if isPlayer(cid) then
		if getPlayerStorageValue (cid, config.storage) < os.time() then
			doPlayerSendTextMessage(cid, 19, "MSG caso o player não tenha acesso.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		else
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		end
	
		if table.getn(getPlayersInArea(config.from, config.to)) < config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doSendMagicEffect(fromPosition, CONST_ME_TELEPORT)
			doTeleportThing (cid, config.pos)
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		elseif table.getn(getPlayersInArea(config.from, config.to)) >= config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doPlayerSendTextMessage (cid, 19, "MSG caso já tenha o limite de jogadores dentro da área.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		end
	end
return true
end

 

movements.xml


<movevent type="StepIn" actionid="ACTION_ID_DO_TP" event="script" value="nome_arquivo.lua" />

 

actions/scripts

nome_arquivo.lua


function onUse(cid, item, frompos, item2, topos)
	local config = {
	timeExhausted = 24, -- tempo em horas para poder usar o item novamente.
	timeForUse = 6, -- tempo em horas que o player poderá entrar na cave.
	exhausted = 456789,
	storage = 789456,
	toKnow = 123456,
	effect = 27, -- efeito que dará ao usar o item.
	}
	
	if getPlayerStorageValue(cid, config.exhausted) < os.time() then
		setPlayerStorageValue (cid, config.storage, config.timeForUse * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.exhausted, config.timeExhausted * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.toKnow, 1)
		doSendMagicEffect (getThingPos(cid), config.effect)
		doPlayerSendTextMessage (cid, 19, "MSG informando que o jogador tem acesso à área.")
	else
		doPlayerSendTextMessage (cid, 19, "MSG caso o player esteja exhaustado. (Sobre ter que esperar 24 horas)")
	end
return true
end

 

actions.xml


<action itemid="ID_DO_ITEM" event="script" value="nome_arquivo.lua"/>

 

creaturescripts/scripts

nome_arquivo.lua


local config = {
toKnow = 123456,
storage = 789456,
pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado caso o tempo tenha acabado.
}

function onKill(cid, target, lastHit)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage) < os.time () then
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doRemoveCreature (cid)
		end
	end
return true
end

function onLogin(cid)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage)  < os.time () then
			doTeleportThing (cid, config.pos)
			setPlayerStorageValue (cid, config.toKnow, 0)
		end
	end
return true
end

 

creaturescripts.xml


<event type="login" name="timeAcess" event="script" value="nome_arquivo.lua"/>
<event type="kill" name="timeAcessKill" event="script" value="nome_arquivo.lua"/>

 

Em creaturescripts/login.lua procure por "registerCreatureEvent" e coloque isso embaixo:


registerCreatureEvent(cid, "timeAcess")
registerCreatureEvent(cid, "timeAcessKill")

 

PS: Eu testei apenas os códigos de actions e movements. Não testei os códigos de creaturescripts, logo, são passíveis de erros.

 

 

 

A parte de nao deixar outro player entrar nao funcionou pra mim.. coloquei as coordenadas e talz... ele da pra entrar quantos player quizer pelo teleport

Link para o post
Compartilhar em outros sites
  • 7 months later...
Em 16/05/2016 em 19:00, Bodak Reborn disse:

Como faltou algumas informações, fiz do jeito que entendi.

Crie um teleport sem coordenadas pelo remeres (os que vão teleportar para a cave).

Nesses teleports, coloque um action id.

 

movements/scripts

nome_arquivo.lua


function onStepIn(cid, item, position, fromPosition)
	local config = {
	storage = 789456,
	from = {x = 1049, y = 1051, z = 6}, -- coordenada do canto superior esquerdo da área.
	to = {x = 1051, y = 1053, z = 7}, -- coordenada do canto inferior direito da área.
	maxPlayers = 1, -- quantos jogadores poderão entrar na área ao mesmo tempo.
	pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado.
	}
	
	local function getPlayersInArea(left, right)
		local playersInArea = {}
		for _, cid in ipairs(getPlayersOnline()) do
			if isInRange(getThingPos(cid), left, right) then
				table.insert(playersInArea, cid)
			end
		end
	return playersInArea
	end
	
	if isPlayer(cid) then
		if getPlayerStorageValue (cid, config.storage) < os.time() then
			doPlayerSendTextMessage(cid, 19, "MSG caso o player não tenha acesso.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		else
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		end
	
		if table.getn(getPlayersInArea(config.from, config.to)) < config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doSendMagicEffect(fromPosition, CONST_ME_TELEPORT)
			doTeleportThing (cid, config.pos)
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		elseif table.getn(getPlayersInArea(config.from, config.to)) >= config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doPlayerSendTextMessage (cid, 19, "MSG caso já tenha o limite de jogadores dentro da área.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		end
	end
return true
end

 

movements.xml


<movevent type="StepIn" actionid="ACTION_ID_DO_TP" event="script" value="nome_arquivo.lua" />

 

actions/scripts

nome_arquivo.lua


function onUse(cid, item, frompos, item2, topos)
	local config = {
	timeExhausted = 24, -- tempo em horas para poder usar o item novamente.
	timeForUse = 6, -- tempo em horas que o player poderá entrar na cave.
	exhausted = 456789,
	storage = 789456,
	toKnow = 123456,
	effect = 27, -- efeito que dará ao usar o item.
	}
	
	if getPlayerStorageValue(cid, config.exhausted) < os.time() then
		setPlayerStorageValue (cid, config.storage, config.timeForUse * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.exhausted, config.timeExhausted * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.toKnow, 1)
		doSendMagicEffect (getThingPos(cid), config.effect)
		doPlayerSendTextMessage (cid, 19, "MSG informando que o jogador tem acesso à área.")
	else
		doPlayerSendTextMessage (cid, 19, "MSG caso o player esteja exhaustado. (Sobre ter que esperar 24 horas)")
	end
return true
end

 

actions.xml


<action itemid="ID_DO_ITEM" event="script" value="nome_arquivo.lua"/>

 

creaturescripts/scripts

nome_arquivo.lua


local config = {
toKnow = 123456,
storage = 789456,
pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado caso o tempo tenha acabado.
}

function onKill(cid, target, lastHit)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage) < os.time () then
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doRemoveCreature (cid)
		end
	end
return true
end

function onLogin(cid)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage)  < os.time () then
			doTeleportThing (cid, config.pos)
			setPlayerStorageValue (cid, config.toKnow, 0)
		end
	end
return true
end

 

creaturescripts.xml


<event type="login" name="timeAcess" event="script" value="nome_arquivo.lua"/>
<event type="kill" name="timeAcessKill" event="script" value="nome_arquivo.lua"/>

 

Em creaturescripts/login.lua procure por "registerCreatureEvent" e coloque isso embaixo:


registerCreatureEvent(cid, "timeAcess")
registerCreatureEvent(cid, "timeAcessKill")

 

PS: Eu testei apenas os códigos de actions e movements. Não testei os códigos de creaturescripts, logo, são passíveis de erros.

 

Ola tem como quando clicar no item, verificar se ja tem alguem na sala? porque se ja tem alguem la dentro e vc acabar usando o item vai perder o tempo... pq vc perde o item e ja tem alguem usando  hunt..

Link para o post
Compartilhar em outros sites
Em 16/05/2016 em 19:00, Bodak Reborn disse:

Como faltou algumas informações, fiz do jeito que entendi.

Crie um teleport sem coordenadas pelo remeres (os que vão teleportar para a cave).

Nesses teleports, coloque um action id.

 

movements/scripts

nome_arquivo.lua


function onStepIn(cid, item, position, fromPosition)
	local config = {
	storage = 789456,
	from = {x = 1049, y = 1051, z = 6}, -- coordenada do canto superior esquerdo da área.
	to = {x = 1051, y = 1053, z = 7}, -- coordenada do canto inferior direito da área.
	maxPlayers = 1, -- quantos jogadores poderão entrar na área ao mesmo tempo.
	pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado.
	}
	
	local function getPlayersInArea(left, right)
		local playersInArea = {}
		for _, cid in ipairs(getPlayersOnline()) do
			if isInRange(getThingPos(cid), left, right) then
				table.insert(playersInArea, cid)
			end
		end
	return playersInArea
	end
	
	if isPlayer(cid) then
		if getPlayerStorageValue (cid, config.storage) < os.time() then
			doPlayerSendTextMessage(cid, 19, "MSG caso o player não tenha acesso.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		else
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		end
	
		if table.getn(getPlayersInArea(config.from, config.to)) < config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doSendMagicEffect(fromPosition, CONST_ME_TELEPORT)
			doTeleportThing (cid, config.pos)
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		elseif table.getn(getPlayersInArea(config.from, config.to)) >= config.maxPlayers and getPlayerStorageValue (cid, config.storage) > os.time() then
			doPlayerSendTextMessage (cid, 19, "MSG caso já tenha o limite de jogadores dentro da área.")
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doTeleportThing(cid, fromPosition, true)
		end
	end
return true
end

 

movements.xml


<movevent type="StepIn" actionid="ACTION_ID_DO_TP" event="script" value="nome_arquivo.lua" />

 

actions/scripts

nome_arquivo.lua


function onUse(cid, item, frompos, item2, topos)
	local config = {
	timeExhausted = 24, -- tempo em horas para poder usar o item novamente.
	timeForUse = 6, -- tempo em horas que o player poderá entrar na cave.
	exhausted = 456789,
	storage = 789456,
	toKnow = 123456,
	effect = 27, -- efeito que dará ao usar o item.
	}
	
	if getPlayerStorageValue(cid, config.exhausted) < os.time() then
		setPlayerStorageValue (cid, config.storage, config.timeForUse * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.exhausted, config.timeExhausted * 60 * 60 + os.time())
		setPlayerStorageValue (cid, config.toKnow, 1)
		doSendMagicEffect (getThingPos(cid), config.effect)
		doPlayerSendTextMessage (cid, 19, "MSG informando que o jogador tem acesso à área.")
	else
		doPlayerSendTextMessage (cid, 19, "MSG caso o player esteja exhaustado. (Sobre ter que esperar 24 horas)")
	end
return true
end

 

actions.xml


<action itemid="ID_DO_ITEM" event="script" value="nome_arquivo.lua"/>

 

creaturescripts/scripts

nome_arquivo.lua


local config = {
toKnow = 123456,
storage = 789456,
pos = {x = 1050, y = 1056, z = 7}, -- para onde o jogador será teleportado caso o tempo tenha acabado.
}

function onKill(cid, target, lastHit)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage) < os.time () then
			doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
			doRemoveCreature (cid)
		end
	end
return true
end

function onLogin(cid)
	if getPlayerStorageValue (cid, config.toKnow) == 1 then
		if getPlayerStorageValue (cid, config.storage)  < os.time () then
			doTeleportThing (cid, config.pos)
			setPlayerStorageValue (cid, config.toKnow, 0)
		end
	end
return true
end

 

creaturescripts.xml


<event type="login" name="timeAcess" event="script" value="nome_arquivo.lua"/>
<event type="kill" name="timeAcessKill" event="script" value="nome_arquivo.lua"/>

 

Em creaturescripts/login.lua procure por "registerCreatureEvent" e coloque isso embaixo:


registerCreatureEvent(cid, "timeAcess")
registerCreatureEvent(cid, "timeAcessKill")

 

PS: Eu testei apenas os códigos de actions e movements. Não testei os códigos de creaturescripts, logo, são passíveis de erros.

 

 

 

Tem como colocar para outro player não poder usar o item que da acesso, enquanto já tem alguém la dentro, pois se já tiver alguém la dentro e vc usar o item vc vai perder o item.

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo