Ir para conteúdo
  • 0

Unique Item?


Amantezinho

Pergunta

Estava usando o unique item do PDA (num server com Icon System) porém ele dava duplo moveevent e tal, retirei o antigo e deixei só o do Unique, mas não funciona, os itens ID continuam "dropaveis".
Eu tenho que atribuir o UNIQUE numa quest e tal ou todos os ids citados serão não dropaveis?

 

 

 

function giveBack(item) --alterado v1.8 peguem o script todo!

local cid = getPlayerByName(getItemAttribute(item.uid, "unique"))
local name = getItemAttribute(item.uid, "unique")
local attr = getBallsAttributes(item.uid)
local sendMail = false
---------------------------------- --alterado v1.9.1 \/
if not isCreature(cid) then
doRemoveItem(item.uid, 1)
return true
elseif (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then
item2 = doCreateItemEx(item.itemid)
sendMail = true
else
item2 = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, item.itemid, 1)
end
----------------------------------
for a, b in pairs(attr) do
if b then
doItemSetAttribute(item2, a, b)
else
doItemEraseAttribute(item2, a)
end
end
if sendMail then
doPlayerSendMailByName(name, item2, 1)
end
doRemoveItem(item.uid, 1)
end
function onAddItem(moveitem, tileitem, position, cid)
if isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. You can't throw away this item!")
end
end
else
if getItemAttribute(moveitem.uid, "unique") then
if unLock(moveitem.uid) then
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item, you can't throw away this item!")
end
end
return true
end
function onRemoveItem(moveitem, tileitem, position, cid)
if not moveitem or not moveitem.uid then return true end
--alterado v1.6.1
if moveitem.uid ~= 0 and isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do --alterado v1.8
if not tonumber(getItemAttribute(itens[a].uid, "unique")) and getItemAttribute(itens[a].uid, "unique") ~= getCreatureName(cid) then
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. This item don't belongs to you! It will be sent to this owner!")
end
end
else
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "boosting") and getItemAttribute(moveitem.uid, "boosting") >= 1 then
return true --alterado v1.9.1
end
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "unique") and not tonumber(getItemAttribute(moveitem.uid, "unique")) and getItemAttribute(moveitem.uid, "unique") ~= getCreatureName(cid) then
if unLock(moveitem.uid) then --alterado v1.8
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item! This item don't belongs to you! It will be sent to this owner!")
end
end
return true
end

 

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Não há nenhum Script de UniqueItem funcional? D:

Tô usando o PFIELD

Se não tiver sources, creio que não. Então teste o que citei acima, se não crashar, eu tento passar um sistema funcional, porque podem derrubar seu servidor com esse bug.
Link para o comentário
Compartilhar em outros sites

  • 0

Qualquer Unique Item pode causar, basta jogá-lo no teleport preto. Mas não sei se tem esse bug em sua base, por isso pedi para testar.

O problema do meu unique it script é que ele Não funciona msm, posso jogar em qualquer lugar, não vem a msg, nem nada.

Link para o comentário
Compartilhar em outros sites

  • 0

O problema do meu unique it script é que ele Não funciona msm, posso jogar em qualquer lugar, não vem a msg, nem nada.

Tenta assim: data/movements/scripts/Uniqueitem.lua:

 

function giveBack(item)

local cid = getPlayerByName(getItemAttribute(item.uid, "unique"))
local name = getItemAttribute(item.uid, "unique")
local attr = getBallsAttributes(item.uid)
local sendMail = false
----------------------------------
if not isCreature(cid) then
doRemoveItem(item.uid, 1)
return true
elseif (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then
item2 = doCreateItemEx(item.itemid)
sendMail = true
else
item2 = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, item.itemid, 1)
end
----------------------------------
for a, b in pairs(attr) do
if b then
doItemSetAttribute(item2, a, b)
else
doItemEraseAttribute(item2, a)
end
end
if sendMail then
doPlayerSendMailByName(name, item2, 1)
end
doRemoveItem(item.uid, 1)
end
function onAddItem(moveitem, tileitem, position, cid)
if isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. You can't throw away this item!")
end
end
else
if getItemAttribute(moveitem.uid, "unique") then
if unLock(moveitem.uid) then
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item, you can't throw away this item!")
end
end
return true
end
function onRemoveItem(moveitem, tileitem, position, cid)
if not moveitem or not moveitem.uid then return true end
if moveitem.uid ~= 0 and isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do
if not tonumber(getItemAttribute(itens[a].uid, "unique")) and getItemAttribute(itens[a].uid, "unique") ~= getCreatureName(cid) then
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. This item don't belongs to you! It will be sent to this owner!")
end
end
else
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "boosting") and getItemAttribute(moveitem.uid, "boosting") >= 1 then
return true
end
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "unique") and not tonumber(getItemAttribute(moveitem.uid, "unique")) and getItemAttribute(moveitem.uid, "unique") ~= getCreatureName(cid) then
if unLock(moveitem.uid) then
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item! This item don't belongs to you! It will be sent to this owner!")
end
end
return true
end

