Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Onde devo colocar os ends? o end é pra fechar apenas "function" e "if" certo? elseif não se fecha com end.

quando faço meu script desse jeito. Ele funciona perfeitamente.

        function creatureSayCallback(cid, type, msg)
        if(not npcHandler:isFocused(cid)) then
        return false
        end
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
--------------------------------------------------------------------------------------------------------------------------------------------


if (msgcontains(msg, 'sim')) or (msgcontains(msg, 'yes')) then
selfSay('A primeira pergunta é: primeira pergunta?', cid)
talkState[talkUser] = 1

 

elseif (msgcontains(msg, 'primeira')) and talkState[talkUser] == 1 then
selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: segunda pergunta?', cid)
talkState[talkUser] = 2
else
selfSay('Resposta errada, você está bom o suficiente.', cid)
doTeleportThing(cid, {x= 377, y= 183, z= 6})

 

end                         -------end que fecha o "if (msgcontains(msg, 'sim')) or (msgcontains(msg, 'yes')) then"

return true

end                        --------end que fecha "function creatureSayCallback(cid, type, msg)"

 

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

Mas quando eu acrescento mais "elseif" ele pede pra colocar "end" onde não se deve colocar bungando o npc. Alguém pode me ajudar? ta difícil pra mim não mecho com isso a muito tempo.

        function creatureSayCallback(cid, type, msg)
        if(not npcHandler:isFocused(cid)) then
        return false
        end
        local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid


--------------------------------------------------------------------------------------------------------------------------------------------


if (msgcontains(msg, 'sim')) or (msgcontains(msg, 'yes')) then
selfSay('A primeira pergunta é: primeira pergunta?', cid)
talkState[talkUser] = 1

 

elseif (msgcontains(msg, 'primeira')) and talkState[talkUser] == 1 then
selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: segunda pergunta?', cid)
talkState[talkUser] = 2
else
selfSay('Resposta errada, você está bom o suficiente.', cid)
doTeleportThing(cid, {x= 377, y= 183, z= 6})


elseif (msgcontains(msg, 'segunda')) and talkState[talkUser] == 2 then
selfSay('Muito bem, essa foi relativamente facil. Vamos para a terceira pergunta: Terceira pergunta?', cid)
talkState[talkUser] = 3
else
selfSay('Resposta errada, você está bom o suficiente.', cid)
doTeleportThing(cid, {x= 377, y= 183, z= 6})


elseif (msgcontains(msg, 'terceira')) and talkState[talkUser] == 3 then
selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: fim', cid)
talkState[talkUser] = 4
else
selfSay('Resposta errada, você está bom o suficiente.', cid)
doTeleportThing(cid, {x= 377, y= 183, z= 6})


end
return true
end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Postado
function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then return false end
	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	if (msgcontains(msg, 'sim')) or (msgcontains(msg, 'yes')) then
		selfSay('A primeira pergunta é: primeira pergunta?', cid)
		talkState[talkUser] = 1
	elseif (msgcontains(msg, 'primeira')) and talkState[talkUser] == 1 then
		selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: segunda pergunta?', cid)
		talkState[talkUser] = 2
	elseif (msgcontains(msg, 'segunda')) and talkState[talkUser] == 2 then
		selfSay('Muito bem, essa foi relativamente facil. Vamos para a terceira pergunta: Terceira pergunta?', cid)
		talkState[talkUser] = 3
	elseif (msgcontains(msg, 'terceira')) and talkState[talkUser] == 3 then
		selfSay('Muito bem, essa foi facil. Vamos para a segunda pergunta: fim', cid)
		talkState[talkUser] = 4
	else
		selfSay('Resposta errada, você está bom o suficiente.', cid)
		doTeleportThing(cid, {x= 377, y= 183, z= 6})
	end
return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Postado
  • Autor

Hum... Entendi, Quando se tem "elseif" está sobre a ação do primeiro "if" ainda, no caso o que tava dificultando o script era o "else". Muito bom cara. Obrigado pela atenção.

Dúvida Sanada

+REP

Postado

Exato. O elseif seria algo como "SE não for o IF, mas for ~condição~, faça:". Ele é linkado com o if, como se fosse um else com condição. O último else seria para caso nenhuma das condições do IF/ELSEIF for verdadeira.

"Traduzindo" para português, ficaria:

 

SE verde for igual a laranja, faça:
	imprime: verde é igual a laranja.
SE verde não for igual a laranja, mas SE verde for igual a marrom, faça:
	imprime: verde é igual a marrom.
SE verde não for igual a marrom, mas SE verde for igual a vermelho, faça:
	imprime: verde é igual a vermelho.
SE verde não for igual a vermelho, mas SE verde for igual a amarelo faça:
	imprime: verde é igual a amarelo.
se não for, faça:
	imprime: verde é igual a roxo.
end
	

Verde não é igual a roxo, mas como todos os IF/ELSEIF são falsos, vai imprimir: verde é igual a roxo.

 

Espero que tenha entendido.

(:

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo