Vo tentar esplica do meu jeito:
Todos player tem todas as storage só que todas(TODAS MESMO) começa no valor de -1
Principais funções usando storage
getPlayerStorageValue(cid, key) == valor -- cheka o valor da storage
setPlayerStorageValue(cid, key, valor) -- muda o valor da storage pra outra
Exemplo:
Uma quest
Function onUse(cid, item, fromPosition, itemEx, toPosition) -- função usa
if getPlayerStorageValue(cid, 123456) == -1 then --Se a storage for igual e -1 ele continua
doPlayerSendCancel(cid, "Você ganho a storage.")
setPlayerStorageValue(cid, 123456, 1) -- mudo o valor da storage 123456 para 1
else -- caso a storage dele não seja -1
doPlayerSendCancel(cid, "Você ha ganho a storage.")
end -- fecho o if
return true
end -- fecho a função
Onde a storage fica guardada: Eu acho que fica na db.