Ir para conteúdo
  • Cadastre-se

[Action] Sistema de Bomberman


Posts Recomendados

Se alguem souber configurar 100% esse script posta q eu edito!

vai em data/actions/scripts crie 1arquivo com nome lever.lua e cole isso:

function getPlayersInRange(position, radiusx, radiusy)

local creaturesList = {}

for x = -radiusx, radiusx do

for y = -radiusy, radiusy do

if not (x == 0 and y == 0) then

local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z})

if creature.type == 1 then

table.insert(creaturesList, creature.uid)

end

end

end

end

local creature = getTopCreature(position)

if creature.type == 1 then

if not(table.find(creaturesList, creature.uid)) then

table.insert(creaturesList, creature.uid)

end

end

return creaturesList

end

local t, n, storage = {

{x=1307, y=1044, z=7},

{x=1307, y=1045, z=7},

{x=1307, y=1046, z=7},

{x=1307, y=1047, z=7}

}, {

{x=1300, y=1031, z=7},

{x=1314, y=1031, z=7},

{x=1300, y=1041, z=7},

{x=1314, y=1041, z=7}

}, {

placed = 10001,

max = 10002,

radius = 10003

}

function onUse(cid, item, fromPosition, itemEx, toPosition)

if item.itemid == 1946 then

return doTransformItem(item.uid, item.itemid - 1)

end

local v = getPlayersInRange({x=1031, y=1020, z=7}, 7, 5)

if #v > 0 then

return doPlayerSendCancel(cid, "Please wait for the current match to end.")

end

local players = {}

for i = 1, #t do

local v = getTopCreature(t).uid

players = isPlayer(v) and v or nil

end

if #players < 2 then

return doPlayerSendCancel(cid, "You need at least 2 players to enter.")

end

local first = players[1] and 1 or players[2] and 2 or players[3] and 3 or players[4] and 4

for i = 1, 4 do

if players then

setPlayerStorageValue(players, storage.placed, 0)

setPlayerStorageValue(players, storage.max, 1)

setPlayerStorageValue(players, storage.radius, 1)

doSendMagicEffect(t, CONST_ME_TELEPORT)

doTeleportThing(players, n)

doSendMagicEffect(n, CONST_ME_TELEPORT)

end

end

doTransformItem(item.uid, item.itemid + 1)

return true

end

em actions.xml cole isso.

<action uniqueid="10033" script="lever.lua"/>

Uniqueid da alavanca.

agora em talkactions/scripts/ crie 1 arquivo com nome bomb.lua e cole isso:

function getPlayersInRange(position, radiusx, radiusy)

local creaturesList = {}

for x = -radiusx, radiusx do

for y = -radiusy, radiusy do

if not (x == 0 and y == 0) then

local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z})

if creature.type == 1 then

table.insert(creaturesList, creature.uid)

end

end

end

end

local creature = getTopCreature(position)

if creature.type == 1 then

if not(table.find(creaturesList, creature.uid)) then

table.insert(creaturesList, creature.uid)

end

end

return creaturesList

end

function isPositionInArray(haystack, needle)

for i = 1, #haystack do

if haystack.x == needle.x and haystack.y == needle.y and haystack.z == needle.z then

return true

end

end

return false

end

local t = {

from = {x=1300, y=1031, z=7},

to = {x=1314, y=1041, z=7},

storage = {

placed = 10001,

max = 10002,

radius = 10003

},

delay = 3000,

bombID = 10570,

effect = CONST_ME_FIREAREA,

blockID = 9421,

text = "BOOM!",

temple = {x=1033, y=1015, z=7},

exceptions = {

{x=1300, y=1031, z=7},

{x=1301, y=1031, z=7},

{x=1300, y=1032, z=7},

{x=1300, y=1041, z=7},

{x=1301, y=1041, z=7},

{x=1300, y=1040, z=7},

{x=1314, y=1031, z=7},

{x=1013, y=1031, z=7},

{x=1014, y=1032, z=7},

{x=1314, y=1041, z=7},

{x=1313, y=1041, z=7},

{x=1314, y=1040, z=7}

}

}

