Ir para conteúdo
  • Cadastre-se

Criando um NPC de missões, pra melhorar seu OT


Posts Recomendados

22 horas atrás, Weslley Kiyo disse:

 


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 onPlayerEndTrade(cid)				npcHandler:onPlayerEndTrade(cid)			end
function onPlayerCloseChannel(cid)			npcHandler:onPlayerCloseChannel(cid)		end


function creatureSayCallback(cid, type, msg)
	if not npcHandler:isFocused(cid) then
		return false
	end
		
    local player = Player(cid)
    if msgcontains(msg, 'mission1') or msgcontains(msg, 'mission 1') then
       npcHandler:say('TEXT MISSION 1!',cid)
       npcHandler.topic[cid] = 1
    
    elseif msgcontains(msg, 'mission2') or msgcontains(msg, 'mission 2') then
       npcHandler:say('TEXT MISSION 2!',cid)
       npcHandler.topic[cid] = 2

------------------------------------------------------------------------------------

    elseif msgcontains(msg, 'yes') then
        if npcHandler.topic[cid] == 1 then
			if getPlayerItemCount(cid, 2559) >= 1 then -- small axe
				if doPlayerRemoveItem(cid, 2559, 1) then -- small axe
					doPlayerAddItem(cid, 2553, 1) -- pick
					npcHandler:say('Splendid! Here, take your pick.', cid)
					npcHandler.topic[cid] = 0
				else
					doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.")
					npcHandler.topic[cid] = 0
				end
			else
				npcHandler:say('Sorry, I am looking for a small axe.', cid)
				npcHandler.topic[cid] = 0
			end
      
     	 elseif npcHandler.topic[cid] == 2 then
			if getPlayerItemCount(cid, 2559) >= 1 then -- small axe
				if doPlayerRemoveItem(cid, 2559, 1) then -- small axe
					doPlayerAddItem(cid, 2553, 1) -- pick
					npcHandler:say('Splendid! Here, take your pick.', cid)
					npcHandler.topic[cid] = 0
				else
					doPlayerSendTextMessage(cid,25,"ERROR! Please contact the administrator.")
					npcHandler.topic[cid] = 0
				end
			else
				npcHandler:say('Sorry, I am looking for a small axe.', cid)
				npcHandler.topic[cid] = 0
			end
		end
			
	elseif(msgcontains(msg, "no") and isInArray({1,2}, npcHandler.topic[cid])) then
			npcHandler:say("Ok then.", cid)
			npcHandler.topic[cid] = 0	
	end
	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Eu uso dessa maneira em meu servidor.
Aproveita e dá uma conferida lá :) 

 

OBS: O script foi feito para versão 0.3.7, porém funciona em tfs 1.x

 

 Otimo, vou testar aqui... caso eu queira adicionar mais e so fazer elseif?

 

e tipo pode me dar uma explicação rapida desta quest que vc postou ai?

 

 

Editado por Everson Miranda (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 11
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Introdução: Primeiramente, vou explicar, a forma em que eu comecei aprender a criar npcs mais complexos, e digo uma coisa.. sozinho se você reparar bem nos detalhes, creio eu que você pode criar coisas impressionantes, utilizando da sua criatividade. Então, ando tentando me virar sozinho, sempre. Por isso, caso ajam functions que não precisam ser postas, quero que alguém que saiba mais que eu corrija-me por favor! O começo: Cansado, de não ser respondido, em um o

Opa, dei uma olhada no tutorial que você fez. Bem legal, vou ler melhor e qualquer coisa eu edito o post ou comento novamente. Parabéns, Reputado + ! -= PlayerLearnInstantSpell É doPlayerLearnInstantSpell tem do sim :>

32 minutos atrás, Everson Miranda disse:

 

 Otimo, vou testar aqui... caso eu queira adicionar mais e so fazer elseif?

 

e tipo pode me dar uma explicação rapida desta quest que vc postou ai?

 

 

 

Sim!

 

Claro, só falar :)

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Estatísticas dos Fóruns

    96843
    Tópicos
    519604
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo