Postado Dezembro 26, 2014 10 anos 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 Janeiro 4, 2015 10 anos por danihcv (veja o histórico de edições) Te ajudei?? REP + e ficamos quites... http://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'> Atenciosamente, Daniel. Abraços! Meus tutoriais: Programação: Resolvendo QUALQUER erro na data base. Scripts (system's, creaturescripts, mod's, NPC's, etc): (Sistema) GOD Ambient Light Full. Adicionando novas mounts ao servidor [NPC] Papai Noel que dá presente todo ano. Web-site: Resolvendo problema de caracteres especiais em PHP Formatando textos em PHP! Mudando a cor, tamanho, fonte, etc. Criando e configurando tabelas para paginas PHP
Postado Janeiro 3, 2015 10 anos 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 Janeiro 3, 2015 10 anos por rafaelpk20 (veja o histórico de edições) GOSTOU? AJUDEI DE ALGUMA FORMA? REP+ , clica em Gostei.
Postado Janeiro 3, 2015 10 anos 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... http://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'> Atenciosamente, Daniel. Abraços! Meus tutoriais: Programação: Resolvendo QUALQUER erro na data base. Scripts (system's, creaturescripts, mod's, NPC's, etc): (Sistema) GOD Ambient Light Full. Adicionando novas mounts ao servidor [NPC] Papai Noel que dá presente todo ano. Web-site: Resolvendo problema de caracteres especiais em PHP Formatando textos em PHP! Mudando a cor, tamanho, fonte, etc. Criando e configurando tabelas para paginas PHP
Postado Janeiro 3, 2015 10 anos 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 Janeiro 3, 2015 10 anos 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 Janeiro 3, 2015 10 anos por rafaelpk20 (veja o histórico de edições) GOSTOU? AJUDEI DE ALGUMA FORMA? REP+ , 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.