Ir para conteúdo

Vulturenose (Parte Da Meriana Quest)


Sofft

Posts Recomendados

Fala Xtibianos, a algum tempo venho fazendo um Global, realmente completo, não esses que estão em todos os tópicos.

Já está boa parte completo, porem uma das coisas que mais levam tempo são os NPCs, e de vez em quando irei postar um NPC completo aqui para vocês.

 

Dessa vez o NPC é o: Vulturenose.gif, parte da Meriana Quest, vou postar ele por ser um NPC facil de se fazer.

 

Vulturenose.xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Vulturenose" script="data/npc/scripts/Vulturenose.lua" walkinterval="0" floorchange="0">
<health now="100" max="100"/>
<look type="96" head="0" body="0" legs="0" feet="0" addons="0"/>
<parameters>
<parameter key="message_greet" value="Hrrrrm."/>
<parameter key="message_farewell" value="Get lost."/>
<parameter key="module_keywords" value="1" />
<parameter key="keywords" value="pirate;mission;klaus" />

<parameter key="keyword_reply1" value="We are marauders of the seas surrounding the Shattered Isles. Our only motive is greed and wealth primary purpose is to win in any way possible!" />
<parameter key="keyword_reply2" value="I've heard that {Klaus} wants someone to do a task for him." />
<parameter key="keyword_reply3" value="Klaus is the owner of this tavern" />

</parameters>
</npc>

 

Vulturenose.lua

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)		end
function onThink()											  npcHandler:onThink()											end
function creatureSayCallback(cid, type, msg)


	-- NPC Vulturenose feito por Getulio Paixão (Off)
	-- Inicio NPC Vulturenose

 local meriana		 = 123477 -- Storage Meriana Quest
 local door              = 15056 -- Storage da porta
 local hat                = 6096
 local armor            = 6095
 local legs               = 5918
 local boots             = 5462
 local on_hat           = (getPlayerSlotItem(cid, 1).itemid == hat)
 local on_armor       = (getPlayerSlotItem(cid, 4).itemid == armor)
 local on_legs		 = (getPlayerSlotItem(cid, 7).itemid == legs)
 local on_boots       = (getPlayerSlotItem(cid, 8).itemid == boots)


 -----------------------------------------MERIANA QUEST-------------------------------------------
 -- Confirindo Pirate Set e entrando na porta
 if (getPlayerStorageValue(cid, meriana) == 13) then
 if (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) <= 0) then
 if ((on_hat == TRUE) and (on_armor == TRUE) and (on_legs == TRUE) and(on_boots == TRUE)) then
 npcHandler:say("Hey, I rarely see a dashing pirate like you! Get in, matey!", cid)
 setPlayerStorageValue(cid,door,1)
 doPlayerSendTextMessage(cid, 22, "Your questlog has been updated.")
 talk_state = 0
 else
 npcHandler:say("You're trying to trick me? intruder!, you're not dressed as a pirate!", cid)
 talk_state = 0
 end
 elseif (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) >= 1) then
 npcHandler:say("Of course you can enter.", cid)
 talk_state = 0
 end
 end
 -----------------------------------------FIM-------------------------------------------
	if(npcHandler.focus ~= cid) then
	return false
	end
	-- Final NPC Vulturenose
	-- NPC Vulturenose feito por Getulio Paixão (Off)
	return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Desculpem a indentação, mas o fórum que está bagunçando.

E pra quem quizer usar a função getPlayerSlotItem(cid, slot) em outro script:

getPlayerSlotItem(cid, slot) - Checa que item tem no slot do player (1-cabeca, 2- amuleto, 3- backpack, 4-armadura, 5-mao direita, 6-mao esquerda, 7-pernas, 8- botas, 9-anel, 10 slot da torcha).

Editado por Sofft
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Bem legal, mais poderia ter usado

 

 

local items = {6096, 6095, 5918, 5462}
local slotPos = {1, 2, 3, 4, 5, 6, 7, 8}
      for i = 1, #slotPos do
              if isInArray(items, getPlayerSlotItem(cid, slotPos[i]).itemid) then

Link para o comentário
Compartilhar em outros sites

@Overllord, esse NPC verifica os items que o player ta usando, no caso ele vê se o player está usando pirateSet, e se estiver deixa ele entrar na porta, para instalar esse NPC no seu servidor vai em data/npc e copia um arquivo xml la e renomeia para vulturenose.xml e ai só seguir la em cima /\.

 

Depois no mapEditor importa o NPC e poe ele no mapa.

 

@Skymagnum, sim!

não sou bom com arrays, mais estou aprendendo.=/

Editado por Sofft
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...