• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    script modificacion

    Compartir:

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

    1default script modificacion el Miér Nov 29, 2017 10:03 am

    tengo un push event que saque de no me acuerdo donde xdd pero tiene unos pocos errores les dejo el script y les cuento los errores haber si me pueden ayudar

    okey xdd
    los errores son los siguentes
    el script de la magic wall afecta las wall de todo el juego en el sentido de que se pueden tirar en pz zone, arriba de las paredes y obstaculos como piedras mesas etc y por ultimo afecta el exhausted de las walls del juego

    bueno lo ideal seria que el script de la wall solo en el evento se pudiese tirar dentro de pz zone, no se pueda tirar sobre obstaculos y que no afecte a el script original de la magic wall ya que afecta a el exhausted de la magic wall original

    tambien al configurar el maximo de puntos cuando terminan el juego no les reconoce el ultimo punto al ganador




    creaturescripts y evento en general

    Código:
    nplayer1pos = {x=837, y=788, z=7} -- Pos donde el player 1 sera teleportado al dale click al item con el uniqueid 3900
    nplayer2pos = {x=838, y=788, z=7} -- Pos donde el player 2 sera teleportado al dale click al item con el uniqueid 3900

    StandZone = {

    {x = 834, y = 786, z = 7},
    {x = 841, y = 790, z = 7}
    }

    ShootZone = {
    {x = 834, y = 787, z = 7},
    {x = 835, y = 787, z = 7},
    {x = 835, y = 786, z = 7},
    {x = 841, y = 789, z = 7},
    {x = 840, y = 789, z = 7},
    {x = 840, y = 790, z = 7}
    }

    JugadoresPush = {} -- NO TOCAR
    puntos = {} -- NO TOCAR
    tiempo = 5 -- Tiempo en MINUTOS para que no duren ahi 1 **** hora en el evento push. EN MINUTOS
    player1pos = {x = 852, y = 788, z = 7, stackpos = 253} -- POS 1 donde tendra que estar parado el player en el momento en el que se jale la palanca
    player2pos = {x = 852, y = 790, z = 7, stackpos = 253} -- POS 2 donde tendra que estar parado el player en el momento en el que se jale la palanca
    temple = {x = 848, y = 789, z = 7} -- Pos del temple
    PushActive = false -- NO TOCAR
    MaxPointsPush = 11 -- Maximo numero de puntos para ganar


    function isTraped(player) -- Checks how many items are around the player, configurable changing the id (BY CARMONA - BLACKTIBIA)
    local id = 1497
    local walls = 0
    local char = getCreaturePosition(player)
    local i = 1
    local Pos = {
    {x =  char.x + i, y = char.y + i, z = char.z},
    {x =  char.x - i, y = char.y - i, z = char.z},
    {x =  char.x + i, y = char.y - i, z = char.z},
    {x =  char.x - i, y = char.y + i, z = char.z},
    {x =  char.x + i, y = char.y, z = char.z},
    {x =  char.x, y = char.y + i, z = char.z},
    {x =  char.x - i, y = char.y, z = char.z},
    {x =  char.x, y = char.y - i, z = char.z}
    }
    for i = 1,8 do
    if(getTileItemById(Pos[i], id).uid > 0) then
    walls  = walls + 1
       end
    end
             if (walls > 2)then
          return true
        else
     return false
       end
    end


    function getPushPuntos(jugador)
    if(rawget (puntos, jugador) == nil ) then
    rawset (puntos, jugador, 0)
    end
    return rawget (puntos, jugador)
    end


    function agregarPuntosPush(jugador,puntoz, enemigo)
    if(getPushPuntos(jugador) ~= (MaxPointsPush - 1)) then
    puntos[jugador] = puntos[jugador] + puntoz
                    doTeleportThing(player1.uid,nplayer1pos)
                    doTeleportThing(player2.uid,nplayer2pos)
    doCreatureSay(jugador,"Score "..puntos[jugador].."/10", TALKTYPE_ORANGE_1)
    local posiciones = {
    {x = 834, y = 787, z = 7, stackpos = 1},
    {x = 835, y = 787, z = 7, stackpos = 1},
    {x = 835, y = 786, z = 7, stackpos = 1},
    {x = 841, y = 789, z = 7, stackpos = 1},
    {x = 840, y = 789, z = 7, stackpos = 1},
    {x = 840, y = 790, z = 7, stackpos = 1}
    }
        for i = 1,#posiciones do
            if getThingFromPos(posiciones[i]).itemid == 1497 then
                doRemoveItem(getThingFromPos(posiciones[i]).uid)
     end
     end
    else
    PushActive = false
    local message = "      Final Push Score  \n ["..getCreatureName(JugadoresPush[1]).."] : "..getPushPuntos(JugadoresPush[1]).." \n ["..getCreatureName(JugadoresPush[2]).."] : "..getPushPuntos(JugadoresPush[2])..""
    doPlayerPopupFYI(jugador, message)
    doPlayerPopupFYI(enemigo, message)
    doTeleportThing(jugador, temple)
    doTeleportThing(enemigo, temple)
    stopEvent(TimekickOn)
    puntos[jugador] = nil
    puntos[enemigo] = nil
    for k = 1,2 do JugadoresPush[k] = nil end
    end
    end

    function KickFuckingOut()
    local message = "      Final Push Score  \n ["..getCreatureName(JugadoresPush[1]).."] : "..getPushPuntos(JugadoresPush[1]).." \n ["..getCreatureName(JugadoresPush[2]).."] : "..getPushPuntos(JugadoresPush[2]).."\n Tiempo Excedido"
    for k,v in pairs(JugadoresPush) do
    doTeleportThing(v, temple)
    doPlayerPopupFYI(v, message)
    end
    for k,v in pairs(puntos) do
    puntos[k] = nil
    end
    for k = 1,2 do JugadoresPush[k] = nil end
    PushActive = false
    end


    function agregarPlayer(value,valor)
    if(value and valor) then
    table.insert(JugadoresPush, value)
    table.insert(JugadoresPush, valor)
    end
    end



    action palanca entrar al push zone
    Código:

       dofile(getDataDir() .. "creaturescripts/scripts/Pushevent.lua")
    function TP(cid)
            player1 = getThingfromPos(player1pos)

            player2 = getThingfromPos(player2pos)




                    doSendMagicEffect(player1pos,2)
                    doSendMagicEffect(player2pos,2)

                    doTeleportThing(player1.uid,nplayer1pos)
                    doTeleportThing(player2.uid,nplayer2pos)

                    doSendMagicEffect(nplayer1pos,10)
                    doSendMagicEffect(nplayer2pos,10)

    end


    function onUse(cid, item, frompos, item2, topos)
          player1pos = {x = 852, y = 788, z = 7, stackpos = 253}
            player2pos = {x = 852, y = 790, z = 7, stackpos = 253}
          if item.uid == 3900 then
         if(PushActive == false) and isPlayer(cid) then
         if(getTopCreature(player1pos).uid > 0) and (getTopCreature(player2pos).uid > 0) then
         PushActive = true
            TP(cid)
          agregarPlayer(player1.uid,player2.uid)
    TimekickOn = addEvent(KickFuckingOut, tiempo * 60 * 1000)
    else
    doCreatureSay(cid, "Necesitas alguien a quien duelear")
    end
    else
    doCreatureSay(cid, "Actualmente estan en duelo  \n "..getCreatureName(JugadoresPush[1]).." VS "..getCreatureName(JugadoresPush[2]).."")
    end
    end
        return 1
    end


    script de la wall (action)
    Código:
    ----------------------------------THIS CODE WAS SCRIPTED BY: Cyko------------------------------------

    local 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

    local function doSendAnimatedText2(pos, value, color, player)
    if(not tonumber(value))then
    return error("arg #2 in doSendAnimatedText is not a number")
    end

    if(isPlayer(player))then
    doPlayerSendTextMessage(player, MESSAGE_EXPERIENCE, "", value, color, pos)
    else
    for _, v in ipairs(getSpectators(pos, 7, 5, true)) do
    if(isPlayer(v))then
    doPlayerSendTextMessage(v, MESSAGE_EXPERIENCE, "", value, color, pos)
    end
    end
    end
    end

    local version_check = 03 --if you use 0.3.7, then write 037! or if you use 0.3, write 03!



    local cyko = {
    timer = 20, -- How long will the magic wall stay
    cooldown = 200, -- How long to cast another one
    words = {"I LOVE MAGIC WALL!","HAHA YOU CANT GET ME","BIATCH","BOOM"}, -- Here can you add or edit the catch phrases!
    txt = "END", -- Text when it removes
    color_on_timer = TEXTCOLOR_BLUE, -- Color on countdown
    empty_storage = 1000 -- Please set a unused storage
    }


     dofile(getDataDir() .. "creaturescripts/scripts/Pushevent.lua")


    function onUse(cid, item, fromPosition, itemEx, toPosition)
    if(getPlayerStorageValue(cid, cyko.empty_storage) > os.time()) then
    return (doPlayerSendCancel(cid, "You are exhausted."))
    end
    local function removemw()
    if(getTileItemById(toPosition, 1497).uid > 0) then
    if (version_check == 03) then
    return doRemoveItem(getTileItemById(toPosition, 1497).uid)
    else
    return doRemoveItem(getTileItemById(toPosition, 1497).uid)
    end
    end
    end


    doCreateItem(1497, toPosition)
    setPlayerStorageValue(cid, cyko.storage, os.time() + cyko.cooldown)
    addEvent(removemw, cyko.timer * 1000)
    for i = 1,9 do
    for k = 1,3 do
    if(getTopCreature(StandZone[k]).uid > 0) and (toPosition.x == ShootZone[i].x and toPosition.y == ShootZone[i].y) then
    if(getTopCreature(StandZone[k]).uid == JugadoresPush[2] and isTraped(JugadoresPush[2])) then
    agregarPuntosPush(JugadoresPush[1],1,JugadoresPush[2])
    elseif (getTopCreature(StandZone[k]).uid == JugadoresPush[1] and isTraped(JugadoresPush[1])) then
    agregarPuntosPush(JugadoresPush[2],1,JugadoresPush[1])
    end
    if (random_txt_onsay == true) then
    doCreatureSay(cid, cyko.words[math.random(#cyko.words)], TALKTYPE_ORANGE_1)
    end
    end
    end
    end
    return true
    end

    Ver perfil de usuario

    2default Re: script modificacion el Miér Nov 29, 2017 10:07 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    pues no entendi la funcionalidad de este evento



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

    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).