• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Pedido] PUERTA POR VOCACION

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

    1default [Pedido] PUERTA POR VOCACION el Mar Jun 20, 2017 2:17 pm

    Fosfik

    avatar
    Miembro
    Miembro
    Hola buen dia, estoy buscando un script de puerta por vocacion, 4 puertas para 4 vocaciones.

    Agradezco tu atencion y su ayuda.


    Buen dia Smile

    Ver perfil de usuario

    2default Re: [Pedido] PUERTA POR VOCACION el Mar Jun 20, 2017 2:33 pm

    Aslak

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Lo unico que tienes que hacer es agregar un unico id a las puertas

    Código:
    local t = {
        coords = {x = 1000, y = 1000, z = 7},
        requiredlevel = 10,
        vocations = {1, 2, 3, 4, 5, 6, 7, 8}
    }
     
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        if isInArray(t.vocations, getPlayerVocation(cid)) and getPlayerLevel(cid) >= t.requiredlevel and getPlayerItemCount(cid, 2159) >= 50 then
            doTeleportThing(cid, t.coords, TRUE)
            doPlayerRemoveItem(cid, 2159, 50)
        else
            doPlayerSendCancel(cid, "Sorry not possible.")
            end
        return true
    end

    Si no te funciona utiliza uno mas complejo

    function onUse(cid, item, topos)
    local doors = {
    [8651] = {vocation = {1, 5, 9}, messageFail = "Sorry, you need to be a Sorcerer, Master Sorcerer to pass."},
    [8652] = {vocation = {2, 6, 10}, messageFail = "Sorry, you need to be a Druid, Elder Druid to pass."},
    [8653] = {vocation = {3, 7, 11}, messageFail = "Sorry, you need to be a Paladin, Royal Paladin to pass."},
    [8654] = {vocation = {4, 8, 12}, messageFail = "Sorry, you need to be a Knight, Elite Knight to pass."},
    }




    if (isInArray(doors[item.actionid].vocation, getPlayerVocation(cid))) then
    pos = getPlayerPosition(cid)
    if pos.x == topos.x then
    if pos.y < topos.y then
    pos.y = topos.y + 1
    else
    pos.y = topos.y - 1
    end
    elseif pos.y == topos.y then
    if pos.x < topos.x then
    pos.x = topos.x + 1
    else
    pos.x = topos.x - 1
    end
    doTeleportThing(cid,pos)
    doSendMagicEffect(topos,12)
    end
    else
    doPlayerSendCancel(cid, doors[item.actionid].messageFail)
    end
    return true
    end

    Ver perfil de usuario

    3default Re: [Pedido] PUERTA POR VOCACION el Mar Jun 20, 2017 2:49 pm

    Fosfik

    avatar
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:Lo unico que tienes que hacer es agregar un unico id a las puertas

    Código:
    local t = {
        coords = {x = 1000, y = 1000, z = 7},
        requiredlevel = 10,
        vocations = {1, 2, 3, 4, 5, 6, 7, 8}
    }
     
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        if isInArray(t.vocations, getPlayerVocation(cid)) and getPlayerLevel(cid) >= t.requiredlevel and getPlayerItemCount(cid, 2159) >= 50 then
            doTeleportThing(cid, t.coords, TRUE)
            doPlayerRemoveItem(cid, 2159, 50)
        else
            doPlayerSendCancel(cid, "Sorry not possible.")
            end
        return true
    end

    Si no te funciona utiliza uno mas complejo

    function onUse(cid, item, topos)
    local doors = {
    [8651] = {vocation = {1, 5, 9}, messageFail = "Sorry, you need to be a Sorcerer, Master Sorcerer to pass."},
    [8652] = {vocation = {2, 6, 10}, messageFail = "Sorry, you need to be a Druid, Elder Druid to pass."},
    [8653] = {vocation = {3, 7, 11}, messageFail = "Sorry, you need to be a Paladin, Royal Paladin to pass."},
    [8654] = {vocation = {4, 8, 12}, messageFail = "Sorry, you need to be a Knight, Elite Knight to pass."},
    }




    if (isInArray(doors[item.actionid].vocation, getPlayerVocation(cid))) then
    pos = getPlayerPosition(cid)
    if pos.x == topos.x then
    if pos.y < topos.y then
    pos.y = topos.y + 1
    else
    pos.y = topos.y - 1
    end
    elseif pos.y == topos.y then
    if pos.x < topos.x then
    pos.x = topos.x + 1
    else
    pos.x = topos.x - 1
    end
    doTeleportThing(cid,pos)
    doSendMagicEffect(topos,12)
    end
    else
    doPlayerSendCancel(cid, doors[item.actionid].messageFail)
    end
    return true
    end

    Muchas gracias bro, sino es mucha molestia me podrias explicar?

    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.