Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

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:

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

local item = 11401
local stor = (11402+os.date("%Y"))

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then
    if getPlayerStorageValue(cid, stor) ~= 1 then
      doPlayerAddItem(cid, item)
      doSendMagicEffect(getThingPos(cid), 13)
      selfSay('Aqui esta! Feliz natal!', cid)
      setPlayerStorageValue(cid, stor, 1)
    else
    selfSay('Voce ja pegou seu presente. Agora espalhe o espirito do natal! HO-HO-HO', cid)
    end
end
end

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

 

 

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!

Editado por danihcv (veja o histórico de edições)

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

  • 2 weeks later...
  • Respostas 22
  • Visualizações 4.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Configurei pra você, se faltar algo me avise. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreature

  • @jNo, apenas uma vez. Vou ver se atualizo hoje para 1 vez por ano. @Rafaelpk20, e do jeito que eu coloquei, como fica? Funcionou direito?

  • Isso quer dizer que não foi possível encontrar o arquivo papai_noel.lua Ou seja, deve ter havido algum engano na hora de colocar o nome do arquivo .lua do papai noel dentro da pasta scripts. Peço

Postado

fiz tudo do tuto, mas olha uq deu:

Lembrando que meu sv é 10.53 tfs 1.0

 

[Warning - NpcScript::NpcScript] Can not load script: data/npc/scripts/papai_noel.lua
cannot open data/npc/scripts/data/npc/scripts/papai_noel.lua: No such file or directory

Editado por rafaelpk20 (veja o histórico de edições)

GOSTOU? ;D AJUDEI DE ALGUMA FORMA? REP+ :rock: , clica em Gostei.

 

Postado
  • Autor

Isso quer dizer que não foi possível encontrar o arquivo papai_noel.lua

Ou seja, deve ter havido algum engano na hora de colocar o nome do arquivo .lua do papai noel dentro da pasta scripts.

Peço que reveja os nomes dos arquivos se estão corretos e nos devidos diretórios.

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Postado

Tem só um errinho básico na action: usando doPlayerRemoveItem, o item não será removido caso esteja sendo usado de outro lugar que não seja a bag do player (por exemplo, no chão).

Para corrigir isso, basta trocar o: 

doPlayerRemoveItem(cid, 11401, 1)

Por:

doRemoveItem(item.uid, 1)

De resto, nice code. ^^

não respondo pms solicitando suporte em programação/scripting

Postado

Isso quer dizer que não foi possível encontrar o arquivo papai_noel.lua

Ou seja, deve ter havido algum engano na hora de colocar o nome do arquivo .lua do papai noel dentro da pasta scripts.

Peço que reveja os nomes dos arquivos se estão corretos e nos devidos diretórios.

ok, vamos la,
verificando na pasta npc: tudo certo, Papai Noel.xml ta ali.
verificando na pasta npc/scripts: papai_noel.lua ta ali tbm.
verificando tag na actions: ok, a tag esta la
verificando actions/script  ok giftbox.lua esta la
tudo verificado, mas o erro quando tento sumonar o npc ainda ta acontecendo
 
P.S testei o item 11401 e de fato esta funcionando normalmente, sendo assim, com a action ta tudo ok, o problema ta no npc,
deve ter algum comando errado, pois nunca vi isso de data/npc/scripts/data/npc.... ou seja, ele ta tentando abrir 2x 
tentei sumonar outro npc e funcionou normal, sendo assim, o problema deve ta no npc papai noel.xml eu acho.
 
 
[Warning - NpcScript::NpcScript] Can not load script: data/npc/scripts/papai_noel.lua
cannot open data/npc/scripts/data/npc/scripts/papai_noel.lua: No such file or directory

Editado por rafaelpk20 (veja o histórico de edições)

GOSTOU? ;D AJUDEI DE ALGUMA FORMA? REP+ :rock: , clica em Gostei.

 

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo