• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [CreatureEvents] [CreatureEvents] Ayuda con codig para hacer tp a player

    Compartir:

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

    Felipe93

    Felipe93
    Miembro
    Miembro
    Descripcion escribió:Bueno tengo 2 codigos que intentan hacer lo mismo

    como saben otx2 no tiene un codigo que haga que los player sean teleportados al templo si es que quedan encerrados en algun lugar donde no se puede caminar ( usar items para hacer tp a player como en rl tibia)

    El primer codigo funciona, pero tiene un problema con algunas tiles como los PZ
    si el player esta en el depot o en algun templo al logear instantaneamente es teleportado a su templo

    Código:
    function isPathable(pos)
        pos.stackpos = 0
        local tile = getThingfromPos(pos).uid
        if tile > 0 then
          return not hasProperty(tile, CONST_PROP_BLOCKSOLID)
        end
        return false
    end
    local function isWalkable(cid, pos)
      local closest = getClosestFreeTile(cid, pos)
      return type(closest) == "table" and doComparePositions(closest, pos)
    end
    function onLogin(cid)
      local position = getThingPos(cid)
      if isPathable(position) == false or isWalkable(cid, position) == false then
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
      end
      return true
    end


    el segundo codigo em dicen que funciona pero es para tfs 0.3.7 y no otx porlo que ni siquiera puedo ingresar al otserver
    Código:
    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getTileThingByPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
      local closest = getClosestFreeTile(cid, pos)
      return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
      local position = getThingPos(cid)
      if isPathable(position) == false or isWalkable(cid, position) == false then
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
      end
      return true
    end


    este es el error que aparece en consola
    Código:
    GM Pasturry has logged in.
     
    [Error - CreatureScript Interface]
    data/creaturescripts/scripts/tpplayers.lua:onLogin
    Description:
    data/creaturescripts/scripts/tpplayers.lua:2: attempt to index local 'pos' (a nil value)
    stack traceback:
            data/creaturescripts/scripts/tpplayers.lua:2: in function 'isPathable'
            data/creaturescripts/scripts/tpplayers.lua:25: in function <data/creaturescripts/scripts/tpplayers.lua:23>
    GM Pasturry has logged out.

    Captura del Error escribió:Imagen del error:
    El error radica en: CreatureScript

    Ver perfil de usuario

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador

    aqui esta es un item queal darle clic te teleporta

    Código:

    function onUse(cid, item, frompos, item2, topos)
    ppos = getPlayerPosition(cid)
    temple = getPlayerMasterPos(cid)
    if (getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then
    doTeleportThing(cid, temple, TRUE)
    doSendMagicEffect(ppos,36)
    doSendAnimatedText(frompos,'Teleport!',180)
    doRemoveItem(item.uid,1)
    else
    doPlayerSendCancel(cid,"Tienes pz, espera a que se te quite.")
    doSendMagicEffect(ppos,2)
    end
    return 1
    end



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

    sirakx

    sirakx
    Nuevo Miembro
    Nuevo Miembro
    Prueba así:

    Código:

    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getThingfromPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
      local closest = getClosestFreeTile(cid, pos)
      return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
      local position = getThingPos(cid)
      if isPathable(position) == false or isWalkable(cid, position) == false then
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
      end
      return true
    end

    Ver perfil de usuario

    Felipe93

    Felipe93
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    aqui esta es un item queal darle clic te teleporta

    Código:

    function onUse(cid, item, frompos, item2, topos)
    ppos = getPlayerPosition(cid)
    temple = getPlayerMasterPos(cid)
    if (getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE) then
    doTeleportThing(cid, temple, TRUE)
    doSendMagicEffect(ppos,36)
    doSendAnimatedText(frompos,'Teleport!',180)
    doRemoveItem(item.uid,1)
    else
    doPlayerSendCancel(cid,"Tienes pz, espera a que se te quite.")
    doSendMagicEffect(ppos,2)
    end
    return 1
    end


    NO BUSCO ESO MAYA, PERO GRACIAS.. NESESITO UN CODIGO QUE HAGA QUE SI UN PLAYER ESTA POR EJEMPLO ATRAPADO ENTRE MESAS ( POR LAS QUE NO SE PUEDA CAMINAR ) MESA O CUALQUIER ITEM POR EL QUE EL PLAYER NO PUEDA CAMINAR SEA TELEPORTED A SU TEMPLE
    O POR EJEMPLO PODER HACER TELEPORT A UN PLAYER CON PARCELS ( COMO ES EN RL) AHORA SI EL PLAYER QUIERE USAR PARCELS PARA IRSE AL TEMPLO AL LOGEAR SIMPLEMENTE APARECE ENCIMA DE ESAS PARCELS.. TABLAS.. O LO QUE SEA Y ES UN BUG QUE TIENE OTX 2



    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getThingfromPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
       local closest = getClosestFreeTile(cid, pos)
       return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
       local position = getThingPos(cid)
       if isPathable(position) == false or isWalkable(cid, position) == false then
           doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       end
       return true
    end

    [Error - CreatureScript Interface]
    data/creaturescripts/scripts/tpplayers.lua:onLogin
    Description:
    data/creaturescripts/scripts/tpplayers.lua:2: attempt to index local 'pos' (a nil value)
    stack traceback:
    data/creaturescripts/scripts/tpplayers.lua:2: in function 'isPathable'
    data/creaturescripts/scripts/tpplayers.lua:25: in function <data/creaturescripts/scripts/tpplayers.lua:23>
    GM Pasturry has logged out.


    gracias man , pero sigue el mismo error :c
    es algo que la linea 2 choca conla funcion 25 y 23 no tengo idea porque

    Ver perfil de usuario

    sirakx

    sirakx
    Nuevo Miembro
    Nuevo Miembro
    por que no me pasas tu datapack limpio con el exe que usas para que lo cheque

    Ver perfil de usuario

    Felipe93

    Felipe93
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:por que no me pasas tu datapack limpio con el exe que usas para que lo cheque
    este es bro , especificamente el datapack 7.72
    [Tienes que estar registrado y conectado para ver este vínculo]

    Ver perfil de usuario

    sirakx

    sirakx
    Nuevo Miembro
    Nuevo Miembro
    checa ahora

    Código:

    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getThingfromPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
      local closest = getClosestFreeTile(cid, pos)
      return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
      local position = getThingPos(cid)
      if isPathable(cid, position, false) == false or isWalkable(cid, position) == false then
          doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
      end
      return true
    end

    Ver perfil de usuario

    Felipe93

    Felipe93
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:checa ahora

    Código:

    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getThingfromPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
       local closest = getClosestFreeTile(cid, pos)
       return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
       local position = getThingPos(cid)
       if isPathable(cid, position, false) == false or isWalkable(cid, position) == false then
           doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       end
       return true
    end

    Ahora puedo ingresar, pero funciona igual que el otro script ( me hace teleport en cualquier parte no importa si el player esta sobre un unwalkable tile o no


    Código:
    function isPathable(cid, pos, ignoreCreatures)
        pos.stackpos = 0
        if getThingfromPos(pos).uid ~= 0 then
            pos.stackpos = 253
            if ignoreCreatures == true then
                if doTileQueryAdd(cid, pos, 4) == RETURNVALUE_NOERROR then
                    return true
                end
            else
                if getTopCreature(pos).uid == 0 and doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then
                    return true
                end
            end
        end
        return false
    end

    local function isWalkable(cid, pos) -- DOES NOT WORK WITH ACCESS 3+
       local closest = getClosestFreeTile(cid, pos)
       return type(closest) == "table" and doComparePositions(closest, pos)
    end
     
    function onLogin(cid)
       local position = getThingPos(cid)
       if isPathable(cid, position, false) == false or isWalkable(cid, position) == false then
           doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
       end
       return true
    end

    tengo para donar como 6 usd por la ayuda para este fix >.<

    Ver perfil de usuario

    sirakx

    sirakx
    Nuevo Miembro
    Nuevo Miembro
    hay alguna manera que pueda ayudarte por team viewer? para que sea mas practico, me dejas un mensaje privado si requieres ayuda.

    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.

     

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