Postado Julho 12, 2019 5 anos @Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril. local config = { [1445] = { str = 5050512, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 50505326, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end No login.lua adicione isso: local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 1) end end O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril. OBS: Lembre-se de não deixar as storages iguais. Editado Julho 12, 2019 5 anos por JoviM (veja o histórico de edições)
Postado Julho 12, 2019 5 anos Autor 1 hora atrás, JoviM disse: @Aldimun Para configurar é bem simples, segue como está no script e gg. Entre os colchetes [...] vai o id do barril. local config = { [1445] = { str = 5050512, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 50505326, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end No login.lua adicione isso: local barrelStr = {11231231, 123123123, 1231231} -- Todas as storages dos barris for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 1) end end O código acima vai fazer com que todos os player, ao logar, recebam a storage 1, assim não ocorrerá erro no contador de usos lá no barril. OBS: Lembre-se de não deixar as storages iguais. Dúvida de leigo... Adiciono o script como actions?
Postado Julho 13, 2019 5 anos Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro. Spoiler local config = { [1445] = { str = 264017, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 264028, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end Em data/actions, abra o arquivo actions.xml e adicione esta tag: <action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/> Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril. Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione: local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 0) end end OBS: As storages de cada barril precisam ser diferentes uma da outra. Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros.
Postado Julho 13, 2019 5 anos Me soou como gambiarra esse script. Você chegou a testar dar use com 2 players, reiniciar o server, logar com apenas um dos jogadores e checara quantidade de cargas? Editado Julho 13, 2019 5 anos por marcot (veja o histórico de edições)
Postado Julho 13, 2019 5 anos Autor 5 horas atrás, JoviM disse: Em data/actions/scripts, crie um arquivo .lua, nomeie-o e cole o código dentro. Mostrar conteúdo oculto local config = { [1445] = { str = 264017, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7618 -- ID potion }, [3365] = { str = 264028, -- Storage uses = 2, -- Quantas vezes pode usar o barril flask = 7636, -- ID flask potion = 7620 -- ID potion } } function onUse(cid, item, fromPosition, itemEx, toPosition) local barrel = config[item.itemid] if barrel then if getPlayerStorageValue(cid, barrel.str) < barrel.uses then local flasks = getPlayerItemCount(cid, barrel.flask) if flasks > 0 then doPlayerRemoveItem(cid, barrel.flask, flasks) doPlayerAddItem(cid, barrel.potion, flasks) setPlayerStorageValue(cid, barrel.str, (getPlayerStorageValue(cid, barrel.str) + 1)) else doPlayerSendTextMessage(cid, 27, "You don't have empty potion flasks.") end else doPlayerSendTextMessage(cid, 23, "It is empty.") end end return true end Em data/actions, abra o arquivo actions.xml e adicione esta tag: <action itemid="1445;3365" event="script" value="SEU ARQUIVO.lua"/> Em itemid você passa o id dos barris e separa eles por vírgulas, assim você não precisa criar 1 tag para cada barril. Em data/creaturescripts/scripts, abra o login.lua e procure pela função onLogin(cid). Abaixo dela adicione: local barrelStr = {264017, 264028} -- Coloque aqui as storages de cada barril for i,_ in ipairs(barrelStr) do if getPlayerStorageValue(cid, barrelStr[i]) < 0 then setPlayerStorageValue(cid, barrelStr[i], 0) end end OBS: As storages de cada barril precisam ser diferentes uma da outra. Esse script que você vai adicionar em creaturescripts é pra que quando o player logue ele já receba a storage 0 e a contagem de usos (quantas vezes ele poderá usar o barril) ocorra sem erros. obrigado @JoviM pelo tutorial rsrs Ao iniciar o server, recebi o seguinte erro; Consegue me ajudar?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.