Postado Março 20, 2012 13 anos Funciona assim: Você usa o "shovel" em um determinado lugar do solo, e é como se tivesse implantado uma Mina Terrestre, que ao passarem por cima, explodirá' Vamos lá' 1º Passo' Vá em "actions.xml" e adicione a tag abaixo: <action itemid="2554" event="script" value="mina_terrestre.lua" allowfaruse="1"/> Agora vá na pasta "Actions / Scripts" um arquivo chamado "mina_terrestre.lua", e cole o código abaixo dentro: function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end local items = { [2554] = { storagetime = 6423356224333, time = 13, aid = 4444 } } local bombstorage = 3847757422 function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by Xafterin local m = items[item.itemid] if m then if not isWalkable(toPosition, false, false, false) then return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You cannot throw the ".. getItemNameById(item.itemid) .." here!.") end if getTilePzInfo(getCreaturePosition(cid)) or getTilePzInfo(toPosition) then return doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You cannot use this weapon in a protection zone!.") end local time = m.time if os.time()-getPlayerStorageValue(cid, m.storagetime)+1 <= time then minutes,seconds = getTime(time-(os.time()-getPlayerStorageValue(cid, m.storagetime))) return doPlayerSendTextMessage(cid, 27, "Wait "..seconds.." seconds.") end doItemSetAttribute(itemEx.uid, "aid", m.aid) doItemSetAttribute(itemEx.uid, "description", getPlayerName(cid)) setPlayerStorageValue(cid, m.storagetime, os.time()) doPlayerAddSkillTry(cid, 5, 1) end return true end Pronto, encerramos em Actions. 2º Passo' Vá em "movements.xml" e adicione a tag abaixo: <movevent type="StepIn" actionid="4444" event="script" value="mina_terrestre.lua"/> Agora vá na pasta "Movements / Scripts" um arquivo chamado "mina_terrestre.lua", e cole o código abaixo dentro: local mina = { [4444] = {delay = 1, -- seconds mindamage = -346, maxdamage = -756, damagetype = COMBAT_FIREDAMAGE} } function onStepIn(cid, item, position, fromPosition) local m = mina[item.actionid] local function boom(cid, min, max, damagetype, pos) -- COMBAT FUNCTION -- local area = { {x = pos.x+1, y = pos.y, z = pos.z}, {x = pos.x, y = pos.y+1, z = pos.z}, {x = pos.x-1, y = pos.y, z = pos.z}, {x = pos.x+1, y = pos.y+1, z = pos.z}, {x = pos.x-1, y = pos.y-1, z = pos.z}, {x = pos.x, y = pos.y-1, z = pos.z}, {x = pos.x+1, y = pos.y-1, z = pos.z}, {x = pos.x-1, y = pos.y+1, z = pos.z}, {x = pos.x, y = pos.y, z = pos.z} } for i = 1,#area do doAreaCombatHealth(0, damagetype, area[i], 0, min, max, 0) end return true end if getPlayerName(cid) == getItemAttribute(item.uid, "description") then return doPlayerSendCancel(cid, "This is your bomb.") end addEvent(boom, m.delay * 100, cid, m.min, m.max, m.damagetype, position) doTargetCombatHealth(boom, cid, COMBAT_PHYSICALDAMAGE, -501, -902, CONST_ME_NONE) doItemEraseAttribute(item.uid, "aid") return true end Pronto, podem fechar a pasta Movements. Observação & Configuração: mindamage = -234 --Como podem notar, é o dano minimo que a mina causará' maxdamage = -543 --Como podem notar, é o dano máximo que a mina causará' damagetype = COMBAT_FIREDAMAGE --Tipo de dano que causará no monster ou player. doTargetCombatHealth(boom, cid, COMBAT_PHYSICALDAMAGE, -501, -902, CONST_ME_NONE) Configure o dano aqui, que no caso está... mínimo de 501 e máximo de 902. E o que está em azul é o tipo de dano. Pronto, sua mina terrestre foi criada' Espero que ajude. Créditos pela origem do Script: Faisher' Créditos pela edição do Script: Adriano Swatt Créditos pelo pequeno tuto: Adriano Swatt Editado Março 24, 2012 13 anos por Adriano SwaTT (veja o histórico de edições) Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Março 20, 2012 13 anos q maneiro, vou usar. depois edito comentando se funcionou... rep+ adiantado. Ajudei? REP+
Postado Março 20, 2012 13 anos Autor q maneiro, vou usar. depois edito comentando se funcionou... rep+ adiantado. Faça um ótimo uso' Abraços & boa sorte. Gosta do meu trabalho? Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs. Atenciosamente,Adriano Swatt' Para ver meus tutoriais acesse meu perfil.
Postado Março 20, 2012 13 anos po maninho acho q estou fazendo alguma coisa errada... num ta funcionando... eu uso a shovel no chao e simplesmente nao acontece nada... =(
Postado Março 20, 2012 13 anos depende o solo que tu ta tendo usar o shovel ._. System https://www.youtube.com/watch?v=o0PV0qAXufk
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.