Postado Março 13, 2020 5 anos Boa noite, olha eu aqui mais uma vez enchendo o saco de vocês kkkk, estou montando um script e eu fiquei em duvida na parte dos dias premium, no script abaixo vou mostrar como ele está: Mostrar conteúdo oculto local dias = 1 function onLogin(cid) -- Monday = Segunda -- Tuesday = Terça -- Wednesday = Quarta -- Thursday = Quinta -- Friday = Sexta -- Saturday = Sabado -- Sunday = Domingo DoubleXP = {"Friday", "Saturday", "Sunday", "Thursday"} storage = 2883123 storage_loot = 289991 items = { item_ID = 11505, stamina_potion = 11644, critical_stone = 11752, } qtdes = { qtde = 1, qtde_stone = 2, } if isInArray(DoubleXP, os.date("%A")) then if getPlayerStorageValue(cid, storage_loot) == 2 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "--[Double XP ]--\n --[Double Loot ]--\nHoje Estamos em evento Double XP e Loot aproveite!!") return doPlayerSendCancel(cid, "voce ja recebeu a skin box.") end setPlayerStorageValue(cid, storage_loot, 1) if getPlayerStorageValue(cid, storage_loot) == 1 then doPlayerSendTextMessage(cid,22,"Voce logou no periodo em que o Evento de Fim de Semana estava ativo, voce recebeu 1 Critical Stone, 1 Stamina Potion, 1 Dia Premium, Parabens") doPlayerAddItem(cid, items.item_ID, qtdes.qtde) doPlayerAddItem(cid, items.stamina_potion, qtdes.qtde) doPlayerAddItem(cid, items.critical_stone, qtdes.qtde_stone) doPlayerAddPremiumDays(cid, dias) setPlayerStorageValue(cid, storage_loot, 2) doPlayerSendMailByName(getCreatureName(cid), doCreateItemEx(items.item_ID, qtde), getPlayerTown(cid)) doSendMagicEffect(getThingPos(cid), effectChest) end setPlayerStorageValue(cid, storage, 1) doPlayerSetRate(cid, SKILL__LEVEL, 2.0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "--[Double XP ]--\n --[Double Loot ]--\nHoje Estamos em evento Double XP e Loot aproveite!!") else doSendMagicEffect(getCreaturePosition(cid), 358) setPlayerStorageValue(cid, storage, 2) setPlayerStorageValue(cid, storage_loot, 3) end return true end (Eu estou tentando aprender ainda e se estiver alguns erros peço que me ajudem também... utilizei alguns script de um membro que me ajudou no meu tópico anterior xD) Chega de mimimi e vamos ao que interessa né... Esse script ta funcionando certinho, porem eu queria modifica-lo para que os dias premium que os player recebessem fossem por Storage de Account, fazendo com que se o player logar em outro char ele não vai receber os premium day (somente os premium day as outras recompensas o player vai receber) por que no meu server ainda esta por Account Manager e foi bizarro o que aconteceu kkkkk, mas é isso eu queria uma ajudinha nesta parte e se for necessário modifica-lo por inteiro não tem problema. Se alguém ver algo incorreto peço que aponte onde ele está, pra eu aprender também com os erros xD!! Versão TFS: 0.3.6 REP + pra quem me ajuda xD Editado Março 13, 2020 5 anos por ASSAFSAF (veja o histórico de edições)
Postado Março 13, 2020 5 anos Solução Que tal assim? Não tentei, hein. Estou no trabalho. kkkk local dias = 1 function onLogin(cid) -- Monday = Segunda -- Tuesday = Terça -- Wednesday = Quarta -- Thursday = Quinta -- Friday = Sexta -- Saturday = Sabado -- Sunday = Domingo DoubleXP = {"Friday", "Saturday", "Sunday", "Thursday"} storage = 2883123 storage_loot = 289991 items = { item_ID = 11505, stamina_potion = 11644, critical_stone = 11752, } qtdes = { qtde = 1, qtde_stone = 2, } if isInArray(DoubleXP, os.date("%A")) then if getStorageAccount(cid, storage_loot, 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "--[Double XP ]--\n --[Double Loot ]--\nHoje Estamos em evento Double XP e Loot aproveite!!") return doPlayerSendCancel(cid, "voce ja recebeu a skin box.") end setPlayerStorageValue(cid, storage_loot, 1) if getPlayerStorageValue(cid, storage_loot) == 1 then doPlayerSendTextMessage(cid,22,"Voce logou no periodo em que o Evento de Fim de Semana estava ativo, voce recebeu 1 Critical Stone, 1 Stamina Potion, 1 Dia Premium, Parabens") doPlayerAddItem(cid, items.item_ID, qtdes.qtde) doPlayerAddItem(cid, items.stamina_potion, qtdes.qtde) doPlayerAddItem(cid, items.critical_stone, qtdes.qtde_stone) doPlayerAddPremiumDays(cid, dias) setPlayerStorageValue(cid, storage_loot, 2) doPlayerSendMailByName(getCreatureName(cid), doCreateItemEx(items.item_ID, qtde), getPlayerTown(cid)) doSendMagicEffect(getThingPos(cid), effectChest) end setPlayerStorageValue(cid, storage, 1) doPlayerSetRate(cid, SKILL__LEVEL, 2.0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "--[Double XP ]--\n --[Double Loot ]--\nHoje Estamos em evento Double XP e Loot aproveite!!") else doSendMagicEffect(getCreaturePosition(cid), 358) setPlayerStorageValue(cid, storage, 2) setPlayerStorageValue(cid, storage_loot, 3) end return true end function getStorageAccount(cid, key, value) local chars = {} local query = db.getResult("SELECT `id` FROM `players` WHERE `account_id` = '"..getPlayerAccountId(cid).."';") if query:getID() == -1 then return true end repeat local player = query:getDataString("id") table.insert(chars, player) until not query:next() query:free() for i = 1, #chars do local check = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = '"..chars[i].."' and `key` = '"..key.."' and `value` = '"..value.."';") if check:getID() == 0 then return true end end return false end
Postado Março 14, 2020 5 anos Autor Funcionou perfeitamente!!! com certeza irei utilizar essa function em meus scripts futuroo, obrigado pro ajudar não só a mim mas também pessoas que talvez estavam passando pelo o que eu estava passando kkkkk vlw!! REP+
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.