Ir para conteúdo

Quest que da varios itens! Corrigida vale a pena ver!


totonho18

Posts Recomendados

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!

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

×
×
  • Criar Novo...