Ir para conteúdo

Mina Terrestre *-*


DuuhCarvalho

Posts Recomendados

Como funciona:

Ao usar a shovel em algum lugar 'no piso, tipo implanta uma Mina terrestre e quando algum player pisa em cima explode :D

 

Primeiro Vá em "Data/actions/scripts" copie algum arquivo, cole e renomeie para "mina_terrestre.lua" e coloque isso dentro:

 

 

function isWalkable(pos, creature, proj, pz)

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)

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

 

 

 

Agora vá em "Data/Actions.Xml" e cole a seguinte tag:

 

<action itemid="2554" event="script" value="mina_terrestre.lua" allowfaruse="1"/>

 

agora vamos para Movements

 

Agora vá em "Data/Movements/script" copie algum arquivo, cole e renomeie para "mina_terrestre" e cole isso 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, 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

 

 

Observaçã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.

 

 

Agora vá em "Data/Movements.Xml" e coloque a seguinte tag:

 

<movevent type="StepIn" actionid="4444" event="script" value="mina_terrestre.lua"/>

 

é isso pessoal espero que tenham gostado xD

Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

esqueci que quando trais de outro forum tem que postar creditos 'rsrs

mais vou postar ;p

 

Créditos pelo Script: Faisher'

Créditos pela edição do Script: Adriano Swatt

Editado por DuuhCarvalho
Link para o comentário
Compartilhar em outros sites

:o

 

Vixe, este Script foi feito pelo Faisher e foi editado por mim'

Como postei no outro forum que você sabe qual é'

 

Mesmo assim, obrigado por compartilhar, mas coloque os devidos créditos no Post Principal.

 

 

Abraços'

Editado por Gonorreia
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...