2 horas atrás, wougoplex disse:Preciso de um script que quando o player da use no bau ele faz uma animação tipo o bau de adventure da pxg
Ajudaria eu e mais umonte de gente
faz uma animação onde ? explica mais detalhado
Por wougoplex, 02 de dez. de 2016 em Resolvidos
info
Grupo: Conde
Registrado: 18/01/12
Posts: 988
Reputação: +327
Gênero: Masculino
Char no Tibia: Xerife Woody

2 horas atrás, wougoplex disse:Preciso de um script que quando o player da use no bau ele faz uma animação tipo o bau de adventure da pxg
Ajudaria eu e mais umonte de gente
faz uma animação onde ? explica mais detalhado
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

Agora, DuuhCarvalho disse:
faz uma animação onde ? explica mais detalhado
Seria Assim que nem no video No final quando ele abre o bau
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

up
Pelo que notei, há uma transformação de item: o baú fechado, visivelmente, se transforma no aberto. Poderia me confirmar se essa animação dele se abrindo faz parte do segundo item (o baú aberto)?
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

8 horas atrás, zipter98 disse:Pelo que notei, há uma transformação de item: o baú fechado, visivelmente, se transforma no aberto. Poderia me confirmar se essa animação dele se abrindo faz parte do segundo item (o baú aberto)?
Ele tem tipo 5 que nem o da porta da pxg ela vai se abrindo com vc chega perto mais ja o bau ele vai abrir quando vc clickar
Os item sao assim
Seria algo assim?
local ids = {19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232}function onUse(cid, item) for i = 1, #ids do addEvent(doTransformItem, i * 100, item.uid, ids[i]) end return trueend
A tag do código de premiação do baú seria algo do tipo:
<action itemid="19232" event="script" value="código_de_premiação.lua"/>
3 horas atrás, zipter98 disse:Seria algo assim?
local ids = {19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232}function onUse(cid, item) for i = 1, #ids do addEvent(doTransformItem, i * 100, item.uid, ids[i]) end return trueendA tag do código de premiação do baú seria algo do tipo:
<action itemid="19232" event="script" value="código_de_premiação.lua"/>
poderia me dar 1 mao? é o com esse msm script mas pra a proffisao, queria q quando usar o item da proffisao stylist (2553), adventurer (11454) , Teacher (11455) no NEWID (Item que é transformado depois de cortado no caso do stylist} fizer esse efeito de se transformar em varios items aki o script
action:
-- Sistema de profissão
-- Desenvolvido por Gabriel Lucena (Drazyn1291/BielLucena1291)
--Tag: <action itemid="ITEMID;ITEMID;ITEMID;ITEMID" event="script" value="ProfessionAction.lua"/>-
function onUse(cid, item, fromPosition, itemEx, toPosition)
if not isCreature(itemEx.uid) then
if not (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) then
if ProfessionId[getPlayerProfessionId(cid)] then
cont = false
name = ""
for i = 1, #ProfessionId do
if item.itemid == ProfessionId.CollectItemId and i == getPlayerProfessionId(cid) then
cont = true
else
if item.itemid == ProfessionId.CollectItemId then
name = ProfessionId.name
end
end
end
if cont then
if ProfessionId[getPlayerProfessionId(cid)].targetItem.target == itemEx.itemid then
toPos = getThingPosition(itemEx.uid)
fromPos = getCreaturePosition(cid)
if getDistanceBetween(fromPos, toPos) <= 1 then
if getDirectionTo(fromPos, toPos) == getCreatureLookDirection(cid) then
quantItem = math.random(1, ProfessionLib.quantMax)
doCreatureSetNoMove(cid, true)
if getPlayerSex(cid) == 1 then
lp = ProfessionId[getPlayerProfessionId(cid)].looktypeM
else
lp = ProfessionId[getPlayerProfessionId(cid)].looktypeF
end
doSetCreatureOutfit(cid, {lookType = lp}, -1) -- getCreatureLookDirection(cid)
addEvent(function()
doRemoveCondition(cid, CONDITION_OUTFIT)
doCreatureSetNoMove(cid, false)
doTransformItem(getThingFromPos(toPos).uid, ProfessionId[getPlayerProfessionId(cid)].targetItem.newid)
doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.target, 15)
doPlayerAddItem(cid, ProfessionId[getPlayerProfessionId(cid)].CollectItem, quantItem)
doPlayerSendTextMessage(cid, 27, "Você recebeu "..quantItem.."x "..getItemNameById(ProfessionId[getPlayerProfessionId(cid)].CollectItem).." por fazer essa ação!")
end, ProfessionLib.OutfitTime*1000)
else
doPlayerSendCancel(cid, "Você percisa ficar de frente para esse item!")
end
else
doPlayerSendCancel(cid, "Você precisa está na frente do item!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item aqui!")
end
else
doPlayerSendCancel(cid, "Você precisa ser "..name.." para usar esse item!")
end
else
doPlayerSendCancel(cid, "Você não tem nenhuma profissão!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item enquanto estiver montado!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item aqui!")
end
return true
end
Lib
-- Sistema de profissão
-- Desenvolvido por Gabriel Lucena (Drazyn1291/BielLucena1291) e GOD Vitor.
-- Geral
ProfessionLib = {
geral_sto = 123123, -- Não mecha
OutfitTime = 8, -- Tempo em que dura a outfit
NeedVip = true, -- Se precisa de vip para mudar/virar a profissão
CostToChange = 125, -- Quantidade do itemid abaixo que vai ser usado para mudar de profissão
itemid = 2160, -- Item que vai ser usado para mudar de profissão
quantMax = 3, -- Quantidade máxima
}
ProfessionId = {
--[4] = {name = Proffision Name, looktypeM = LookType male (Coletando item), looktypeF = LookType Female, CollectItemId = Item que coleta (Ex: Machado do stylist), CollectItem = Item Que é coletado (Madeira do stylist), targetItem = {target = Item Alvo (Arvore do Stylist), newid = Item que é transformado depois de cortado}},
[1] = {name = "Stylist", looktypeM = 2387, looktypeF = 2388, CollectItemId = 2553, CollectItem = 5901, targetItem = {target = 2711, newid = 8786}},
[2] = {name = "Engineer", looktypeM = 2091, looktypeF = 2092, CollectItemId = 13327, CollectItem = 8309, targetItem = {target = 1480, newid = 7660}},
[3] = {name = "Adventurer", looktypeM = 2264, looktypeF = 2265, CollectItemId = 11454, CollectItem = 13075, targetItem = {target = 2706, newid = 2741}},
[4] = {name = "Teacher", looktypeM = 2260, looktypeF = 2261, CollectItemId = 11455, CollectItem = 13075, targetItem = {target = 2706, newid = 2741}},
}
-- NPC de troca
SellStylist = {
--{id = ID, toDo = {{id, quant}, {id, quant}}}
[1] = {id = 7866, quant = 1, level = 50, toDo = {{2666, 45}, {5901, 475}}},
[2] = {id = 7868, quant = 1, level = 80, toDo = {{12148, 15}, {5901, 580}}},
}
SellEnginner = {
--{id = ID, toDo = {{id, quant}, {id, quant}}}
[1] = {id = 2174, quant = 100, level = 10, toDo = {{2177, 10}, {2160, 2}}},
[2] = {id = 2175, quant = 10, level = 10, toDo = {{2179, 2}, {2160, 3}}},
}
SellAdventurer = {
--{id = ID, toDo = {{id, quant}, {id, quant}}}
[1] = {id = 2174, quant = 100, level = 10, toDo = {{2177, 10}, {2160, 2}}},
[2] = {id = 2175, quant = 10, level = 10, toDo = {{2179, 2}, {2160, 3}}},
}
SellTeacher = {
--{id = ID, toDo = {{id, quant}, {id, quant}}}
[1] = {id = 2174, quant = 100, level = 10, toDo = {{2177, 10}, {2160, 2}}},
[2] = {id = 2175, quant = 10, level = 10, toDo = {{2179, 2}, {2160, 3}}},
}
-- Functions
function canEnterInProfession(cid)
if ProfessionLib.NeedVip and not isPremium(cid) then
return false
end
return true
end
function existProfession(profName)
cont = false
for i = 1, #ProfessionId do
if not cont then
if ProfessionId.name == profName then
cont = true
end
end
end
return cont
end
function hasProfession(cid)
if ProfessionId[getPlayerProfessionId(cid)] then
return true
end
return false
end
function existProfession(profName)
cont = false
for i = 1, #ProfessionId do
if not cont then
if ProfessionId.name == profName then
cont = true
end
end
end
return cont
end
function getProfessionIdByName(profName)
for i = 1, #ProfessionId do
if ProfessionId.name == profName then
return i
end
end
end
function doChangeProfession(cid, id, check)
if ProfessionLib.NeedVip and not isPremium(cid) then
return false
end
if check then
if hasProfession(cid) then
return false
else
if ProfessionId[id] or id == 0 then
setPlayerStorageValue(cid, ProfessionLib.geral_sto, id)
doPlayerAddItem(cid, ProfessionId[id].CollectItemId, 1)
else
return false
end
end
else
if ProfessionId[id] or id == 0 then
setPlayerStorageValue(cid, ProfessionLib.geral_sto, id)
doPlayerAddItem(cid, ProfessionId[id].CollectItemId, 1)
else
return false
end
end
end
function getPlayerProfessionId(cid)
return getPlayerStorageValue(cid, ProfessionLib.geral_sto)
end
function getProfessionName(cid)
if hasProfession(cid) then
return ProfessionId[getPlayerProfessionId(cid)].name
end
return ""
end
function doReturnItemsWithDelay(toPosition, itemid, times)
local function doReturnItem(itemposition,oldid)
local pos = getThingfromPos(itemposition)
doTransformItem(pos.uid,oldid)
doSetItemText(pos.uid, getItemNameById(oldid))
end
addEvent(doReturnItem, times * 1000,toPosition, itemid)
end
function doConcatTable(itemsss, sep1, sep2)
str = ""
if #itemsss > 0 then
for i = 1, #itemsss do
if #itemsss > 1 then
if i ~= #itemsss then
if i ~= 1 then
str = str..sep1..itemsss
else
str = str..itemsss
end
else
str = str..sep2..itemsss
end
else
str = itemsss
end
end
end
return str
end
Troque a linha que você destacou por essa:
local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newidfor i = 1, #ids do addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])end
Agora, na lib, você deve substituir na tabela de profissões o valor newid por uma tabela contendo os itens da transformação.
Por exemplo:
targetItem = {target = 2706, newid = {2741, xxx, xxx, ...}}
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

