Postado Setembro 9, 2021 3 anos 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 Editado Setembro 9, 2021 3 anos por Gatinha Pirada (veja o histórico de edições)
Postado Setembro 9, 2021 3 anos 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 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} [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Setembro 9, 2021 3 anos 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 Setembro 9, 2021 3 anos 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 [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#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.