Eu gostaria que alguém colocasse (adiciona-se) para o script [NPC] verificar se o jogador tem a storage 45551 antes de iniciar a conversa .
TFS 0.4- 0.3.6
-- Collecting items and monster missions by Limoslocal keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() end local missions = { [2] = { items = { {id = 2673, count = 10} }, message = "Obrigado, porfavor me traga ", level = 1, -- minimum level voor this mission rewarditems = { {id = 2160, count = 1}, {id = 2152, count = 1} }, rewardexp = 15000 },} local storage = 45552local function getItemsMonstersFromTable(imtable) local text = "" for v = 1, #imtable do local ret = ", " if v == 1 then ret = "" elseif v == #imtable then ret = " e " end text = text .. ret count = imtable[v].count if imtable[v].id then info = getItemInfo(imtable[v].id) text = text .. (count > 1 and count or info.article).." "..(count > 1 and info.plural or info.name) else text = text .. count .." "..imtable[v].name end end return textendfunction creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if not npcHandler:isFocused(cid) then return false end local x = missions[getPlayerStorageValue(cid, storage)] if msgcontains(msg, 'ajudar') or msgcontains(msg, 'quest') then if getPlayerStorageValue(cid, storage) == -1 then selfSay("Eu tive minha colheita roubada por Trolls não só eu mais tambem todos os outros camponeses. Eles levaram minhas peras e agora não tenho o que vender podes recuperar ? ", cid) talkState[talkUser] = 1 elseif x then if getPlayerLevel(cid) >= x.level then local mess = x.items and "trouxe "..getItemsMonstersFromTable(x.items) or "matou "..getItemsMonstersFromTable(x.monsters) selfSay("Você "..mess.."?", cid) talkState[talkUser] = 1 else selfSay("A missão que eu dei é para o nível "..x.level..", volte mais tarde.", cid) end else selfSay("Você já fez todas as missões, ótimo trabalho.", cid) npcHandler:releaseFocus(cid) end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage) == -1 then setPlayerStorageValue(cid, storage, 1) local x = missions[getPlayerStorageValue(cid, storage)] local imtable = x.items or x.monsters selfSay(x.message.." "..getItemsMonstersFromTable(imtable)..".", cid) elseif x then local imtable = x.items or x.monsters local amount = 0 for it = 1, #imtable do local check = x.items and getPlayerItemCount(cid, imtable[it].id) or getPlayerStorageValue(cid, imtable[it].storage) if check >= imtable[it].count then amount = amount + 1 end end if amount == #imtable then if x.items then for it = 1, #x.items do doPlayerRemoveItem(cid, x.items[it].id, x.items[it].count) end end if x.rewarditems then for r = 1, #x.rewarditems do doPlayerAddItem(cid, x.rewarditems[r].id, x.rewarditems[r].count) end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu "..getItemsMonstersFromTable(x.rewarditems)..".") end if x.rewardexp then doPlayerAddExp(cid, x.rewardexp) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você recebeu "..x.rewardexp.." experience.") end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) local x = missions[getPlayerStorageValue(cid, storage)] if x then selfSay(x.message.." "..getItemsMonstersFromTable(x.items or x.monsters)..".", cid) else selfSay("Não é muito , mais obrigado isso deve ser o suficiente para eu vender e conseguir um pouco de dinheiro.", cid) end else local n = 0 for i = 1, #imtable do local check = x.items and getPlayerItemCount(cid, imtable[i].id) or getPlayerStorageValue(cid, imtable[i].storage) if check < imtable[i].count then n = n + 1 end end local text = "" local c = 0 for v = 1, #imtable do local check = x.items and getPlayerItemCount(cid, imtable[v].id) or getPlayerStorageValue(cid, imtable[v].storage) if check < imtable[v].count then c = c + 1 local ret = ", " if c == 1 then ret = "" elseif c == n then ret = " and " end text = text .. ret if x.items then local count, info = imtable[v].count - getPlayerItemCount(cid, imtable[v].id), getItemInfo(imtable[v].id) text = text .. (count > 1 and count or info.article).." "..(count > 1 and info.plural or info.name) else local count = imtable[v].count - (getPlayerStorageValue(cid, imtable[v].storage) + 1) text = text .. count.." "..imtable[v].name end end end selfSay(x.items and "Você não tem todos os itens, você ainda precisa obter "..text.."." or "Você não matou todos os monstros, você ainda precisa matar "..text..".", cid) end end talkState[talkUser] = 0 elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then selfSay("Bem, acho que não, então.", cid) end return trueendnpcHandler:setMessage(MESSAGE_FAREWELL, "Tchau!")npcHandler:setMessage(MESSAGE_WALKAWAY, "Adeus tenha um bom dia!")npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())