Postado Março 3, 2015 10 anos Olá pessoal queria fazer uma quest que seja possivel faze-la todo dia, mais vejam oque tem de errado em meus scripts <globalevent name="ResetQuest" time="00:00" event="script" value="cardstor.lua"/> function onTime() local globalstor = 50041 if getGlobalStorageValue(globalstor) > 0 then setGlobalStorageValue(globalstor, -1) end return true end E depois a action: local config = { effect = 52, premiumdays = 1, remove_on_use = "yes" } function onUse(cid, item, frompos, item2, topos) doPlayerAddStamina(cid, (2520 - getPlayerStamina(cid))) doSendMagicEffect(getThingPos(cid), config.effect) doPlayerAddPremiumDays(cid, config.premiumdays) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabens! Voce acabou de receber um dia de GOLD CARD.") if config.remove_on_use == "yes" then doRemoveItem(item.uid, 1) end return true end OBS: Eu registrei no actions.xml so nao axei necessario colocar aqui.
Postado Março 3, 2015 10 anos Em 03/03/2015 em 17:18, falling disse: Olá pessoal queria fazer uma quest que seja possivel faze-la todo dia, mais vejam oque tem de errado em meus scripts <globalevent name="ResetQuest" time="00:00" event="script" value="cardstor.lua"/> function onTime() local globalstor = 50041 if getGlobalStorageValue(globalstor) > 0 then setGlobalStorageValue(globalstor, -1) end return true end E depois a action: local config = { effect = 52, premiumdays = 1, remove_on_use = "yes" } function onUse(cid, item, frompos, item2, topos) doPlayerAddStamina(cid, (2520 - getPlayerStamina(cid))) doSendMagicEffect(getThingPos(cid), config.effect) doPlayerAddPremiumDays(cid, config.premiumdays) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabens! Voce acabou de receber um dia de GOLD CARD.") if config.remove_on_use == "yes" then doRemoveItem(item.uid, 1) end return true end OBS: Eu registrei no actions.xml so nao axei necessario colocar aqui. Cara eu não manjo muito, mais fiz uns testes aqui e pelo que parece GlobalStorage é como o nome diz mesmo é 1 GlobalStorage e não a storage de todos os players, tem até 1 table no SQL chamada GlobalStorage, ela serve para fazer eventos diarios por exemplo: O global event checa se o GlobalStorage XXXX é maior que 0 e faz o teleport ai se tu quiser desligar o evento você muda o storage pra -1 que o evento não vai funcionar. Agora se fosse fazer 1 quest utilizando GlobalStorage como você quer seria assim: O player ia usar o item e a GlobalStorage XXXX ia mudar para 1, então ninguém mais ia conseguir fazer até o global event mudar o GlobalStorage XXXX para -1, porém ia ficar nisso e só 1 player iria poder fazer a quest por dia no caso... Acho que é isso, sou iniciante então pode ter algo errado na minha informação! To tentando fazer algum script de quest diaria também, se eu conseguir eu posto aqui pra tu. Editado Março 3, 2015 10 anos por Wakon (veja o histórico de edições) ➥ Regras | Seções OTServ | Seções BOT
Postado Março 3, 2015 10 anos local config = { premiumDays = 1, storageQuest = 9999, seconds = 86400, -- seconds de 1 dia. } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storageQuest) < os.time then setPlayerStorageValue(cid, storageQuest, os.time + config.seconds) doPlayerAddStamina(cid, (2520 - getPlayerStamina(cid))) doSendMagicEffect(getThingPos(cid), 52) doPlayerAddPremiumDays(cid, config.premiumDays) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabens! Voce acabou de receber um dia de GOLD CARD.") doRemoveItem(item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce ainda nao pode usar.") end return true end STYLLER OT 2022
Postado Março 6, 2015 10 anos Em 03/03/2015 em 19:49, luanluciano93 disse: local config = { premiumDays = 1, storageQuest = 9999, seconds = 86400, -- seconds de 1 dia. } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, storageQuest) < os.time then setPlayerStorageValue(cid, storageQuest, os.time + config.seconds) doPlayerAddStamina(cid, (2520 - getPlayerStamina(cid))) doSendMagicEffect(getThingPos(cid), 52) doPlayerAddPremiumDays(cid, config.premiumDays) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabens! Voce acabou de receber um dia de GOLD CARD.") doRemoveItem(item.uid, 1) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Voce ainda nao pode usar.") end return true end To tentando usar esse script aqui, mais quando dou use no item aparece assim na distro: Achei que fosse eu fazendo cagada na hora de editar o script, mais testei o seu sem mexer nada e da isso também :S ➥ Regras | Seções OTServ | Seções BOT
Postado Março 6, 2015 10 anos nesta linha: if getPlayerStorageValue(cid, storageQuest) < os.time then muda o: storageQuest para config.storageQuest STYLLER OT 2022
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.