Postado Junho 6, 2017 7 anos Autor 35 minutos atrás, Frenesy disse: Aí já não é algo de NPC. Já é outra área com novos conhecimentos. Eu consigo o NPC, essa daí já terá que pedir ajuda pra alguém que entenda melhor. kkkk Ok, no caso teria que criar uma Script de Bless PvP antes para depois ser adicionado no NPC? MAis podiamos já deixar o NPC vendendo a Blessing normal já no npc? No momento ele está só vendendo o Comando, agradeço o suporte que está me dando!
Postado Junho 6, 2017 7 anos 12 horas atrás, Digoshow disse: Ok, no caso teria que criar uma Script de Bless PvP antes para depois ser adicionado no NPC? Isso mesmo. Cria ele e me diz como funciona que eu adiciono no NPC. Até lá... Vou ficar de devendo essa. 12 horas atrás, Digoshow disse: MAis podiamos já deixar o NPC vendendo a Blessing normal já no npc? No momento ele está só vendendo o Comando, agradeço o suporte que está me dando! Isso já está dentro da minha jurisdição (). Testa isso aqui: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end 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, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Vejamos, posso vender pra você agora o Comando {bless full} ou {Blessing} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Bless Full') or msgcontains(msg, 'bless full')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {10.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 10000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless full}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Eu posso lhe conceder todas as benções por {20.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 20000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Junho 6, 2017 7 anos Autor 1 hora atrás, Frenesy disse: Isso mesmo. Cria ele e me diz como funciona que eu adiciono no NPC. Até lá... Vou ficar de devendo essa. Isso já está dentro da minha jurisdição (). Testa isso aqui: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end 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, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Vejamos, posso vender pra você agora o Comando {bless full} ou {Blessing} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Bless Full') or msgcontains(msg, 'bless full')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {10.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 10000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless full}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Eu posso lhe conceder todas as benções por {20.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 20000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Tipo, quando eu falo {Blessing} ele não pula para a próxima fala, ele repete a anterior ou seja, ele repete a mesma frase, olhe só: Spoiler 11:59 Ana: Olá, sou a vendedora de bençãos desta cidade, você gostaria de verificar minhas lista de Bless ou comprar o Comando !bless, ou diga Trade para comprar ou vender Aol e Ceremonial Ankh. 11:59 Teste [1]: bless 11:59 Ana: Vejamos, posso vender pra você Blessing e também Bless PvP, o que deseja? 11:59 Teste [1]: blessing 11:59 Ana: Vejamos, posso vender pra você Blessing e também Bless PvP, o que deseja? 12:00 Teste [1]: Blessing 12:00 Ana: Vejamos, posso vender pra você Blessing e também Bless PvP, o que deseja? Eu fiz uma simples modificação no arquivo Ana.xml, acho que não tem nada a ver, está aqui: Spoiler <?xml version="1.0"?> <npc name="Ana" script="Ana.lua" walkinterval="2000"> <health now="200" max="200" /> <look type="136" head="113" body="65" legs="0" feet="96" addons="2"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="shop_sellable" value="Amulet Of Loss,2173,10000; Ceremonial Ankh,6561,30000"/> <parameter key="shop_buyable" value="Amulet Of Loss,2173,50000; Ceremonial Ankh,6561,300000"/> <parameter key="message_greet" value="Olá, sou a vendedora de bençãos desta cidade, você gostaria de verificar minhas lista de {Bless} ou comprar o {Comando} !bless, ou diga {Trade} para comprar ou vender Aol e Ceremonial Ankh."/> </parameters> </npc> @Edite Trocando a palavra chave {Blessing} por qualquer uma alinhatoria por exemplo {xd} ela responde certinho a proxima fala, a NPC está lendo o Blessing como Bless? o.O..vou continuar dando uma olhada no script pra ve se entendo o que está acontecendo.. @Edite Resolvido, ficou assim! Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end 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, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Vejamos, posso vender pra você {Bless} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Comando Bless') or msgcontains(msg, 'comando bless')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {120.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 120000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Eu posso lhe conceder todas as benções por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Vou ver se consigo arrumar o Script Bless PvP, e retorno aqui para adicionar no Script da NPC e talkactions ok? Por enquanto eu te agradeço, muito obrigado! @Edite kkk, amigo a "Bless PvP", creio que ela já existe dentro do jogo, é a "Twist of Fate" você saberia colocar ela no comando e no NPC? Editado Junho 6, 2017 7 anos por Digoshow (veja o histórico de edições)
Postado Junho 6, 2017 7 anos 30 minutos atrás, Digoshow disse: kkk, amigo a "Bless PvP", creio que ela já existe dentro do jogo, é a "Twist of Fate" você saberia colocar ela no comando e no NPC? Ok, tenta isso. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end 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, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Vejamos, posso vender pra você {Bless} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Comando Bless') or msgcontains(msg, 'comando bless')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {120.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 120000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Eu posso lhe conceder todas as benções por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless PvP') or msgcontains(msg, 'bless pvp')) then selfSay('Eu posso lhe conceder a Bless PvP por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 4 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 4) then if getPlayerPVPBlessing(cid) == true then selfSay('Você já tem essa PvP Bless.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerSetPVPBlessing(cid) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 4) then selfSay('Volte quando tiver interesse.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Junho 6, 2017 7 anos Autor 15 minutos atrás, Frenesy disse: Ok, tenta isso. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) end 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, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Vejamos, posso vender pra você {Bless} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Comando Bless') or msgcontains(msg, 'comando bless')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {120.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 120000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Eu posso lhe conceder todas as benções por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless PvP') or msgcontains(msg, 'bless pvp')) then selfSay('Eu posso lhe conceder a Bless PvP por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 4 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 4) then if getPlayerPVPBlessing(cid) == true then selfSay('Você já tem essa PvP Bless.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerSetPVPBlessing(cid) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 4) then selfSay('Volte quando tiver interesse.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Quando eu falo Bless PvP a NPC novamente responde como se eu tivesse falado Bless apenas eheh, porem isso eu posso trocar por uma outra frase que resolve, o problema é que quando eu confirmo falando Yes para comprar a Bless PvP, ela não responde mais, e também da um erro na Distro, acho que na linha 114, de uma conferida no erro: Spoiler Editado Junho 6, 2017 7 anos por Digoshow (veja o histórico de edições)
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.