• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    Event Bomberman

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default Event Bomberman el Miér Ene 28, 2015 12:23 am

    Alex

    avatar
    Miembro
    Miembro
    Bueno Les Traigo Este Event Muy Divertido
    Mapa Abajo
    Les Explico:
    van a data/talkactions/scripts copian un archivo y le ponen bomb.lua
    bomba.lua:
    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, [Tienes que estar registrado y conectado para ver este vínculo] do
    if haystack[i].x == needle.x and haystack[i].y == needle.y and haystack[i].z == needle.z then
    return true
    end
    end
    return false
    end

    local t = {
    from = {x=490, y=495, z=9}, --- Zona Num 1
    to = {x=504, y=505, z=9}, ---- zona Num 8
    storage = {
    placed = 10001,
    max = 10002,
    radius = 10003
    },
    delay = 3000,
    bombID = 10570,
    effect = CONST_ME_FIREAREA,
    blockID = 9468,
    text = "BOMB!",
    temple = {x=498, y=541, z=9}, --- aqui aparecen cuando pierden
    exceptions = {
    {x=490, y=495, z=9}, --- zona 1
    {x=491, y=495, z=9}, --- zona 2
    {x=490, y=496, z=9}, --- zona 3

    {x=503, y=495, z=9}, --- zona 5
    {x=504, y=495, z=9}, --- zona 4
    {x=504, y=496, z=9}, --- zona 6

    {x=490, y=505, z=9}, --- zona 12
    {x=491, y=505, z=9}, --- zona 11
    {x=490, y=504, z=9}, --- zona 10

    {x=503, y=505, z=9}, --- zona 8
    {x=504, y=505, z=9}, --- zona 9
    {x=504, y=504, z=9} --- zona 7
    }
    }
    function reset()
    local dummy = doCreateItem(10570, 1, {x=486,y=498,z=9}) --- Centro Del Juego
    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(c) and isInRange(getThingPos(c), 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(c), getPlayerName(cid)
    doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex(c) == 0 and "her" or "him") .. "self![Bomberman]" or n1 .. " was killed by " .. n2 .. "![Bomberman]", MESSAGE_STATUS_WARNING)
    local a = getPlayersInRange({x=497, y=500, z=9}, 7, 5) --- CENTRO Del Juego
    if [Tienes que estar registrado y conectado para ver este vínculo] < 2 then
    doBroadcastMessage(getPlayerName(a[1]) .. " has won the match![Bomberman]", MESSAGE_STATUS_WARNING)
    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(c) and isInRange(getThingPos(c), 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(c), getPlayerName(cid)
    doBroadcastMessage(n1==n2 and n1 .. " killed " .. (getPlayerSex(c) == 0 and "her" or "him") .. "self![Bomberman]" or n1 .. " was killed by " .. n2 .. "![Bomberman]", MESSAGE_STATUS_WARNING)
    local a = getPlayersInRange({x=497, y=500, z=9}, 7, 5) --- CENTRO DEl JUEGO
    if [Tienes que estar registrado y conectado para ver este vínculo] < 2 then
    doBroadcastMessage(getPlayerName(a[1]) .. " has won the match![Bomberman]", MESSAGE_STATUS_WARNING)
    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
    Configura Las Posiciones Smile
    talkaction.xml:
    <talkaction words="!bomba;!muere;!kill" event="script" value="bomb.lua"/>
    Se Van A actions crean un archivo llamado
    lever.lua:
    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=496, y=537, z=9}, --- pos 1
    {x=497, y=537, z=9}, --- pos 2
    {x=498, y=537, z=9}, --- pos 3
    {x=499, y=537, z=9} --- pos 4
    }, {
    {x=490, y=495, z=9}, --- donde te lleva la pos 1 (zona 1)
    {x=504, y=505, z=9}, --- donde te lleva la pos 2 (zona Cool
    {x=504, y=495, z=9}, --- donde te lleva la pos 3 (zona 5)
    {x=490, y=505, z=9} --- donde te lleva la pos 4 (zona 12)
    }, {
    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=497, y=500, z=9}, 7, 5) --- CENTRO DEL JUEGO
    if [Tienes que estar registrado y conectado para ver este vínculo] > 0 then
    return doPlayerSendCancel(cid, "Please wait for the current match to end.")
    end

    local players = {}
    for i = 1, [Tienes que estar registrado y conectado para ver este vínculo] do
    local v = getTopCreature(t[i]).uid
    players[i] = isPlayer(v) and v or nil
    end

    if [Tienes que estar registrado y conectado para ver este vínculo] < 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[i] then
    setPlayerStorageValue(players[i], storage.placed, 0)
    setPlayerStorageValue(players[i], storage.max, 1)
    setPlayerStorageValue(players[i], storage.radius, 1)
    doSendMagicEffect(t[i], CONST_ME_TELEPORT)
    doTeleportThing(players[i], n[i])
    doPlayerSendTextMessage(cid, 25, 'Say Z to put a bomb.')
    doSendMagicEffect(n[i], CONST_ME_TELEPORT)
    end
    end

    doTransformItem(item.uid, item.itemid + 1)
    return true
    end
    action.xml:
    <action uniqueid="10000" event="script" value="lever.lua"/>
    Ponle el uniqueid ala palanca
    Despues van a data/movements/scripts y copian un archivo y le ponen
    bombstep.lua:
    function onStepIn(cid, item, position, fromPosition)
    if (getPlayerLevel(cid) >= 1) then
    doTeleportThing(cid, fromPosition, FALSE)
    doPlayerSendCancel(cid, "Sorry, You can not step a bomb")
    end
    return true
    end
    Otro
    bombtiles.lua:
    function onStepIn(cid, item, pos, fromPos)
    if math.abs(pos.x - fromPos.x) == math.abs(pos.y - fromPos.y) then
    if item.actionid == 100 then
    doItemSetAttribute(item.uid, "aid", 0)
    else
    doItemSetAttribute(getTileItemById(fromPos, 10764).uid, "aid", 100)
    doTeleportThing(cid, fromPos, false)
    end
    end
    end

    function onAddItem(moveItem, tileItem, position, cid)
    if not isInArray({8304, 8306, 8310, 9468, 10570}, moveItem.itemid) then
    doRemoveItem(moveItem.uid)
    end
    end
    Otro
    powerups.lua:
    local speed1 = createConditionObject(CONDITION_HASTE)
    setConditionParam(speed1, CONDITION_PARAM_TICKS, 10*1000)
    setConditionParam(speed1, CONDITION_PARAM_SPEED, 1100)


    local t = {
    from = {x=490, y=495, z=9}, --- zona 1
    to = {x=504, y=505, z=9}, --- zona 8
    storage = {
    max = 10002,
    radius = 10003
    }
    }
    function onStepIn(cid, item, pos, fromPos)
    if isInRange(pos, t.from, t.to) then
    if item.itemid == 8304 then
    local n = getPlayerStorageValue(cid, t.storage.max)
    if n < 3 then
    setPlayerStorageValue(cid, t.storage.max, n + 1)
    doRemoveItem(item.uid)
    doSendMagicEffect(pos, CONST_ME_FIREATTACK)
    end
    elseif item.itemid == 8306 then
    local n = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getPlayerLevel(cid) >=1 then
    doAddCondition(cid, speed1)
    doRemoveItem(item.uid)
    doSendMagicEffect(pos, CONST_ME_ENERGYHIT)
    end
    elseif item.itemid == 8310 then
    local n = getPlayerStorageValue(cid, t.storage.radius)
    if n < 4 then
    setPlayerStorageValue(cid, t.storage.radius, n + 1)
    doRemoveItem(item.uid)
    doSendMagicEffect(pos, CONST_ME_GROUNDSHAKER)
    end
    end
    end
    end
    movements.xml:
    <movevent type="StepIn" itemid="10764" event="script" value="bombtiles.lua"/>
    <movevent type="AddItem" itemid="10764" tileitem="1" event="script" value="bombtiles.lua"/>
    <movevent type="StepIn" itemid="8304" event="script" value="powerups.lua"/>
    <movevent type="StepIn" itemid="8306" event="script" value="powerups.lua"/>
    <movevent type="StepIn" itemid="8310" event="script" value="powerups.lua"/>
    IMAGENES PARA QUE VEAN LAS POSICIONES
    [Tienes que estar registrado y conectado para ver este vínculo]
    DONDE MUEREN I POS DONDE LLEVARA LA PALANCA
    [Tienes que estar registrado y conectado para ver este vínculo]
    Imagen de juego aqui configuras la parte de talkactions
    Mapa
    [Tienes que estar registrado y conectado para ver este vínculo]
    Espero Lo Disfruten Como Yo Jugando Un Rato
    Very Happy

    Ver perfil de usuario http://globalmexico.servegame.com

    2default Re: Event Bomberman el Miér Dic 02, 2015 10:02 pm

    Ketzzie

    avatar
    Miembro
    Miembro
    para que version es?

    Ver perfil de usuario

    3default Re: Event Bomberman el Jue Dic 03, 2015 10:03 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:para que version es?

    si fija bien es para tfs 0.4 y tfs 0.3.7 y otx



    Ver perfil de usuario http://www.tibiaface.com

    4default Re: Event Bomberman el Sáb Jun 10, 2017 1:06 am

    Servira para Tf 2.80 ???

    Ver perfil de usuario

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.