Postado Fevereiro 24, 2023 2 anos Em 26/01/2023 em 17:57, yuriowns disse: Salve rapazeada do tk, tranquilo? gostaria de saber se alguém consegue fazer um script pra mim, minha ideia é assim: queria que tivesse um item específico que quando o player usasse ele, spawnasse um monstro do lado do player, porém todos os SQM ao redor do player teriam que estar livres, não podendo ter parede, porta, etc... E a partir do momento que usasse esse item, ele duraria 10 horas na bp do player, para caso o monstro fosse morto ele poderia spawnar novamente e após as 10 horas o item sumisse... Não sei se ficou confuso, mas caso alguém conseguir ia salvar demais, qualquer coisa explico melhor, agradeço desde já pela atenção!! Testa: Spoiler local MONSTER_ID = Demon -- Substitua pelo nome do monstro que deseja spawnar local ITEM_ID = 456 -- Substitua pelo ID do item que irá spawnar o monstro local ITEM_DURATION = 36000 -- Tempo em segundos (10 horas) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if target.itemid == ITEM_ID then local playerPos = player:getPosition() local surroundings = {{x=playerPos.x+1, y=playerPos.y, z=playerPos.z}, {x=playerPos.x-1, y=playerPos.y, z=playerPos.z}, {x=playerPos.x, y=playerPos.y+1, z=playerPos.z}, {x=playerPos.x, y=playerPos.y-1, z=playerPos.z}, {x=playerPos.x, y=playerPos.y, z=playerPos.z+1}, {x=playerPos.x, y=playerPos.y, z=playerPos.z-1}} for _, pos in pairs(surroundings) do local tile = Tile(pos) if not tile then player:sendCancelMessage("Algo deu errado. Tente novamente.") return true elseif tile:getThingCount() > 0 or not tile:isWalkable() or tile:getGround():getId() == 0 then player:sendCancelMessage("Não há espaço suficiente para spawnar o monstro.") return true end end Game.createMonster(MONSTER_ID, toPosition) item:remove(1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você usou o item e um monstro foi spawnado!") addEvent(removeItem, ITEM_DURATION * 1000, ITEM_ID, player:getName()) end return true end function removeItem(itemId, playerName) local player = Player(playerName) if not player then return true end local bp = player:getSlotItem(CONST_SLOT_BACKPACK) if not bp then return true end local item = bp:getItemById(itemId) if item then item:remove(1) end player:sendTextMessage(MESSAGE_INFO_DESCR, "O item que spawna monstros acabou de desaparecer.") end
Postado Fevereiro 25, 2023 2 anos Autor 22 horas atrás, Maniaco disse: Testa: Ocultar conteúdo local MONSTER_ID = Demon -- Substitua pelo nome do monstro que deseja spawnar local ITEM_ID = 456 -- Substitua pelo ID do item que irá spawnar o monstro local ITEM_DURATION = 36000 -- Tempo em segundos (10 horas) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if target.itemid == ITEM_ID then local playerPos = player:getPosition() local surroundings = {{x=playerPos.x+1, y=playerPos.y, z=playerPos.z}, {x=playerPos.x-1, y=playerPos.y, z=playerPos.z}, {x=playerPos.x, y=playerPos.y+1, z=playerPos.z}, {x=playerPos.x, y=playerPos.y-1, z=playerPos.z}, {x=playerPos.x, y=playerPos.y, z=playerPos.z+1}, {x=playerPos.x, y=playerPos.y, z=playerPos.z-1}} for _, pos in pairs(surroundings) do local tile = Tile(pos) if not tile then player:sendCancelMessage("Algo deu errado. Tente novamente.") return true elseif tile:getThingCount() > 0 or not tile:isWalkable() or tile:getGround():getId() == 0 then player:sendCancelMessage("Não há espaço suficiente para spawnar o monstro.") return true end end Game.createMonster(MONSTER_ID, toPosition) item:remove(1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você usou o item e um monstro foi spawnado!") addEvent(removeItem, ITEM_DURATION * 1000, ITEM_ID, player:getName()) end return true end function removeItem(itemId, playerName) local player = Player(playerName) if not player then return true end local bp = player:getSlotItem(CONST_SLOT_BACKPACK) if not bp then return true end local item = bp:getItemById(itemId) if item then item:remove(1) end player:sendTextMessage(MESSAGE_INFO_DESCR, "O item que spawna monstros acabou de desaparecer.") end já consegui amigo, agradeço pela ajuda!
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.