LE
dúvida

getPlayerLevel(cid) min / max

Por LekoDS, 15 de abr. de 2015 em Scripts

resolvido
script
14
3.6k
LekoDSL
15 de abril de 2015 às 15:54

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

Wend llW
15 de abril de 2015 às 15:58

Não entendi, você quer que apenas players abaixo de level 20 realize essa ação ?

LekoDSL
15 de abril de 2015 às 16:06

@Anna apenas os que estejam dentro do level X e Y, ex: 20 a 49, 50 a 100..

Wend llW
15 de abril de 2015 às 16:17

Desculpe minha desatenção, faz um pouquinho de tempo qe não mexo com isso ^^

vou ver oque posso fazer happy.png

aberickA
15 de abril de 2015 às 17:42

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 Abril 15 por Aberick

BrunoB
15 de abril de 2015 às 17:51

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
LekoDSL
17 de abril de 2015 às 14:09

@Alberick eu tentei mais ainda não funcionou :S

@Bruno isto que eu tinha feito no script, mas ele pega qualquer player >= 20

VodkartV
17 de abril de 2015 às 14:18

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 Abril 17 por Vodkart

LekoDSL
20 de abril de 2015 às 02:42

@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.

mkbrabsoluteM
20 de abril de 2015 às 02:50

Você quer a função pra usar no level exato é isso?

20 de abril de 2015 às 08:52

@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...

BrunoB
20 de abril de 2015 às 08:58

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.

OneshotO
20 de abril de 2015 às 09:17
Melhor resposta

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 Abril 20 por Oneshot

1 mês depois...
FurabioF
03 de maio de 2015 às 11:19

Tópico movido para a seção de dúvidas e pedidos resolvidos.