Postado Dezembro 31, 2020 4 anos 2 horas atrás, nizin disse: testei mas não funcionou ;x Prefere o shopwindow ou pela propria interação do NPC?
Postado Dezembro 31, 2020 4 anos Autor 49 minutos atrás, So volto tarde disse: Prefere o shopwindow ou pela propria interação do NPC? pela própria interação do npc seria mais facil pra mim xd
Postado Dezembro 31, 2020 4 anos Sendo assim: Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { refinerid = 8301, qtdrefinerid = 100, grefinerid = 8303, qtdgrefinerid = 125, urefinerid = 8299, qtdurefinerid = 150, coinref = 9970, coingref = 2147, coinuref = 2144 } if (msgcontains(msg, "refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid) doPlayerAddItem(cid, config.refinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.coinref..' '..getItemNameById(config.refinerid), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "great refiner")) then selfSay('msg confirmação great refiner? {yes}', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid) doPlayerAddItem(cid, config.grefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg great refiner', cid) else selfSay('voce nao tem '..config.coingref..' '..getItemNameById(config.grefinerid), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "ultra refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid) doPlayerAddItem(cid, config.urefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.coinuref..' '..getItemNameById(config.urefinerid), cid) talkState[talkUser] = 0 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Todos os valores estão no array "config", em caso de erros ou duvidas só postar um tópico. Caso necessite, o xml em que usei para testes foi este: Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="testes" script="testes.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="678" head="20" body="39" legs="45" feet="7" addons="0"/> <parameters> <parameter key="message_greet" value="a"/> </parameters> </npc>
Postado Dezembro 31, 2020 4 anos Autor 9 horas atrás, So volto tarde disse: Sendo assim: Ocultar conteúdo local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { refinerid = 8301, qtdrefinerid = 100, grefinerid = 8303, qtdgrefinerid = 125, urefinerid = 8299, qtdurefinerid = 150, coinref = 9970, coingref = 2147, coinuref = 2144 } if (msgcontains(msg, "refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid) doPlayerAddItem(cid, config.refinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.coinref..' '..getItemNameById(config.refinerid), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "great refiner")) then selfSay('msg confirmação great refiner? {yes}', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid) doPlayerAddItem(cid, config.grefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg great refiner', cid) else selfSay('voce nao tem '..config.coingref..' '..getItemNameById(config.grefinerid), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "ultra refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid) doPlayerAddItem(cid, config.urefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.coinuref..' '..getItemNameById(config.urefinerid), cid) talkState[talkUser] = 0 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Todos os valores estão no array "config", em caso de erros ou duvidas só postar um tópico. Caso necessite, o xml em que usei para testes foi este: Ocultar conteúdo <?xml version="1.0" encoding="UTF-8"?> <npc name="testes" script="testes.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="678" head="20" body="39" legs="45" feet="7" addons="0"/> <parameters> <parameter key="message_greet" value="a"/> </parameters> </npc> Cara, digamos que tenha funcionado 50% kkkkk. Talvez eu não tenho configurado corretamenteo! (sou novo nisso) Enfim, eu consegui comprar o Refiner, mas o Great ou o Ultra não deu.
Postado Dezembro 31, 2020 4 anos Tive de mudar o nome de "refiner" para "normal refiner", também corrigi alguns erros que deixei passar. Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { refinerid = 8301, qtdrefinerid = 100, grefinerid = 8303, qtdgrefinerid = 125, urefinerid = 8299, qtdurefinerid = 150, coinref = 9970, coingref = 2147, coinuref = 2144 } if (msgcontains(msg, "normal refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, config.coinref) >= config.qtdrefinerid) then doPlayerRemoveItem(cid, config.coinref, config.qtdrefinerid) doPlayerAddItem(cid, config.refinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.qtdrefinerid..' '..getItemNameById(config.coinref), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "great refiner")) then selfSay('msg confirmação great refiner? {yes}', cid) talkState[talkUser] = 2 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then if (getPlayerItemCount(cid, config.coingref) >= config.qtdgrefinerid) then doPlayerRemoveItem(cid, config.coingref, config.qtdgrefinerid) doPlayerAddItem(cid, config.grefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg great refiner', cid) else selfSay('voce nao tem '..config.qtdgrefineridf..' '..getItemNameById(config.coingref), cid) talkState[talkUser] = 0 end end if (msgcontains(msg, "ultra refiner")) then selfSay('msg confirmação refiner? {yes}', cid) talkState[talkUser] = 3 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then if (getPlayerItemCount(cid, config.coinuref) >= config.qtdurefinerid) then doPlayerRemoveItem(cid, config.coinuref, config.qtdurefinerid) doPlayerAddItem(cid, config.urefinerid, 1) talkState[talkUser] = 0 selfSay('troca completa msg refiner', cid) else selfSay('voce nao tem '..config.qtdurefinerid..' '..getItemNameById(config.coinuref), cid) talkState[talkUser] = 0 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
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.