DU
script

Tutorial Básico Actions

Por DuuhCarvalho, 21 de fev. de 2014 em Tutoriais de Scripting

actions
tutorial
tutorial basico actions
duuh
carvalho
otserv
tibia
11
4.3k
21 de fevereiro de 2014 às 03:22

Actions, são scripts que são executado quando o Player * dar Use ou Use With * em algum item .

 

 

Funções usadas para começar um script em Actions :

function onUse(cid, item, frompos, item2, topos) -- Ao dar Use no item .

function onUse(cid, item, fromPosition, itemEx, toPosition) -- ao dar Use with .. (Usar o item em algo)

Valores de Armazenamento : (Você não tem que configurar)

cid = Player que está usando o item.
item = Item que está usando .
fromPosition = Posição que to usando o item.
toPosition = Para posição
itemEx = Se o Personagem está usando o item em algo . (contém dados de "algo")

Exemplo de Script : onUse .

function onUse(cid, item, frompos, item2, topos)

local level = 100
local pos = {x= 160, y= 54, z= 7}

   if getPlayerLevel(cid) >= level then
      doTeleportThing(cid, pos)
   else
      doPlayerSendTextMessage(cid, "Você precisa ter Level "..level.." ou mais.", 22)
   end
   
return TRUE
end

Entendendo...

 

Ao dar use no item. (definido em Action.Xml)

Se o Player(cid) tiver level maior ou igual a 100 então o mesmo será teleportado para posicão X (no caso 160, 54, 7) .

 

Tag em Actions.Xml :

 <action itemid="IDdoItem" script="NomedoArquivo.lua" />

Script com itemEx .

function onUse(cid, item, fromPosition, itemEx, toPosition)

local pos = {x= 160,y= 54,z= 7}


  if itemEx.itemid == 7131 then
      doTeleportThing(cid, pos)
  else
      doPlayerSendCancel(cid, "Você está usando o item no Lugar Errado")
  end


return TRUE
end

Entendendo ...

 

O item com use with será definido em Actions.Xml .

Ao usar o item (item com use with) em algo .

Se "algo" (itemEx.itemid) for 7131.. Se o Player tiver usando o item(com use with) no item 7131 então , o Player será teleportado para posição X.

 

Tag em Actions.Xml:

 <action itemid="IDdoItem" script="NomedoArquivo.lua" />

IDdoItem = Item com use With .

 

Para criar um novo script vá em data / actions / scripts e crie um novo Arquivo.lua

Depois é so colocar a tag em data / actions / Action.Xml.

 

 

Algumas Funções get, set, do ... Você encontra Aqui ! .

Editado Fevereiro 25 por DuuhCarvalho

dyego2008D
21 de fevereiro de 2014 às 03:33

Eu gostei bem explicado, obrigado DuuhCarvalho

Editado Fevereiro 21 por dyego2008

21 de fevereiro de 2014 às 05:49

Parabéns man, se vem trazendo bons conteúdos pro Forúm, ganhou meu REP+

 

 

Faz agora um de Creature explicando como adicionar algumas funções que a Distro pode não ter.

LegnusL
21 de fevereiro de 2014 às 09:05

Acho que você também deveria ter explicado sobre as tabelas, já que a usou. Se o cara for bem iniciante, ficaria um pouco confuso.

Tirando isso, bem explicado. Rep+

21 de fevereiro de 2014 às 12:55

Parabéns man, se vem trazendo bons conteúdos pro Forúm, ganhou meu REP+

 

 

Faz agora um de Creature explicando como adicionar algumas funções que a Distro pode não ter.

 

logo mais criarei novos tutoriais , vamos ver no que dá .

 

 

Acho que você também deveria ter explicado sobre as tabelas, já que a usou. Se o cara for bem iniciante, ficaria um pouco confuso.

Tirando isso, bem explicado. Rep+

 

Da próxima explicarei, mais é só um básico mesmo .

edu6279E
22 de fevereiro de 2014 às 09:00

Parabens, bem explicado e simples

vlw rep+

SeKtooRS
22 de fevereiro de 2014 às 11:55

Na segunda tag .xml, acho que deveria ter AllowFarUse so para lembrar.

Editado Fevereiro 22 por SeKtooR

24 de fevereiro de 2014 às 12:30

Na segunda tag .xml, acho que deveria ter AllowFarUse so para lembrar.

 

deveria não ;s

Base, script para quests :

 

edit--

 

Actions é mais usados para fazer quests então para que deseja fazer a sua, use isso como base ..

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid, 12345) <= 0 then
   ...
     setPlayerStorageValue(cid, 12345, 1)
   else
   ...
end

return TRUE
end

entendendo ..

if getPlayerStorageValue(cid, 12345) <= 0 then

verifica se a storage (12345) do player é menor ou igual a 0, se sim então ..

acontecer oque você colocar no script. Ex : doPlayerAddItem(cid, 2160, 100) - o player vai ganhar 1 kk.

---

     setPlayerStorageValue(cid, 12345, 1)

mudar para 1 a storage (12345) , assim o player só vai poder fazer a quest 1 vez !.

----

else

se a storage (12345) não for menor ou igual a 0.. se for maiior ! então..

acontece oq você colocar no script . EX : doPlayerSendCancel(cid, "Você já fez essa Quest.") -- vai mandar uma mensagem pro player falando que ele já fez a quest.

----

end

finaliza o If ("se")

 

 

 

alguém pode fazer um script baseado no tutorial ..

Editado Fevereiro 24 por DuuhCarvalho

vital900V
25 de fevereiro de 2014 às 10:53

Tutorial aprovado, e movido.

02 de março de 2014 às 08:56

Achei meio fraco...

 

function onUse(cid, item, frompos, item2, topos) -- Ao dar Use no item .
function onUse(cid, item, fromPosition, itemEx, toPosition) -- ao dar Use with .. (Usar o item em algo)
vc não ensinou como usar os parâmetros da função...
fromPosition e toPosition, não servem apenas para use with
02 de março de 2014 às 10:39

 

Achei meio fraco...

 

function onUse(cid, item, frompos, item2, topos) -- Ao dar Use no item .
function onUse(cid, item, fromPosition, itemEx, toPosition) -- ao dar Use with .. (Usar o item em algo)
vc não ensinou como usar os parâmetros da função...
fromPosition e toPosition, não servem apenas para use with

 

 

Amigo ninguém falou que fromPosition e toPosition serve apenas para use with.

É só um tutorial básico que de certa forma já deve ter ajudado muitos membros !