Barra de EXP Para Level

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Barra de EXP Para Level

Mensagem por galavernaa em Sab 12 Jan 2013, 14:01

Falae pessoal , eu aqui de novo , o motivo de eu perguntar tanto talvez seja minha vontade de aprender , por tanto me desculpe caso eu seja um belo de um noob!
Bom , hoje queria perguntar como fazer por exemplo para cada nível você precisa de uma quantidade de xp para passar , até aí tudo bem , mas tem uma barrinha de XP
como posso fazer para o maximo dela não ser 100 e se o maximo for por exemplo 1000 ela só esteja 100% cheia quando eu estiver em 1000 de xp??
Eu tentei fazer algo assim no create :
global.xp.max=1000
não funcionou , por favor ajudem se possível , obrigado e tenha um bom dia!

galavernaa

Número de Mensagens : 97
Idade : 19
Data de inscrição : 20/12/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por The Wizard em Sab 12 Jan 2013, 14:14

Veja mais tutoriais assim você irá melhorar, você terá que fazer algo mais ou menos assim:
Código:
if xp=1000
{passa de nível}
o esquema é ess mas você tem que mostrar os codes que está usando senão não temos como ajuda-lo :/

The Wizard

Ranking : Nota B
Número de Mensagens : 1129
Idade : 18
Data de inscrição : 24/03/2010
Notas recebidas : B
Reputação : 17
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://awesomewizards.deviantart.com/

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por galavernaa em Sab 12 Jan 2013, 14:43

The Wizard escreveu:Veja mais tutoriais assim você irá melhorar, você terá que fazer algo mais ou menos assim:
Código:
if xp=1000
{passa de nível}
o esquema é ess mas você tem que mostrar os codes que está usando senão não temos como ajuda-lo :/
Disso eu sei , não é isso! Eu estou dizendo para fazer no draw_healthbar o maximo da xp ser 1000 por que a barrinha de xp que é uma healthbar fica enteira cheia quando a variavél é 100!

galavernaa

Número de Mensagens : 97
Idade : 19
Data de inscrição : 20/12/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por KinKing em Sab 12 Jan 2013, 14:51

Use global.xpMax = 1000 no "create" ou onde for, e global.xpAtual/10 para o "amount" da draw_healthbar. Sendo que esse /10 é, claro, dividido por 10. Mas é 10 é porque a xp máxima (1000) dividida por 10 = 100(%)

Então se sua global.xpMax for 2000, seria global.xpAtual/20.
Se for 3600, seria /36.

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por galavernaa em Sab 12 Jan 2013, 15:28

#KinKing
Tá , entendi o que você quer dizer , mas os números de exp que será preciso não serão tão simples , e serão 99 lvs , como posso fazer de uma forma mais simples ??No nível 1 precisa de 60 de xp , no 2 precisa de 67 e aí fica meio complicado , mas chega uma hora que fica 1117 , então acredito que este método não irá funcionar , e se for ficarei dias e dias fazendo isso com todos os leveis!

galavernaa

Número de Mensagens : 97
Idade : 19
Data de inscrição : 20/12/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por KinKing em Sab 12 Jan 2013, 15:56


Amount:
Código:
(global.xpAtual*100)/global.xpMax


EDIT: Desculpa, me empolguei!

KinKing

Número de Mensagens : 416
Data de inscrição : 29/05/2008
Reputação : 16
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://felipejoys.webnode.com

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por galavernaa em Sab 12 Jan 2013, 16:09

#KinKing
Resolvi , eu pedi ajuda para meu irmão e ele fez a mesma coisa que você só que com outras variaveis , obrigado! Podem trancar já o tópico obrigado!

galavernaa

Número de Mensagens : 97
Idade : 19
Data de inscrição : 20/12/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por Gonçalves em Sab 12 Jan 2013, 16:13

VocÊ precisa de um algoritmo para dizer quanto de experiência precisa pra cada lvl, ou então fazer manualmente mesmo.

No meu jogo TownCraft, como os heróis têm apenas 10 lvl's, fiz manualmente:

Código:
xp_necessaria[0] = 20 // XP necessaria para ir pra lv 2
xp_necessaria[1] = 50 // XP necessaria para ir pra lv 3
xp_necessaria[2]= 80 // XP necessaria para ir pra lv 4
etc.

E por aí vai.

Já pro meu jogo Glanis, eu busquei na net e achei o algoritmo do Tibia de XP. Pra criar um algoritmo desses é um pouco complicado. Um exemplo:

