Ir para conteúdo

[NPC] Papai Noel por Vocação


AnneMotta

Posts Recomendados

Santa_Claus.gif

Olá abigos e abigas, fiz um script aqui meio atrasado para o natal rs, bom eu até que gostei espero que vocês achem algo útil para ele.

 

 

Abra a pasta NPC crie um arquivo com nome papainoel.xml e adicione isso dentro:

<?xml version="1.0"?>
<npc name="Papai Noel" script="data/npc/scripts/papainoel.lua" walkinterval="1000" floorchange="0">
<health now="100" max="100"/>
<look type="160" head="0" body="112" legs="93" feet="95"/>
<parameters>
<parameter key="message_greet" value="Ho-Ho! {|PLAYERNAME|}, para pegar seu presente basta voce falar {present druid}, {present sorcerer}, {present knight} ou {present paladin}!" />
</parameters>
</npc>

Depois abra a pasta NPC/scripts crie um arquivo com o nome papainoel.lua e adicione isso dentro:

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
	

local itemdruid = {{2160, 100}, {9778, 1}, {6512, 1}} -- itens que Elder Druid ira ganhar
local itemsorcerer = {{2160, 100}, {8867, 1}, {6512, 1}} -- itens que Master Sorcerer ira ganhar
local itemknight = {{2160, 100}, {2472, 1}, {6512, 1}} -- itens que Elite Knight ira ganhar
local itempaladin = {{2160, 100}, {2500, 1}, {6512, 1}} -- itens que Royal Paladin ira ganhar

local a = {
level = 150, -- Level para falar com o Papai Noel
storage = 72621, -- Não trocar
}
 
	if msgcontains(msg, 'present druid') then
		if getPlayerStorageValue(cid,a.storage) == -1 then
		if getPlayerVocation(cid) == 6 then
			if getPlayerLevel(cid) >= a.level then
				selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Druid}!', cid)
				for _, b in pairs(itemdruid) do
					doPlayerAddItem(cid, b[1], b[2])
					doSendMagicEffect(getPlayerPosition(cid), 28)
					setPlayerStorageValue(cid,a.storage,1)
				end
			else
				doSendMagicEffect(getPlayerPosition(cid), 2)
				selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
			end
		else
			selfSay('Voce não é {Elder Druid} '..getPlayerName(cid)..'!', cid)
		end
		else
			selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
		end
	end
	
	if msgcontains(msg, 'present sorcerer') then
		if getPlayerStorageValue(cid,a.storage) == -1 then
		if getPlayerVocation(cid) == 5 then
			if getPlayerLevel(cid) >= a.level then
				selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Sorcerer}!', cid)
				for _, b in pairs(itemsorcerer) do
					doPlayerAddItem(cid, b[1], b[2])
					doSendMagicEffect(getPlayerPosition(cid), 28)
					setPlayerStorageValue(cid,a.storage,1)
				end
			else
				doSendMagicEffect(getPlayerPosition(cid), 2)
				selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
			end
		else
			selfSay('Voce não é {Master Sorcerer} '..getPlayerName(cid)..'!', cid)
		end
		else
			selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
		end
	end
	
	if msgcontains(msg, 'present knight') then
		if getPlayerStorageValue(cid,a.storage) == -1 then
		if getPlayerVocation(cid) == 8 then
			if getPlayerLevel(cid) >= a.level then
				selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Knight}!', cid)
				for _, b in pairs(itemknight) do
					doPlayerAddItem(cid, b[1], b[2])
					doSendMagicEffect(getPlayerPosition(cid), 28)
					setPlayerStorageValue(cid,a.storage,1)
				end
			else
				doSendMagicEffect(getPlayerPosition(cid), 2)
				selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
			end
		else
			selfSay('Voce não é {Elite Knight} '..getPlayerName(cid)..'!', cid)
		end
		else
			selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
		end
	end
	
	if msgcontains(msg, 'present paladin') then
		if getPlayerStorageValue(cid,a.storage) == -1 then
		if getPlayerVocation(cid) == 7 then
			if getPlayerLevel(cid) >= a.level then
				selfSay('Ho-ho Feliz Natal '..getPlayerName(cid)..', você recebeu seus itens de {Paladin}!', cid)
				for _, b in pairs(itempaladin) do
					doPlayerAddItem(cid, b[1], b[2])
					doSendMagicEffect(getPlayerPosition(cid), 28)
					setPlayerStorageValue(cid,a.storage,1)
				end
			else
				doSendMagicEffect(getPlayerPosition(cid), 2)
				selfSay('{'..getPlayerName(cid)..'} você precisa ser level {'..a.level..'} para receber sua recompensa, faltam apenas {'..a.level - getPlayerLevel(cid)..'}. Ho-ho!', cid)
			end
		else
			selfSay('Voce não é {Royal Paladin} '..getPlayerName(cid)..'!', cid)
		end
		else
			selfSay('{'..getPlayerName(cid)..'} voce ja pegou seu presente!', cid)
		end
	end

return true
end

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

Configurar editando esta parte:

local itemdruid = {{2160, 100}, {9778, 1}, {6512, 1}} -- itens que Elder Druid ira ganhar
local itemsorcerer = {{2160, 100}, {8867, 1}, {6512, 1}} -- itens que Master Sorcerer ira ganhar
local itemknight = {{2160, 100}, {2472, 1}, {6512, 1}} -- itens que Elite Knight ira ganhar
local itempaladin = {{2160, 100}, {2500, 1}, {6512, 1}} -- itens que Royal Paladin ira ganhar

local a = {
level = 150, -- Level para falar com o Papai Noel
storage = 72621, -- Não trocar
}

QIV0m.png

pEFdd.png

 

Informações:

- O npc verificar a vocação do player e adiciona itens conforme sua vocação.

- O level minimo para se usar o NPC é 150

- Só pode pegar o presente uma vez

- Itens e level minimo configurável.

 

QIV0m.png

pEFdd.png

 

Imagens do NPC:

Ao falar com o npc:

mocr.jpg

 

NPC verificando que o player pediu o presente que não é da sua vocação:

a8qs.jpg

 

NPC verificando que o player não tem o level minimo para pegar o presente e informando quantos leveis faltam para o player poder pegar o presente:

upnn.jpg

 

Mensagem ao receber o presente:

i6wl.jpg

 

NPC informando que o player já pegou o presente:

9d13.jpg

 

QIV0m.png

pEFdd.png

 

Créditos: Maarkiin(AnneMotta)

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

  • 3 weeks later...
×
×
  • Criar Novo...