Postado Maio 19, 2016 9 anos 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 Maio 19, 2016 9 anos 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 Maio 19, 2016 9 anos 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 Maio 19, 2016 9 anos 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.