Ir para conteúdo
  • 0

(resolvido) [PEDIDO] Bau


wougoplex

Pergunta

Posts Recomendados

  • 1

Naquela parte da tabela, troque:

targetItem = {target = 2711, newid = {17207, 17208, 17209, 17210, 17211, 17212}}

por:

targetItem = {target = 2711, newid = {17207, 17208, 17209, 17210, 17211, 17212}, transformBack = {17213, 17214, 17215, 2711}}

Em transformBack, você configura, na ordem de transformação, o ID dos itens que fazem parte do crescimento da árvore.

 

Depois, troque:

doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.target, 60)

por:

doReturnItemsWithDelay(toPos, ProfessionId[getPlayerProfessionId(cid)].targetItem.transformBack, 20, 1)

20 é o intervalo, em segundos, entre cada transformação.

 

Na lib, troque:

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

por:

function doReturnItemsWithDelay(toPosition, ids, time_interval, i)    if i > #ids then return true end        addEvent(function()        local item = getThingfromPos(toPosition).uid                doTransformItem(item, ids[i])        addEvent(doReturnItemsWithDelay, time_interval * 1000, toPosition, ids, time_interval, i + 1)    end, time_interval * 1000)end

 

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

  • 0

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)?

Link para o comentário
Compartilhar em outros sites

  • 0
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 

items.png

items.png.65665fab332871588c4d961e4ebd4e44.png

Link para o comentário
Compartilhar em outros sites

  • 0

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"/>

 

Link para o comentário
Compartilhar em outros sites

  • 0
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 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"/>

 

 

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:

Spoiler

-- 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

Spoiler

-- 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

 

Link para o comentário
Compartilhar em outros sites

  • 0

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, ...}}

 

Link para o comentário
Compartilhar em outros sites

  • 0
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])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, ...}}

 

n entedi 

Link para o comentário
Compartilhar em outros sites

  • 0

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 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"/>

 

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

  • 0
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])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, ...}}

 

[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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0
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])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, ...}}

 

 

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>

 

Spoiler

-- 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

 

4688b4c89aa6f8bb5bd3f1afcc4d7975.gif

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 por Josegvb
Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...