Olá galera,sou eu de novo com meu segundo script,esse tenho certeza que vai ajudar muito mais que o ultimo.
Explicando: É um script de quest,que da um BP com itens dentro,quantos itens você quiser.
OBS:Aqui no forum achei um script desse de quest de multiplos itens,porém encontrei alguns erros nele,ele era assim,você clicava no chest,e ganhava uma bp com itens dentro,até aí tudo bem,mas se você clicasse outra vez no chest,você ganhava outra BP vazia,isso fazia uma bagunça,isso ocorreu porque a BP que regia a Action era uma bp "independente" ou seja uma bp sem codificação,não existia um storage nela,aí o player podia dropar a bp infinitas x,porém a bp vinha vazia...
créditos 50% meu que montei e corrigi o erro e 50% do criador que não sei quem é!
Vá na pasta data/actions/scripts crie um arquivo.lua e o renomeie para "multichest.lua" sem as aspas!
cole a seguinte função:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 7778 then
queststatus = getPlayerStorageValue(cid,7778)
if queststatus == -1 then
doPlayerSendTextMessage(cid,22,"Voce Ganhou um Tera Set!.")
local bp = doPlayerAddItem(cid, 1991, 1) --
doAddContainerItem(bp, 7884, 1)
doAddContainerItem(bp, 7903, 1)
doAddContainerItem(bp, 7885, 2)
doAddContainerItem(bp, 7887, 1)
setPlayerStorageValue(cid,7778,1)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
else
return 0
end
return 1
end
Modifique a seu gosto salve e feche!
tem essa forma aqui também!
function onUse(cid, item, frompos, item2, topos)
local items = {
[7884] = 1, --Tabela, para facilitar a configuração. Configuração: [id do item] = quantida
[7903] = 1,
[7885] = 2,
[7887] = 1,
}
if item.uid == 7778 then
queststatus = getPlayerStorageValue(cid,7778)
if queststatus == -1 then
doPlayerSendTextMessage(cid, 22, "Voce Ganhou um Tera Set!.")
local bp = doPlayerAddItem(cid, 1991, 1)
for a, b in pairs(items) do --looping da tabela items: a = id do item, b = quantidade. Esse "a" generaliza todos os IDs; já "b", todas as quantidades (e seus respectivos items).
for i = 1, b do --looping: sem esse looping, a quantidade seria sempre 1.
doAddContainerItem(bp, a, 1) --Sendo a = ids configurados na tabela items; esse 1 foi alterado no looping acima, para ter como valor a quantidade "b".
end
end
setPlayerStorageValue(cid,7778,1)
else
doPlayerSendTextMessage(cid, 22, "It is empty.")
end
else
return 0
end
return 1
end
qualquer uma das 2 funções que você usar vai dar certo,a diferença é que a de baixo tem tabela,OBS o meu script é o primeiro,esse segundo é do zipter98 créditos pra ele. Use a que você achar mais fácil,as 2 tem a msm função.
Agora na pasta data/actions/actions.xml cole essa tag:
<action uniqueid="7778" script="multichest.lua" />
salve e feche,e dps no map editor coloque o unique id 7778 no item que você quiser,não precisa ser um chest,pode ser numa statue,num tile,numa wall,qualquer coisa que possa ser add um unique id,Certo?
O que você precisa saber?
Primeira linha= não meche
Segunda linha = Unique id coloque o que você quiser desde q n exista no seu serv
Terceira linha = Storage coloque o que você quiser que ainda n exista
quarta linha = n meche nela
quinta linha = msg que vai receber ao clicar no chest
sexta linha = id da bp que vai ser dropada com os itens dentro
apartir da sexta linha = os itens que estarão dentro da bp
setPlayerStorageValue(cid,7778,1) = é o storage que o player vai ganhar, lembre-se dos prefixos, "Set" = Ganhar "get"=Checar
não mecha nos else,nos return e nos end,se n vai dar zebra.
doPlayerSendTextMessage(cid,22,"It is empty.") esse é a msg que o player vai receber quando concluir
LEIA IMPORTANTE= É interessante você colocar um storage diferente do Uid,porque se você colocar um tile ou uma door pra abrir se o player tiver concluido a quest,com o uid igual ao storage vai bugar,nesse caso é legal colocar o uid diferente do storage..
Muito obrigado por ler,critique! comente! elogie! mas n deixe de se manifestar sua opinião é o que me move e inspira!