Ir para conteúdo

Wise

Membro
  • Registro em

  • Última visita

Tudo que Wise postou

  1. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    No baú, você vai usar o actionID ou uniqueID que você estipulou na tag da action. 50040 é a storage da quest, e 50041, a global storage pra determinar que a quest já foi feito no dia. Veja a tabela: local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}} Disponha ;]
  2. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Pode informar o erro?
  3. Ótima ideia ;] @JeanShamayin Disponha.
  4. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Desculpe. Eu esqueci que você queria que "zerasse" o tempo exatamente à meia noite. Nesse caso: function onUse(cid) local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}} if getGlobalStorageValue(t.stor[2]) < 1 then if getPlayerStorageValue(cid, t.stor[1]) < 1 then setPlayerStorageValue(cid, t.stor[1], 1) setGlobalStorageValue(t.stor[2], 1) doPlayerAddItem(cid, t.item[1], t.item[2]) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1]) else return doPlayerSendCancel(cid, 'You already have completed this quest.') end else return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.') end return true end resetquest.lua (data/globalevents/scripts): function onTime() local globalstor = 50041 if getGlobalStorageValue(globalstor) > 0 then setGlobalStorageValue(globalstor, -1) end return true end Tag - globalevents.xml (data/globalevents): <globalevent name="ResetQuest" time="00:00" event="script" value="resetquest.lua"/>
  5. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    function onUse(cid) local t = {item = {5432, 1}, stor = {50040, 50041}} -- {item = {itemID, amount}, stor = {storage, globalstorage}} if getGlobalStorageValue(t.stor[2]) - os.time() < 1 then if getPlayerStorageValue(cid, t.stor[1]) < 1 then setPlayerStorageValue(cid, t.stor[1], 1) setGlobalStorageValue(t.stor[2], os.time() + (24 * 3600)) doPlayerAddItem(cid, t.item[1], t.item[2]) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You received '..t.item[2]..' '..t.item[1]) else return doPlayerSendCancel(cid, 'You already have completed this quest.') end else return doPlayerSendCancel(cid, 'Someone already has done this quest today, try tomorrow.') end return true end No caso, começará a valer o tempo de 24 horas, a partir do momento em que o player der use no item que contém o actionID/uniqueID estipulado na tag desse script.
  6. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    É mais simples usar um global storage na própria action da quest. [...] local gb = {1234, 24} -- {global storage key, duration in hours} if getGlobalStorageValue(gb[1]) - os.time() < 1 then . . . setGlobalStorageValue(gb[1], os.time() + (gb[2] * 3600)) [...] @falling Se não souber como aplicar, poste o script da quest.
  7. Não. Aí você definiu um intervalo para o evento, então seria: <globalevent name="eventotimes" interval="SEGUNDOS" event="script" value="eventotimes.lua"/> Se quiser determinar um horário, use essa tag (porém, você vai ter de mudar o callback do global event para function onTimer()): <globalevent name="eventotimes" time="15:30" event="script" value="eventotimes.lua"/>
  8. Wise postou uma resposta no tópico em Playground (Off-topic)
    Bem vindo, Calisto! Não deixe pra depois o que pode ser agora: Aulas de Scripting.
  9. Procure pelo nome do arquivo (no qual você encontrou esses códigos) em globalevents.xml (data/globalevents).
  10. boss.lua (data/creaturescripts/scripts): local t = {boss = 'Boss', storage = 54321} function onDeath(cid, killer) if isMonster(cid) and getCreatureName(cid) == t.boss then for i = 1, #killer do setPlayerStorageValue(killer[i], t.storage, 1) end doCreatureSay(cid, 'You defeated me..now you can open the door.', TALKTYPE_ORANGE_1) elseif isPlayer(cid) and getPlayerStorageValue(cid, t.storage) > 0 then setPlayerStorageValue(cid, t.storage, -1) end return true end function onLogout(cid) if getPlayerStorageValue(cid, t.storage) > 0 then setPlayerStorageValue(cid, t.storage, -1) end return true end Tags - creaturescripts.xml (data/creaturescripts): <event type="death" name="BPDeath" event="script" value="boss.lua"/> <event type="logout" name="BPLogout" event="script" value="boss.lua"/> Registre o creature event, tanto no XML do monstro: <script> <event name="BPDeath"/> </script> Quanto em login.lua (data/creaturescripts/scripts): registerCreatureEvent(cid, "BPDeath") bossdoor.lua (data/actions/scripts): function onUse(cid, fromPos, toPos) local storage = 54321 if getPlayerStorageValue(cid, storage) > 0 then doTeleportThing(cid, toPos) doSendMagicEffect(fromPos, CONST_ME_MAGIC_BLUE) else doSendMagicEffect(fromPos, CONST_ME_POFF) doPlayerSendCancel(cid, 'You need to kill the boss to open the door.') end return true end Tag - actions.xml (data/actions): <action actionid="ACTIONID" script="bossdoor.lua"/> Nesse caso, sempre que morrer/fizer logout, o player vai ter o valor da storage setado como diferente do necessário para abrir a porta.
  11. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Você não me entendeu. Como são definidos esses "premium points"? Através de uma coluna em uma tabela na database/por storage/por item? É isso o que eu quero saber.
  12. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Não tinha pensado em usar essa função, @xWhiteWolf. Obrigado, editei.
  13. Por ser um global event, o teleport é automaticamente criado na posição 1032, 913, 7 e leva à posição 1009, 904, 12. Nesse caso, ele é iniciado de acordo com o tempo/horário estipulado na tag do mesmo.
  14. Poste os códigos do arquivo expo.lua (localizado em data/actions/scripts).
  15. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    @Frenesy local monster = { ['Atormentador'] = {summon = 'Bau do Tesouro CDM', storage = 11123, pos = {x=413, y=467, z=14}} } function onDeath(cid, killer) local m = monster[getCreatureName(cid)] if m then if isInParty(killer[1]) then for _, pm in ipairs(getPartyMembers(getPartyLeader(killer[1]))) do setPlayerStorageValue(pm, m.storage, 1) end doCreatureSay(cid, 'Nããããooo!', TALKTYPE_ORANGE_1) doCreateMonster(m.summon, m.pos) else setPlayerStorageValue(killer[1], m.storage, 1) doCreateMonster(m.summon, m.pos) end end return true end @kamus9629 local monster = { ['Boss'] = {summon = {'Monster1', 'Monster2', 'Monster3', 'Monster4', 'Monster5', 'Monster6'}, pos = {x=413, y=467, z=14}} } function onDeath(cid, killer) local m = monster[getCreatureName(cid)] if m then doCreatureSay(cid, 'You will see..MF!', TALKTYPE_ORANGE_1) for i = 1, #m.summon do doCreateMonster(m.summon[i], getClosestFreeTile(cid, m.pos)) end end return true end
  16. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Tente: bpofpotions.lua (data/creaturescripts/scripts): function onMoveItem(cid, item, count, toContainer, fromContainer, fromPos, toPos) local bp = 1987 local potions = {8704, 8474, 7618, 7591, 7588, 8473, 7620, 7590, 7589, 8472, 7634, 7635, 7636} if toContainer.itemid == bp and not isInArray(potions, item.itemid) then return doPlayerSendCancel(cid, "This backpack is only for potions.") and false end return true end Tag - creaturescripts.xml (data/creaturescripts): <event type="moveitem" name="BackpackOfPotions" event="script" value="bpofpotions.lua"/> Registre o creature event em login.lua (data/creaturescripts/scripts): registerCreatureEvent(cid, "BackpackOfPotions")
  17. Wise postou uma resposta no tópico em Suporte Tibia OTServer
    Na verdade, essas funções que você citou existem sim no TFS 1.0. Veja algumas delas nesse tópico: Lua Functions [TFS 1.0].
  18. Eu sei o que é. Quando eu disse "nunca vi tal coisa", eu me referi ao que ele pediu, abrir o depot em qualquer local via uma talkaction. Sim, é.
  19. silencertile.lua (data/movements/scripts): local time = 5 -- time in minutes local condition_muted = createConditionObject(CONDITION_MUTED) setConditionParam(condition_muted, CONDITION_PARAM_TICKS, time*60000) function onStepIn(cid) if isPlayer(cid) then doAddCondition(cid, condition_muted) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'You have been muted for '..time..' minutes.') end return true end Tag - movements.xml (data/movements): <movevent type="StepIn" actionid="ACTIONID" event="script" value="silencertile.lua"/>
  20. Se o pedido foi atendido, clique no botão que está localizado abaixo do post de quem te ajudou. Automaticamente ele irá ficar destacado como a melhor resposta e o tópico ficará com o prefixo "Resolvido" no início do título. Disponha ;]
  21. 2.7 - Dar "UP" para subir tópicos: Não é proibido da "UP" em seus tópicos para ele subir na listagem, porém você só poderá usar deste beneficio dentro de um período de 24h, ou seja, se você deu "UP" agora só poderá dar novamente daqui 24h, caso ao contrário seu tópico será fechado. Lembre-se que isto é um exceção da regra do double post, tanto é que você só poderá usar deste beneficio de 48 em 48 horas. Veja o tópico com o texto das Regras Gerais do fórum.
  22. Esqueci um parâmetro.. function onUse(cid, fromPos, toPos) local monster = 'Demon' doCreateMonster(monster, getClosestFreeTile(cid, toPos)) doSendMagicEffect(toPos, CONST_ME_MAGIC_GREEN) return true end

Informação Importante

Confirmação de Termo