8 horas atrás, zipter98 disse:Troque a linha que você destacou por essa:
local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newidfor i = 1, #ids do addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])endAgora, na lib, você deve substituir na tabela de profissões o valor newid por uma tabela contendo os itens da transformação.
Por exemplo:
targetItem = {target = 2706, newid = {2741, xxx, xxx, ...}}
n entedi
Isso que você citou é minha resolução para o pedido do Josegvb.
Para o seu, é a seguinte:
20 horas atrás, zipter98 disse:Seria algo assim?
local ids = {19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232}function onUse(cid, item) for i = 1, #ids do addEvent(doTransformItem, i * 100, item.uid, ids[i]) end return trueendA tag do código de premiação do baú seria algo do tipo:
<action itemid="19232" event="script" value="código_de_premiação.lua"/>
Editado Dezembro 5 por zipter98
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

9 horas atrás, zipter98 disse:Troque a linha que você destacou por essa:
local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newidfor i = 1, #ids do addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])endAgora, na lib, você deve substituir na tabela de profissões o valor newid por uma tabela contendo os itens da transformação.
Por exemplo:
targetItem = {target = 2706, newid = {2741, xxx, xxx, ...}}
[05/12/2016 21:40:52] [Error - Action Interface]
[05/12/2016 21:40:52] In a timer event called from:
[05/12/2016 21:40:52] data/actions/scripts/Tesouro Bau.lua:onUse
[05/12/2016 21:40:52] Description:
[05/12/2016 21:40:52] (luaDoTransformItem) Item not found
Já irei testar o código e editar este comentário.
PS: O código que você citou acima não é o que escrevi para você, como já disse antes.
Editado Dezembro 5 por zipter98
23 minutos atrás, wougoplex disse:n entedi
ele adaptou pra min ^^
9 horas atrás, zipter98 disse:Troque a linha que você destacou por essa:
local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newidfor i = 1, #ids do addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids[i])endAgora, na lib, você deve substituir na tabela de profissões o valor newid por uma tabela contendo os itens da transformação.
Por exemplo:
targetItem = {target = 2706, newid = {2741, xxx, xxx, ...}}
targetItem = {target = 2711, newid = 17207, 17208, 17209, 17210, 17211,17212}
[05/12/2016 19:47:53] [Error - Action Interface]
[05/12/2016 19:47:53] In a timer event called from:
[05/12/2016 19:47:53] data/actions/scripts/ProfessionAction.lua:onUse
[05/12/2016 19:47:53] Description:
[05/12/2016 19:47:53] data/actions/scripts/ProfessionAction.lua:39: attempt to get length of local 'ids' (a number value)
[05/12/2016 19:47:53] stack traceback:
[05/12/2016 19:47:53] data/actions/scripts/ProfessionAction.lua:39: in function <data/actions/scripts/ProfessionAction.lua:35>
-- Sistema de profissão
-- Desenvolvido por Gabriel Lucena (Drazyn1291/BielLucena1291)
--Tag: <action itemid="ITEMID;ITEMID;ITEMID;ITEMID" event="script" value="ProfessionAction.lua"/>-
function onUse(cid, item, fromPosition, itemEx, item2, toPosition)
if not isCreature(itemEx.uid) then
if not (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) then
if ProfessionId[getPlayerProfessionId(cid)] then
cont = false
name = ""
for i = 1, #ProfessionId do
if item.itemid == ProfessionId.CollectItemId and i == getPlayerProfessionId(cid) then
cont = true
else
if item.itemid == ProfessionId.CollectItemId then
name = ProfessionId.name
end
end
end
if cont then
if ProfessionId[getPlayerProfessionId(cid)].targetItem.target == itemEx.itemid then
toPos = getThingPosition(itemEx.uid)
fromPos = getCreaturePosition(cid)
if getDistanceBetween(fromPos, toPos) <= 1 then
if getDirectionTo(fromPos, toPos) == getCreatureLookDirection(cid) then
quantItem = math.random(1, ProfessionLib.quantMax)
doCreatureSetNoMove(cid, true)
if getPlayerSex(cid) == 1 then
lp = ProfessionId[getPlayerProfessionId(cid)].looktypeM
else
lp = ProfessionId[getPlayerProfessionId(cid)].looktypeF
end
doSetCreatureOutfit(cid, {lookType = lp, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1) -- getCreatureLookDirection(cid)
addEvent(function()
doRemoveCondition(cid, CONDITION_OUTFIT)
doCreatureSetNoMove(cid, false)
local ids = ProfessionId[getPlayerProfessionId(cid)].targetItem.newid
for i = 1, #ids do
addEvent(doTransformItem, i * 100, getThingFromPos(toPos).uid, ids)
end
doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.target, 60)
doPlayerAddItem(cid, ProfessionId[getPlayerProfessionId(cid)].CollectItem, quantItem)
doPlayerSendTextMessage(cid, 27, "Você recebeu "..quantItem.."x "..getItemNameById(ProfessionId[getPlayerProfessionId(cid)].CollectItem).." por fazer essa ação!")
end, ProfessionLib.OutfitTime*1000)
else
doPlayerSendCancel(cid, "Você percisa ficar de frente para esse item!")
end
else
doPlayerSendCancel(cid, "Você precisa está na frente do item!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item aqui!")
end
else
doPlayerSendCancel(cid, "Você precisa ser "..name.." para usar esse item!")
end
else
doPlayerSendCancel(cid, "Você não tem nenhuma profissão!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item enquanto estiver montado!")
end
else
doPlayerSendCancel(cid, "Você não pode usar esse item aqui!")
end
return true
end

O erro acontece logo q ele termina de cortar q é quando o item deberia de virar esse, tb pelo q vi só no final
tb queria ver se poderia modificar 1 pouco o script pra eles ir se tornando logo q ele usa o pick neles pq do jeito q esta paresce q a transformaçao só ira começar quando ele termina
Editado Dezembro 5 por Josegvb
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino

Agora, zipter98 disse:Já irei testar o código e editar este comentário.
PS: O código que você citou acima não é o que escrevi para você, como já disse antes.
Eu usei o 1 codigo que vc enviou
info
Grupo: Cavaleiro
Registrado: 22/07/16
Posts: 189
Reputação: +27
Gênero: Masculino
Preciso de um script que quando o player da use no bau ele faz uma animação tipo o bau de adventure da pxg
Ajudaria eu e mais umonte de gente