data/movements/movements.xml:

<movevent type="AddItem" itemid="ITEM1;ITEM2;ITEM3" event="script" value="UniqueItem.lua"/>

Link para o comentário
Compartilhar em outros sites

  • 0

 

Tenta assim: data/movements/scripts/Uniqueitem.lua:

 

function giveBack(item)

local cid = getPlayerByName(getItemAttribute(item.uid, "unique"))
local name = getItemAttribute(item.uid, "unique")
local attr = getBallsAttributes(item.uid)
local sendMail = false
----------------------------------
if not isCreature(cid) then
doRemoveItem(item.uid, 1)
return true
elseif (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then
item2 = doCreateItemEx(item.itemid)
sendMail = true
else
item2 = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, item.itemid, 1)
end
----------------------------------
for a, b in pairs(attr) do
if b then
doItemSetAttribute(item2, a, b)
else
doItemEraseAttribute(item2, a)
end
end
if sendMail then
doPlayerSendMailByName(name, item2, 1)
end
doRemoveItem(item.uid, 1)
end
function onAddItem(moveitem, tileitem, position, cid)
if isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. You can't throw away this item!")
end
end
else
if getItemAttribute(moveitem.uid, "unique") then
if unLock(moveitem.uid) then
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item, you can't throw away this item!")
end
end
return true
end
function onRemoveItem(moveitem, tileitem, position, cid)
if not moveitem or not moveitem.uid then return true end
if moveitem.uid ~= 0 and isContainer(moveitem.uid) then
local itens = getItensUniquesInContainer(moveitem.uid)
local sendMsg = false
if #itens >= 1 then
for a = 1, #itens do
if not tonumber(getItemAttribute(itens[a].uid, "unique")) and getItemAttribute(itens[a].uid, "unique") ~= getCreatureName(cid) then
if unLock(itens[a].uid) then
else
giveBack(itens[a])
sendMsg = true
end
end
end
if sendMsg then
doPlayerSendTextMessage(cid, 20, "A item in this container is a Unique Item. This item don't belongs to you! It will be sent to this owner!")
end
end
else
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "boosting") and getItemAttribute(moveitem.uid, "boosting") >= 1 then
return true
end
if moveitem.uid ~= 0 and getItemAttribute(moveitem.uid, "unique") and not tonumber(getItemAttribute(moveitem.uid, "unique")) and getItemAttribute(moveitem.uid, "unique") ~= getCreatureName(cid) then
if unLock(moveitem.uid) then
return true
end
giveBack(moveitem)
doPlayerSendTextMessage(cid, 20, "It is a Unique Item! This item don't belongs to you! It will be sent to this owner!")
end
end
return true
end

data/movements/movements.xml:

<movevent type="AddItem" itemid="ITEM1;ITEM2;ITEM3" event="script" value="UniqueItem.lua"/>

 

Tais itens ficarão Uniques ou tem que fazer missão pra adicionar esses itens e tal? Tipo... Tal baú adicionará o item e nesse script do baú terá o comando para deixar o item Unique? :s

Pq tô tentando e nada, dá de jogar pro chão do mesmo jeito.

Até tentei dar /attr Unique numa ball e nada.

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

  • 0

Tais itens ficarão Uniques ou tem que fazer missão pra adicionar esses itens e tal? Tipo... Tal baú adicionará o item e nesse script do baú terá o comando para deixar o item Unique? :s

Pq tô tentando e nada, dá de jogar pro chão do mesmo jeito.

Até tentei dar /attr Unique numa ball e nada.

 

Coloca o ID dos itens na tag, aí serão Unique.

OBS: Não testei o sitstema.

Link para o comentário
Compartilhar em outros sites

  • 0

:/
Será que não há um jeito de impedir que todas as balls sejam injogáveis no chão? Meu projeto não vai permitir o drop de pokeballs.
Obs: Eu tenho as sources do projeto.
(o problema será compilar elas, o meu Dev C++ não tem as libs e vive dando erro na parte de Creatureevent :x )

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

×
×
  • Criar Novo...