Postado Novembro 20, 2016 8 anos 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
Postado Dezembro 26, 2017 7 anos 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 Dezembro 26, 2017 7 anos 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.