Ir para conteúdo

Featured Replies

Postado
  • Autor
  Em 08/09/2021 em 18:01, Vodkart disse:

verdade, tinha uma linha que estava criando a pedra e duplicando ela, esqueci de remover... abre o mapa normalmente (que ja vem com a pedra do mapper edito) e inicia o evento com esse código:

 

 



local THRONE_POS = {x = 2561, y = 2446, z = 5}
local dk = {x = 2539, y = 2474, z = 7} -- door or rock
local STORAGE_EVENT = 83902
local STORAGE_PLAYER = 73289
local DUR = 2 -- in minutes
local days = {"Friday", "Saturday", "Thursday"} -- coloque os dias
function OpenEvent() 
	for _, tid in ipairs(getPlayersOnline()) do 
		setPlayerStorageValue(tid, STORAGE_PLAYER, 1) 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 1) 
	doBroadcastMessage("O Evento castle foi aberto e vai durar ".. DUR .." minutos.", 25) 
end
function doTransLaderRock(n) -- 1 vira escada e 0 pedra
	return doTransformItem(getTileItemById(dk, n == 1 and 1285 or 3687).uid, n == 1 and 3687 or 1285)
end
function getWinnerCastle() 
	doTransLaderRock(0) -- pedra 
	local player = getTopCreature(THRONE_POS).uid 
	if getGlobalStorageValue(STORAGE_EVENT) < 0 then 
		return true 
	end 
	if (isPlayer(player)) then 
		if (getPlayerStorageValue(player, STORAGE_PLAYER) > 0) then 
			local id, pid = 561, getPlayerGUID(player) 
			setHouseOwner(id, pid) 
			db.executeQuery("UPDATE `houses` SET `owner` = "..pid.." WHERE `id` = "..id) 
			doPlayerAddPremiumDays(player, 7) 
			for _, cid in ipairs(getPlayersOnline()) do 
				setPlayerStorageValue(cid, STORAGE_PLAYER, 0) 
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) 
			end 
			doBroadcastMessage(getCreatureName(player) .. " ganhou o evento.", 25) 
			doTeleportThing(player, {x = 2531, y = 2460, z = 7}) 
			doCreateItem(391, 1, {x = 2561, y = 2446, z = 5}) 
		end 
	else 
		doBroadcastMessage("Ningúem ganhou o evento.", 27) 
		for _, pid in ipairs(getPlayersOnline()) do 
			setPlayerStorageValue(pid, STORAGE_PLAYER, 0) 
			doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) 
		end 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 0) 
	return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. STORAGE_PLAYER) 
end
function isEventDay()
	for _, dia in pairs(days) do
		if dia == os.date("%A") then
			return true
		end
	end
	return false
end
function onTimer()
	if isEventDay() then
		OpenEvent()
		doTransLaderRock(1) -- escada
		addEvent(getWinnerCastle, DUR * 60 * 1000)
	end
	return true
end

 

e não preciso remover ela, eu posso transformar ela em pedra ou escada...

deu quase tudo certo, ele transformou a pedra  em escada mas quando acabou o evento a escada não sumiu e a pedra apareceu no andar de cima

 

 

image.thumb.png.afcc3fcb83c40dc5a5a3e8a86d221bb0.png

image.thumb.png.ff5c936debc2eceb65dc41e2b939aa7c.png

Editado por Gatinha Pirada (veja o histórico de edições)

  • Respostas 8
  • Visualizações 568
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • verdade, tinha uma linha que estava criando a pedra e duplicando ela, esqueci de remover... abre o mapa normalmente (que ja vem com a pedra do mapper edito) e inicia o evento com esse código:  

Posted Images

Postado
  • Solução
  Em 09/09/2021 em 15:18, Gatinha Pirada disse:

deu quase tudo certo, ele transformou a pedra  em escada mas quando acabou o evento a escada não sumiu e a pedra apareceu no andar de cima

 

 

image.thumb.png.afcc3fcb83c40dc5a5a3e8a86d221bb0.png

image.thumb.png.ff5c936debc2eceb65dc41e2b939aa7c.png

 

 

qual a position? coloquei para remover e criar mesmo

 

 

local THRONE_POS = {x = 2561, y = 2446, z = 5}
local STORAGE_EVENT = 83902
local STORAGE_PLAYER = 73289
local DUR = 2 -- in minutes
local days = {"Friday", "Saturday", "Thursday"} -- coloque os dias
function OpenEvent() 
	for _, tid in ipairs(getPlayersOnline()) do 
		setPlayerStorageValue(tid, STORAGE_PLAYER, 1) 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 1) 
	doBroadcastMessage("O Evento castle foi aberto e vai durar ".. DUR .." minutos.", 25) 
end
function CastleWalls(n) -- 1 remove pedra e cria escada
	local pos = {x = 2539, y = 2474, z = 7}
	local remove = n == 1 and 1285 or 3687
	local create = n == 1 and 3687 or 1285 
	local t = getTileItemById(pos, remove).uid
	return t > 0 and doRemoveItem(t) and doSendMagicEffect(pos, CONST_ME_POFF) and doCreateItem(create, 1, pos)
