Postado Fevereiro 4, 2020 5 anos Autor @Pokemon Nox Oficial obrigado irmão pela ajuda, estarei aguardando! @Vodkart sim, seriam apenas items, como o exemplo que você citou do solar axe. Seriam baús, mas eu iria adcionar uma action em cada um deles e eles teriam uma chance de alguns items em especifico. No caso preciso so que crie items no mapa, menos em dentro de paredes e em area protection zone. Se puder ajudar eu ficaria muito grato!
Postado Fevereiro 4, 2020 5 anos local create_tab = { area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 100, itemid = 2160, amount = 100}, {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function doAddItenFromMap() local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z} local var = create_tab.items[math.random(#create_tab.items)] if isWalkable(pos) and var.chance > math.random(1, 100) then local ret = doCreateItem(var.itemid, var.amount, pos) if var.actionID ~= nil then doItemSetAttribute(ret, "aid", var.actionID) end else doAddItenFromMap() end end function onThink(cid, interval, lastExecution) doAddItenFromMap() return true end quando quiser adicionar actionID você adiciona um novo parametro na tabela, está assim: items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 100, itemid = 2160, amount = 100}, {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } e vc quer adicionar outro bau com id '2222' por exemplo com actionID 26010, basta fazer assim: items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 50, itemid = 2222, amount = 1, actionID = 26010}, -- botei outra actionID {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } Editado Fevereiro 4, 2020 5 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Fevereiro 4, 2020 5 anos Autor @Vodkart Perfeito Vodkart está funcionando da forma que eu esperava, teria como adcionar para criar 1 monstro nessa tabela também? tenho ideia de colocar para criar "geradores" por exemplo para forçar o pessoal também se juntar e matar eles, digamos que seria um boss por exemplo. Desde ja agradeço infinitamente! @Pokemon Nox Oficial Agradeço a você também por ter tentado ajudar mano, obrigado mesmo!
Postado Fevereiro 4, 2020 5 anos @hiquezerah local create_tab = { area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 100, itemid = 2160, amount = 100}, {chance = 100, name = "Gerador"}, -- monster name {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function doAddItenFromMap() local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z} local var = create_tab.items[math.random(#create_tab.items)] if isWalkable(pos) and var.chance > math.random(1, 100) then if var.name ~= nil then doCreateMonster(var.name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) else local ret = doCreateItem(var.itemid, var.amount, pos) if var.actionID ~= nil then doItemSetAttribute(ret, "aid", var.actionID) end end else doAddItenFromMap() end end function onThink(cid, interval, lastExecution) doAddItenFromMap() return true end Editado Fevereiro 4, 2020 5 anos por Vodkart (veja o histórico de edições) [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Fevereiro 5, 2020 5 anos Autor @Vodkart está funcionando normalmente, porém está acontecendo um error quando ele tenta criar o monstro.
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.