40 lines
		
	
	
	
		
			890 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			890 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local quiz
 | |
| local required = 0
 | |
| 
 | |
| RegisterNUICallback('exitQuiz', function(_, cb)
 | |
|     if not quiz then return cb('ok') end
 | |
|     SetNuiFocus(false, false)
 | |
|     quiz:resolve(false)
 | |
|     quiz = nil
 | |
|     required = 0
 | |
|     cb('ok')
 | |
| end)
 | |
| 
 | |
| RegisterNUICallback('quitQuiz', function(data, cb)
 | |
|     if not quiz then return cb('ok') end
 | |
|     if data.score >= required then
 | |
|         quiz:resolve(true)
 | |
|     else
 | |
|         quiz:resolve(false)
 | |
|     end
 | |
|     SetNuiFocus(false, false)
 | |
|     quiz = nil
 | |
|     required = 0
 | |
|     cb('ok')
 | |
| end)
 | |
| 
 | |
| local function Quiz(questions, correctRequired, timer)
 | |
|     for i, question in ipairs(questions) do
 | |
|         question.numb = i
 | |
|     end
 | |
|     required = correctRequired
 | |
|     quiz = promise.new()
 | |
|     SetNuiFocus(true, true)
 | |
|     SendNUIMessage({
 | |
|         action = 'startQuiz',
 | |
|         questions = questions,
 | |
|         timer = timer
 | |
|     })
 | |
|     return Citizen.Await(quiz)
 | |
| end
 | |
| exports('Quiz', Quiz)
 | 
