TekaZudo
seuserver.com.br
DESCRIÇÃO
Anuncie aqui neste countdown e dê maior visibilidade ao seu lançamento |
Full Global • Custom Quests • Custom Outfits • Lottery System • Version 15x
Inicia em:
--
Participar
Solutions
-
FeeTads's post in (Resolvido)exp potion de acordo com posição do rank was marked as the answertenta trocar a função do top pra essa:
function getNameTopServer() -- eu alteraria pra getNameTopCinco local i = 1 local query, name = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 5"), {} if (query:getID() ~= -1) then while(true) do name[i] = query:getDataString("name") i = i + 1 if not(query:next()) then break end end end return name end
e troca a outra por essa, vou colocar pra printar, me manda o que aparece no console quando tenta usar
local name = getNameTopServer() local exp = {5, 4, 3, 2, 1} local NaoEstaCinco = 0 local expOutros = 1 for j=1, 5 do if name[j] == getPlayerName(cid) and item.itemid == seuitem then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid, exp[j]) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + 420) doPlayerSendTextMessage(cid,22,texto) NaoEstaCinco = 1 break return true end end if NaoEstaCinco == 0 then if item.itemid == seuitem then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid, expOutros) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + 420) doPlayerSendTextMessage(cid,22,texto) end end
-
FeeTads's post in (Resolvido)Nascer monstro a cada x tempo [ 8.60 ] was marked as the answeraltera no spawn.xml
-
FeeTads's post in (Resolvido)criei um item que é de encantamento. was marked as the answercoloca no movement o move do 44745 também, coloca os 2, provavelmente vc colocou só 1
<movevent type="Equip" itemid="44745" slot="necklace" level="100" event="function" value="onEquipItem"> <vocation id="3"/> <!-- vocation que usa esse item, excluir a tag pra liberar pra todos --> </movevent> <movevent type="DeEquip" itemid="44745" slot="necklace" event="function" value="onDeEquipItem"/>
-
FeeTads's post in (Resolvido)[RESOLVIDO] Movement de armadura que dá % de vida was marked as the answervc vai precisar sempre dar um update desses items, indico fazer uma function na LIB com esses itens, uma table, e sempre que o player upar ou mover esse item, dar chamar a function da lib pra atualizar a vida com a %
pois dessa maneira que está ele pega a max health apenas no momento do equip, ele não da um "update" pra checar o health a cada level.
indico vc fazer uma tabela com esses itens na lib tipo
function na lib:
function executeItems(cid) local tabela = {1111,2222,333,4445,5555,5555,555,9999} for i=1, 9 do for j=1, #tabela do if getPlayerSlotItem(cid. i).itemid == tabela[j] then local save = getCreatureMaxHealth(cid) doSetCreatureMaxHealth(cid, (getCreatureMaxHealth(cid) * 1.1)) --1.1 = 110% da vida atual, ou seja, +10% doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) - save)) -- adiciona 10% de vida end end end end
e um function no creatureScripts:
function onAdvance(cid, skill, oldLevel, newLevel) if(skill == SKILL__EXPERIENCE) then return true end if(skill == SKILL__LEVEL) then executeItem(cid) doPlayerSave(cid, true) end return true end
tem que testar direitinho pra checar se não vai bugar e ficar add infinitamente, mas de base eh isso.
-
FeeTads's post in (Resolvido)LUA - 'ipairs' (table expected, got number) was marked as the answero código ta fazendo oq tu pediu uai
players = #getPlayerInarea
o # significa o tamanho
pra receber a table é só
players = getPlayersInArea
e depois print(#players)
que ai vai printar o tamanho de players, ou seja, 2 players na area
-
FeeTads's post in (Resolvido)Sd dando dano igual em monstro e player was marked as the answervocê esqueceu do resto do script kkkkkkk vou deixar ele 100%
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, TRUE) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) function onGetFormulaValues(cid, level, maglevel) if isMonster(getCreatureTarget(cid)) then -- se for monster min = -(level * 3 + maglevel * 4) * 10 max = -(level * 3 + maglevel * 5) * 10.5 else --se for qualquer outra coisa min = -(level * 3 + maglevel * 4) * 5 max = -(level * 3 + maglevel * 5) * 5.5 end return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
FeeTads's post in (Resolvido)ERRO DISTRO SISTEMA VIP [ 8.60 ] was marked as the answerexiste 4 funções pra checar alguma creature no tibia
isCreature(cid) > se é alguma creature, ou seja, se é algo passando ali.
isPlayer(cid) > se é um player, qualquer outra coisa q não seja player, não se encaixa.
isMonster(cid) > se é monster, qualquer coisa que não seja monster não se encaixa.
isSummons(creature) > se é summon tanto de bixo como de player
o seu script pra ignorar NPC's e monsters deve ficar assim:
-- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then -- se não for player return true -- retorna true end local config = { msgDenied = "Está área é exclusiva para jogadores VIP. Para adquirir sua VIP basta usar o comando: !comprarvip10 ou !comprarvip30.", msgWelcome = "Bem Vindo a Área VIP!" } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end
-
FeeTads's post in (Resolvido)Tile que da DMG! was marked as the answermas esse script só vai mandar o texto "voc vip" no sqm kkkkkk
segue o script, adicionar o script em globalEvents
data > globalEvents > scripts > DamageTile.lua
local config = { damage = 100, --quantidade de dano effect = 26, -- efeito que sairá na position, pra saber qual efeito usar, vá no seu god e usa /z e um numero entre 0-49, exemplo /z 30 cor = 180 -- cor do texto } function onThink(interval, lastExecution) local positions = { [1] = {pos = {x = 143, y = 155, z = 7}}, --[2] = {pos = {x = 1, y = 1, z =1}}, -- pra add outras posições só colocar assim e em sequencia, precisa da virgula no final } for i=1, #positions do -- vai da posição 1, até o tamanho de posições doSendMagicEffect(positions[i].pos, config.effect) -- envia o efeito na posição if isPlayer(getTopCreature(positions[i].pos).uid) then -- se tiver player na posiçao player = getTopCreature(positions[i].pos).uid doSendAnimatedText(getCreaturePosition(player), "-"..config.damage, config.cor) doCreatureAddHealth(player, -config.damage) -- retira a vida do player na posição end end return true end
e add essa tag no globalEvents.xml
data> globalEvents > globalEvents.xml
<globalevent name="DamageTile" interval="3000" event="script" value="DamageTile.lua"/>
"interval="3000" singnifca 3s
3000 ms = 3s
-
FeeTads's post in (Resolvido)Usar um item em outro e ganhar stg was marked as the answerlocal config = { itemY = 2160, -- Id do item Y message = 'A mensagem que ira aparecer quando usar o item X no item Y.', storage = 412311 } function onUse(cid, item, fromPosition, itemEx, toPosition) -- esse if o player só usa 1x e nunca mais if getPlayerStorageValue(cid, config.storage) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você já usou esse item no item Y.") return true end if (itemEx.itemid == config.itemY) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.message) doRemoveItem(item.uid, 1) -- storage de usar apenas 1x setPlayerStorageValue(cid, config.storage, 1) end return true end
ta na mão meu querido
-
FeeTads's post in (Resolvido)Itens do site não vai para o personagem Plugin GeniorACC 2019 8.6 was marked as the answertenta esse arquivo como shop.lua
shop.lua
ou esse
shop.lua > shop do baiak.pvp
caso nenhum de certo, possivelmente poderá ser o seu php com problema
shopsystem.php
caso seja o seu php, tente por esse no lugar.
caso nada entregue
cheque o interval da tag do global events
data > globalevents > globalevents.xml
<globalevent name="shop" interval="10000" script="shop.lua" />
caso não seja nada disso possivelmente pode ser DB
-
FeeTads's post in Item que heala e da buff was marked as the answera distro deixou o erro ali kkkkkk
" ' , ' expected near '#' " ?
kkkkkk faltou uma virgula no for da linha 46
aki nesse for i=1 #need_vocation
for i=1 #need_vocation do -- checa as vocações que podem usar o food //setadas no cabeçalho if getPlayerVocation(cid) == need_vocation[i] then -- se for, aparece msg de sucesso na tela doPlayerSendTextMessage(cid, 22, msg_sucess) else doPlayerSendTextMessage(cid, 22, msg_no_vocation) -- se não tiver a vocação necessaria, manda msg avisando return true -- e sai da função end end
coloca assim
for i=1, #need_vocation do
só uma virgula após o i=1
de qualquer maneira, atualizei a linha 46 no código ali em cima, qualquer coisa só copiar e colar kkk
e caso funcione 100%, deixa o REP+ e o Mark as Solution ?
tmj meu mano
po mano e percebi um "mini erro" meu aqui, quando estava chamando a função, caso fosse diferente de 1 segundo, iria bugar
deixando o código arrumado aki pra baixo
fix: GARANTE que o buff vai durar exatamente o tempo descrito no cabeçalho, independente de quantas curas executar.
fix2: arrumei a checagem de vocação do for também, da outra maneira ia checar apenas a primeira vocação e sair.
sugiro muito que copie esse script \/
local itemID = 9998 -- id do item local tempoDeBuff = 60 -- em segundos local porcentagemDeCura = 2 -- vai curar 2% por [tempo entre curas] durante [tempo de buff] local qtdDeSkill = 10 -- quantidade de skill que dará local efeito = 4 -- efeito que sairá do player local removerItem = true -- remover o item? true = remove, false = não remove local tempoEntreCuras = 1 * 1000 -- tempo entre o efeito da cura, 1 * 1000 = 1000ms logo //1 segundo local need_vocation = {1,2,3,4,5} -- IDs da vocações QUE PODEM usar o food local buff = SKILL_FISHING -- qual skill vai aumentar //pra saber qual skill vc quer aumentar procure por "skill" em "lib/000-constant.lua" local storage = 5474767 -- pode ser qualquer numero //não pode repetir numero de outra storage existente local storage_buff_ativo = 5474768 local function CuraFoodBuff(cid, flag) if isCreature(cid) then --se estiver logado entra, se não termina o loop, ou seja, se deslogar/morrer perde o efeito do food if flag > 0 then doCreatureAddHealth(cid, (getCreatureMaxHealth(cid) * (porcentagemDeCura/100))) -- n mexer :P doSendMagicEffect(getThingPos(cid), efeito) -- efeito que vai sair do player flag = getPlayerStorageValue(cid, storage) - os.time() -- garante que execute a função pelo [tempo de buff] addEvent(CuraFoodBuff, tempoEntreCuras, cid, flag) -- chama de novo a função passando -1 segundo pro tempo else doPlayerAddSkill(cid, buff, -qtdDeSkill, true) -- quando acabar o efeito seta o fishing pro normal setPlayerStorageValue(cid, storage_buff_ativo, -1) return true end else return true end end function onUse(cid, item, frompos, item2, topos) local msg_no_vocation = "Sua Vocação não pode usar esse item!" -- mensagem caso não tenha a voc necessária local msg_sucess = "Você usou o Heal Food, o efeito irá durar"..tempoDeBuff.." segundos" -- mensagem de sucesso if item.itemid == itemID then local tempo = getPlayerStorageValue(cid, storage) - os.time() -- tempo recebe o tempo restante pra usar a potion de novo if tempo > 0 then -- se tempo for maior que 0, significa que está em uso if tempo > 60 then -- só pra mostrar bonitinho doPlayerSendCancel(cid,"Você precisa esperar "..math.floor(tempo/60).." minutos e "..(tempo%60).." segundos.") else doPlayerSendCancel(cid,"Você precisa esperar "..(tempo%60).." segundos.") end return true end for i=1, #need_vocation do -- checa as vocações que podem usar o food //setadas no cabeçalho if getPlayerVocation(cid) == need_vocation[i] then -- se for, aparece msg de sucesso na tela doPlayerSendTextMessage(cid, 22, msg_sucess) no_have_voc = false -- seta a variavel de não ter voc pra false, ou seja tem a voc necessaria break -- quebra o for depois disso //necessario deixar o BREAK end end if no_have_voc then doPlayerSendTextMessage(cid, 22, msg_no_vocation) -- se não tiver a vocação necessaria, manda msg avisando return true -- e sai da função end setPlayerStorageValue(cid, storage, os.time() + tempoDeBuff) -- storage pra salvar o tempo de buff, apenas pra tirar o skill de fishing caso o player deslogue/morra doPlayerAddSkill(cid, buff, qtdDeSkill, true) -- aumenta o skill setado no cabeçalho setPlayerStorageValue(cid, storage_buff_ativo, 1) if removerItem then -- se removerItem no cabeçalho for true REMOVE O ITEM, se não, não remove doRemoveItem(item.uid, 1) -- função de remover o item, não precisa mexer end CuraFoodBuff(cid, tempoDeBuff) -- chama a função end return true end
-
FeeTads's post in (Resolvido)Premmy no nick was marked as the answerfunction Split(s, delimiter) result = {}; for match in (s..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match); end return result; end function onLogin(cid) if getPlayerAccess(cid) > 2 then -- ignora GM+ return true end local func = db.query or db.executeQuery local namePlayer = getPlayerName(cid) local checkPremmy = Split(namePlayer, " ") if isPremium(cid) and checkPremmy[1] ~= "[P]" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!") --Msg em vermelho na tela do player addEvent(function() if isCreature(cid) then --verifica se o player ainda ta on e executa doRemoveCreature(cid) --desloga o char func('UPDATE `players` SET `name` = "[P] '..namePlayer..'" WHERE `name` = "'..namePlayer..'"') --executa a função na DB end end, 6000) -- 2000 = 2s pra deslogar o player elseif not isPremium(cid) and checkPremmy[1] == "[P]" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você será desconectado pra mudança de nome!") addEvent(function() if isCreature(cid) then --verifica se o player ainda ta on e executa -- não mexer em nada daqui pra baixo ****** local split = Split(getPlayerName(cid), " ") -- função pra tirar o [P] local nomeAntigo = '' local space = " " for i=2, #split do nomeAntigo = nomeAntigo..split[i] if i+1 <= #split then --se ainda tiver mais nomes nomeAntigo = nomeAntigo..space -- caso seja nome composto add espaço ex: Pedro Mauro end end -- não mexer em nada pra cima ****** doRemoveCreature(cid) --desloga o char func('UPDATE `players` SET `name` = "'..nomeAntigo..'" WHERE `name` = "'..namePlayer..'"') --executa a função na DB end end, 6000) -- 2000 = 2s pra deslogar o player end return true end
coloca esse código todo no lugar.
e testa em OUTRO boneco qualquer pra ver
-
FeeTads's post in [AJUDA] CRYSTAL NAO GANHA SPELL DA VOCAÇÃO was marked as the answercoloca um print(gem) pra ver oq mostra no console e manda uma print.
e o action ID das estatuas está certo?
estatua1 = action id: 8635
estatua2 = action id: 8636
estatua3 = action id: 8633
....
-
FeeTads's post in (Resolvido)[Resolvido] existe função pra checar se algum item é ring ou colar? was marked as the answerfunction getItemType(itemid) local slottypes = {"head", "body", "legs", "feet", "ring", "necklace"} local consts = { ["head"] = CONST_SLOT_HEAD, ["armor"] = CONST_SLOT_ARMOR, ["legs"] = CONST_SLOT_LEGS, ["feet"] = CONST_SLOT_FEET, ["ring"] = CONST_SLOT_RING, ["necklace"] = CONST_SLOT_NECKLACE } local arq = io.open("data/items/items.xml", "r"):read("*all") local attributes = arq:match('<item id="' .. itemid .. '".+name="' .. getItemNameById(itemid) ..'">(.-)</item>') local slot = "" for i,x in pairs(slottypes) do if attributes:find(x) then slot = x break end end if slot == "body" then slot = "armor" end return consts[slot] end
a solução foi essa kkkkk, achei algumas funções de como pegar no items.xml e arrumei a função, ela retorna exatamente o slot que o item vai, porém items sem slot definido bugam kkkkk
ex: usar pedra de refine na armor >
print(getItemType(itemEx.itemid))
a saida do console será: 4
e então você pode escolher se o player pode ou não usar o refine na armor
ex:
if getItemType(itemEx.itemid) == 4 then
doPlayerSendTexTMessage(cid, 22, "não pode usar refina na armor")
return true
end
ex: getItemType(2160) --id do crystal coin
vai bugar pq o gold não tem slotType, porém pra evitar bugs desse estilo, nos scripts junto com getItemType eu uso " not isStackable(itemid) " pq ai se o item não for stackavel ele não buga kkkkkk
tmj
esse script não sei quem começou ele pois tava banido do forum que peguei, e como arrumei uns 30% dele vou disponibilizar sem créditos
**não sei quem é o dono desse script e se tem 100% funcional, mas tmj <3**
-
FeeTads's post in Função level was marked as the answerentão é só colocar o getplayer level no começo do on say, assim:
local config = { --vocation id = {storage, nova voc, looktype, efeito} ------------ NARUTO ------------- [215] = {30023, 630, 971, 252}, need_level = 500 } local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa local from7,to7 = {x=1475, y=856, z=7},{x=1484, y=867, z=7} -- começo e final do mapa local from8,to8 = {x=984, y=578, z=7},{x=1044, y=652, z=7} -- shinobi war function onSay(cid, words, param, channel) if getPlayerLevel(cid) < config.need_level then doPlayerSendCancel(cid, "Você precisa ser level".. config.need_level .."ou mais!") return true end local voc = config[getPlayerVocation(cid)] local posPlayer = getCreaturePosition(cid) if isInRange(posPlayer, from, to) or isInRange(posPlayer, from2, to2) or isInRange(posPlayer, from3, to3) or isInRange(posPlayer, from4, to4) or isInRange(posPlayer, from5, to5) or isInRange(posPlayer, from6, to6) or isInRange(posPlayer, from7, to7) or isInRange(posPlayer, from8, to8) then doPlayerSendCancel(cid, "Você não pode se transformar nesta área!") return true end if voc then if getPlayerStorageValue(cid, voc[1]) > 1 then doCreatureSay(cid, "Transformar!", TALKTYPE_MONSTER) doPlayerSetVocation(cid, voc[2]) doCreatureChangeOutfit(cid, {lookType = voc[3]}) doSendMagicEffect(posPlayer, voc[4]) else doPlayerSendCancel(cid, "Você não fez a quest para usar essa transformação!") end else doPlayerSendCancel(cid, "Você já está na transformação máxima!") end return true end
"need_level" = level minimo necessário. **LEMBRANDO** level 500 assim que pegar 500, ja pode usar a function
ai dentro do onSay, quando o player der talkaction e for 500 ou menos, retorna true e sai da function sem transformar
caso queira uma tabela e talz, me manda no discord a ideia que tento fazer pra vc, e dei uma "arrumadinha" no código pra deixar mais clean kkkkk
-
FeeTads's post in [PEDIDO] Como utilizar acentuação em Scripts .lua e .php was marked as the answeresse código só serve pra arquivos .xml meu mano
pra vc usar acentos nó que vai aparecer na tela do player, você precisa formatar o arquivo em ANSI, ele vem por padrão UTF-8, e pra fazer isso vc precisa usar o notepad++
pra colocar os acentos vc vai precisar abrir seu arquivo do seu OT com notepad++
ai vai na opção formatar, e clica em "Codificação em ANSI"
ai caso JÁ EXISTA, palavras com acentos, você vai precisar consertar elas
~pq vão ficar com símbolos bugados~
exemplo:
ai após formatar e arrumar, so salvar o arquivo CTRL + S e dar reload e testar
ai fica certinho na tela do player assim.
-
FeeTads's post in (Resolvido)Usar Item e Mudar Outfit. was marked as the answerlocal remover = false -- Remover ao usar? false = não remove, true = remover local outfits = { [11478] = {out = 2013}, } function onUse(cid, item) local t = outfits[item.itemid] if getPlayerVocation(cid) > 13 then doPlayerSendTextMessage(cid, 22, "Sua vocação não pode usar este item!") return true end if getCreatureOutfit(cid).lookType ~= 2013 then --se o outfit for diferente do 2013 setPlayerStorageValue(cid, 1234567, getCreatureOutfit(cid).lookType) --salva o looktype atual do player doCreatureChangeOutfit(cid, {lookType = t.out}) --transforma doPlayerSendTextMessage(cid, 22, "Voce alterou seu Outfit!") else doCreatureChangeOutfit(cid, {lookType = getPlayerStorageValue(cid, 1234567)}) --se o looktype for 2013 volta ao original doPlayerSendTextMessage(cid, 22, "De volta ao seu outfit original!") end if remover then doRemoveItem(item.uid, 1) -- pode deixar 1 aqui e no escopo deixa false end return true end
se funcionar deixa o rep+ ai pra ajudar
-
FeeTads's post in Como removo o limite da barra de vida e mana? was marked as the answermano, não tem como remover pq 65536 é a quantidade maxima de bits que o tibia 8.6 suporta, não tem como modificar isso, pelo menos no OT 8.6, oq vc pode fazer é colocar a vida em porcentagem, ai vai ficar 100/100 indicando a porcentagem de vida da pessoa.
esse link aki do TK ensina como fazer.
-
FeeTads's post in (Resolvido)Erro Em Globalevents was marked as the answerlocal msg = { ["Monday"] = { --Segunda ['19:00'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:05'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:10'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:15'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:20'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:25'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:29'] = {text = 'Evento Up Acaba Em 1 Minuto', type = 21}, }, ["Wednesday"] = { --Quarta ['19:00'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:05'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:10'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:15'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:20'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:25'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:29'] = {text = 'Evento Up Acaba Em 1 Minuto', type = 21}, }, ["Saturday"] = { --Sabado ['19:00'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:05'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:10'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:15'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:20'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:25'] = {text = 'Evento Up Aberto No Segundo Andar Do Temple', type = 21}, ['19:29'] = {text = 'Evento Up Acaba Em 1 Minuto', type = 21}, }, } function onThink(interval, lastExecution) if msg[os.date("%A")] then hours = tostring(os.date("%X")):sub(1, 5) tab_val = msg[os.date("%A")][hours] if tab_val then return tab_val and doBroadcastMessage(tab_val.text, tab_val.type) or true end end return true end tenta esse script, mudei pra ele checar o dia logo no começo, diferente do seu que recebe data e hora antes de checar kkk, acho q assim deve funcionar
e alias
monday é segunda e Wednesday é quarta kkkkkkk, isso pode te atrapalhar depois, arrumei no script, vai que sla
e creio também que Type = 21 pra broadcast não funciona, tem que colocar
no lugar desse tab_cal.type o tipo de message, tipo
doBroadcastMessage(tab_val.text, MESSAGE_STATUS_CONSOLE_RED) e vc tem ctz que quer esse script mandando a cada 5s na tela de todos mano? eu acho isso meio poluido sabe, magina em 1 minuto aparecer 12 mensagens dessa que duram 5s, a mensagem nem vai sair da tela durante o minuto todo, se eu fosse vc, ja que tem 7 horarios com aviso, colocaria o interval em 20000, que seria 20s, seria mais clean, isso é só minha opnião kkk as vezes a cada 5s eh melhor, mas ai eh com vc
-
FeeTads's post in (Resolvido)Ao passar no SQM ganhar storage was marked as the answerse é esse script q você mandou, é só por um Movements de StepIn, quando o char andar sobre o ActionID do move, ele vai receber essas storages, não manjo muito de 12x mas creio q eh o mesmo estilo
e essa tag no movements.xml
<movevent type="StepIn" actionid="54654" event="script" value="nome-do-arquivo.lua"/>
data/movements/scripts/nome-do-arquivo.lua
function onStepIn(cid, item, position, fromPosition, toPosition) local actionId = item.actionid if actionId == 54654 then player:setStorageValue(Storage.ForgottenKnowledge.Tomes, 1) player:setStorageValue(Storage.ForgottenKnowledge.LastLoreKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.TimeGuardianKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.HorrorKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.DragonkingKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.ThornKnightKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.LloydKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.LadyTenebrisKilled, 1) player:setStorageValue(Storage.ForgottenKnowledge.AccessMachine, 1) end return true end aonde estão essas storages? provavelmente na sua lib né? se for variavel global, ele vai aceitar nesse script.
agora se estiver tipo
local Storage.k....... ai assim, vc vai precisar colocar essas storage dentro do script de move tbm