Postado Maio 23, 2014 11 anos O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Scripting → Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts" STYLLER OT 2022
Postado Maio 23, 2014 11 anos Se ão tiver sido resolvido a dúvida poste seu sistema aqui. Scripter: |||||||||| 10% Te ajudei?? REP + e ficamos quites... Atenciosamente, Lucas. Abraços!
Postado Maio 23, 2014 11 anos Autor Boa tarde. Conferindo com o tutorial indicado, é sim o sistema do Mock. O arquivo data/creaturescrpits/scripts/fimvip.lua, o data/movements/scripts/viptile.lua não existem. Em data/talkactions/scripts, nenhum dos arquivos citados existe (existe o addvip.lua, com apenas um 'p'). Os outros arquivos estão lá. Devo concluir que o sistema de vip configurado aqui está incompleto? Nos nossos testes, conseguimos adicionar o tempo vip e o nome da conta mudou com o [VIP]. Só não testamos ainda se a conta deixa de ser vip após o tempo ter acabado. Na função: function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_time` FROM `players` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end Posso substituir a condição WHERE para procurar logo pelo id e passar o cid no parâmetro? Assim: ae = db.getResult("SELECT `vip_time` FROM `players` WHERE `id` = 'cid';") E também na função: function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end Ficar assim: db.executeQuery("UPDATE `"..sqlDatabase.."`.`players` SET `vip_time` = '"..(os.time()+time).."' WHERE `players`.`id` ='cid';") Quando vocês falam em postar o sistema aqui, devo enviar toda a pasta 'data'? Apenas para efeito de curiosidade, qual a diferença dessas duas funções? Não entendi a lógica do "or 0". function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end Agradeço desde já a atenção. Abraços.
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.