Postado Janeiro 6, 2013 12 anos Belo tópico max. function onUse(cid, item, fromPosition, itemEx, toPosition) return isCreature(itemEx.uid) and doPlayerSay(itemEx.uid, "Aí isso doi", 1) end <action itemid ="N SEI ID" event ="script" value ="Nome_do_script.lua"/>
Postado Dezembro 7, 2014 10 anos Como funcionam os Scripts? Você já deve ter se perguntado como os scripts funcionam ou não. Por exemplo: Como o servidor sabe que quando eu apertar com o botão direito em um Health Potion ele terá que healar o player alvo? Em primeiro lugar devemos entender o que são callbacks. Do modo mais simples callback é algo que acontece devido a uma reação, é como a Terceira Lei de Newton que diz que toda ação gera uma reação, esse callback é a nossa reção, é uma função que vai ser executada assim que algo acontecer, no caso do Health Potion assim que ele for usado. Quando um item é usado ele provoca a chamada de um callback dessa função: function onUse(cid, item, fromPosition, itemEx, toPosition) end – Max, que parâmetros são esses? – É simples. fromPosition - Essa é a posição que os Potions estavam quando eu usei eles. itemEx - Se o alvo for um item vai retornar uma tabela igual à item, mas com as informações do item-alvo. Se o alvo for uma criatura, o itemEx.uid, será o CreatureID do alvo. toPosition - Retorna uma tabela da posição do alvo(Do SQM que estava na mira do Crosshair). O Script do Health Potion ficaria +/- assim: local config = { min_heal = 100, -- Minimo que vai healar max_heal = 200, -- Máximo que vai healar empty = 7636, -- Id do Potion vazio } function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then doCreatureSay(cid, "Aaaah...", 19) doSendMagicEffect(toPosition, 12) doCreatureAddHealth(itemEx.uid, math.random(config.min_heal, config.max_heal)) doTransformItem(item.uid, config.empty) else doPlayerSendCancel(cid, "You cannot use this object.") end return true end Bem, esse aí é o script, agora só é você salvar, colocar na sua pasta actions/scripts e pronto! – Max, se existem vários scripts na pasta actions/scripts, como meu OT sabe qual usar? – Por causa das chamadas TAGs. – TAGs? – Sim, é uma linha que é colocada no .xml para dizer ao seu servido que o Callback para um item x será a função daquele script. As Tags das actions seguem esse modelo: <action itemid = "7618" event = "script" value = "HealthPotion.lua" /> Exercício: Crie uma Action que quando eu usar uma Warlord Sword em alguém essa pessoa diga "Aí, isso doi". Poste a TAG também! Resposta SÓ ABRA DEPOIS DE RESOLVER: function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then doCreatureSay(itemEx.uid, "Aí isso doi", 1) end return true end Tag: <action itemid = "2408" event = "script" value = "Warlord.lua"/> É isso aí pessoal, essa foi a primeira aula de Scriptwriting que eu escreví, espero que gostem :3
Postado Dezembro 7, 2014 10 anos Autor Função para remover caixa doRemoveItem(itemUID, quantidade) Função para adicionar um item: doPlayerAddItem(cid, itemID, QuantidadeItem)
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.