Ir para conteúdo

Featured Replies

  • Respostas 8
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • 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

  • Muito boa a aula Max, meus parabéns! Tópico impecável na organização e conteúdo

  • Obrigado. Tô com vontade de fazer mais tutoriais, se alguém tiver alguma dúvida aí!

Postado

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"/>

  • 1 year later...
Postado
  Em 27/10/2012 em 15:43, MaXwEllDeN disse:

 

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? hum.jpg

– É simples.

700zUt.png

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:

Mostrar conteúdo oculto

Tag:

É isso aí pessoal, essa foi a primeira aula de Scriptwriting que eu escreví, espero que gostem :3

 

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