Postado Dezembro 5, 2019 5 anos Autor @Ramon RBN function getDodge(cid) local total = 0 for i = 1, 10 do local item = getPlayerSlotItem(cid, i) total = total + (getItemAttribute(item.uid, "dodgePercent") or 0) end return total end 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) or 0 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) .. '], [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48903)) or 0))..'/200], [Dodge: ' ..getDodge(cid).. '%].') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,' [Frags: ' .. getPlayerFrags(thing.uid) .. '], [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48903)) or 0))..'/200], string = string..' [Dodge: ' ..getDodge(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 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 string = string..getPlayerSpecialDescription(cid)..'' doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end
Postado Dezembro 5, 2019 5 anos Você não alterou a linha que lhe mostrei, '/200], string = string..' [Dodge: ' ..getDodge(cid).. %']' Dessa forma: Spoiler function getDodge(cid) local total = 0 for i = 1, 10 do local item = getPlayerSlotItem(cid, i) total = total + (getItemAttribute(item.uid, "dodgePercent") or 0) end return total end 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) or 0 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) .. '], [Critical: '..math.max(0,(tonumber(getCreatureStorage(thing.uid,48903)) or 0))..'/200], [Dodge: ' ..getDodge(thing.uid).. '%].') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,' [Frags: ' .. getPlayerFrags(thing.uid) .. '], [Critical: '..math.max(0,(tonumber(getCreatureStorage(cid,48903)) or 0))..'/200], [Dodge: ' ..getDodge(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 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 string = string..getPlayerSpecialDescription(cid)..'' doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end Editado Dezembro 5, 2019 5 anos por Ramon RBN (veja o histórico de edições)
Postado Dezembro 5, 2019 5 anos Autor @Ramon RBN Funcionou, porém ele n ta somando o total de todos items e mostrando a soma no look, ele só ta pegando de 1 item e mostrando o total desse unico item
Postado Dezembro 5, 2019 5 anos 6 minutos atrás, DouGlaS Mapper disse: @Ramon RBN Funcionou, porém ele n ta somando o total de todos items e mostrando a soma no look, ele só ta pegando de 1 item e mostrando o total desse unico item Você tem certeza que todos itens tem o atributo? dodgePercent Tenta assim: function getDodge(cid) local total = 0 for i = 1, 10 do total = total + (getItemAttribute(getPlayerSlotItem(cid, i).uid, "dodgePercent") or 0) end return total end
Postado Dezembro 5, 2019 5 anos Autor @Ramon RBN 11 minutos atrás, Ramon RBN disse: Você tem certeza que todos itens tem o atributo? SIM - You see a steel helmet [Dodge: 5/5] (Arm:6). It weighs 46.00 oz. [Dodge: 5%] - You see a brass armor [Dodge: 3/5] (Arm:8). It weighs 80.00 oz. [Dodge: 1.6%] - You see brass legs [Dodge: 4/5] (Arm:5). It weighs 38.00 oz. [Dodge: 2.5%] - You see leather boots [Dodge: 5/5] (Arm:1). It weighs 9.00 oz. [Dodge: 8.1%] - You see a beholder shield [Dodge: 4/5] (Def:28). It weighs 47.00 oz. [Dodge: 2.8%] - You see a scarf [Dodge: 2/5] (Arm:1). It weighs 2.00 oz. [Dodge: 1%] - You see a crystal ring [Dodge: 2/5]. It weighs 0.90 oz. [Dodge: 0.7%] Oque ta aparecendo no LOOK: nPosition: [X:157] [Y:51] [Z:7]. [Frags: 0], [Critical: 200/200], [Dodge: 6%] - No caso ele somo o do helmet e amulet só Editado Dezembro 5, 2019 5 anos por DouGlaS Mapper (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.