function reset()

local dummy = doCreateItem(10570, 1, {x=1295,y=1034,z=7})

for x = t.from.x, t.to.x do

for y = t.from.y, t.to.y do

local pos = {x=x,y=y,z=t.from.z}

local i1, i2, i3 = getTileItemById(pos, 8304).uid, getTileItemById(pos, 8306).uid, getTileItemById(pos, 8310).uid

if i1 > 0 then

doRemoveItem(i1)

end

if i2 > 0 then

doRemoveItem(i2)

end

if i3 > 0 then

doRemoveItem(i3)

end

if queryTileAddThing(dummy, pos, 4) == RETURNVALUE_NOERROR and not isPositionInArray(t.exceptions, pos) then

doCreateItem(t.blockID, 1, pos)

end

end

end

doRemoveItem(dummy)

end

local function boom(pos, cid)

local v = getTileItemById(pos, t.bombID).uid

if isPlayer(cid) and isInRange(getThingPos(cid), t.from, t.to) then

setPlayerStorageValue(cid, t.storage.placed, getPlayerStorageValue(cid, t.storage.placed) - 1)

doCreatureSay(cid, t.text, TALKTYPE_ORANGE_2, false, nil, pos)

doSendMagicEffect(pos, t.effect)

local c = getTopCreature(pos).uid

if isPlayer© and isInRange(getThingPos©, t.from, t.to) then

doSendMagicEffect(pos, CONST_ME_GIFT_WRAPS)

doTeleportThing(c, t.temple)

doSendMagicEffect(t.temple, CONST_ME_MORTAREA)

local n1, n2 = getPlayerName©, getPlayerName(cid)

doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex© == 0 and "her" or "him") .. "self!" or n1 .. " was killed by " .. n2 .. " in bomberman!", MESSAGE_STATUS_WARNING)

local a = getPlayersInRange({x=32022, y=32353, z=7}, 7, 5)

if #a < 2 then

doBroadcastMessage(getPlayerName(a[1]) .. " has won the bomberman match!", MESSAGE_STATUS_WARNING)

doPlayerAddExperience(a[1], 15000)

doTeleportThing(a[1], t.temple)

doSendMagicEffect(t.temple, CONST_ME_FIREWORK_RED)

reset()

reset()

end

else

local b = getTileItemById(pos, t.blockID).uid

if b > 0 then

doSendMagicEffect(pos, CONST_ME_BLOCKHIT)

doRemoveItem(b)

local r = math.random(10)

if r < 4 then

doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)

end

end

end

local N, E, W, S, l = 1, 1, 1, 1, getPlayerStorageValue(cid, t.storage.radius)

function loopDir(dir)

local _pos = {x=pos.x+(dir=="E" and E or dir=="W" and -W or 0), y=pos.y+(dir=="N" and -N or dir=="S" and S or 0), z=pos.z}

if queryTileAddThing(v, _pos, 4) == RETURNVALUE_NOERROR or getTileItemById(_pos, t.blockID).uid > 0 then

doSendMagicEffect(_pos, t.effect)

local c = getTopCreature(_pos).uid

if isPlayer© and isInRange(getThingPos©, t.from, t.to) then

doSendMagicEffect(_pos, CONST_ME_GIFT_WRAPS)

doTeleportThing(c, t.temple)

doSendMagicEffect(t.temple, CONST_ME_MORTAREA)

local n1, n2 = getPlayerName©, getPlayerName(cid)

doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex© == 0 and "her" or "him") .. "self in bomberman!" or n1 .. " was killed by " .. n2 .. " in bomberman!", MESSAGE_STATUS_WARNING)

local a = getPlayersInRange({x=32022, y=32353, z=7}, 7, 5)

