Ir para conteúdo

Featured Replies

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

 

  • Respostas 50
  • Visualizações 2.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Editei ali em cima, me chama no discord a gente resolve e depois posto a solução aqui. RBN#2718

Postado

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 por Ramon RBN (veja o histórico de edições)

Postado
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
  • 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 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo