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

Lua Frag Looks

Vrotz

Member
Joined
Apr 7, 2011
Messages
1,071
Reaction score
7
Location
Brazil
When a player of the look in itself even, the console presents this error:

PHP:
Error - CreatureScript Interface
data/creaturescripts/scripts/fraglook.lua:onLook
Description:
<LuaInterface::luaGetPlayerNameByGUID> Player not found

Here my frag.lua
PHP:
--Script By Theax ""
function getPlayerFrags(cid)
    local time = os.time()
    local times = {today = (time - 86400), week = (time - (7 * 86400))}
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC")
    if(result:getID() ~= -1) then
        repeat
            local content = {date = result:getDataInt("date")}
            if(content.date > times.today) then
                table.insert(contents.day, content)
            elseif(content.date > times.week) then
                table.insert(contents.week, content)
            else
                table.insert(contents.month, content)
            end
        until not result:next()
        result:free()
    end
 
    local size = {
        day = table.maxn(contents.day),
        week = table.maxn(contents.week),
        month = table.maxn(contents.month)
    } 
    return size.day + size.week + size.month
end 
 
function onLogin(cid)
    registerCreatureEvent(cid, "fraglook")
    return true
end
 
function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and thing.uid ~= cid then
        doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..']')
        return true
    elseif thing.uid == cid then
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..']')
        local string = 'You see yourself.'
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then
            string = string..' You are '.. getPlayerGroupName(cid) ..'.'
        elseif getPlayerVocation(cid) ~= 0 then
            string = string..' You are '.. getPlayerVocationName(cid) ..'.'
        else
            string = string..' You have no vocation.'
        end
        string = string..getPlayerSpecialDescription(cid)..''
 
        if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
        end
 
        if getPlayerGuildId(cid) > 0 then 
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid)
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.'
        end 
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then
            string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].'
            string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.'
        end
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then
            string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].'
        end
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)  
        return false
    end
    return true
end
 
Lua:
--Script By Theax --
function getPlayerFrags(cid) 
    local time = os.time() 
    local times = {today = (time - 86400), week = (time - (7 * 86400))} 
  
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") 
    if(result:getID() ~= -1) then 
        repeat 
            local content = {date = result:getDataInt("date")} 
            if(content.date > times.today) then 
                table.insert(contents.day, content) 
            elseif(content.date > times.week) then 
                table.insert(contents.week, content) 
            else 
                table.insert(contents.month, content) 
            end 
        until not result:next() 
        result:free() 
    end 
  
    local size = { 
        day = table.maxn(contents.day), 
        week = table.maxn(contents.week), 
        month = table.maxn(contents.month) 
    }  
    return size.day + size.week + size.month 
end  
  
function onLogin(cid) 
    registerCreatureEvent(cid, "fraglook") 
    return true 
end 
  
function onLook(cid, thing, position, lookDistance) 
    if isPlayer(thing.uid) and thing.uid ~= cid then 
        doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..']') 
        return true 
    elseif thing.uid == cid then 
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..']') 
        local string = 'You see yourself.' 
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then 
            string = string..' You are '.. getPlayerGroupName(cid) ..'.' 
        elseif getPlayerVocation(cid) ~= 0 then 
            string = string..' You are '.. getPlayerVocationName(cid) ..'.' 
        else 
            string = string..' You have no vocation.' 
        end 
        string = string..getPlayerSpecialDescription(cid)..'' 
  
        if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then 
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.' 
        end 
  
        if getPlayerGuildId(cid) > 0 then  
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) 
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' 
        end  
  
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then 
            string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' 
            string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' 
        end 
  
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then 
            string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' 
        end 
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)   
        return false 
    end 
    return true 
end
 
Same error:
PHP:
Error - CreatureScript Interface 
data/creaturescripts/scripts/fraglook.lua:onLook 
Description: 
<LuaInterface::luaGetPlayerNameByGUID> Player not found
 
Last edited:
Try:

PHP:
--Script By Theax --
function getPlayerFrags(cid) 
    local time = os.time() 
    local times = {today = (time - 86400), week = (time - (7 * 86400))} 
 
    local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") 
    if(result:getID() ~= -1) then 
        repeat 
            local content = {date = result:getDataInt("date")} 
            if(content.date > times.today) then 
                table.insert(contents.day, content) 
            elseif(content.date > times.week) then 
                table.insert(contents.week, content) 
            else 
                table.insert(contents.month, content) 
            end 
        until not result:next() 
        result:free() 
    end 
 
    local size = { 
        day = table.maxn(contents.day), 
        week = table.maxn(contents.week), 
        month = table.maxn(contents.month) 
    }  
    return size.day + size.week + size.month 
end  
function onLook(cid, thing, position, lookDistance) 
    if isPlayer(thing.uid) and thing.uid ~= cid then 
        doPlayerSetSpecialDescription(thing.uid,' [Frags: '..getPlayerFrags(thing.uid)..']') 
        return true 
    elseif thing.uid == cid then 
        doPlayerSetSpecialDescription(cid,' [Frags: '..getPlayerFrags(cid)..']') 
        local string = 'You see yourself.' 
        if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then 
            string = string..' You are '.. getPlayerGroupName(cid) ..'.' 
        elseif getPlayerVocation(cid) ~= 0 then 
            string = string..' You are '.. getPlayerVocationName(cid) ..'.' 
        else 
            string = string..' You have no vocation.' 
        end 
        string = string..getPlayerSpecialDescription(cid)..'' 
 
        if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then 
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.' 
        end 
 
        if getPlayerGuildId(cid) > 0 then  
            string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) 
            string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' 
        end  
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then 
            string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' 
            string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' 
        end 
 
        if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then 
            string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' 
        end 
        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)   
        return false 
    end 
    return true 
end
 
i think its because youre trying to get the players' partners' name, but the player has no partner.

that means that when this function is used
Code:
getPlayerNameByGUID(getPlayerPartner(cid))

there is no partner GUID/CID to use.


to fix this, you have to make sure the partner exists before trying to get its CID

change

Code:
if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
        end

to
Code:
if getPlayerPartner(cid) then
    if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
            string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.'
    end 
end

by doing that, we make sure the player partner exists.

...just realized thats what this line is for
Code:
if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then
 
Last edited:
Back
Top