Postado Maio 20, 2020 4 anos Boa noite galera do TK, bem no meu OT tem sistema de resets e to tendo um problema em relação isso, alguns players bugam o reset, por exemplo eles "resetam" no !myinfo que seria o comando pra ver as informações dele mesmo fala que tem 19 RR mas quando da look nele ele tem apenas 16, os outros 3 bugaram e não contaram como reset. Queria saber se alguem pode me ajudar a colocar um delay nesse sistema de reset. tipo o player fala !reset e em 5 segundos ele desloga e quando logar volta ao level que está no script, um player também havia me falado que pode ser por conta do battle também. Aguem pode ajudar. reset.lua Spoiler if not resys then resys = { ['boolean'] = {pz = true, teleport = true}, btlevel = 250, exhaust = 0, stages = { {need = {resets = 01, level = 10000}}, {need = {resets = 02, level = 10000}}, {need = {resets = 03, level = 10000}}, {need = {resets = 04, level = 10000}}, {need = {resets = 05, level = 10000}}, {need = {resets = 06, level = 20000}}, {need = {resets = 07, level = 20000}}, {need = {resets = 08, level = 20000}}, {need = {resets = 09, level = 20000}}, {need = {resets = 10, level = 20000}}, {need = {resets = 11, level = 30000}}, {need = {resets = 12, level = 30000}}, {need = {resets = 13, level = 30000}}, {need = {resets = 14, level = 30000}}, {need = {resets = 15, level = 30000}}, {need = {resets = 16, level = 40000}}, {need = {resets = 17, level = 40000}}, {need = {resets = 18, level = 40000}}, {need = {resets = 19, level = 40000}}, {need = {resets = 20, level = 40000}}, {need = {resets = 21, level = 50000}}, {need = {resets = 22, level = 50000}}, {need = {resets = 23, level = 50000}}, {need = {resets = 24, level = 50000}}, {need = {resets = 25, level = 50000}}, {need = {resets = 26, level = 260000}}, {need = {resets = 27, level = 270000}}, {need = {resets = 28, level = 280000}}, {need = {resets = 29, level = 290000}}, {need = {resets = 30, level = 300000}}, {need = {resets = 31, level = 310000}}, {need = {resets = 32, level = 320000}}, {need = {resets = 33, level = 330000}}, {need = {resets = 34, level = 340000}}, {need = {resets = 35, level = 350000}}, {need = {resets = 36, level = 360000}}, {need = {resets = 37, level = 370000}}, {need = {resets = 38, level = 380000}}, {need = {resets = 39, level = 390000}}, {need = {resets = 40, level = 400000}}, {need = {resets = 41, level = 4100000}}, {need = {resets = 42, level = 4200000}}, {need = {resets = 43, level = 4300000}}, {need = {resets = 44, level = 4400000}}, {need = {resets = 45, level = 4500000}}, {need = {resets = 46, level = 4600000}}, {need = {resets = 47, level = 4700000}}, {need = {resets = 48, level = 4800000}}, {need = {resets = 49, level = 490000}}, {need = {resets = 50, level = 5000000}}, {need = {resets = 51, level = 5100000}}, {need = {resets = 52, level = 5200000}}, {need = {resets = 53, level = 5300000}}, {need = {resets = 54, level = 5400000}}, {need = {resets = 55, level = 5500000}}, {need = {resets = 56, level = 5600000}}, {need = {resets = 57, level = 5700000}}, {need = {resets = 58, level = 5800000}}, {need = {resets = 59, level = 5900000}}, {need = {resets = 60, level = 6000000}}, {need = {resets = 61, level = 6100000}}, {need = {resets = 62, level = 6200000}}, {need = {resets = 63, level = 6300000}}, {need = {resets = 64, level = 6400000}}, {need = {resets = 65, level = 6500000}}, {need = {resets = 66, level = 6600000}}, {need = {resets = 67, level = 6700000}}, {need = {resets = 68, level = 6800000}}, {need = {resets = 69, level = 6900000}}, {need = {resets = 70, level = 7000000}}, } } function resys:exhaustion(cid, sec) if not sec then return getPlayerStorageValue(cid, 421221) - os.time() end setPlayerStorageValue(cid, 421221, os.time() + sec) end function resys:getReset(name) local result = db.getResult(('SELECT reset FROM players WHERE id = %d'):format(getPlayerGUIDByName(name))) local reset = 0 if result:getID() ~= -1 then reset = result:getDataInt('reset') result:free() end return reset end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) then resets = getPlayerStorageValue(thing.uid, 421221)+1 doPlayerSetSpecialDescription(thing.uid, "\nResets: [" .. resets .."]") end return true end function resys:doReset(cid) if getPlayerLevel(cid) < self:need(cid).level then return doPlayerSendCancel(cid, ('Faltam %d niveis para voce resetar.'):format(self:need(cid).level - getPlayerLevel(cid))) end if self['boolean'].pz and not getTilePzInfo(getCreaturePosition(cid)) then return doPlayerSendCancel(cid, 'Voce precisa estar em protection zone para resetar.') end local name = getCreatureName(cid) local id = getPlayerGUIDByName(name) self:exhaustion(cid, self.exhaust) if self['boolean'].teleport then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end local inc = self:getReset(name) + 1 doRemoveCreature(cid) db.query(('UPDATE players SET level = %d, experience = 0, description = " [Resets: %d]", reset = %d WHERE id = %d'):format(self.btlevel, inc, inc, id)) return true end function resys:need(cid) local index = {} for _, v in ipairs(self.stages) do if self:getReset(getPlayerName(cid)) >= v.need.resets then table.insert(index, v.need) end end return #index > 0 and index[#index] or self.stages[1].need end function getPlayerResets(cid) return resys:getReset(getPlayerName(cid)) end end
Postado Maio 21, 2020 4 anos Recomendo tirar essa query SQL e adicionar a função de remover experiência (assim tu voltas o player pro level escolhido sem precisar removê-lo). Tens conhecimentos básico de C++? No arquivo player.cpp tu podes editar a função getDescription e colocar essa quantidade de reset no look. Editado Maio 21, 2020 4 anos por Rutserzim (veja o histórico de edições)
Postado Maio 21, 2020 4 anos Autor 4 horas atrás, Rutserzim disse: Recomendo tirar essa query SQL e adicionar a função de remover experiência (assim tu voltas o player pro level escolhido sem precisar removê-lo). Tens conhecimentos básico de C++? No arquivo player.cpp tu podes editar a função getDescription e colocar essa quantidade de reset no look. @Rutserzim Não nunca mexi em C++, como poderia fazer essa alteração?
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.