Postado Março 3, 2020 5 anos tente assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local daysvalue = 1 * 60 * 60 -- 1 hora storage = 928938923 local daily = getStorage(getPlayerAccount(cid), 13222423) if getStorage(getPlayerAccount(cid), storage) <= os.time() then setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue) local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid doItemSetAttribute(item, "description", " Premio Diario [FREE].") doItemSetAttribute(item, 'aid', 10032) doSendMagicEffect(getThingPos(cid), 29) else local left = getStorage(getPlayerAccount(cid), storage) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)} doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].') doSendMagicEffect(getThingPos(cid), 2) end return true end ou function onUse(cid, item, fromPosition, itemEx, toPosition) local daysvalue = 1 * 60 * 60 -- 1 hora storage = 928938923 local daily = getAccountStorageValue(getPlayerAccount(cid), 13222423) if getAccountStorageValue(getPlayerAccount(cid), storage) <= os.time() then setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue) local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid doItemSetAttribute(item, "description", " Premio Diario [FREE].") doItemSetAttribute(item, 'aid', 10032) doSendMagicEffect(getThingPos(cid), 29) else local left = getAccountStorageValue(getPlayerAccount(cid), storage) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)} doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].') doSendMagicEffect(getThingPos(cid), 2) end return true end Editado Março 3, 2020 5 anos por ikaroangelo21 (veja o histórico de edições)
Postado Março 3, 2020 5 anos Autor O primeiro apareceu o seguinte erro: [Error - Action Interface] data/actions/scripts/bautk.lua:onUse Description: data/actions/scripts/bautk.lua:4: attempt to call global 'getAccountStorageValue' (a nil value) stack traceback: data/actions/scripts/bautk.lua:4: in function <data/actions/scripts/bautk.lua:1> o segundo: [Error - Action Interface] data/actions/scripts/bautk.lua:onUse Description: data/actions/scripts/bautk.lua:4: attempt to call global 'getAccountStorageValue' (a nil value) stack traceback: data/actions/scripts/bautk.lua:4: in function <data/actions/scripts/bautk.lua:1>
Postado Março 3, 2020 5 anos @ASSAFSAF. function onUse(cid, item, fromPosition, itemEx, toPosition) local daysvalue = 1 * 60 * 60 -- 1 hora storage = 928938923 local daily = getStorage(getPlayerAccount(cid), 13222423) if getStorage(getPlayerAccount(cid), storage) <= os.time() then setAccountStorageValue(getPlayerAccount(cid), storage, os.time() + daysvalue) local item = doPlayerAddDepotItems(cid, 1990, 0) -- 1990 = id item e 0 townid doItemSetAttribute(item, "description", " Premio Diario [FREE].") doItemSetAttribute(item, 'aid', 10032) doSendMagicEffect(getThingPos(cid), 29) else local left = getStorage(getPlayerAccount(cid), storage) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60)} doPlayerSendCancel(cid, 'You have to wait '.. left.hour ..'h and '..left.minutes..'min [1 present per account].') doSendMagicEffect(getThingPos(cid), 2) end return true end mudei a função 'getAccountStorageValue' por getStorage.
Postado Março 3, 2020 5 anos Autor @ikaroangelo21 [Error - Action Interface] data/actions/scripts/bautk.lua:onUse Description: data/actions/scripts/bautk.lua:8: attempt to call global 'setAccountStorageValue' (a nil value) stack traceback: data/actions/scripts/bautk.lua:8: in function <data/actions/scripts/bautk.lua:1> Editado Março 3, 2020 5 anos por ASSAFSAF (veja o histórico de edições)
Postado Março 9, 2020 5 anos Solução @ASSAFSAF Veja se é assim que você quer: 1 - data/scripts/actions crie um arquivo chamado questDaily.lua: local storageBlock = 451112 -- Não alterar este Storage local storage = 44541 local hour = 1 -- Tempo em horas que o player poderá pegar a recompensa novamente local effectChest = 10 -- Efeito Bau local itemRewardID = 2160 -- ItemID que será enviado para o depot local count = 1 -- Quantidade do Item local time = 60 * 60 * hour local messageSucess = "Voce recebeu uma recompensa do bau, ela foi enviada para o seu depot." -- mensagem que irá aparecer quando o player pegar a recompensa local messageFail = "Voce tem que esperar para poder pegar a quest novamente." -- mensagem que irá aparecer quando o player já pegou a recompensa function onUse(cid, item, fromPosition, itemEx, toPosition) local playerName = getCreatureName(cid) if (getPlayerStorageValue(cid, storage) - os.time() < storage) then local timeLeft = getPlayerStorageValue(cid, storage) - os.time() local time = { hour = math.floor(timeLeft/3600), minutes = math.ceil((timeLeft % 3600)/60) } doPlayerSendCancel(cid, messageFail) end if (getPlayerStorageValue(cid, storage) <= os.time()) then doPlayerSendMailByName(playerName, doCreateItemEx(itemRewardID, count), getPlayerTown(cid)) doSendMagicEffect(getThingPos(cid), effectChest) doPlayerSendCancel(cid,messageSucess) setPlayerStorageValue(cid, storage, os.time() + time) setPlayerStorageValue(cid, storageBlock, 1) end end Agora vamos registrar a ActionID do baú que fará a action no arquivo actions.XML. 2 - Vá em data/actions e abra o arquivo actions.xml e cole esta tag: <action actionid="9991" script="questDaily.lua"/> Agora vamos configurar a mensagem que vai ser enviada para o player quando ele tiver a permissão de pegar a recompensa outra vez. 3 - Vá em data/creaturescripts/scripts, crie um arquivo lua chamado questDaily.lua: local storage = 44541 -- Mesmo Storage que você colocou no Script do Bau (data/actions/scripts/dailyQuest.lua) local storageBlock = 451112 -- Não alterar este Storage local message = "Voce ja pode pegar a recompensa novamente." -- mensagem que será enviada quando o player tiver a permissao para pegar a recompensa novamente. function onThink(cid, interval) if(not isCreature(cid)) then return end if (os.time() == getPlayerStorageValue(cid, storage) and getPlayerStorageValue(cid, storageBlock) >= 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, message) setPlayerStorageValue(cid, storageBlock, -1) end return true end Agora vamos registrar o evento no Creaturescripts.XML 4 - Vá em data/creaturescripts e abra o arquivo creaturescripts.xml e cole está linha: <event type="think" name="questDaily" interval="10" event="script" value="questDaily.lua"/> Agora vamos registrar o evento no Login.lua 5 - Vá em data/creaturescripts/login.lua e cole esta linha la dentro: registerCreatureEvent(cid, "questDaily")
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.