
Tudo que Wise postou
-
[Storage] Por dia
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 ;]
- erro no Storage
-
(Resolvido)[PEDIDO] Locker global
Ótima ideia ;] @JeanShamayin Disponha.
-
[Storage] Por dia
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"/>
-
[Storage] Por dia
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.
-
[Storage] Por dia
É 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.
-
(Resolvido)[AJUDA] GlobalEvent
Exatamente.
-
(Resolvido)[AJUDA] GlobalEvent
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"/>
-
Oi sou Calisto
Bem vindo, Calisto! Não deixe pra depois o que pode ser agora: Aulas de Scripting.
-
(Resolvido)[AJUDA] GlobalEvent
Procure pelo nome do arquivo (no qual você encontrou esses códigos) em globalevents.xml (data/globalevents).
-
(Resolvido)[AJUDA] Boss
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.
-
Script Free Points
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.
-
Backpack só para potions
Não tinha pensado em usar essa função, @xWhiteWolf. Obrigado, editei.
-
(Resolvido)[AJUDA] GlobalEvent
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.
-
[ ERRO ACTION ] DOUBLE EXP POT
Poste os códigos do arquivo expo.lua (localizado em data/actions/scripts).
-
Summon Monster
@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
- onMoveItem(cid, item, count, toContainer, fromContainer, ...)
-
Backpack só para potions
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")
-
[Pedido] Wand vip
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].
-
(Resolvido)[PEDIDO] Locker global
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, é.
-
(Resolvido)Tile Mute
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"/>
-
(Resolvido)[PEDIDO] Locker global
Nunca vi tal coisa.
-
(Resolvido)[PEDIDO] Evento Sala de Summon
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 ;]
-
(Resolvido)[Pedido] Não usar mount com certo outfit
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.
-
(Resolvido)[PEDIDO] Evento Sala de Summon
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