Ir para conteúdo

Sample Items


Skyen

Posts Recomendados

Não usem com itens stackables.

 

Vou postar alguns scripts meus que estiveram engavetados. Faz algum tempo que fiz estes scripts, então não vou postar screenshots ou como configurar, mas as configurações são fáceis de entender, então divirtam-se.

 

Este é um sisteminha bem simples: Coloque uma ActionID (configurável nos .xml) em um item, e ele ficará imóvel e inutilizável, servido apenas como item de exibição. Bom para fazer lojas sem aquelas bancadas pra bloquear o caminho do player. Ele não conseguirá arrastar o item nem usar, então você pode colocar o item no meio da sala, em um lugar que todos possam chegar perto. Quando algum player dá look no item, vai ser exibido no final da descrição que o item é só de exposição.

 

/data/actions/scripts/sample.lua

-- This script is part of Sample Items
-- Copyright (C) 2011 Skyen Hasus
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.

function onUse(cid, item)
if not isPlayer(cid) then
	return true
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_CANNOTUSETHISOBJECT)
return true
end


 

/data/actions/actions.xml

<!-- Sample Items -->
<action actionid="9000" event="script" value="sample.lua"/>


 

/data/creaturescripts/scripts/login.lua

registerCreatureEvent(cid, "SampleItems")


 

/data/creaturescripts/scripts/sample.lua

-- This script is part of Sample Items
-- Copyright (C) 2011 Skyen Hasus
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.

local actionid = 9000
local message = "This item is just a sample."

function onLook(cid, thing, pos, dist)
local descr
if not isPlayer(cid) or thing.actionid ~= 9000 then
	return true
end

descr = getItemInfo(thing.itemid).description
if descr then
	descr = descr .. " "
end
descr = (descr or "") .. message

doItemSetAttribute(thing.uid, "description", descr)

return true
end


 

/data/creaturescripts/creaturescripts.xml

<!-- Sample Items -->
<event type="look" name="SampleItems" event="script" value="sample.lua"/>


 

/data/movements/scripts/sample.lua

-- This script is part of Sample Items
-- Copyright (C) 2011 Skyen Hasus
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program.  If not, see <http://www.gnu.org/licenses/>.

function onRemoveItem(item, tile, lastpos, cid)
if not isPlayer(cid) then
	return true
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTMOVEABLE)
doTeleportThing(item.uid, lastpos, true)
return true
end


 

/data/movements/movements.xml

<!-- Sample Items -->
<movevent type="RemoveItem" actionid="9000" event="script" value="sample.lua"/>


Editado por Skyen
Link para o comentário
Compartilhar em outros sites

serio q da pra usar soh doTeleportThing pra isso? uhuaha e eu fiz mó rolo pra fazer um sistema de 'unique item' kk

 

 

edit:

aki quando movimenta o item, da a msg e da erro no console o.O

[13/01/2013 19:26:51] [Error - MoveEvents Interface]
[13/01/2013 19:26:51] data/movements/scripts/Itens Imoveis.lua:onRemoveItem
[13/01/2013 19:26:51] Description:
[13/01/2013 19:26:51] (luaDoTeleportThing) Thing not found

 

edit2: alias da o erro soh em alguns items o.O outros o script funciona perfeitamente...

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

estou com o mesmo poblema do slicer /\ huahu

 

e parabens pelo script ^^

Já falei com ele por PM, vou tentar descobrir o que é. Pode me mandar o ID dos itens que estão dando erro?

Link para o comentário
Compartilhar em outros sites

aki tem alguns..

 

6097

5944

5902

5901

5897

5898

5893

5895

5896

 

o mais engraçado eh q com alguns itens funciona kk e quando n funciona dai o item perde o actionID e da o erro ali no console ;x

Link para o comentário
Compartilhar em outros sites

O erro é um problema do próprio open tibia. O onRemoveItem está dando uid=0 pra itens "stackable" e também para o tile. Não posso arrumar isso, é um bug (ou não) do próprio open tibia.

 

Não usem com itens stackables.

Link para o comentário
Compartilhar em outros sites

eh ta explicado pq perde o aid depois de mover e pq soh funciona com alguns itens... vo refazer os itens aki q eu vo usar botando not moveable ms... '--' vlw ms assim mano

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...