Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 Eu também não gostava de programar, achava que era coisa de maluco ou coisa só pra gênios. Eu sempre preferi a área gráfica e a área criativa do que a área lógica, eu fazia minha parte muito bem, mas sempre que chegava na parte lógica, eu ficava dependendo dos outros. Mas os outros sempre me decepcionavam. Demoravam demais para fazer coisas simples ou faziam tudo de maneira porca, fazendo até a minha parte ficar ruim. Diversas vezes pensei em desistir, mas fui com calma, aprendendo a lógica aos poucos, testando algumas coisas básicas, errando, ficando puto comigo mesmo, depois acertando e ficando satisfeito. A vida é assim, errando se aprende a fazer o certo. Caso queira aprender a lógica de programação, recomendo essa playlist no youtube: https://www.youtube.com/watch?v=8mei6uVttho&list=PLHz_AreHm4dmSj0MHol_aoNYCSGFqvfXV No começo é meio chatinho pois ele explica mais a parte teórica, mas é importante. Link to comment
Jonas^ Posted April 23, 2018 Author Share Posted April 23, 2018 1 hour ago, Lord Henry said: Eu também não gostava de programar, achava que era coisa de maluco ou coisa só pra gênios. Eu sempre preferi a área gráfica e a área criativa do que a área lógica, eu fazia minha parte muito bem, mas sempre que chegava na parte lógica, eu ficava dependendo dos outros. Mas os outros sempre me decepcionavam. Demoravam demais para fazer coisas simples ou faziam tudo de maneira porca, fazendo até a minha parte ficar ruim. Diversas vezes pensei em desistir, mas fui com calma, aprendendo a lógica aos poucos, testando algumas coisas básicas, errando, ficando puto comigo mesmo, depois acertando e ficando satisfeito. A vida é assim, errando se aprende a fazer o certo. Caso queira aprender a lógica de programação, recomendo essa playlist no youtube: https://www.youtube.com/watch?v=8mei6uVttho&list=PLHz_AreHm4dmSj0MHol_aoNYCSGFqvfXV No começo é meio chatinho pois ele explica mais a parte teórica, mas é importante. Irei assistir, obrigado. Link to comment
DNL291 Posted April 23, 2018 Share Posted April 23, 2018 2 hours ago, OverKILL said: [RESOLVIDO] Achei um bug no ratio da uma olhadinha quando eu coloquei no servidor Pra evitar esses erros no calculo, você pode fazer uma verificação nas kills/deaths. E para funcionar com números fracionados use a função math.round. Um código de exemplo: local kills, deaths = 1, 0 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 0 kills, deaths = 13, 6 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 2.16 function getPlayerRatio( kills, deaths ) return (kills == 0 or deaths == 0) and 0 or (kills / deaths) end -- math.round(valor, casas_decimais) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end 1 Link to comment
Jonas^ Posted April 23, 2018 Author Share Posted April 23, 2018 21 minutes ago, DNL291 said: Pra evitar esses erros no calculo, você pode fazer uma verificação nas kills/deaths. E para funcionar com números fracionados use a função math.round. Um código de exemplo: local kills, deaths = 1, 0 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 0 kills, deaths = 13, 6 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 2.16 function getPlayerRatio( kills, deaths ) return (kills == 0 or deaths == 0) and 0 or (kills / deaths) end -- math.round(valor, casas_decimais) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end No caso esse código já esta funcionando? é só eu adicionar ao script? Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 25 minutes ago, DNL291 said: E para funcionar com números fracionados use a função math.round. Um código de exemplo: -- math.round(valor, casas_decimais) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end Muito obrigado, eu estava precisando disso para reduzir o número de casas decimais de um número. Diversas vezes a divisão do Kills / Deaths gera um valor real muito grande, tipo 3.333333, assim posso reduzi-lo para apenas 2 casas decimais, ficando 3.33 Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 Pronto, bem melhor agora.https://prnt.sc/j93dst Deixei com 3 casas decimais. Link to comment
Jonas^ Posted April 23, 2018 Author Share Posted April 23, 2018 58 minutes ago, DNL291 said: Pra evitar esses erros no calculo, você pode fazer uma verificação nas kills/deaths. E para funcionar com números fracionados use a função math.round. Um código de exemplo: local kills, deaths = 1, 0 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 0 kills, deaths = 13, 6 print( math.round( getPlayerRatio( kills, deaths ), 2 ) ) --> 2.16 function getPlayerRatio( kills, deaths ) return (kills == 0 or deaths == 0) and 0 or (kills / deaths) end -- math.round(valor, casas_decimais) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end No caso este codigo já esta funcionando ? 4 minutes ago, Lord Henry said: Pronto, bem melhor agora.https://prnt.sc/j93dst Deixei com 3 casas decimais. Como iria ficar o código? Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 (edited) 17 minutes ago, OverKILL said: No caso este codigo já esta funcionando ? A parte de cima é apenas um exemplo, o que importa é a função do math.round. 17 minutes ago, OverKILL said: Como iria ficar o código? O meu eu apenas editei essa parte, no server.lua: local ratio = kill / death if death == 0 and kill == 0 then -- Se ambos os valores forem 0, deixa o ratio em 0 também. table.insert (killDeath, 0) elseif kill ~= 0 and death == 0 then -- Se death for 0 mas kill não, deixa o ratio como desconhecido, pois não é possível dividir algo por 0. table.insert (killDeath, "?") else -- Se nenhum valor for 0, faz a divisão normalmente e aplica o redutor decimal. table.insert (killDeath, math.round (ratio, 3)) end Além é claro, de adicionar a função do math.round no início do script. Edited April 23, 2018 by Lord Henry Link to comment
Jonas^ Posted April 23, 2018 Author Share Posted April 23, 2018 (edited) 23 minutes ago, Lord Henry said: A parte de cima é apenas um exemplo, o que importa é a função do math.round. O meu eu apenas editei essa parte, no server.lua: local ratio = kill / death if death == 0 and kill == 0 then -- Se ambos os valores forem 0, deixa o ratio em 0 também. table.insert (killDeath, 0) elseif kill ~= 0 and death == 0 then -- Se death for 0 mas kill não, deixa o ratio como desconhecido, pois não é possível dividir algo por 0. table.insert (killDeath, "?") else -- Se nenhum valor for 0, faz a divisão normalmente e aplica o redutor decimal. table.insert (killDeath, math.round (ratio, 3)) end Além é claro, de adicionar a função do math.round no início do script. Você adicionou esse código ao server ou editou alguma parte? se adicinou eu posso adicionar na última linha? sera que é possível por exemplo quando um jogador abrir o painel de rank o nome dele com os status ficar de 1 cor destacada? pra ficar fácil de achar? Edited April 23, 2018 by OverKILL Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 44 minutes ago, Lord Henry said: O meu eu apenas EDITEI essa parte, no server.lua: Link to comment
Jonas^ Posted April 23, 2018 Author Share Posted April 23, 2018 1 minute ago, Lord Henry said: Num achei '-' eu sou muito animal mesmo , sera que é possível por exemplo quando um jogador abrir o painel de rank o nome dele com os status ficar de 1 cor destacada? pra ficar fácil de achar? Link to comment
Other Languages Moderators Lord Henry Posted April 23, 2018 Other Languages Moderators Share Posted April 23, 2018 Sim. É possível fazer isso usando GuiGridListSetItemColor. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now