Sam 56 Postado 13 de Dezembro 2025 Compartilhar Postado 13 de Dezembro 2025 --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 Link para o comentário https://tibiadevs.com/forums/topic/1355-tfs-036-lua-frags-16-mortes-29-n%C3%A3o-apareceu-quando-do-look-em-outro-jogador-me-ajuda-por-faqvor/ Compartilhar em outros sites Mais opções de compartilhamento...
blxr 9 Postado 27 de Dezembro 2025 Compartilhar Postado 27 de Dezembro 2025 Em 12/12/2025 em 23:31, Sam disse: --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 No TFS 0.3.6, a função doPlayerSetSpecialDescription() não altera corretamente o texto exibido ao olhar outro jogador. O look padrão do servidor continua sendo usado, ignorando essa descrição dinâmica. Para funcionar corretamente, o texto do look precisa ser gerado manualmente dentro do onLook e enviado com doPlayerSendTextMessage, cancelando o look padrão. Seu script corrigido ficaria assim (Testa e depois me fala se funcionou!) function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents = {day = {}, week = {}, month = {}} local result = db.getResult( "SELECT pd.date 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 " .. "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 date = result:getDataInt("date") if date > times.today then table.insert(contents.day, date) elseif date > times.week then table.insert(contents.week, date) else table.insert(contents.month, date) end until not result:next() result:free() end return table.maxn(contents.day) + table.maxn(contents.week) + table.maxn(contents.month) end function onLogin(cid) registerCreatureEvent(cid, "fraglook") return true end function onLook(cid, thing, position, lookDistance) if not isPlayer(thing.uid) then return true end local frags = getPlayerFrags(thing.uid) local string = "" -- LOOK EM OUTRO JOGADOR if thing.uid ~= cid then string = "You see " .. getCreatureName(thing.uid) .. "." string = string .. " [Frags: " .. frags .. " - Deaths: " .. getPlayerDeaths(thing.uid) .. "]" doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end -- LOOK EM SI MESMO 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 .. " [Frags: " .. frags .. " - Deaths: " .. getPlayerDeaths(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) if getPlayerGuildNick(cid) ~= "" then string = string .. " (" .. getPlayerGuildNick(cid) .. ")." else string = string .. "." end end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string .. "\nHealth: [" .. getCreatureHealth(cid) .. " / " .. getCreatureMaxHealth(cid) .. "]" string = string .. ", 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 Registro do evento creaturescripts.xml <event type="look" name="FragLook" script="fraglook.lua"/> login.lua registerCreatureEvent(cid, "FragLook") Link para o comentário https://tibiadevs.com/forums/topic/1355-tfs-036-lua-frags-16-mortes-29-n%C3%A3o-apareceu-quando-do-look-em-outro-jogador-me-ajuda-por-faqvor/#findComment-7092 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora