mehmetejr Posted July 14, 2019 Posted July 14, 2019 (edited) Hi guys. I saw some topics about it but the problem is that I don't have timer in this script but it just gives that error anyway.(İnfinite/long execution). Can you tell me what the problem is with this script ? Btw, these codes are not leaked at all... local selectedQuests = {{}} function startStep11(retest) local remainHours, remainMinutes, remainSeconds = nil local userid = getElementData(client, "account:id") local faData = exports.mysql:query_fetch_assoc("SELECT (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(`forceapp_date`)) AS `secdiff` FROM `force_apps` WHERE `account`='"..userid.."' LIMIT 1") if faData and faData["secdiff"] and tonumber(faData["secdiff"]) then local secdiff = tonumber(faData["secdiff"]) local secsInADay = 60*60*24 -- sec,min,hour if secdiff < secsInADay then remainHours = math.floor((secsInADay-secdiff)/60/60) if remainHours <= 0 then remainMinutes = math.floor((secsInADay-secdiff)/60) if remainMinutes <= 0 then remainSeconds = math.floor(secsInADay-secdiff) end end else exports.mysql:query_free("DELETE FROM `force_apps` WHERE `account`='"..userid.."' ") end end selectedQuests[client] = {} local quests = {} local preparedQ = "" local mQuery = nil preparedQ = "SELECT * FROM `applications_questions` WHERE `part`='1' " mQuery = exports.mysql:query(preparedQ) while true do local row = exports.mysql:fetch_assoc(mQuery) if not row then break end table.insert(quests, row ) end exports.mysql:free_result(mQuery) while #selectedQuests[client] < 6 do local ran = math.random(1, #quests) if not isThisQuestSelected(client, quests[ran]) then table.insert(selectedQuests[client], quests[ran]) end end triggerClientEvent(client, "apps:step11", client, selectedQuests[client], retest, remainHours, remainMinutes, remainSeconds) selectedQuests[client] = nil end addEvent("apps:startStep11", true) addEventHandler("apps:startStep11", root, startStep11) function isThisQuestSelected(client, quest) for i = 1, #selectedQuests[client] do if quest == selectedQuests[client][i] then return true end end return false end function finishStep1() if source and isElement(source) and getElementType(source) == "player" then client = source end local id = getElementData(client, "account:id") if id then local preparedQuery = "UPDATE `accounts` SET `appstate`='1' WHERE `id`='"..id.."' " if exports.mysql:query_free(preparedQuery) then triggerEvent("apps:startStep2", client) end end end addEvent("apps:finishStep1", true) addEventHandler("apps:finishStep1", root, finishStep1) Edited July 14, 2019 by mehmetejr ...
MTA Team ccw Posted July 14, 2019 MTA Team Posted July 14, 2019 This will loop forever if #quests < 6 while #selectedQuests[client] < 6 do local ran = math.random(1, #quests) if not isThisQuestSelected(client, quests[ran]) then table.insert(selectedQuests[client], quests[ran]) end end
mehmetejr Posted July 14, 2019 Author Posted July 14, 2019 1 minute ago, ccw said: This will loop forever if #quests < 6 while #selectedQuests[client] < 6 do local ran = math.random(1, #quests) if not isThisQuestSelected(client, quests[ran]) then table.insert(selectedQuests[client], quests[ran]) end end So what u suggest for it ? I mean how can I fix it ? (I am new to scripting, so still learning)
DNL291 Posted July 14, 2019 Posted July 14, 2019 Try: for i=1, #quests do if not isThisQuestSelected(client, quests[i]) then table.insert(selectedQuests[client], quests[i]) end end Please do not PM me with scripting related question nor support, use the forums instead.
MTA Team ccw Posted July 14, 2019 MTA Team Posted July 14, 2019 while #selectedQuests[client] < math.min(6,#quests) do local ran = math.random(1, #quests) if not isThisQuestSelected(client, quests[ran]) then table.insert(selectedQuests[client], quests[ran]) end end I think this would be better
mehmetejr Posted July 14, 2019 Author Posted July 14, 2019 11 minutes ago, DNL291 said: Try: for i=1, #quests do if not isThisQuestSelected(client, quests[i]) then table.insert(selectedQuests[client], quests[i]) end end I think the problem is with my account-system.But thanks for helping anyway 4 minutes ago, ccw said: while #selectedQuests[client] < math.min(6,#quests) do local ran = math.random(1, #quests) if not isThisQuestSelected(client, quests[ran]) then table.insert(selectedQuests[client], quests[ran]) end end I think this would be better I think the problem is with my account-system.But thanks for helping anyway Btw, sometimes I get the abort error with 68th line of script.Maybe this is the problem ?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now