• 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!

Show resistances in talkactions

Calder

New Member
Joined
Jul 21, 2019
Messages
21
Reaction score
4
Location
Chile
TFS 1.3.10
hello, is it possible to show the player's resistance in talkactions? (only the player can see their own resistances)
if it could be shown as in a square, spellbook style or as a simple description (green lyrics)

spellbook.png
Lua:
<talkaction words="!resistances" " script="player/resistances.lua" />

Your resistances:
Physical .......................0%
Earth .......................0%
Energy .......................0%
Fire .........................0%
Death ........................0%
Holy ........................0%
Ice ........................0%
ManaDrain ...................0%
LifeDrain ...................0%
Drown ....................0%

This could help I think (items.xml):
Lua:
     <attribute key="absorbPercentEarth"    value="1" />
    <attribute key="absorbPercentEnergy"    value="1" />
    <attribute key="absorbPercentFire"      value="1" />
    <attribute key="absorbPercentDeath"     value="1" />
    <attribute key="absorbPercentPhysical"  value="1" />
    <attribute key="absorbPercentHoly"      value="1" />
    <attribute key="absorbPercentIce"       value="1" />
    <attribute key="absorbPercentManaDrain" value="1" />
    <attribute key="absorbPercentLifeDrain" value="1" />

info.lua (talkactions)
Lua:
function onSay(player, words, param)
    if not player:getGroup():getAccess() then
        return true
    end

    local target = Player(param)
    if not target then
        player:sendCancelMessage('Player not found.')
        return false
    end

    if target:getAccountType() > player:getAccountType() then
        player:sendCancelMessage('You can not get info about this player.')
        return false
    end

    local targetIp = target:getIp()
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Name: ' .. target:getName())
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Access: ' .. (target:getGroup():getAccess() and '1' or '0'))
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Level: ' .. target:getLevel())
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Magic Level: ' .. target:getMagicLevel())
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Speed: ' .. target:getSpeed())
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Position: ' .. string.format('(%0.5d / %0.5d / %0.3d)', target:getPosition().x, target:getPosition().y, target:getPosition().z))
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'IP: ' .. Game.convertIpToString(targetIp))

    local players = {}
    for _, targetPlayer in ipairs(Game.getPlayers()) do
        if targetPlayer:getIp() == targetIp and targetPlayer ~= target then
            players[#players + 1] = targetPlayer:getName() .. " [" .. targetPlayer:getLevel() .. "]"
        end
    end

    if #players > 0 then
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Other players on same IP: " .. table.concat(players, ", ") .. ".")
    end
    return false
end
 
Back
Top