Postado Fevereiro 12, 2015 10 anos Estou refazendo o sistema de clean, mas ta usando muita CPU (100% de um core). function onSay(cid, words, param, channel) local pos = {} local fromPos, toPos, toFloor = 800, 1200, 15 for x = fromPos, toPos do for y = fromPos, toPos do for z = 0, toFloor do local coord = {x = x, y = y, z = z, stackpos = 0} if getTileThingByPos(coord).itemid ~= 0 and not getTileInfo(coord).house then table.insert(pos, coord) end end end end local delay = 0.0001 local _delay, i = delay, 1 while i <= #pos do addEvent(doCleanTile, delay, pos[i], false) i = i + 1 delay = delay + _delay end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Game map cleaned.') return true end Num mapa pequeno não tem problema, mas num mapa grande tem chances de travar o pc... Alguém tem alguma sugestão para diminuir o uso de CPU? Editado Fevereiro 12, 2015 10 anos por fireelement (veja o histórico de edições)
Postado Fevereiro 12, 2015 10 anos Não da pra dividir em partes? Cria uma ou duas funções, cada uma dando save em xx tabela, e a outra em xxx tabela. Compreende?
Postado Fevereiro 12, 2015 10 anos Autor Não da pra dividir em partes? Cria uma ou duas funções, cada uma dando save em xx tabela, e a outra em xxx tabela. Compreende? O problema não ta no doCleanTile, e sim no table.insert, pois insere muitos valores ao mesmo tempo. Queria tentar colocar um addEvent no table.insert também, mas não consegui fazer isso
Postado Fevereiro 12, 2015 10 anos não usa o table.insert. function onSay(cid, words, param, channel) local fromPos, toPos, toFloor = 800, 1200, 15 for x = fromPos, toPos do for y = fromPos, toPos do for z = 0, toFloor do local coord = {x = x, y = y, z = z, stackpos = 0} if getTileThingByPos(coord).itemid ~= 0 and not getTileInfo(coord).house then addEvent(doCleanTile, 1, coord, false) end end end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Game map cleaned.') return true end
Postado Fevereiro 12, 2015 10 anos Autor não usa o table.insert. obg pela ajuda, mas continua usando 1 core inteiro :'( Editado Fevereiro 12, 2015 10 anos por fireelement (veja o histórico de edições)
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.