Código:
xp_necessaria = 20+(lv*15)+(lvl*20)

Assim, no LV 1 ele precisará de 55 de XP.
No LV 2 ele precisará de 90 de XP.
No LV 3 ele precisará de 125 de XP.

Não é o melhor dos algoritmos, mas você pode inventar o seu. O do tibia (encontrei no site tibiabr.com):

Código:
xp_necessaria = (50/3)*(lv/3 - (lv*6)/2 + (lv*17) - 12)

Essa barra eu consegui fazer no Glanis, demorei a conseguir, a lógica é essa, ao iniciar:





Código:
xp_necessaria = algoritmo de xp // XP necessária para ir ao LV 2
xp = 0 // XP inicial

// Vars usadas pra desenhar a barra
xp2 = xp
xp3 = xp_necessaria

A barra se desenhar assim:

Código:
draw_healthbar(x-20,y-44,x+20,y-41,xp_porcentagem,c_black,c_lime,c_lime,0,1,1)

E esse xp_porcentagem, como achamos?

Código:
xp_porcentagem = (xp *100)/xp_necessaria

É um simples função matemática, que vai dar xp (exemplo 15) multiplicado por 100, dividido pela xp_necessaria (exemplo 60):

15*100 = 1500
1500/60 = 25

Encontrou que 15 é 25% de 60. Isso fará com que o máximo que a barra tenha como valor é 100.

E quando passar de LV, atualiza a XP necessaria ao aumentar a var LV:

Código:
lv += 1

xp2 = xp_necessaria // Essa var teria o valor 60 se fosse do caso acima

xp_necessaria = algoritmo de xp // Atualizando algoritmo

xp3 = xp_necessaria // Essa var teria o valor de xp necessaria já do novo lv

xp3 -= xp2 // Diferença entre os duas xp_necessaria, o que faria conseguirmos criar a barra sem bugs

Com o draw_healthbar dado acima, a barra ficaria cheia de bugs, então, agora você poderia substiuí-la por:

Código:
xp_porcentagem = (x2 *100)/x3

draw_healthbar(x-20,y-44,x+20,y-41,xp_porcentagem,c_black,c_lime,c_lime,0,1,1)

Acho que funcionaria, se não, só alguns ajustes e deve funcionar.

Até.


Última edição por Gonçalves em Sab 12 Jan 2013, 16:17, editado 1 vez(es)

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por theguitarmester em Sab 12 Jan 2013, 16:14

você pode Fazer Algo Assim:
Vou Fazer um Code que é só Você Colar no Draw para ver.


----------------Editado:
Está Aqui, APENAS COLOQUE NBO DRAW, E DIVIRTA-se!
Código:
///pode colocar isto no CREATE  <<<
if !variable_local_exists('level')
{level=1 expatual=0
explv[1]=0
explv[2]=60
explv[3]=67
explv[4]=74
explv[5]=82
explv[6]=-1    //coloque  esse code no último para Declara que está no Maximo.
}
//////---------                >>>

//CASO VOCÊ NÃO SAIBA FAZER, AQUI É COMO SE FAZ PORCENTAGEM
if level!=6{if explv[level+1]!=0 porcentagem=(100/explv[level+1])*expatual
else porcentagem=0 //a Checagem
}

if level!=6{
draw_set_color(0)
draw_rectangle(view_xview+10,view_yview+10,view_xview+110,view_yview+18,0)
draw_set_color(c_red)
 draw_rectangle(view_xview+10,view_yview+10,view_xview+10+porcentagem,view_yview+18,0)
}else draw_text(view_xview+10,view_yview+10,'Level Máximo')


draw_set_color(c_white)
if level!=6 draw_text(30,30,'LEVEL  '+string(level)+' Falta '+string(explv[level+1]-expatual)+' de Exp')
//Podia ter Feito Experiência direta, isto é, cada vez que chegasse no Nível, não zerava a Exp.


//Para Adicionar Exp
if level!=6
{expatual+=1

//Evoluir
if expatual>=explv[level+1]
{expatual=0 level+=1}

}

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por galavernaa em Dom 13 Jan 2013, 14:06

#theguitarmester
Obrigado por me mandar o código , mas eu já tinha feito! hehe mas de qualquer forma , Obrigado!

galavernaa

Número de Mensagens : 97
Idade : 19
Data de inscrição : 20/12/2012
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Barra de EXP Para Level

Mensagem por Conteúdo patrocinado Hoje à(s) 10:00


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum