• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    Error en player look

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

    1Resuelto Error en player look el Dom Mayo 03, 2015 2:07 am

    ijuchia

    avatar
    Miembro
    Miembro
    Descripcion de mi problema:
    cada vez que doy look a un player desde mi god, gamemaster, etc..
    no puedo ver al player, pero si doy look desde un player normal si
    cuando doy look desde mi god en mi consola aparece este error

    Código:
     Lua Script Error: [Event Interface]
    data/events/scripts/player.lua:Player@onLook
    data/global.lua:135: attempt to index global 'bit' (a nil value)
    stack traceback:
            [C]: ?
            data/global.lua:135: in function 'convertIpToString'
            data/events/scripts/player.lua:48: in function <data/events/scripts/player.lua:1>

    dejo mi global.lua y mi player.lua


    global.lua

    Código:
     dofile('data/compat.lua')
    dofile('data/libs.lua')

    TRUE = true
    FALSE = false

    LUA_ERROR = false
    LUA_NO_ERROR = true

    THING_TYPE_PLAYER = 1
    THING_TYPE_MONSTER = 2
    THING_TYPE_NPC = 3

    GUILDLEVEL_MEMBER = 1
    GUILDLEVEL_VICE = 2
    GUILDLEVEL_LEADER = 3

    STACKPOS_GROUND = 0
    STACKPOS_FIRST_ITEM_ABOVE_GROUNDTILE = 1
    STACKPOS_SECOND_ITEM_ABOVE_GROUNDTILE = 2
    STACKPOS_THIRD_ITEM_ABOVE_GROUNDTILE = 3
    STACKPOS_FOURTH_ITEM_ABOVE_GROUNDTILE = 4
    STACKPOS_FIFTH_ITEM_ABOVE_GROUNDTILE = 5
    STACKPOS_TOP_CREATURE = 253
    STACKPOS_TOP_FIELD = 254
    STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE = 255

    ropeSpots = {384, 418, 8278, 8592, 13189, 14435, 14436, 15635, 19518}

    doors = {[1209] = 1211, [1210] = 1211, [1212] = 1214, [1213] = 1214, [1219] = 1220, [1221] = 1222, [1231] = 1233, [1232] = 1233, [1234] = 1236, [1235] = 1236, [1237] = 1238, [1239] = 1240, [1249] = 1251, [1250] = 1251, [1252] = 1254, [1253] = 1254, [1539] = 1540, [1541] = 1542, [3535] = 3537, [3536] = 3537, [3538] = 3539, [3544] = 3546, [3545] = 3546, [3547] = 3548, [4913] = 4915, [4914] = 4915, [4916] = 4918, [4917] = 4918, [5082] = 5083, [5084] = 5085, [5098] = 5100, [5099] = 5100, [5101] = 5102, [5107] = 5109, [5108] = 5109, [5110] = 5111, [5116] = 5118, [5117] = 5118, [5119] = 5120, [5125] = 5127, [5126] = 5127, [5128] = 5129, [5134] = 5136, [5135] = 5136, [5137] = 5139, [5138] = 5139, [5140] = 5142, [5141] = 5142, [5143] = 5145, [5144] = 5145, [5278] = 5280, [5279] = 5280, [5281] = 5283, [5282] = 5283, [5284] = 5285, [5286] = 5287, [5515] = 5516, [5517] = 5518, [5732] = 5734, [5733] = 5734, [5735] = 5737, [5736] = 5737, [6192] = 6194, [6193] = 6194, [6195] = 6197, [6196] = 6197, [6198] = 6199, [6200] = 6201, [6249] = 6251, [6250] = 6251, [6252] = 6254, [6253] = 6254, [6255] = 6256, [6257] = 6258, [6795] = 6796, [6797] = 6798, [6799] = 6800, [6801] = 6802, [6891] = 6893, [6892] = 6893, [6894] = 6895, [6900] = 6902, [6901] = 6902, [6903] = 6904, [7033] = 7035, [7034] = 7035, [7036] = 7037, [7042] = 7044, [7043] = 7044, [7045] = 7046, [7054] = 7055, [7056] = 7057, [8541] = 8543, [8542] = 8543, [8544] = 8546, [8545] = 8546, [8547] = 8548, [8549] = 8550, [9165] = 9167, [9166] = 9167, [9168] = 9170, [9169] = 9170, [9171] = 9172, [9173] = 9174, [9267] = 9269, [9268] = 9269, [9270] = 9272, [9271] = 9272, [9273] = 9274, [9275] = 9276, [10276] = 10277, [10274] = 10275, [10268] = 10270, [10269] = 10270, [10271] = 10273, [10272] = 10273, [10471] = 10472, [10480] = 10481, [10477] = 10479, [10478] = 10479, [10468] = 10470, [10469] = 10470, [10775] = 10777, [10776] = 10777, [12092] = 12094, [12093] = 12094, [12188] = 12190, [12189] = 12190, [19840] = 19842, [19841] = 19842, [19843] = 19844, [19980] = 19982, [19981] = 19982, [19983] = 19984, [20273] = 20275, [20274] = 20275, [20276] = 20277, [17235] = 17236, [18208] = 18209, [13022] = 13023, [10784] = 10786, [10785] = 10786, [12099] = 12101, [12100] = 12101, [12197] = 12199, [12198] = 12199, [19849] = 19851, [19850] = 19851, [19852] = 19853, [19989] = 19991, [19990] = 19991, [19992] = 19993, [20282] = 20284, [20283] = 20284, [20285] = 20286, [17237] = 17238, [13020] = 13021, [10780] = 10781, [12095] = 12096, [12195] = 12196, [19845] = 19846, [19985] = 19986, [20278] = 20279, [10789] = 10790, [12102] = 12103, [12204] = 12205, [19854] = 19855, [19994] = 19995, [20287] = 20288, [10782] = 10783, [12097] = 12098, [12193] = 12194, [19847] = 19848, [19987] = 19988, [20280] = 20281, [10791] = 10792, [12104] = 12105, [12202] = 12203, [19856] = 19857, [19996] = 19997, [20289] = 20290}
    verticalOpenDoors = {1211, 1220, 1224, 1228, 1233, 1238, 1242, 1246, 1251, 1256, 1260, 1540, 3546, 3548, 3550, 3552, 4915, 5083, 5109, 5111, 5113, 5115, 5127, 5129, 5131, 5133, 5142, 5145, 5283, 5285, 5289, 5293, 5516, 5737, 5749, 6194, 6199, 6203, 6207, 6251, 6256, 6260, 6264, 6798, 6802, 6902, 6904, 6906, 6908, 7044, 7046, 7048, 7050, 7055, 8543, 8548, 8552, 8556, 9167, 9172, 9269, 9274, 9274, 9269, 9278, 9282, 10270, 10275, 10279, 10283, 10479, 10481, 10485, 10483, 10786, 12101, 12199, 19851, 19853, 19991, 19993, 20284, 20286, 17238, 13021, 10790, 12103, 12205, 19855, 19995, 20288, 10792, 12105, 12203, 19857, 19997, 20290}
    horizontalOpenDoors = {1214, 1222, 1226, 1230, 1236, 1240, 1244, 1248, 1254, 1258, 1262, 1542, 3537, 3539, 3541, 3543, 4918, 5085, 5100, 5102, 5104, 5106, 5118, 5120, 5122, 5124, 5136, 5139, 5280, 5287, 5291, 5295, 5518, 5734, 5746, 6197, 6201, 6205, 6209, 6254, 6258, 6262, 6266, 6796, 6800, 6893, 6895, 6897, 6899, 7035, 7037, 7039, 7041, 7057, 8546, 8550, 8554, 8558, 9170, 9174, 9272, 9276, 9280, 9284, 10273, 10277, 10281, 10285, 10470, 10472, 10476, 10474, 10777, 12094, 12190, 19842, 19844, 19982, 19984, 20275, 20277, 17236, 18209, 13023, 10781, 12096, 12196, 19846, 19986, 20279, 10783, 12098, 12194, 19848, 19988, 20281}
    openSpecialDoors = {1224, 1226, 1228, 1230, 1242, 1244, 1246, 1248, 1256, 1258, 1260, 1262, 3541, 3543, 3550, 3552, 5104, 5106, 5113, 5115, 5122, 5124, 5131, 5133, 5289, 5291, 5293, 5295, 6203, 6205, 6207, 6209, 6260, 6262, 6264, 6266, 6897, 6899, 6906, 6908, 7039, 7041, 7048, 7050, 8552, 8554, 8556, 8558, 9176, 9178, 9180, 9182, 9278, 9280, 9282, 9284, 10279, 10281, 10283, 10285, 10474, 10476, 10483, 10485, 10781, 12096, 12196, 19846, 19986, 20279, 10783, 12098, 12194, 19848, 19988, 20281, 10790, 12103, 12205, 19855, 19995, 20288, 10792, 12105, 12203, 19857, 19997, 20290}
    questDoors = {1223, 1225, 1241, 1243, 1255, 1257, 3542, 3551, 5105, 5114, 5123, 5132, 5288, 5290, 5745, 5748, 6202, 6204, 6259, 6261, 6898, 6907, 7040, 7049, 8551, 8553, 9175, 9177, 9277, 9279, 10278, 10280, 10475, 10484, 10782, 12097, 19847, 19987, 20280, 10791, 12104, 12204, 12195, 19856, 19996, 20289}
    levelDoors = {1227, 1229, 1245, 1247, 1259, 1261, 3540, 3549, 5103, 5112, 5121, 5130, 5292, 5294, 6206, 6208, 6263, 6265, 6896, 6905, 7038, 7047, 8555, 8557, 9179, 9181, 9281, 9283, 10282, 10284, 10473, 10482, 10780, 10789, 10780, 12095, 12195, 19845, 19985, 20278, 10789, 12102, 12193, 12202, 19854, 19994, 20287}
    keys = {2086, 2087, 2088, 2089, 2090, 2091, 2092, 10032}

    CONTAINER_POSITION = 0xFFFF
    ITEMCOUNT_MAX = 100

    function doCreatureSayWithRadius(cid, text, type, radiusx, radiusy, position)
       if not position then
          position = Creature(cid):getPosition()
       end

       local spectators, spectator = Game.getSpectators(position, false, true, radiusx, radiusx, radiusy, radiusy)
       for i = 1, #spectators do
          spectator = spectators[i]
          spectator:say(text, type, false, spectator, position)
       end
    end

    function getBlessingsCost(level)
       if level <= 30 then
          return 2000
       elseif level >= 120 then
          return 20000
       else
          return (level - 20) * 200
       end
    end

    function getPvpBlessingCost(level)
       if level <= 30 then
          return 2000
       elseif level >= 270 then
          return 50000
       else
          return (level - 20) * 200
       end
    end

    function isInRange(pos, fromPos, toPos)
       return pos.x >= fromPos.x and pos.y >= fromPos.y and pos.z >= fromPos.z and pos.x <= toPos.x and pos.y <= toPos.y and pos.z <= toPos.z
    end

    function Player.isPremium(self)
       return self:getPremiumDays() > 0 or configManager.getBoolean(configKeys.FREE_PREMIUM)
    end

    function isNumber(str)
       return tonumber(str) ~= nil
    end

    function getDistanceBetween(firstPosition, secondPosition)
       local xDif = math.abs(firstPosition.x - secondPosition.x)
       local yDif = math.abs(firstPosition.y - secondPosition.y)
       local posDif = math.max(xDif, yDif)
       if firstPosition.z ~= secondPosition.z then
          posDif = posDif + 15
       end
       return posDif
    end

    function Player.isSorcerer(self)
       return isInArray({1, 5}, self:getVocation():getId())
    end

    function Player.isDruid(self)
       return isInArray({2, 6}, self:getVocation():getId())
    end

    function Player.isPaladin(self)
       return isInArray({3, 7}, self:getVocation():getId())
    end

    function Player.isKnight(self)
       return isInArray({4, 8}, self:getVocation():getId())
    end

    function getTibianTime()
       local worldTime = getWorldTime()
       local hours = math.floor(worldTime / 60)

       local minutes = worldTime % 60
       if minutes < 10 then
          minutes = '0' .. minutes
       end
       return hours .. ':' .. minutes
    end

    if not globalStorageTable then
       globalStorageTable = {}
    end

    function Game.getStorageValue(key)
       return globalStorageTable[key] or -1
    end

    function Game.setStorageValue(key, value)
       globalStorageTable[key] = value
    end

    function Game.convertIpToString(ip)
       local band = bit.band
       local rshift = bit.rshift
       return string.format("%d.%d.%d.%d",
          band(ip, 0xFF),
          band(rshift(ip, 8), 0xFF),
          band(rshift(ip, 16), 0xFF),
          rshift(ip, 24)
       )
    end

    function Game.getSkillType(weaponType)
       if weaponType == WEAPON_CLUB then
          return SKILL_CLUB
       elseif weaponType == WEAPON_SWORD then
          return SKILL_SWORD
       elseif weaponType == WEAPON_AXE then
          return SKILL_AXE
       elseif weaponType == WEAPON_DISTANCE then
          return SKILL_DISTANCE
       elseif weaponType == WEAPON_SHIELD then
          return SKILL_SHIELD
       end
       return SKILL_FIST
    end

    function Game.getReverseDirection(direction)
       if direction == DIRECTION_WEST then
          return DIRECTION_EAST
       elseif direction == DIRECTION_EAST then
          return DIRECTION_WEST
       elseif direction == DIRECTION_NORTH then
          return DIRECTION_SOUTH
       elseif direction == DIRECTION_SOUTH then
          return DIRECTION_NORTH
       elseif direction == DIRECTION_NORTHWEST then
          return DIRECTION_SOUTHEAST
       elseif direction == DIRECTION_NORTHEAST then
          return DIRECTION_SOUTHWEST
       elseif direction == DIRECTION_SOUTHWEST then
          return DIRECTION_NORTHEAST
       elseif direction == DIRECTION_SOUTHEAST then
          return DIRECTION_NORTHWEST
       end
       return DIRECTION_NORTH
    end

    function Position.getNextPosition(self, direction, steps)
       steps = steps or 1
       if direction == DIRECTION_WEST then
          self.x = self.x - steps
       elseif direction == DIRECTION_EAST then
          self.x = self.x + steps
       elseif direction == DIRECTION_NORTH then
          self.y = self.y - steps
       elseif direction == DIRECTION_SOUTH then
          self.y = self.y + steps
       elseif direction == DIRECTION_NORTHWEST then
          self.x = self.x - steps
          self.y = self.y - steps
       elseif direction == DIRECTION_NORTHEAST then
          self.x = self.x + steps
          self.y = self.y - steps
       elseif direction == DIRECTION_SOUTHWEST then
          self.x = self.x - steps
          self.y = self.y + steps
       elseif direction == DIRECTION_SOUTHEAST then
          self.x = self.x + steps
          self.y = self.y + steps
       end
    end

    function Player.getClosestFreePosition(self, position, extended)
       if self:getAccountType() >= ACCOUNT_TYPE_GOD then
          return position
       end
       return Creature.getClosestFreePosition(self, position, extended)
    end

    function Creature.getClosestFreePosition(self, position, extended)
       local usePosition = Position(position)
       local tiles = { usePosition:getTile() }
       local length = extended and 2 or 1

       local tile
       for y = -length, length do
          for x = -length, length do
             if x ~= 0 or y ~= 0 then
                usePosition.x = position.x + x
                usePosition.y = position.y + y

                tile = usePosition:getTile()
                if tile then
                   tiles[#tiles + 1] = tile
                end
             end
          end
       end

       for i = 1, #tiles do
          tile = tiles[i]
          if tile:getCreatureCount() == 0 and not tile:hasProperty(CONST_PROP_BLOCKINGANDNOTMOVEABLE) then
             return tile:getPosition()
          end
       end
       return Position()
    end

    function Creature.getPlayer(self)
       return self:isPlayer() and self or nil
    end

    function Creature.getMonster(self)
       return self:isMonster() and self or nil
    end

    function isMonsterInArea(fromPos, toPos, showMonsters, disableSummons)
            for _x = fromPos.x, toPos.x do
                    for _y = fromPos.y, toPos.y do
                            for _z = fromPos.z, toPos.z do
                                    creature = getTopCreature({x = _x, y = _y, z = _z})
                                    if (creature.type == 2 and showMonsters and (not disableSummons or (disableSummons and getCreatureMaster(creature.uid) == (creature.uid)))) then
                                            return true
                                    end
                            end
                    end
            end
            return false
    end

    function Player.sendCancelMessage(self, message)
       if type(message) == "number" then
          message = Game.getReturnMessage(message)
       end
       return self:sendTextMessage(MESSAGE_STATUS_SMALL, message)
    end

    local foodCondition = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)

    function Player.feed(self, food)
       local condition = self:getCondition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
       if condition then
          condition:setTicks(condition:getTicks() + (food * 1000))
       else
          local vocation = self:getVocation()
          if not vocation then
             return nil
          end

          foodCondition:setTicks(food * 1000)
          foodCondition:setParameter(CONDITION_PARAM_HEALTHGAIN, vocation:getHealthGainAmount())
          foodCondition:setParameter(CONDITION_PARAM_HEALTHTICKS, vocation:getHealthGainTicks() * 1000)
          foodCondition:setParameter(CONDITION_PARAM_MANAGAIN, vocation:getManaGainAmount())
          foodCondition:setParameter(CONDITION_PARAM_MANATICKS, vocation:getManaGainTicks() * 1000)

          self:addCondition(foodCondition)
       end
       return true
    end

    function Player.getDepotItems(self, depotId)
       return self:getDepotChest(depotId, true):getItemHoldingCount()
    end

    function Player.getLossPercent(self)
       local lossPercent = {
          [0] = 100,
          [1] = 70,
          [2] = 45,
          [3] = 25,
          [4] = 10,
          [5] = 0
       }

       return lossPercent[self:getBlessings()]
    end

    function Player.isUsingOtClient(self)
       return self:getClient().os >= CLIENTOS_OTCLIENT_LINUX
    end

    function Player.sendExtendedOpcode(self, opcode, buffer)
       if not self:isUsingOtClient() then
          return false
       end

       local networkMessage = NetworkMessage()
       networkMessage:addByte(0x32)
       networkMessage:addByte(opcode)
       networkMessage:addString(buffer)
       networkMessage:sendToPlayer(self)
       networkMessage:delete()
       return true
    end

    function Position.getTile(self)
       return Tile(self)
    end

    local slotBits = {
       [CONST_SLOT_HEAD] = SLOTP_HEAD,
       [CONST_SLOT_NECKLACE] = SLOTP_NECKLACE,
       [CONST_SLOT_BACKPACK] = SLOTP_BACKPACK,
       [CONST_SLOT_ARMOR] = SLOTP_ARMOR,
       [CONST_SLOT_RIGHT] = SLOTP_RIGHT,
       [CONST_SLOT_LEFT] = SLOTP_LEFT,
       [CONST_SLOT_LEGS] = SLOTP_LEGS,
       [CONST_SLOT_FEET] = SLOTP_FEET,
       [CONST_SLOT_RING] = SLOTP_RING,
       [CONST_SLOT_AMMO] = SLOTP_AMMO
    }

    function ItemType.usesSlot(self, slot)
       return bit.band(self:getSlotPosition(), slotBits[slot] or 0) ~= 0
    end

    function Game.broadcastMessage(message, messageType)
       if messageType == nil then
          messageType = MESSAGE_STATUS_WARNING
       end

       local players = Game.getPlayers()
       for i = 1, #players do
          players[i]:sendTextMessage(messageType, message)
       end
    end

    if Game.getStorageValue("stamina") == -1 then
       Game.setStorageValue("stamina", {})
    end
     

    player.lua

    Código:
     -- Players cannot throw items on teleports if set to true
    local blockTeleportTrashing = false

    function Player:onBrowseField(position)
       return true
    end

    function Player:onLook(thing, position, distance)
       local description = 'You see '
       if thing:isItem() then
          if thing.actionid == 5640 then
             description = description .. 'a honeyflower patch.'
          elseif thing.actionid == 5641 then
             description = description .. 'a banana palm.'
          else
             description = description .. thing:getDescription(distance)
          end
       else
          description = description .. thing:getDescription(distance)
       end

       if self:getGroup():getAccess() then
          if thing:isItem() then
             description = string.format('%s\nItemID: [%d]', description, thing.itemid)

             local actionId = thing.actionid
             if actionId ~= 0 then
                description = string.format('%s, ActionID: [%d]', description, actionId)
             end

             local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
             if uniqueId > 0 and uniqueId < 65536 then
                description = string.format('%s, UniqueId: [%d]', description, uniqueId)
             end

             description = description .. '.'
             local itemType = thing:getType()

             local transformEquipId = itemType:getTransformEquipId()
             local transformDeEquipId = itemType:getTransformDeEquipId()
             if transformEquipId ~= 0 then
                description = string.format('%s\nTransformTo: [%d] (onEquip).', description, transformEquipId)
             elseif transformDeEquipId ~= 0 then
                description = string.format('%s\nTransformTo: [%d] (onDeEquip).', description, transformDeEquipId)
             end

             local decayId = itemType:getDecayId()
             if decayId ~= -1 then
                description = string.format('%s\nDecayTo: [%d]', description, decayId)
             end
          elseif thing:isCreature() then
             local str = '%s\nHealth: [%d / %d]'
             if thing:getMaxMana() > 0 then
                str = string.format('%s, Mana: [%d / %d]', str, thing:getMana(), thing:getMaxMana())
             end
             description = string.format(str, description, thing:getHealth(), thing:getMaxHealth()) .. '.'
          end

          local position = thing:getPosition()
          description = string.format(
             '%s\nPosition: [X: %d] [Y: %d] [Z: %d].',
             description, position.x, position.y, position.z
          )

          if thing:isCreature() and thing:isPlayer() then
             description = string.format('%s\nIP: [%s].', description, Game.convertIpToString(thing:getIp()))
          end
       end
       self:sendTextMessage(MESSAGE_INFO_DESCR, description)
    end

    function Player:onLookInBattleList(creature, distance)
       local description = 'You see ' .. creature:getDescription(distance)
       if self:getGroup():getAccess() then
          local str = '%s\nHealth: [%d / %d]'
          if creature:getMaxMana() > 0 then
             str = string.format('%s, Mana: [%d / %d]', str, creature:getMana(), creature:getMaxMana())
          end
          description = string.format(str, description, creature:getHealth(), creature:getMaxHealth()) .. '.'

          local position = creature:getPosition()
          description = string.format(
             '%s\nPosition: [X: %d] [Y: %d] [Z: %d].',
             description, position.x, position.y, position.z
          )

          if creature:isPlayer() then
             description = string.format('%s\nIP: [%s].', description, Game.convertIpToString(creature:getIp()))
          end
       end
       self:sendTextMessage(MESSAGE_INFO_DESCR, description)
    end

    function Player:onLookInTrade(partner, item, distance)
       self:sendTextMessage(MESSAGE_INFO_DESCR, 'You see ' .. item:getDescription(distance))
    end

    function Player:onLookInShop(itemType, count)
       return true
    end

    function Player:onMoveItem(item, count, fromPosition, toPosition)
       if blockTeleportTrashing and toPosition.x ~= CONTAINER_POSITION then
          local thing = Tile(toPosition):getItemByType(ITEM_TYPE_TELEPORT)
          if thing then
             self:sendCancelMessage('Sorry, not possible.')
             self:getPosition():sendMagicEffect(CONST_ME_POFF)
             return false
          end
       end

       if isInArray({1714, 1715, 1716, 1717, 1738, 1740, 1741, 1747, 1748, 1749}, item.itemid) and item.actionid > 0 or item.actionid == 5640 then
          self:sendCancelMessage('You cannot move this object.')
          return false
       elseif item.itemid == 7466 then
          self:sendCancelMessage('You cannot move this object.')
          return false
       end

       if fromPosition.x == CONTAINER_POSITION and toPosition.x == CONTAINER_POSITION
             and item.itemid == 8710 and self:getItemCount(8710) == 2 and self:getStorageValue(Storage.RookgaardTutorialIsland.cockroachLegsMsgStorage) ~= 1 then
          self:sendTextMessage(MESSAGE_INFO_DESCR, 'Well done, you have enough cockroach legs! You should head back to Santiago with them. Climb the ladder to the north to exit.')
          self:setStorageValue(Storage.RookgaardTutorialIsland.cockroachLegsMsgStorage, 1)
          self:setStorageValue(Storage.RookgaardTutorialIsland.SantiagoNpcGreetStorage, 6)
       end
       return true
    end

    function Player:onMoveCreature(creature, fromPosition, toPosition)
       return true
    end

    function Player:onTurn(direction)
       return true
    end

    function Player:onTradeRequest(target, item)
       if isInArray({1738, 1740, 1747, 1748, 1749, 8766}, item.itemid) and item.actionid > 0 or item.actionid == 5640 then
          self:sendCancelMessage('Sorry, not possible.')
          return false
       end
       return true
    end

    function Player:onTradeAccept(target, item, targetItem)
       return true
    end

    local soulCondition = Condition(CONDITION_SOUL, CONDITIONID_DEFAULT)
    soulCondition:setTicks(4 * 60 * 1000)
    soulCondition:setParameter(CONDITION_PARAM_SOULGAIN, 1)

    local function useStamina(player)
       local staminaMinutes = player:getStamina()
       if staminaMinutes == 0 then
          return
       end

       local playerId = player.uid
       local currentTime = os.time()
       local staminaTable = Game.getStorageValue("stamina")
       local timePassed = currentTime - staminaTable[playerId]
       if timePassed <= 0 then
          return
       end

       if timePassed > 60 then
          if staminaMinutes > 2 then
             staminaMinutes = staminaMinutes - 2
          else
             staminaMinutes = 0
          end
          staminaTable[playerId] = currentTime + 120
       else
          staminaMinutes = staminaMinutes - 1
          staminaTable[playerId] = currentTime + 60
       end
       player:setStamina(staminaMinutes)
    end

    function Player:onGainExperience(source, exp, rawExp)
       if not source or source:isPlayer() then
          return exp
       end

       -- Soul regeneration
       local vocation = self:getVocation()
       if self:getSoul() < vocation:getMaxSoul() and exp >= self:getLevel() then
          soulCondition:setParameter(CONDITION_PARAM_SOULTICKS, vocation:getSoulGainTicks() * 1000)
          self:addCondition(soulCondition)
       end

       -- Apply experience stage multiplier
       exp = exp * Game.getExperienceStage(self:getLevel())

       -- Stamina modifier
       if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
          useStamina(self)

          local staminaMinutes = self:getStamina()
          if staminaMinutes > 2400 and self:isPremium() then
             exp = exp * 1.5
          elseif staminaMinutes <= 840 then
             exp = exp * 0.5
          end
       end

       return exp
    end

    function Player:onLoseExperience(exp)
       return exp
    end

    function Player:onGainSkillTries(skill, tries)
       if skill == SKILL_MAGLEVEL then
          return tries * configManager.getNumber(configKeys.RATE_MAGIC)
       end
       return tries * configManager.getNumber(configKeys.RATE_SKILL)
    end
     

    de antemano muchas gracias espero puedan ayudarme


    Imagen de mi Error:


    Mi problema esta en:
    Consola

    Ver perfil de usuario

    2Resuelto Re: Error en player look el Dom Mayo 03, 2015 2:16 am

    Buitax

    avatar
    Miembro
    Miembro
    Eso es un problema porque los dlls que usaste son los que pusieron como complementos, y no los del ot que trae originalmente, yo tuve que hacer eso mismo y tengo el mismo problema, te funcionan las quest como la arena de svargrond, inquisition?

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

    3Resuelto Re: Error en player look el Dom Mayo 03, 2015 7:08 pm

    ijuchia

    avatar
    Miembro
    Miembro
    Buitax escribió:Eso es un problema porque los dlls que usaste son los que pusieron como complementos, y no los del ot que trae originalmente, yo tuve que hacer eso mismo y tengo el mismo problema, te funcionan las quest como la arena de svargrond, inquisition?


    ya solucione eso del look, pero supongo que algo suprimí al hacer el cambio pero aun no noto que fue xD

    aqui esta este script con este trabaja el look pero no te da la ip de los players

    Código:
     function Player:onLook(thing, position, distance)
       local description = "You see " .. thing:getDescription(distance)
       if self:getGroup():getAccess() then
          if thing:isItem() then
             description = string.format("%s\nItemID: [%d]", description, thing:getId())

             local actionId = thing:getActionId()
             if actionId ~= 0 then
                description = string.format("%s, ActionID: [%d]", description, actionId)
             end
             
             local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
             if uniqueId > 0 and uniqueId < 65536 then
                description = string.format("%s, UniqueId: [%d]", description, uniqueId)
             end
             
             description = description .. "."
             local itemType = thing:getType()
             
             local transformEquipId = itemType:getTransformEquipId()
             local transformDeEquipId = itemType:getTransformDeEquipId()
             if transformEquipId ~= 0 then
                description = string.format("%s\nTransformTo: [%d] (onEquip).", description, transformEquipId)
             elseif transformDeEquipId ~= 0 then
                description = string.format("%s\nTransformTo: [%d] (onDeEquip).", description, transformDeEquipId)
             end

             local decayId = itemType:getDecayId()
             if decayId ~= -1 then
                description = string.format("%s\nDecayTo: [%d]", description, decayId)
             end
          elseif thing:isCreature() then
             local str = "%s\nHealth: [%d / %d]"
             if thing:getMaxMana() > 0 then
                str = string.format("%s, Mana: [%d / %d]", str, thing:getMana(), thing:getMaxMana())
             end
             description = string.format(str, description, thing:getHealth(), thing:getMaxHealth()) .. "."
          end
          
          local position = thing:getPosition()
          description = string.format(
             "%s\nPosition: [X: %d] [Y: %d] [Z: %d].",
             description, position.x, position.y, position.z
          )
       end
       self:sendTextMessage(MESSAGE_INFO_DESCR, description)
    end

    function Player:onLookInBattleList(creature, distance)
       local description = "You see " .. creature:getDescription(distance)
       if self:getGroup():getAccess() then
          local str = "%s\nHealth: [%d / %d]"
          if creature:getMaxMana() > 0 then
             str = string.format("%s, Mana: [%d / %d]", str, creature:getMana(), creature:getMaxMana())
          end
          description = string.format(str, description, creature:getHealth(), creature:getMaxHealth()) .. "."

          local position = creature:getPosition()
          description = string.format(
             "%s\nPosition: [X: %d] [Y: %d] [Z: %d].",
             description, position.x, position.y, position.z
          )
       end
       self:sendTextMessage(MESSAGE_INFO_DESCR, description)
    end

    function Player:onLookInTrade(partner, item, distance)
       self:sendTextMessage(MESSAGE_INFO_DESCR, "You see " .. item:getDescription(distance))
    end

    function Player:onLookInShop(itemType, count)
       return true
    end

    function Player:onMoveItem(item, count, fromPosition, toPosition)
       return true
    end

    function Player:onMoveCreature(creature, fromPosition, toPosition)
       return true
    end

    function Player:onTurn(direction)
       return true
    end


    aun asi pide de favor que puedan solucionar eso del look con el script original gracias

    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).