Ir para conteúdo

[Encerrado] [Encerrado] Permissão para falar com npc


TEKADON

Posts Recomendados

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())

 

Link para o comentário
Compartilhar em outros sites

  • 4 months later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...