Ir para conteúdo

Featured Replies

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

Top Posters In This Topic

Most Popular Posts

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