• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.X+ show level in door tfs 1.5 nekiro 7,72

bpm91

Intermediate OT User
Joined
May 23, 2019
Messages
958
Solutions
7
Reaction score
135
Location
Brazil
YouTube
caruniawikibr
I have a doubt, this type of port should not show the level? he doesn't show up.how do you make it appear?

1650401701416.png
 
Solution
I fixed it like that (based on actionid)
replace file: data\scripts\eventcallbacks\player\default_onLook.lua

to this:
Lua:
local function isDoors(thing)
if isInArray(closedLevelDoors, thing:getId()) then
return true
end
return false
end

local ec = EventCallback

ec.onLook = function(self, thing, position, distance, description)
    local description = ""
    if isDoors(thing) then
    local level = thing.actionid - actionIds.levelDoor
    description = "You see " .. thing:getDescription(distance) .. "\n" .. "Required " .. level .. " level."
    else
    description = "You see " .. thing:getDescription(distance)
    end
    if self:getGroup():getAccess() then
        if thing:isItem() then
            description =...
I fixed it like that (based on actionid)
replace file: data\scripts\eventcallbacks\player\default_onLook.lua

to this:
Lua:
local function isDoors(thing)
if isInArray(closedLevelDoors, thing:getId()) then
return true
end
return false
end

local ec = EventCallback

ec.onLook = function(self, thing, position, distance, description)
    local description = ""
    if isDoors(thing) then
    local level = thing.actionid - actionIds.levelDoor
    description = "You see " .. thing:getDescription(distance) .. "\n" .. "Required " .. level .. " level."
    else
    description = "You see " .. thing:getDescription(distance)
    end
    if self:getGroup():getAccess() then
        if thing:isItem() then
            description = string.format("%s\nItem ID: %d", description, thing:getId())
            
            if isDoors(thing) then
            description = string.format("%s, Level: %d", description, thing:getActionId())
            end

            local actionId = thing:getActionId()
            if actionId ~= 0 then
                description = string.format("%s, Action ID: %d", description, actionId)
            end

            local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
            if uniqueId > 0 and uniqueId < 65536 then
                description = string.format("%s, Unique ID: %d", description, uniqueId)
            end

            local itemType = thing:getType()

            local transformEquipId = itemType:getTransformEquipId()
            local transformDeEquipId = itemType:getTransformDeEquipId()
            if transformEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onEquip)", description, transformEquipId)
            elseif transformDeEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onDeEquip)", description, transformDeEquipId)
            end

            local decayId = itemType:getDecayId()
            if decayId ~= -1 then
                description = string.format("%s\nDecays to: %d", description, decayId)
            end
        elseif thing:isCreature() then
            local str = "%s\nHealth: %d / %d"
            if thing:isPlayer() and 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: %d, %d, %d",
            description, position.x, position.y, position.z
        )

        if thing:isCreature() then
            if thing:isPlayer() then
                description = string.format("%s\nIP: %s.", description, Game.convertIpToString(thing:getIp()))
            end
        end
    end
    return description
end

ec:register()
 
Solution
I fixed it like that (based on actionid)
replace file: data\scripts\eventcallbacks\player\default_onLook.lua

to this:
Lua:
local function isDoors(thing)
if isInArray(closedLevelDoors, thing:getId()) then
return true
end
return false
end

local ec = EventCallback

ec.onLook = function(self, thing, position, distance, description)
    local description = ""
    if isDoors(thing) then
    local level = thing.actionid - actionIds.levelDoor
    description = "You see " .. thing:getDescription(distance) .. "\n" .. "Required " .. level .. " level."
    else
    description = "You see " .. thing:getDescription(distance)
    end
    if self:getGroup():getAccess() then
        if thing:isItem() then
            description = string.format("%s\nItem ID: %d", description, thing:getId())
           
            if isDoors(thing) then
            description = string.format("%s, Level: %d", description, thing:getActionId())
            end

            local actionId = thing:getActionId()
            if actionId ~= 0 then
                description = string.format("%s, Action ID: %d", description, actionId)
            end

            local uniqueId = thing:getAttribute(ITEM_ATTRIBUTE_UNIQUEID)
            if uniqueId > 0 and uniqueId < 65536 then
                description = string.format("%s, Unique ID: %d", description, uniqueId)
            end

            local itemType = thing:getType()

            local transformEquipId = itemType:getTransformEquipId()
            local transformDeEquipId = itemType:getTransformDeEquipId()
            if transformEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onEquip)", description, transformEquipId)
            elseif transformDeEquipId ~= 0 then
                description = string.format("%s\nTransforms to: %d (onDeEquip)", description, transformDeEquipId)
            end

            local decayId = itemType:getDecayId()
            if decayId ~= -1 then
                description = string.format("%s\nDecays to: %d", description, decayId)
            end
        elseif thing:isCreature() then
            local str = "%s\nHealth: %d / %d"
            if thing:isPlayer() and 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: %d, %d, %d",
            description, position.x, position.y, position.z
        )

        if thing:isCreature() then
            if thing:isPlayer() then
                description = string.format("%s\nIP: %s.", description, Game.convertIpToString(thing:getIp()))
            end
        end
    end
    return description
end

ec:register()
the messages are duplicated, thank you for the improvement into the script. can you show us how to fix this?

17:41 You see a gate of expertise for level 35.
Only the worthy may pass.
Required 35 level. << should not appear
 
Back
Top