end
function getWinnerCastle() 
	CastleWalls(0)
	local player = getTopCreature(THRONE_POS).uid 
	if getGlobalStorageValue(STORAGE_EVENT) < 0 then 
		return true 
	end 
	if (isPlayer(player)) then 
		if (getPlayerStorageValue(player, STORAGE_PLAYER) > 0) then 
			local id, pid = 561, getPlayerGUID(player) 
			setHouseOwner(id, pid) 
			db.executeQuery("UPDATE `houses` SET `owner` = "..pid.." WHERE `id` = "..id) 
			doPlayerAddPremiumDays(player, 7) 
			for _, cid in ipairs(getPlayersOnline()) do 
				setPlayerStorageValue(cid, STORAGE_PLAYER, 0) 
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) 
			end 
			doBroadcastMessage(getCreatureName(player) .. " ganhou o evento.", 25) 
			doTeleportThing(player, {x = 2531, y = 2460, z = 7}) 
			doCreateItem(391, 1, {x = 2561, y = 2446, z = 5}) 
		end 
	else 
		doBroadcastMessage("Ningúem ganhou o evento.", 27) 
		for _, pid in ipairs(getPlayersOnline()) do 
			setPlayerStorageValue(pid, STORAGE_PLAYER, 0) 
			doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) 
		end 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 0) 
	return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. STORAGE_PLAYER) 
end
function isEventDay()
	for _, dia in pairs(days) do
		if dia == os.date("%A") then
			return true
		end
	end
	return false
end
function onTimer()
	if isEventDay() then
		OpenEvent()
		CastleWalls(1)
		addEvent(getWinnerCastle, DUR * 60 * 1000)
	end
	return true
end

 

 

a pos da pedra e escada é essa né

 

local pos = {x = 2539, y = 2474, z = 7}

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor
  Em 09/09/2021 em 17:10, Vodkart disse:

 

 

qual a position? coloquei para remover e criar mesmo

 

 


local THRONE_POS = {x = 2561, y = 2446, z = 5}
local STORAGE_EVENT = 83902
local STORAGE_PLAYER = 73289
local DUR = 2 -- in minutes
local days = {"Friday", "Saturday", "Thursday"} -- coloque os dias
function OpenEvent() 
	for _, tid in ipairs(getPlayersOnline()) do 
		setPlayerStorageValue(tid, STORAGE_PLAYER, 1) 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 1) 
	doBroadcastMessage("O Evento castle foi aberto e vai durar ".. DUR .." minutos.", 25) 
end
function CastleWalls(n) -- 1 remove pedra e cria escada
	local pos = {x = 2539, y = 2474, z = 7}
	local remove = n == 1 and 1285 or 3687
	local create = n == 1 and 3687 or 1285 
	local t = getTileItemById(pos, remove).uid
	return t > 0 and doRemoveItem(t) and doSendMagicEffect(pos, CONST_ME_POFF) and doCreateItem(create, 1, pos)
end
function getWinnerCastle() 
	CastleWalls(0)
	local player = getTopCreature(THRONE_POS).uid 
	if getGlobalStorageValue(STORAGE_EVENT) < 0 then 
		return true 
	end 
	if (isPlayer(player)) then 
		if (getPlayerStorageValue(player, STORAGE_PLAYER) > 0) then 
			local id, pid = 561, getPlayerGUID(player) 
			setHouseOwner(id, pid) 
			db.executeQuery("UPDATE `houses` SET `owner` = "..pid.." WHERE `id` = "..id) 
			doPlayerAddPremiumDays(player, 7) 
			for _, cid in ipairs(getPlayersOnline()) do 
				setPlayerStorageValue(cid, STORAGE_PLAYER, 0) 
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) 
			end 
			doBroadcastMessage(getCreatureName(player) .. " ganhou o evento.", 25) 
			doTeleportThing(player, {x = 2531, y = 2460, z = 7}) 
			doCreateItem(391, 1, {x = 2561, y = 2446, z = 5}) 
		end 
	else 
		doBroadcastMessage("Ningúem ganhou o evento.", 27) 
		for _, pid in ipairs(getPlayersOnline()) do 
			setPlayerStorageValue(pid, STORAGE_PLAYER, 0) 
			doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) 
		end 
	end 
	setGlobalStorageValue(STORAGE_EVENT, 0) 
	return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. STORAGE_PLAYER) 
end
function isEventDay()
	for _, dia in pairs(days) do
		if dia == os.date("%A") then
			return true
		end
	end
	return false
end
function onTimer()
	if isEventDay() then
		OpenEvent()
		CastleWalls(1)
		addEvent(getWinnerCastle, DUR * 60 * 1000)
	end
	return true
end

 

 

a pos da pedra e escada é essa né

 


local pos = {x = 2539, y = 2474, z = 7}

 

E essa local pos mesmo. agora ele removeu a pedra mas não criou a escada, mas no final criou a pedra no lugar certo, acho agora falta pouco rs

Postado
  Em 09/09/2021 em 17:41, Gatinha Pirada disse:

E essa local pos mesmo. agora ele removeu a pedra mas não criou a escada, mas no final criou a pedra no lugar certo, acho agora falta pouco rs

 

se ele criou a pedra no lugar certo é pq tinha uma escada então para ser removida, se não a verificação nem teria funcionado... me passa seu discord para dar uma olhada

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo