Bom galera, sei que o natal acabou de passar, porém esqueci de postar esse system antes... Fiz uma versão 2.0 do meu npc de natal (papai noel). Agora ao invés do bom velhinho entregar diretamente o item, vc recebe uma caixa que ao clicar vc recebe um item 100% aleatorio (dentre os itens que foram programados dentro do script). Funciona assim: o player vai até o papai noel e fala: hi, aí o papai noel fala ho-ho-ho... aí o player responde sim (ou yes) e então o player recebe uma caixa. Ao clicar na caixa, o player recebe um dos itens, que estiverem programados no script, de forma aleatoria. Então vamo lá. Pra adicionar esse system, primeiro vá na pasta data/npc e crie um arquivo chamado Papai Noel.xml e coloque isso dentro:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Papai Noel" script="data/npc/scripts/papai_noel.lua" walkinterval="1500" speed="100" walkradius="2" floorchange="0">
<health max="100" now="100"/>
<look type="160" head="0" body="113" legs="94" feet="132" addons="0" mount="0"/>
<parameters>
<!--MESSAGES-->
<parameter key="message_greet" value="HO-HO-HO, |PLAYERNAME| bem-vindo. Voce gostaria de um presente?"/>
<parameter key="message_farewell" value="HO-HO-HO, tenha um feliz natal, |PLAYERNAME|."/>
</parameters>
</npc>
Agora vá na pasta data/npc/scripts e crie um arquivo chamado papai_noel.lua e coloque isso dentro:
Agora vá na pasta data/actions e adicione essa tag dentro do arquivo actions.xml:
<action itemid="11401" event="script" value="giftbox.lua"/>
Agora va na pasta data/actions/scripts e crie um arquivo chamado giftbox.lua e coloque isso dentro:
local items = {
[1]=2160, --ID do item 1
[2]=2157, --ID do item 2
[3]=2121} --ID do item 3
local stor = (11401+os.date("%Y")) --Nao mexa
function onUse(cid)
if getPlayerStorageValue(cid, stor) ~= 1 then
a = math.random(1, #items)
doPlayerAddItem(cid, items[a], 1)
setPlayerStorageValue(cid, stor, 1)
else
doPlayerSendCancel(cid, "Voce ja pegou seu presente.")
end
doPlayerRemoveItem(cid, 11401, 1)
return true
end
E isso é tudo pessoal!
Créditos
Eu (@Danihcv)