assinho 11 Postado 23 de Maio Compartilhar Postado 23 de Maio eu tenho um script de npc que ele pegua o item e te teleporta para uma certa area, so que eu queria q ele pegasse mais de um item. meu arquivo lua do npc: Alex (quest).lua Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/ Compartilhar em outros sites Mais opções de compartilhamento...
guuhzei 18 Postado 23 de Maio Compartilhar Postado 23 de Maio 56 minutos atrás, assinho disse: eu tenho um script de npc que ele pegua o item e te teleporta para uma certa area, so que eu queria q ele pegasse mais de um item. meu arquivo lua do npc: Alex (quest).lua 1.8 kB · 1 download Spoiler local tab = { pos = {x = 1361, y = 1276, z = 8}, -- posição x, y, z do local a teleportar o player items = { {10313, 1}, -- {itemID, count} {2148, 100}, -- {itemID, count} exemplo: 100 gold coins {2152, 10} -- {itemID, count} exemplo: 10 platinum coins }, price = 0 -- quantidade em crystal coins } 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 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, 'demon')) then talkState[talkUser] = 1 local itemText = "" for i, item in ipairs(tab.items) do itemText = itemText .. item[2] .. " " .. getItemNameById(item[1]) .. ", " end itemText = itemText:sub(1, -3) -- remover a última vírgula e espaço selfSay('Are you sure?', cid) selfSay('Lembre-se, você precisa de ' .. itemText .. ' para entrar na quest, digite yes se quiser entrar.', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then local hasAllItems = true for i, item in ipairs(tab.items) do if getPlayerItemCount(cid, item[1]) < item[2] then hasAllItems = false break end end if hasAllItems and doPlayerRemoveMoney(cid, tab.price * 10000) then for i, item in ipairs(tab.items) do doPlayerRemoveItem(cid, item[1], item[2]) end doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) selfSay('Boa quest.', cid) else talkState[talkUser] = 0 selfSay('Você não tem todos os itens necessários.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Okay, maybe another time.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) testa ai Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2361 Compartilhar em outros sites Mais opções de compartilhamento...
assinho 11 Postado 23 de Maio Autor Compartilhar Postado 23 de Maio Agora, guuhzei disse: Ocultar conteúdo local tab = { pos = {x = 1361, y = 1276, z = 8}, -- posição x, y, z do local a teleportar o player items = { {10313, 1}, -- {itemID, count} {2148, 100}, -- {itemID, count} exemplo: 100 gold coins {2152, 10} -- {itemID, count} exemplo: 10 platinum coins }, price = 0 -- quantidade em crystal coins } 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 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, 'demon')) then talkState[talkUser] = 1 local itemText = "" for i, item in ipairs(tab.items) do itemText = itemText .. item[2] .. " " .. getItemNameById(item[1]) .. ", " end itemText = itemText:sub(1, -3) -- remover a última vírgula e espaço selfSay('Are you sure?', cid) selfSay('Lembre-se, você precisa de ' .. itemText .. ' para entrar na quest, digite yes se quiser entrar.', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then local hasAllItems = true for i, item in ipairs(tab.items) do if getPlayerItemCount(cid, item[1]) < item[2] then hasAllItems = false break end end if hasAllItems and doPlayerRemoveMoney(cid, tab.price * 10000) then for i, item in ipairs(tab.items) do doPlayerRemoveItem(cid, item[1], item[2]) end doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) selfSay('Boa quest.', cid) else talkState[talkUser] = 0 selfSay('Você não tem todos os itens necessários.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Okay, maybe another time.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) testa ai nao deu erro mais tbm nao funcionou, eu coloquei os 3 itens e ele nao fala os 3 itens q eu tenho q ter e tbm mesmo q eu tenha os 3 itens ainda sim ele diz q nao tenho os itens Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2364 Compartilhar em outros sites Mais opções de compartilhamento...
Sanzenkai 90 Postado 25 de Maio Compartilhar Postado 25 de Maio @ assinho Alex (quest).lua Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2370 Compartilhar em outros sites Mais opções de compartilhamento...
GM Vortex 284 Postado 25 de Maio Compartilhar Postado 25 de Maio local tab = { pos = {x = 1361, y = 1276, z = 8}, -- posição x, y, z do local a teleportar o player items = { -- lista de itens necessários {10313, 1}, -- {itemID, count} {10314, 1} -- {itemID, count} -- Adicione um novo item abaixo, seguindo o formato {itemID, count} -- {novoItemID, quantidade} }, price = 0 -- quantidade em crystal coins } 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 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, 'demon')) then talkState[talkUser] = 1 npcHandler:say('Are you sure?', cid) for _, item in ipairs(tab.items) do npcHandler:say('Lembre-se, você precisa de '..item[2]..' '..getItemNameById(item[1])..' para entrar na quest.', cid) end npcHandler:say('Digite "yes" se quiser entrar.', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then local hasAllItems = true for _, item in ipairs(tab.items) do if getPlayerItemCount(cid, item[1]) < item[2] then hasAllItems = false break end end if hasAllItems and doPlayerRemoveMoney(cid, tab.price * 10000) then for _, item in ipairs(tab.items) do doPlayerRemoveItem(cid, item[1], item[2]) end doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) npcHandler:say('Boa quest.', cid) else talkState[talkUser] = 0 npcHandler:say('Não vai não safado, cadê os itens?', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 npcHandler:say('Okay, maybe another time.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2372 Compartilhar em outros sites Mais opções de compartilhamento...
assinho 11 Postado 25 de Maio Autor Compartilhar Postado 25 de Maio 6 horas atrás, GM Vortex disse: local tab = { pos = {x = 1361, y = 1276, z = 8}, -- posição x, y, z do local a teleportar o player items = { -- lista de itens necessários {10313, 1}, -- {itemID, count} {10314, 1} -- {itemID, count} -- Adicione um novo item abaixo, seguindo o formato {itemID, count} -- {novoItemID, quantidade} }, price = 0 -- quantidade em crystal coins } 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 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, 'demon')) then talkState[talkUser] = 1 npcHandler:say('Are you sure?', cid) for _, item in ipairs(tab.items) do npcHandler:say('Lembre-se, você precisa de '..item[2]..' '..getItemNameById(item[1])..' para entrar na quest.', cid) end npcHandler:say('Digite "yes" se quiser entrar.', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then local hasAllItems = true for _, item in ipairs(tab.items) do if getPlayerItemCount(cid, item[1]) < item[2] then hasAllItems = false break end end if hasAllItems and doPlayerRemoveMoney(cid, tab.price * 10000) then for _, item in ipairs(tab.items) do doPlayerRemoveItem(cid, item[1], item[2]) end doTeleportThing(cid, tab.pos) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) npcHandler:say('Boa quest.', cid) else talkState[talkUser] = 0 npcHandler:say('Não vai não safado, cadê os itens?', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 npcHandler:say('Okay, maybe another time.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Opa vortex, vlw mesmo o seu funcionou e caiu bem como uma luva. 1 Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2373 Compartilhar em outros sites Mais opções de compartilhamento...
assinho 11 Postado 25 de Maio Autor Compartilhar Postado 25 de Maio 13 horas atrás, Sanzenkai disse: @ assinho Alex (quest).lua 1.97 kB · 2 downloads o seu infelizmente ñ funcionou, eu tentei consertar mais ñ conseguir kk e o vortex conseguiu me ajudar, entao obrigado pela a ajuda <3 Link para o comentário https://tibiadevs.com/forums/topic/437-como-fa%C3%A7o-para-o-meu-npc-pegar-2-ou-mais-itens/#findComment-2374 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados