Jump to content

IP NO JOIN THE SERVER


Recommended Posts

  • Other Languages Moderators

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

 

 

  • Thanks 1
Link to comment
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
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
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
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 by Lord Henry
Link to comment
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 by OverKILL
Link to comment
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...