Ir para conteúdo
  • 0

getPlayerLevel(cid) min / max


LekoDS

Pergunta

Olá galera, tudo bem? Estou com uma dúvida aqui no meu script que não conseguir resolver. Eu estou usando o getPlayerLevel(cid) para que ao fazer uma X ação com um NPC que ao determinado pelo level min / max ele receberia uma ação. Estou usando esta parte de comparação:

if msgcontains(msg, 'hi') and getPlayerLevel(cid) >= 20 and getPlayerLevel(cid) <= 49 then

...

if msgcontains(msg, 'hi') and getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) <= 99 then 

O problema que o getPlayerLevel(cid) >= 20 esta pegando "todos" jogadores level maior que 20, eu creio que minha comparação este errada com o and .. E eu não posso usar o elseif nesta parte do script :S

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0

Veja este paste que criei no codepad.org - http://codepad.org/skN2Sm6t

 

Adaptando para o que você quer, seria:

local level = getPlayerLevel(cid)

if msgcontains(msg, "hi") then
	if level >= 20 and level < 50 then
		-- piece of code here
	elseif level >= 50 and level < 100 then
		-- piece of code here
	else
		-- piece fo code here
	end
end

Em nenhum momento, ele apenas passa pelo primeiro if, como pode ver no link passado acima.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

if msgcontains(msg, 'hi') and (getPlayerLevel(cid) >= 20 and not getPlayerLevel(cid) >= 50) then

 

...

 

if msgcontains(msg, 'hi') and (getPlayerLevel(cid) >= 50 and not getPlayerLevel(cid) >= 100) then

 

Assim que você quer??

Editado por Aberick
Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim:

if msgcontains(msg, 'hi') then
	if getPlayerLevel(cid) >= 20 and getPlayerLevel(cid) <= 49 then
		-- acão 1
	elseif getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) <= 99 then
		-- acão 2
	end
end
Link para o comentário
Compartilhar em outros sites

  • 0

e daí? mas vc uso o and <= 49

 

então vai pegar todos lvl acima de 20 e todos lvl igual ou abaixo de 49

 

vc sabe para que serve o "and"?

if getPlayerLevel(cid) >= 20 and getPlayerLevel(cid) < 50 then
...
elseif getPlayerLevel(cid) >= 50 and getPlayerLevel(cid) < 100 then
...
end

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

  • 0

@Vodkart foz a primeira coisa que eu fiz na interação do NPC colocar o and, mas mesmo não dando eu acredito que o >= 20 ele obtêm qualquer um level maior que 20. Por agora estou sem tempo, mas vou rever a situação do problema e explicar melhor as tentativas. Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

@Vodkart foz a primeira coisa que eu fiz na interação do NPC colocar o and, mas mesmo não dando eu acredito que o >= 20 ele obtêm qualquer um level maior que 20. Por agora estou sem tempo, mas vou rever a situação do problema e explicar melhor as tentativas. Obrigado.

if getPlayerLevel(cid) >= 20 and getPlayerLevel(cid) < 50 then

Se o player for maior ou a igual 20 e menor que 50...

Link para o comentário
Compartilhar em outros sites

  • 0

Man, não foi o que você fez, me desculpe!

 

Nas suas duas verificações ele checa se contem a mensagem "hi", sendo que isso é só uma vez.

Caso caia nesta condição ele vai chegar o level, então deveria estar funcionando perfeitamente.

Faz o seguinte, posta seu script todo que é mais fácil de ajudá-lo.

 

"and" ou "e" ou "&&" (em qualquer linguagem que seja) -> só é verdadeiro quando todas as condições forem verdadeiras.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...