Postado Novembro 28, 2012 12 anos Cálculos Baseados em Porcentagem Autor: Guiminhah Nível: Fácil -------------------------------------------------------------- Olá galera, tudo bom? Vim aqui compartilhar uma ideia que não vi por enquanto aqui no fórum, e acho que é legal usar de vez em quando no servidor. Cálculos com porcentagem são úteis para balancear, já que utilizam valores relativos, e não absolutos. Para começar o tutorial, fiz um script para exemplificar. •Explicação: Quero criar uma action que quando o player (maior que level 50) clicar em um Life Crystal gaste 20% da sua mana total para adicionar +2 no HP total. ----------Life Crystal Increasing Players' Max Health ~ By Guiminhah, OTNET function onUse(cid,item,frompos,item2,topos) -- Configurando o script, só mexa aqui local lvlneeded = 50 -- Level para usar o Life Crystal local percentage = 0.2 -- Porcentagem que remove de mana (1=100%, 0.5=50%, 0.2=20%, 0.1=10%) local hpgiven = 2 -- A cada Life Crystal que usar, receberá quanto de HP local text = "HP, huh?" -- Texto que o Player mandará ao receber 2HP. -- Altamente recomendável não alterar o script a partir daqui local maxh = getCreatureMaxHealth(cid) local maxm = getCreatureMaxMana(cid) local pos = getCreaturePosition(cid) if getPlayerLevel(cid) >= lvlneeded then if (getCreatureMana(cid)/maxm) >= percentage then doCreatureAddMana(cid,-(maxm*percentage)) setCreatureMaxHealth(cid, maxh+hpgiven) doPlayerSendTextMessage(cid,27,"You have extracted "..hpgiven.."HP of this Life Crystal.") doRemoveItem(item.uid,1) doSendMagicEffect(pos,35) doSendAnimatedText(pos, text, TEXTCOLOR_RED) else doPlayerSendCancel(cid,"Sorry, extracting HP from a Life Crystal takes 20% of your entire mana.") end else doPlayerSendCancel(cid,"You must be level "..lvlneeded.." or higher to use this Life Crystal.") end end Para descobrir a porcentagem de mana que o player possui no momento em que clicou no Life Crystal (só para verificar se o script seria executado), foi necessário apenas dividir a a mana atual pela total. Isso é uma simples regra de três, todo mundo aprende na 7ª série. Se você não chegou lá, terá sérios problemas no tópico :s Para remover os 20% mana do player, só precisei multiplicar a mana total do player pelo equivalente em decimais de 20% do mesmo, que é 0.2. 500 de mana ------- 100% 400 de mana ------- x 500.x = 100.400 x = 100.400/500 = 80% •IMPORTANTE: Toda porcentagem tem sua equivalência em números reais. Como em scripts fica mais fácil trabalhar com decimais, vamos utilizá-los P: Aah Gui, mas como eu descubro esse equivalente em decimais? R: Simplesmente divida a por-cem-tagem por 100 Fazendo isso, você descobrirá, por exemplo, que o equivalente em decimais de 80% é 0.8! NÃO UTILIZE VÍRGULA PARA INDICAR O DECIMAL, PELO AMOR DE DEUS. É PONTO! -------------------------------------------------------------- Bom, é isso! Não é nada muito complexo, mas que pode tornar o RPG de seu servidor bem mais interessante caso você tenha criatividade E para completar... -------------------------------------------------------------- •Suposição: Um player tem 500 de mana. Se ele está com 400 de mana, quanto é seu equivalente em porcentagem? --Aquela velha regra de três da sua professora velha e de raíz branca de cabelo branca, da matemática da 7ª série, ou do seu professor de química japonês do 2º ano do médio. Contato; god.marinii [email protected]
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.