if #a < 2 then

doBroadcastMessage(getPlayerName(a[1]) .. " has won the bomberman match!", MESSAGE_STATUS_WARNING)

doPlayerAddExperience(a[1], 15000)

doTeleportThing(a[1], t.temple)

doSendMagicEffect(t.temple, CONST_ME_FIREWORK_RED)

reset()

reset()

return "endgame"

end

else

local b = getTileItemById(_pos, t.blockID).uid

if b > 0 then

doSendMagicEffect(_pos, CONST_ME_BLOCKHIT)

doRemoveItem(b)

local r = math.random(10)

if r < 4 then

doCreateItem(r==1 and 8304 or r==2 and 8306 or r==3 and 8310, 1, _pos)

end

return false

end

end

elseif queryTileAddThing(v, _pos, 4) == 3 then

return false

end

return true

end

while N <= l do

local q = loopDir("N")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

N = N + 1

end

end

while E <= l do

local q = loopDir("E")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

E = E + 1

end

end

while W <= l do

local q = loopDir("W")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

W = W + 1

end

end

while S <= l do

local q = loopDir("S")

if q == "endgame" then

return doRemoveItem(v, 1)

elseif not q then

break

else

S = S + 1

end

end

end

doRemoveItem(v, 1)

end

function onSay(cid, words, param, channel)

if isInRange(getThingPos(cid), t.from, t.to) then

setPlayerStorageValue(cid, t.storage.placed, math.max(getPlayerStorageValue(cid, t.storage.placed), 0))

setPlayerStorageValue(cid, t.storage.max, math.max(getPlayerStorageValue(cid, t.storage.max), 1))

setPlayerStorageValue(cid, t.storage.radius, math.max(getPlayerStorageValue(cid, t.storage.radius), 1))

if getPlayerStorageValue(cid, t.storage.placed) < getPlayerStorageValue(cid, t.storage.max) then

doCreateItem(t.bombID, 1, getThingPos(cid))

addEvent(boom, t.delay, getThingPos(cid), cid)

setPlayerStorageValue(cid, t.storage.placed, getPlayerStorageValue(cid, t.storage.placed) + 1)

end

return true

end

end

em talkactions.xml cole isso.

<talkaction words="z;Z" event="script" value="bomb.lua"/>

download area de bomberman.

http://www.speedysha.../bomberman.otbm

scan : https://www.virustot...sis/1343318075/

S.s

semttuloobw.png

Editado por MonsterOt (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

DOUBLE POST É PROIBIDO. REPORTADO

<center><a href="http://otservlist.org/ots/1378930"><img src="http://otservlist.org/html/signatures/1378930_1.png" alt="" style="border: 0px"></a></center>

Link para o post
Compartilhar em outros sites

MonsterOT

o usario tem razão o double post é proibido sim por favor leia as regras

Calopsita

nao precisa floodar dizendo que é proibido apenas reporte o membro infrator e moderação secundaria tbm é conta as regras por favor as leia


Regras Gerais 

 

"Califórnia Brasileira :cool: "

Link para o post
Compartilhar em outros sites

MonsterOT Double Post Reportado !

MonsterOt

Caçador

  • photo-32857.jpg?_r=1343427338

PERFIL

  • Status:Online
  • Grupo:Membros
  • Posts:197
  • Cadastrado:30/04/2012
  • Membro Nº:32857
  • Sexo:Masculino
  • Eu sou:OT-Admin

REPUTAÇÃO

4

Postado Ontem, 20:47

ninguem?

  • add.png
  • 0

Evite Double Post leia as Regras do Forum .

Editado por Bustang (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

mais 1 q crio uma conta para ter o gosto de reportar alguem..

mais le direito cara nao foi double post! eu botei conteudo sobre o script:

o script foi pego de um ot global... ele ta imcompleto e nao tem dono!

reportado voce!!

Editado por MonsterOt (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo