Ir para conteúdo

Featured Replies

Postado
  • Administrador

Bom galera, estava procurando por este NPC aqui no fórum e não encontrei, portanto estou disponibilizando o código do NPS de natal Santa Claus, o famoso Papai Noel, como todos devem saber, ele dá presentes aleatórios aos jogadores.

 

Crie um arquivo com o nome santa.xml em data/npc e bote isto:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Santa Claus" script="data/npc/scripts/santa.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="251" head="94" body="94" legs="113" feet="114" addons="0"/>
<parameters />
</npc>

Agora crie um arquivo com o nome santa.lua em data/npc/scripts e bote isto:

random_items = {
{5,2112,1}, -- 0.5% to get teddy bear
{20,6512,1}, -- 2% to get santa doll
{40,2114,1}, -- 4% to get piggy bank
{80,2111,5}, -- 8% to get 5 snowballs
{80,2688,8}, -- 8% to get 8 candy canes
{80,2110,1}, -- 8% to get doll
{400,2674,15}, -- 40% to get 15 red apples
{450,2675,10}, -- 45% to get 10 oranges
{1000,2687,8} -- 100% to get 8 cookies
}
PRESENT_STORAGE = 54163 -- storage ID

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 santaNPC(cid, message, keywords, parameters, node)
if(not npcHandler:isFocused(cid)) then
return false
end
if (parameters.present == true) then
if (getPlayerStorageValue(cid, PRESENT_STORAGE) < 1) then
local item = {}
local reward = 0
local count = ""
for i = 1, #random_items do
item = random_items[i]
if (math.random(0,999) < item[1]) then
reward = item[2]
subType = item[3]
if subType > 1 then
count = subType .. " "
end
break
end
end
doPlayerAddItem(cid, reward, subType)
setPlayerStorageValue(cid, PRESENT_STORAGE, 1)
npcHandler:say('HO HO HO por ser bueno este año te dare ' .. count .. getItemNameById(reward) .. ' para ti.', cid)
else
npcHandler:say('yo ya te di tu regalo.', cid)
end
else
npcHandler:say('regresa cuando seas bueno.', cid)
end
npcHandler:resetNpc()
return true
end

npcHandler:setMessage(MESSAGE_GREET, "Feliz Navidad |PLAYERNAME|.HO HO HO Yo soy Santa Claus. Y te dare un regalo por ser un buen niño.")

local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})
local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})

local node = keywordHandler:addKeyword({'pre'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'fuistes bueno este año?'})
node:addChildKeywordNode(yesNode)
node:addChildKeywordNode(noNode)
npcHandler:addModule(FocusModule:new())

Pronto, é isso ai pessoal, espero que façam bom proveito!

 

Créditos: God Maya

TibiaKing Team- KingTópicos
www.tibiaking.com

  • 6 months later...
  • Respostas 5
  • Visualizações 1.6k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • santaDoll = -- aqui voce coloca o itemId do Santa Doll random_items = { {5,2112,1}, -- 0.5% to get teddy bear {20,6512,1}, -- 2% to get santa doll {40,2114,1}, -- 4% to get piggy bank {80,2111,5}, --

  • 7 months later...
Postado

sera que alguém poderia remover a storage do script e colocar pra ele dar o itens se ele tiver um santa doll na backpack e que remora o santa doll quando ele entregar um dos itens aleatório ?

Postado
1 hora atrás, amoxicilina disse:

sera que alguém poderia remover a storage do script e colocar pra ele dar o itens se ele tiver um santa doll na backpack e que remora o santa doll quando ele entregar um dos itens aleatório ?

santaDoll = -- aqui voce coloca o itemId do Santa Doll

random_items = {
{5,2112,1}, -- 0.5% to get teddy bear
{20,6512,1}, -- 2% to get santa doll
{40,2114,1}, -- 4% to get piggy bank
{80,2111,5}, -- 8% to get 5 snowballs
{80,2688,8}, -- 8% to get 8 candy canes
{80,2110,1}, -- 8% to get doll
{400,2674,15}, -- 40% to get 15 red apples
{450,2675,10}, -- 45% to get 10 oranges
{1000,2687,8} -- 100% to get 8 cookies
}
PRESENT_STORAGE = 54163 -- storage ID

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 santaNPC(cid, message, keywords, parameters, node)
	
	if(not npcHandler:isFocused(cid)) then
	return false
	end
	
	if (parameters.present == true) then
		if getPlayerItemCount(cid, santaDoll) >= 1 then 
			doPlayerRemoveItem(cid, santaDoll, 1)   
			local item = {}
			local reward = 0
			local count = ""
			
			for i = 1, #random_items do
				item = random_items[i]
				if (math.random(0,999) < item[1]) then
					reward = item[2]
					subType = item[3]
					if subType > 1 then
					count = subType .. " "
					end
				  break
				end
			end
			doPlayerAddItem(cid, reward, subType)
			setPlayerStorageValue(cid, PRESENT_STORAGE, 1)
			npcHandler:say('HO HO HO por ser bueno este año te dare ' .. count .. getItemNameById(reward) .. ' para ti.', cid)
			
		else
			npcHandler:say('Voce nao tem a Santa Doll', cid)
		end
	else
		npcHandler:say('regresa cuando seas bueno.', cid)
	end
	
	npcHandler:resetNpc()
	return true
end

npcHandler:setMessage(MESSAGE_GREET, "Feliz Navidad |PLAYERNAME|.HO HO HO Yo soy Santa Claus. Y te dare un regalo por ser un buen niño.")

local noNode = KeywordNode:new({'no'}, santaNPC, {present = false})
local yesNode = KeywordNode:new({'yes'}, santaNPC, {present = true})

local node = keywordHandler:addKeyword({'pre'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'fuistes bueno este año?'})
node:addChildKeywordNode(yesNode)
node:addChildKeywordNode(noNode)
npcHandler:addModule(FocusModule:new())

Na primeira linha você coloca o id do santa doll, que o resto já configurei para dar o presente se ele tiver o santa doll e remover quando ganhar o presente.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo